Programming Leftovers
-
Barry Kauler ☛ Yocto 4.0.14 release recompile
Have done a complete recompile based on the Yocto/OpenEmbedded 4.0.14 kirkstone-series release. This is "revision-6" build, and here are the changed packages since 4.0.12 (revision-5): [...]
-
Louis Dureuil ☛ A curiously recurring lifetime issue
Naming is hard. After all, it is one of the two hard problems of computer science, with cache invalidation and off-by-one errors.
Mostly we would assume that poorly chosen type and variable names would merely make the code harder to read, but turns out they can lead to undefined behaviour, too. And no, I'm not talking about the reserved identifiers in C (I mean, who would use _Foo or __init__ as identifiers? Nonsense!), but rather something a bit more subtle.
-
Marcel Kolaja ☛ Why Aren’t We SIEVE-ing?
The most interesting one to me, which I expect anybody who enjoys a good algorithm will get a kick out of, is the eviction algorithm SIEVE (their paper is coming up at NSDI’24). SIEVE is an eviction algorithm, a way of deciding which cached item to toss out when a new one needs to be put in. There are hundreds of these in the literature. At least. Classics including throwing out the least recently inserted thing (FIFO), least recently accessed thing (LRU), thing that’s been accessed least often (LFU), and even just a random thing. Eviction is interesting because it’s a tradeoff between accuracy, speed (how much work is needed on each eviction and each access), and metadata size. The slower the algorithm, the less latency and efficiency benefit from caching. The larger the metadata, the less space there is to store actual data.
-
Nicholas Tietz-Sokolsky ☛ Lessons from implementing Hurl
I'm proud to announce that Hurl is officially released and done! You can check out the docs on hurl.wtf.
The language itself came out of an interesting question: Python sometimes uses exceptions for control flow, so could we implement a language that eschews normal control flow and only uses exceptions? The answer is yes, and it produces a language that's less bad to use than I expected1!
In the process of implementing it, I learned a lot. Next year I'm going to try to make another language to learn about type systems, and that one should be more normal (but no promises). Here are a few of my main takeaways from building Hurl.
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: A Call for Proposals for the Rust 2024 Edition
The year 2024 is soon to be upon us, and as long-time Rust aficionados know, that means that a new Edition of Rust is on the horizon!
-