03beb9a1d393d2c325984c1e16fdff5648ee018a
Relax the constraints on keeping the exact same filename format to provide a more robust source of entropy with a simpler interface (as previously suggested by eldritch horrors). Using 128 bits of OS‐provided entropy ensures global uniqueness and allows us to skip any thought of gracefully handling the case where these files already exist. My microbenchmark that repeatedly constructed paths like this and printed them out showed that this takes about 1.23× the time of the previous implementation, both taking on the order of a couple microseconds for one iteration. Since everything that uses it is doing things more expensive than printing to standard output, the actual performance delta is likely to be lost in the noise. If it somehow becomes a bottleneck, it can be optimized without sacrificing the guarantees by reading from the system RNG only to seed a thread‐local CSPRNG like [ChaCha8Rand], but I think that’s very unlikely. We also tweak the recommended way of creating a temporary file inside a directory in anticipation of later changes, and rename the `suffix` parameter to `prefix` (it’s a prefix to the random characters and a suffix to the root, but this way is more consistent). [ChaCha8Rand]: https://c2sp.org/chacha8rand Change-Id: I5bd7badf1392243f485935c4a016c1f833cb16d3
Lix
Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.
Read more about us at https://lix.systems.
Installation
On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):
$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install
For systems that already have a Nix implementation installed, such as NixOS systems, read our install page
Building And Developing
See our Hacking guide in our manual for instruction on how to set up a development environment and build Lix from source.
Additional Resources
- The Lix reference manual:
- Our wiki
- Matrix - #space:lix.systems
License
Lix is released under LGPL-2.1-or-later.
Description
Working fork of Lix - carries the adaptive load-aware build-remote patch. Upstream: gerrit.lix.systems
92 MiB
Languages
C++
74.9%
Python
11.7%
Nix
6.1%
Shell
3.6%
Meson
2%
Other
1.6%