Extending Rust's Effect System
This is the transcript of my RustConf 2023 talk: "Extending Rust's Effect System", presented on September 13th 2023 in Albuquerque, New Mexico and streamed online.
Topics /
The most popular blog posts about programming languages on Hacker News. 327 posts.
This is the transcript of my RustConf 2023 talk: "Extending Rust's Effect System", presented on September 13th 2023 in Albuquerque, New Mexico and streamed online.
News post: Gleam v1.2.0 released
A look at a Mojo benchmark for bioinformatics, and Mojo in general.
Avoiding memory leaks in the slices package.
Improve startup time by making the classes of an application instantly available, in a loaded and linked state, when the HotSpot Java Virtual Machine starts. Achieve this by monitoring the application during one run and storing the loaded and linked forms of all classes in a cache for use in subsequent runs. Lay a…
Swift for C++ Practitioners, Part 1: Intro & Value Types
Dr. John Ousterhout is a computer science luminary who has made significant contributions to the fie
I am a big fan of C, but some part of me always yearn to have just enough higher level constructs.
I have written about my on-going rewrite-it-to-Rust effort at work: 1 , 2 , 3 . And now it's finished, meaning it's 100% Rust and 0% C++ - the public C API has not changed, just the implementation, one function at time until the end. Let's have a look back at what worked, what didn't, and what can be done about it.
The Rust language has incrementally grown a set of patterns to support control-flow effects including error handling, iteration, and asynchronous I/O. In The registers of Rust , boats lays out four aspects of this pattern shared by Rust’s three effects. Today these effects are typically used in isolation, or at most…
Some time ago I was talking about an ahead-of-time Ruby compiler. We started the project with certain goals and hypotheses in mind, and while the original compiler is at nearly 90% completion, there are still those other 90% that needs to be done.
Scope. To talk about C++’s current safety problems and solutions well, I need to include the context of the broad landscape of security and safety threats facing all software. I chair the ISO C++ s…
I am currently working on a Rust to .NET compiler, rustc_codegen_clr . To get it to work, I need to implement many Rust features using .NET APIs. One of such features is panicking and unwinding.
Whether you have to do with data in the form of CSV, JSON or a full-blooded programming language like C, JavaScript, Scala, or maybe a query language like SQL, you always transform some sequence of characters (or binary values) into a structured representation. Whatever you’ll do with that representation depends on…
continuing with the DNA theme… In Catalyst, a WebAssembly implementation of the OpenSmalltalk virtual machine, there are three linguistic levels in play: Smalltalk, JavaScript (JS), and WebAs…
wingolog: article: conservative gc can be faster than precise gc
How I build a website for choosing movies
Some time later, I came across Iavor�s "jokes" page, including a funny bit called � The Evolution of a Programmer � in which the traditional imperative "Hello, world" program is developed through several variations, from simple beginnings to a ridiculously complex extreme. A moment�s thought turned up the factorial…
For a real-life implementation, see how Racket's math/number-theory does it here .
OOP is certainly not my favorite paradigm, but I think mainstream statically-typed OOP does a few things right that are very important for programming with many people, over long periods of time.
It took more than ten years of full-time work for Rama to go from an idea to a production system. I shudder to think of how long it would have taken without Clojure. Rama is a programming platform …
The other day I posted something silly, and learned some interesting things about raw pointers in Rust.
How bounded higher-kinded polymorphism arises in practice, and how to express it in OCaml, in several different ways. Some ways are rather concise -- but less widely known.
An esoteric, graphical functional language
00:00.000 Introduction 00:17.000 Why Lisp matters 01:26.640 Why Emacs Lisp was chosen 02:54.841 Other "Emacsen" 03:38.581 Why not Common Lisp? 06:39.120 Common Lisp is still not dead or is always dead 08:30.080 Lem is a nice Emacsen implementation 08:58.260 Why not just use GNU Emacs? 10:31.080 Why Lem 14:03.080…
Joseph Gentle wrote a post on how he wants Rust to change. I am already working on that.
Using Elixir instead of Python or Ruby for shell scripting.
(I've been editing this post on and off for almost a year. I'm not really happy with it, but I suspect I never will be.)