news
Programming Leftovers
-
SICP ☛ Reasons to dislike Hey Hi (AI) coding
Code as Art
I covered this before in Art or tool? If you think of software as artistic output then generated software isn’t real because it doesn’t have the creative ineffability that’s a sign of true art.
-
Steinar H Gunderson ☛ Steinar H. Gunderson: Decompilation patterns, part 3: do-while-while
Today's decompilation pattern is a variation on yesterday's loop pattern, because loops are important and tend to induce a lot of transformations by the compiler. So assume you have code like this (perhaps after converting a goto): [...]
-
Mark-Jason Dominus ☛ Maybe a better way to track the release history of a Git repo
At present, the release procedure creates a ref something like this: [...]
-
Alex Alejandre ☛ Janet on x32: 32-bit Pointers, 64-bit Speed, 25% Less RAM
Janet libraries like Spork supply their own build flags, but we can hijack them with a fake cc which starts the real one with the necessary -m32 -msse2 -mfpmath=sse flags. I modified the beginning of my default Janet build script: [...]
-
Achim Zeileis ☛ Goodbye R-Forge, hello Codeberg
After 20 years of service the R-Forge package hosting platform will be retiring soon. Codeberg is a modern alternative that shares many of the ideas and values that R-Forge was built on. A tutorial for transitioning to Codeberg (or other Git-based platforms) is provided.
-
Beta News ☛ Mold 3.0 swaps C++ for Rust and aims to become a default Linux linker
Released on October 5, 2026, Mold 3.0 is the first version of the high-speed linker written in Rust. Version 2.42.1 was the last release of the C++ codebase, and the project's GitHub announcement describes 3.0 as a drop-in replacement for it.
Next up for the 3.x series is an effort to “close the remaining compatibility gaps with GNU ld, particularly in linker script support,” the page states. Preparing Mold for adoption as the default linker in Linux distributions is the other stated aim.
-
Daniel Lemire ☛ Faster software linking with mold
When you build a program, the compiler turns each source file into an object file. Then a linker stitches all the object files and libraries into one executable. On Linux, the default linker is usually GNU ld (also called bfd). The GNU binutils also ship gold, an alternative linker that was designed to be faster. … Continue reading Faster software linking with mold
-
R / R-Script
-
R Works ☛ {renv}, {rix}, rv, uvr, ir: An explosion of R package and environment managers
There has been an explosion of package/environment/platform managers in the R ecosystem recently,1 and R users are really reaping the rewards of so many ripe and riveting tools. But, I’ve found it rough2 to keep track of them all and understand what they are and how they are different!
I suspect I am not the only one. My colleague Libby Heeren and I recently held a Data Sciece Lab with Eric Nantz to showcase {rix} and Nix (which was awesome! Keep an eye out on the Posit YouTube channel for when the recording is published), and the first three or so questions from the audience were all about how {rix} compares to X ({renv}, rv, uvr), and so I thought it’d be helpful to write a short summary of five tools that I’ve heard about: {renv}, {rix}, rv, uvr, and ir.3
-
-
Shell/Bash/Zsh/Ksh
-
Adam Johnson ☛ Zsh: set aside a command with “Escape Q” / push-line
Both of these options work, but they’re fiddly.
Zsh has a neater feature to help here: the push-line widget. Press Escape, release it, then press q. Zsh stores your current command away and clears the prompt, ready for a different command: [...]
-