The BEAM needs an APL-y language
One like, one unpopular opinion is one of them top Twitter games, innit?
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
One like, one unpopular opinion is one of them top Twitter games, innit?
The first computer I used had about 2KB of RAM. The other day, I compiled a 2KB Common Lisp script into a 16MB executable to get its startup (and total execution) time down from 2s to subjectively instantaneous — and that didn't bother me the least, for my current computer has 8GB of working memory…
The Cargo team have been thinking about and discussing long-term plans for Cargo. In this post I'll talk about what we hope Cargo will look like around the time of the next edition (assuming there is another edition and that it happens in about three years, neither of which is
QBE 1.3 took a while to cook, but it is the most significant release since 1.0 with around 7k new lines of code and 1.5k deleted ones. In addition to the usual bug fixes, QBE gained a new and original IL matching algorithm, new optimizations from Roland Paterson-Jones, Scott Graham added support for the Windows ABI…
Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. See this lesson from Cornell for converting Bril to SSA…
This semester, I am teaching Compilers , and I'm quite happy with how I covered parsing this year. Specifically, I taught students to build a top-down LR parser and it seemed to go relatively well.
Left & Mutual Recursion Mitigation
When it rains it pours. After making a splash with D , 1 I remembered that some time ago I began an attempt to bring the GNU Modula-2 compiler to OpenBSD . Because why not? Modula-2 is a language that exists and has compiler implementations. I guess my goal is to bring all the languages and compilers to OpenBSD. And…
Introduction to Lisp programming on a PDP-1, with a hands-on practical focus
About 18 months ago I blogged about Django and Python 3, I gave the official roadmap. Not a lot has changed since then unfortunately, we’ve dropped 2.3 entirely, 2.4 is on it’s way out, but there’s no 3.X support in core. One fun thing has changed though: I get to help set the roadmap, which is a) cool, b) means the…
[The Python version described in this article is 3.x, more specifically - the 3.3 alpha release of CPython.]
As a result of work I've been doing for illumos , I've recently gotten re-engaged with internationalization, and the support for this in li...
Introduction
Sometimes the best features of Perl — and even more so of Perl 6 — are found by asking yourself, “I wonder if this’ll work?” and then findin...
A few months ago Evan Miller wrote an essay called The Mathematical Hacker . While an interesting post he does make a mistake when he gives ...
Union types are powerful yet often overlooked. At work, I've been using Flow which thankfully supports union types. But as I've refactored more of our code to use union types, I've noticed that our bundle size has been steadily increasing!
Compiler Design in C Download a copy! My book Compiler Design in C is now, unfortunately, out of print. You can download a complete copy, with the above button (pdf 19.1Mb OCR/Searchable—thanks to Marvin Hernández for adding the OCR). If you don’t want to print it out (the book is 984 pages long), you can…
Things a programmer coming from another language needs to know about R, especially those things that might be most surprising
Part 4 covers pattern matching, destructuring, and enums
Ruby's `private` keyword means something different compared to basically all other object-oriented languages. Most other languages don't even have a feature matching what Ruby calls `private`, but incredibly, Scala does, which it calls `protected[this]` (meaning
I’m happy to announce the release of Tyre, a library for Typed Regular Expressions.
nix-derivation 1.0 announcement post
Scott Mabin's blog
A short explanation of what is preemption and how it works