Clojure 1.11 planning
Tales of Developing Clojure
Tales of Developing Clojure
I spent this weekend writing a Forth designed for music synthesis, and it reminded me what a joy writing programming languages is! I have a big list of programming language experiments that I want to try, but it's mostly been in my head so far. Here's a living document of some of the languages I want to write.
Part 1 - The Pitch
The past year It has been a tough year 2018, filled with roller-coasters and instability. The constant dropping of the crypto markets has ...
Ruby apps can use a lot of memory. But why? Various people in the community attribute it to memory fragmentation, and provide two “hacky” solutions. Dissatisfied by the current explanations and provided solutions, I set out on a journey to discover the deeper truth and to find better solutions.
How to use the new Go 1.13 error interfaces and functions.
Now that the Cologne meeting is over and we’ve more or less finalized (at least before the NB comments come in) C++20, I wanted to take the time to describe in detail one of the new language features we can look forward to. The feature is typically referred to as operator<=> (defined in the language as “three-way…
Some readers already know this and a few have suspected. I’ve been working on a new R6RS Scheme compiler for a while. Now I have released it as free software. Read on to learn the many wonderful drawbacks of this niche compiler.
Today we're happy to announce the availability of TypeScript 3.4! If you haven't yet used TypeScript, it's a language that builds on JavaScript that adds
Together with the Scala 3 team at EPFL (aka the Dotty team), led by Martin Odersky, we have decided that, rather than developing Scala 2.14, our efforts should go to Scala 3 instead.
This is something I posted on python-ideas, but I think it's interesting to a wider audience. There's been a lot of discussion recently ab...
I’m excited to announce a new open-source project for the Swift ecosystem, Swift Numerics! Swift Numerics will provide the building blocks of numerical computing in Swift, as a set of fine-grained modules bundled together into a single Swift package. My hope is that we can quickly fill some important gaps in the…
This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System.
Mario Macias' handcrafted blog
posted by Matthew Flatt For background information about Racket on Chez Scheme (a.k.a. Racket CS), see the original announcement, last January's report, and the report at Scheme Workshop 2018. Racket on Chez Scheme is done in a useful sense. All...
Dust3D is a free, open source low poly 3D modeling tool for video games and 3D printing. Features sketch-to-mesh, auto-rigging, procedural animation, and single-tool GLB/FBX export.
A pragmatic new design for high-level abstractions Monads (and, more generally, constructs known as “higher kinded types”) are a tool for high-level abstraction in programming languages1. Historically, there has been a lot of debate inside (and outside) the Rust community about whether monads would be a useful…
and this made me wonder how many type parameters a method could have. As far as I can tell, the Java Language specification says nothing about this question. 1
Dr. Alan Kay invented the term "OO Programming", but he states that modern OO programming isn't what he meant. What did he mean?
Over the years I’ve found myself with a weird amount of knowledge about how types and ABIs in Rust work, and I wanted to write it all down in one place so that… it’s written down in one place. Much of this information can or should be found in the Rust Language Reference and the Rustonomicon .
Any problem in computer science can be solved with another level of indirection. Except for the problem of too many layers of indirection.