news
Programming Leftovers
-
Yoshua Wuyts ☛ Syntactic musings on the fallibility effect
I believe it must have been about three or four years ago when Rust added the unstable yeet keyword on nightly which can be used to return new errors in try-functions. More recently Rust has added the unstable bikeshed keyword on nightly which gives try-blocks and closures the ability to express which kind of error they operate on. We’ve been deferring making decisions of error handling syntax for a while now, and I think that’s actually quite reasonable.
But if we want things to head for stable, we’re eventually going to want to decide on syntax. And so I think it’s not a bad idea to start working through the entire syntactic space here. And because things are unstable I guess it’s unavoidable to also work through the semantic space here. I guess this is a long-winded way of saying: in this post I’m sharing my opinions on Rust’s effect for fallibility. And I’m doing that mostly because I think it’s fun to think about.
-
Ruben Schade ☛ Undo your last git commit before you’ve pushed
I’ve been told by a bunch of people that this was exactly correct, and almost an equal number telling me this is wrong. Git!
-
Matt Godbolt ☛ Inlining - the ultimate optimisation
Sixteen days in, and I’ve been dancing around what many consider the fundamental compiler optimisation: inlining. Not because it’s complicated - quite the opposite! - but because inlining is less interesting for what it does (copy-paste code), and more interesting for what it enables.
-
Juha-Matti Santala ☛ Advent of Code 2025 retrospective
It feels weird to write an Advent of Code retrospective a week before Christmas. For years, it’s either been one of the last or first posts of the year. This year, the creator of Advent of Code, Eric, decided to limit the amount of puzzles to 12 days instead of the previous 25 and I really liked that.
-
Dirk Eddelbuettel ☛ Dirk Eddelbuettel: RcppArmadillo 15.2.3-1 on CRAN: Upstream Update
Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1272 other packages on CRAN, downloaded 43.2 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 661 times according to Google Scholar.
-
Andrew ☛ A Survey of Dynamic Array Structures
This is a more thorough coverage of one of the topics that came up in my recent BSC25 talk "Assuming As Much As Possible"
-
Ruby ☛ Ruby 4.0.0 preview3 Released
We are pleased to announce the release of Ruby 4.0.0-preview3.
Ruby 4.0 introduces Ruby::BOX and “ZJIT”, and adds many improvements.
-
Perl / Raku
-
Perl ☛ Perl Advent Calendar 2025 - The Elves Learn to be Lazy
The elves took on the project. And it wasn't too difficult. The class API didn't really change, it just expanded. So existing code using Norn->new(...)->is_nice worked identically with NornV2, making the migration straightforward and low-risk.
-
Perl ☛ Perl Advent Calendar 2025 - Safer last-minute hotfixes before Christmas
As it turned out, there's a tool called App::Transpierce that was developed by a fellow Perl hacker who often had to deal with this kind of... incidents. It is written in perl 5.10 and abuses the ubiquity of perl interpreter on Linux machines. The script can export itself into a single file, and then get copied into any remote environment using scp or alike, to do the dirty (but much needed) work. Since perl is everywhere, it should work everywhere with only core modules installed!
How does it work? First, Frosty created a transpierce.conf config file for it, which could be as easy as a list of files he wanted to modify: [...]
-
-
Python
-
Marijke Luttekes ☛ Quick tip: Change your Django Admin endpoint
If you use Django Admin as instructed, your site hosts the admin panel at /admin. While that is all good, you can change the root URL to anything you want.
-
Rlang ☛ Finally figured out a way to port python packages to R using uv and reticulate: example with nnetsauce
In this post, we will explore how to use nnetsauce in R. [...]
-