From e19f27917cdc43a5e32e43639fe816611aa7d23d Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Mon, 24 Jun 2024 16:12:14 -0700 Subject: [PATCH] Add some release notes for things we did Change-Id: If0ddec6b64a43c3d8f6cae39e0292863f3b49401 --- doc/manual/rl-next/nix-copy-is-fast.md | 12 ++++++++++++ doc/manual/rl-next/old-protocol-removal.md | 21 +++++++++++++++++++++ doc/manual/rl-next/sanitizers.md | 10 ++++++++++ 3 files changed, 43 insertions(+) create mode 100644 doc/manual/rl-next/nix-copy-is-fast.md create mode 100644 doc/manual/rl-next/old-protocol-removal.md create mode 100644 doc/manual/rl-next/sanitizers.md diff --git a/doc/manual/rl-next/nix-copy-is-fast.md b/doc/manual/rl-next/nix-copy-is-fast.md new file mode 100644 index 000000000..bf26eb65f --- /dev/null +++ b/doc/manual/rl-next/nix-copy-is-fast.md @@ -0,0 +1,12 @@ +--- +synopsis: "`nix copy` is now several times faster at `querying info about /nix/store/...`" +cls: [1462] +issues: [fj#366] +credits: [jade] +category: Fixes +--- + +We fixed a locking bug that serialized `querying info about /nix/store/...` +onto just one thread such that it was eating `O(paths to copy * latency)` time +while setting up to copy paths to s3 and other stores. It is now `nproc` times +faster. diff --git a/doc/manual/rl-next/old-protocol-removal.md b/doc/manual/rl-next/old-protocol-removal.md new file mode 100644 index 000000000..c8c46228c --- /dev/null +++ b/doc/manual/rl-next/old-protocol-removal.md @@ -0,0 +1,21 @@ +--- +synopsis: "Lix no longer speaks the Nix remote-build worker protocol to clients or servers older than CppNix 2.3" +cls: [1207, 1208, 1206, 1205, 1204, 1203, 1479] +issues: [fj#325] +credits: [jade] +category: Breaking Changes +--- + +CppNix 2.3 was released in 2019, and is the new oldest supported version. We +will increase our support baseline in the future up to a final version of CppNix +2.18 (which may happen soon given that it is the only still-packaged and thus +still-tested >2.3 version), but this step already removes a significant amount +of dead, untested, code paths. + +Lix speaks the same version of the protocol as CppNix 2.18 and that fact will +never change in the future; the Lix plans to replace the protocol for evolution +will entail a complete incompatible replacement that will be supported in +parallel with the old protocol. Lix will thus retain remote build compatibility +with CppNix as long as CppNix maintains protocol compatibility with 2.18, and +as long as Lix retains legacy protocol support (which will likely be a long +time given that we plan to convert it to a frozen-in-time shim). diff --git a/doc/manual/rl-next/sanitizers.md b/doc/manual/rl-next/sanitizers.md new file mode 100644 index 000000000..0abc57c7b --- /dev/null +++ b/doc/manual/rl-next/sanitizers.md @@ -0,0 +1,10 @@ +--- +synopsis: "Lix now supports building with UndefinedBehaviorSanitizer" +cls: [1483] +credits: [jade] +category: Development +--- + +You can now build Lix with the configuration option `-Db_sanitize=undefined` and it will both work and pass tests. AddressSanitizer support is also coming soon. + +For a list of undefined behaviour fixed by sanitizer usage, see [the gerrit topic "undefined-behaviour"](https://gerrit.lix.systems/q/topic:%22undefined-behaviour%22).