I am also pleased to say the official build servers for Debian produced a bit-for-bit identical .deb as my local build on bookworm amd64. Yay #ReproducibleBuilds yay!
This morning, my "[PATCH v3 0/4] Reproducible `make dist' tarball: Avoid override stamp-N warnings." was included in #Guix master. The title is somewhat misleading, but the gist is that we now have reproducible source tarballs. Hopefully the discussion on minimal/pure source tarballs continues.
@LateNightLinux
The #Guix would be my nominee. It has some advantages compared to NixOS including:
Being rolling release
No need for Flake-style experimental stuff to add other repositories
Uses Guile Scheme for everything (package management, systemctl-like stuff, etc.) which I like way more than Nix syntax as Scheme is a real fully fledged language
It's a GNU project, so no proprietary dependency (of course you can add non-gnu repos to have any software you like)
When I was using GNU #guix for a long time I had many situation when I needed to install software as fast as it possible or I just wanted to try it out first before packaging. It is not easy task to do in Guix because it doesn't followed atm FHS standard.
For such situations I had several chroot environment with different distributions that I was logging in to use one application or another. And I think right now, is it a good idea to make something like guix chroot debian -- apt install
Could #Guix or #Nix be modified to not require ever greater amounts of storage? Like, maybe just using shallow clones, or Merkle logs instead of linear git histories, or something?
Keep exploring the problems of guix pull, channels and checkouts, but I wouldn't say that it's the most exciting thing to do, especially annoying part is a huge feedback loop: almost an hour for initial guix pull on debian system to finish.
I remember hearing that #Racket made some progress towards migrating to upstream #Chez, does anybody know what the status of that is? Racket users and users of software written in Racket would benefit immensely from this.
Chez is a powerful infrastructure in a ~500kb statically linked binary that approaches C in performance. Due to its low-level and bare bones compilation and build tools, you can also compile in only what you need. racket-minimal on #guix is ~160mb, which is great for what you get, but still 320x the size of Chez. Having Racket's ecosystem while being able to ship only chez + the compiled chez code of the libraries you import could allow for shipping sophisticate programs in only a few mb. Just saying.
Here is a preprint of fun paper that I've been working on which investigates the utilization of formal descriptions of instruction semantics to perform symbolic binary-level program analysis: https://doi.org/10.48550/arXiv.2404.04132
It includes a prototype implementation in Haskell which performs symbolic execution of RISC-V binary code without requiring the transformation to an intermediate representation (like LLVM IR).
This paper also includes an empirical comparison with prior work which I attempted to design in a reproducible way by using #Guix for the evaluation artifacts: https://doi.org/10.5281/zenodo.10925791
We have enough funds on RDE's opencollective, so we can setup a CI and substitute server and maybe some other infrastructure/project-related services in foreseable future.
Thank you very much everyone for help and support! <3
Regex is really fun. I just wrote a lengthy regex for sed to nicely and properly parse the output of --help to be dynamically used in zsh completion for :guix: #Guix.
I'll probably submit the patch tomorrow to Guix mailing list.🤓
I have just posted a patch updating #podman (to 5.0.0) and #buildah in #guix. It involves somewhat large changes to the build process, so if there are any Guix users of podman and/or buildah here, it would be cool if you could test that it works fine for you.
Today I talk about being sidetracked and why that happened, so you can understand how many different projects are involved in the process, not only the compilers, and how all that works together: