Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,637 posts.
Compiling a Functional Language Using C++, Part 9 – Garbage Collection
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.
Martin Odersky on Scala and Clojure
Dr. Martin Odersky, the lead designer/developer of the Scala Programming Language , Generic Java, and Pizza requires no introduction, but the motivation for this micro-interview does. That is, there is an unfortunate view in some circles that sees the existence of Scala and Clojure as somehow being at odds. In…
The Caves of Clojure
Lately I've had an urge to start playing a few games again, namely Nethack and Dwarf Fortress (the latter being triggered by this book ). Aside from being incredibly fun, they also made me want to play around with writing a roguelike game of my own.
Beyond Exception Handling: Conditions and Restarts
One of Lisp's great features is its condition system. It serves a similar purpose to the exception handling systems in Java, Python, and C++ but is more flexible. In fact, its flexibility extends beyond error handling--conditions are more general than exceptions in that a condition can represent any occurrence during…
Compiling C++ with the Clang API
This post describes how to compile a single C++ source file to an object file with the Clang API. Here is the code. It behaves like a simplified clang executable that handles -c and -S…
Porting to Python 3 Redux
Some updated tips for porting software to Python 3.
Visual programming with Elixir: Learning to write binary parsers (2019)
Visualize binary protocols by building parsers in Elixir.
How Python attributes work
What happens when we get or set an attribute of a Python object? This question is not as simple as it may seem at first. It is true that any...
Language Design with Leo White
Listen in on Jane Street’s Ron Minsky as he has conversations with engineers working on everything from clock synchronization to reliable multicast, build systems to reconfigurable hardware. Get a peek at how Jane Street approaches problems, and how those ideas relate to tech more broadly.
To erlang or not to erlang: That is the php question.
Persistent PHP processes in Erlang/OTP. “It’s so easy, in fact, that I now use it to debug WordPress functions from within Erlang.”
The Origin of CAR and CDR in Lisp (2005)
According to the LISP 1.5 Programmer's Manual ISBN 0 262 13011 4, `A' and `D' stand for `address' and `decrement', as on page 36 it says:
Monads in JavaScript
Monad is a design pattern used to describe computations as a series of steps. They manage side effects in pure functional languages but can also be used in other languages to control complexity.
Whither Swift?
I've been asking myself the question, what is Apple's plan for Swift and Objective-C? When Swift became public in 2014, its creator Chris Lattner seemed to claim that Swift and Objective-C would coexist indefinitely. From an xcode-users mailing list post:
Iterators in Go: A proposed extension
Iterators in Go are a neat way to write “lazy loops”, where we never generate more results than we actually use. Let’s see what that would look like in Go programs, and what new facilities it gives us in the standard library.
Rust Optimizations That C++ Can't Do
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
JEP 540: Simple JSON API (Now in Incubator)
Define a simple, standard API for parsing and generating JSON documents so that doing so does not require an external library. Enable many JSON processing tasks to be accomplished with little coding. This is an incubating API .
Problems with Go Get
T-Minus 15.193792102158E+9 years until the universe closes!
Rust is not a company
Last year, as an occasional contributor to the Rust project, I did not think much about the organisational structure of the team behind the project. I saw a hierarchy of teams and groups, team leaders, etc. Just like any other organisation. This year, after getting more involved, becoming a library team member and…