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...
The latest blog posts to take off on Hacker News. 258 posts.
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...
You can’t really know where you are going until you know where you have been. – Maya Angelou CIDER started its life as an effort to replace a hacked version of SLIME1 with a proper environment for Clojure development on Emacs. Many of you probably don’t remember those days, but initially almost everyone was using a…
A few days ago on Christmas day 2020, Matz released Ruby 3.0. Like every year, a host of interesting new features was included with the new version. Most articles I have read so far focus more on the new ways to introduce type hints and the Ractor system but for me the most interesting addition was the introduction of…
We'll explain the concepts underlying LLVM IR, and how you can use the LLVM C++ API in your programming language's compiler.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
About two years ago, I wrote a quite complicated diff tool in Clojure. It was complicated enough that I struggled to fit the algorithm in my head and the inputs were large enough that I had to make some efforts to improve performance.
Update: See the Hacker News thread , /r/programming , /r/ProgrammingLanguages , /r/gamedev , and /r/lisp posts for discussions on this article and Cakelisp.
Some time ago, I wrote a blog post about how there’s more to a pointer than meets the eye. One key point I was trying to make is that just because two pointers point to the same address...
An overview of a paper that presents a reference implementation of a defer mechanism (co-authored with Robert C. Seacord) has been accepted for publication at SAC’21. The full version is avai…
Rust has an amazing dbg macro that lets you quickly set up an expression printer that will also put in the source line. It also returns the value of the expression so you can even easily inline the printing when you want to!
A dive into the unknown personal and academic history of the mathematician who developed combinators, Moses Schönfinkel.
Out of all Lisps the ones I’ve come to appreciate the most are Scheme and Common Lisp.
Both QBE and LLVM are compiler backends using an SSA representation. This document will explain why LLVM does not make QBE a redundant project. Obviously, everything following is biased, because written by me.
What's the midpoint between 0 and infinity in Ruby? It's 1.5 for some reason. What's the reason you might ask? Read on to find out.
There’s a fantastic article from last year titled Parse, don’t validate. I’d highly recommend it to any programmer (along with the more recent follow up Names are not type safety). The basic idea i…
Pretend that you’ve opened this book (although you probably have opened this book), just to find a huge onion right in the middle crease of the book. (The manufacturer of the book has included the onion at my request.)
Leo Ostera — making computers do things
Example based guide for text processing with Perl from the command line