Tag
A blog post discussing how Nix helps solve dependency and reproducibility issues in building systems software, particularly for fast-evolving subsystems like BPF and io_uring.
Discusses two approaches to parallelizing compilation: multi-process (single-threaded compiler with build system spawning multiple instances) and in-process multi-threading (used by Rust and Zig). Compares trade-offs for language design.
A technical blog post discussing how structural descriptions like type systems and build systems leverage graph-structured models to ensure correctness, highlighting the definitional nature of systems like Bazel.
The article identifies the problem that Nix binaries are not relocatable, causing hash changes and recompilation when the store prefix changes, and proposes using relative paths with $ORIGIN in RUNPATH to achieve relocatability without invalidating caches.
A blog post exploring the design of an ideal 'postmodern' build system that prioritizes trustworthy incremental builds, maximized computation reuse, and distributed builds, using Nix as a reference point.
Argues that Yocto is often overkill for embedded Linux projects, advising developers to consider simpler alternatives to avoid maintenance burdens, especially under regulations like the CRA.
A technical blog post critiques query-based compilers, arguing that their effectiveness is limited by the dependency structure of the source language, particularly the avalanche effect where changes can propagate widely, making incremental updates often as expensive as a full rebuild.