The last time I bought a laptop, I got a used Thinkpad X220 from
eBay. I loved that laptop, but
time marches on and old hardware eventually becomes too slow for
modern development needs. After a lot of indecision, I bought a 10th
generation Thinkpad X1 with an Intel Core i7-1280P CPU, 32GB RAM, and
1TB NVMe SSD. While they don’t make Thinkpads like they used to, I’m
still really happy with it and glad I chose it. Despite the keyboard
changes, the TrackPoint™ is still there and I don’t think I could feel
good using a laptop without it. Below I will explain all the steps I
took to get the Guix distribution setup nicely on it. Maybe it can
help you setup your own Thinkpad X1 or some other computer that
requires more than what Guix provides for all of the hardware to work.
The Guile bindings for GnuTLS has been part of GnuTLS since spring 2007 when Ludovic Courtès contributed it after some initial discussion. I have been looking into getting back to do GnuTLS coding, and during a recent GnuTLS meeting one topic was Guile bindings. It seemed like a fairly self-contained project to pick up on. It is interesting to re-read the old thread when this work was included: some of the concerns brought up there now have track record to be evaluated on. My opinion that the cost of introducing a new project per language binding today is smaller than the cost of maintaining language bindings as part of the core project. I believe the cost/benefit ratio has changed during the past 15 years: introducing a new project used to come with a significant cost but this is no longer the case, as tooling and processes for packaging have improved. I have had similar experience with Java, C# and Emacs Lisp bindings for GNU Libidn as well, where maintaining them centralized slow down the pace of updates. Andreas Metzler pointed to a similar conclusion reached by Russ Allbery.
This wonderful
article by
Marius Bakke (thanks for using
Haunt btw!) about guix shell hit the orange website front page recently. I left a comment
to the effect of “hell yeah I use it for all my projects!” and someone
asked me for an example of what I do. I sent them some links but I
thought hey, this could be a blog post and I haven't written one of
those in years!
Description of the changes applied from a minimal compiler that runs and
generates assembly to something that is actually able to compile,
interacting with binutils and having a working libgcc.