news
Programming Leftovers
-
Philip Zucker ☛ An Associative-Commutative (AC) Hash Cons with AC matching
There is an approach to problem solving where you take simpler and simpler subproblems until they are quite obvious, and then you build back up to the thing you want.
People want an egraph that supports associativity and commutativty without blowing up.
A step in that direction is to look at what an AC hash cons looks like
-
Maryanne Wachter ☛ Six Months of C
The past year has brought a lot of changes, not the least of which is that I'm now working primarily in C after a few years of web development in NodeJS/React/general JavaScript land. There's some irony to this given that in my first PyCon talk back in 2022, I proudly declared that I wanted to write as little C/C++ as possible when reimplementing a constraint library in Python using Cython.
However, I've never been particularly happy with high levels of abstraction and black-box implementations going back to my days of frustration with structural engineering software, so maybe it's fitting now that I'm working at a lower level and pursuing performant programming in C. Of course, the switch has meant working with a completely different toolset than I've used in the past, and learning a lot about Emacs along the way.
-
MaskRay ☛ Bit-field layout
Clang implements both ABIs in clang/lib/AST/RecordLayoutBuilder.cpp. It processes bit-fields in two distinct phases: [...]
-
Perl / Raku
-
Rakulang ☛ Rakudo Weekly 2026.08 Positional Adverbs
Resolutions #3 The third meeting was held on 21 February 2026 at 19:00 UTC. Four out of five long-standing issues were closed. Details of the discussions were minuted here.
-
-
Python
-
Hillel Wayne ☛ Some Silly Z3 Scripts I Wrote
As part of writing Logic for Programmers I produced a lot of “chaff”, code samples and sections I wrote up and then threw away. Sometimes I found a better example for the same topic, sometimes I threw the topic away entirely. It felt bad to let everything all rot on my hard drive, so I’m sharing a bunch of chaff for a tool called “Z3”, which has all sorts of uses in software research.
First an explanation of what this tool actually is, and then some scripts in order of increasing interestingness. All examples will use the Python bindings (pip install z3-solver).
-
-
Java/Golang
-
Paweł Grzybek ☛ No temp variables needed for pointers in Go 1.26
Go 1.26 makes this a lot simpler by extending the functionality of the built-in new function. In addition to taking a type as an argument just to return its zero value, it now also accepts an expression. All the examples from above become one-liners.
-
-
Rust
-
Niko Matsakis: What it means that Ubuntu is using Rust
Righty-ho, I’m back from Rust Nation, and busily horrifying my teenage daughter with my (admittedly atrocious) attempts at doing an English accent1. It was a great trip with a lot of good conversations and some interesting observations. I am going to try to blog about some of them, starting with some thoughts spurred by Jon Seager’s closing keynote, “Rust Adoption At Scale with Ubuntu”.
-
Rust Blog ☛ The Rust Programming Language Blog: Rust debugging survey 2026
We're launching a Rust Debugging Survey.
Various issues with debugging Rust code are often mentioned as one of the biggest challenges that annoy Rust developers. While it is definitely possible to debug Rust code today, there are situations where it does not work well enough, and the quality of debugging support also varies a lot across different debuggers and operating systems.
-
LWN ☛ The Ladybird browser project shifts to Rust
The Ladybird browser project has announced a move to
the Rust programming language: [...]
-