diff options
author | Jade Lovelace <lix@jade.fyi> | 2024-04-07 17:19:37 -0700 |
---|---|---|
committer | Jade Lovelace <lix@jade.fyi> | 2024-04-08 15:40:12 -0700 |
commit | 0d37b99a155a82ea629ffc533c8f33250f6a4dd9 (patch) | |
tree | 407b3227b30d8d59333ca790b0456e13d9635d70 /doc | |
parent | 06f17a5c78c33120afd71a94f907bfdabd5c40aa (diff) |
build: enable libstdc++ assertions
Benchmarks say that it does not regress performance by more than 1%
(which is where it gets really hard to measure accurately anyhow).
Meson appears to be planning to do this for us without asking us in a
release we will get in the future, and it seems good enough to ship
today:
https://mesonbuild.com/Release-notes-for-1-4-0.html#ndebug-setting-now-controls-c-stdlib-assertions
Benchmarks:
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|:---|---:|---:|---:|---:|
| `result-asserts/bin/nix --extra-experimental-features 'nix-command flakes' eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix` | 418.4 ± 25.0 | 396.9 | 451.2 | 1.01 ± 0.08 |
| `result/bin/nix --extra-experimental-features 'nix-command flakes' eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix` | 416.1 ± 23.9 | 397.1 | 445.4 | 1.00 |
| Command | Mean [s] | Min [s] | Max [s] | Relative |
|:---|---:|---:|---:|---:|
| `GC_INITIAL_HEAP_SIZE=10g result-asserts/bin/nix eval --extra-experimental-features 'nix-command flakes' --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'` | 4.147 ± 0.021 | 4.123 | 4.195 | 1.00 |
| `GC_INITIAL_HEAP_SIZE=10g result/bin/nix eval --extra-experimental-features 'nix-command flakes' --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'` | 4.149 ± 0.027 | 4.126 | 4.215 | 1.00 ± 0.01 |
| Command | Mean [s] | Min [s] | Max [s] | Relative |
|:---|---:|---:|---:|---:|
| `result-asserts/bin/nix --extra-experimental-features 'nix-command flakes' eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'` | 5.838 ± 0.023 | 5.799 | 5.867 | 1.01 ± 0.01 |
| `result/bin/nix --extra-experimental-features 'nix-command flakes' eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'` | 5.788 ± 0.044 | 5.715 | 5.876 | 1.00 |
| Command | Mean [s] | Min [s] | Max [s] | Relative |
|:---|---:|---:|---:|---:|
| `result-asserts/bin/nix --extra-experimental-features 'nix-command flakes' search --no-eval-cache github:nixos/nixpkgs/e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870 hello` | 15.993 ± 0.081 | 15.829 | 16.096 | 1.01 ± 0.01 |
| `result/bin/nix --extra-experimental-features 'nix-command flakes' search --no-eval-cache github:nixos/nixpkgs/e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870 hello` | 15.897 ± 0.075 | 15.807 | 16.047 | 1.00 |
Fixes: https://git.lix.systems/lix-project/lix/issues/4
Change-Id: Id3a6f38274ba94d5d10b09edd19dfd96bc3e7d5f
Diffstat (limited to 'doc')
-rw-r--r-- | doc/manual/rl-next/new-assertions.md | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/manual/rl-next/new-assertions.md b/doc/manual/rl-next/new-assertions.md new file mode 100644 index 000000000..efaaeb306 --- /dev/null +++ b/doc/manual/rl-next/new-assertions.md @@ -0,0 +1,23 @@ +--- +synopsis: Lix turns more internal bugs into crashes +cls: [797, 626] +--- + +Lix now enables build options such as trapping on signed overflow and enabling +libstdc++ assertions by default. These may find new bugs in Lix, which will +present themselves as Lix processes aborting, potentially without an error +message. + +If Lix processes abort on your machine, this is a bug. Please file a bug, +ideally with the core dump (or information from it). + +On Linux, run `coredumpctl list`, find the crashed process's PID at +the bottom of the list, then run `coredumpctl info THE-PID`. You can then paste +the output into a bug report. + +On macOS, open the Console app from Applications/Utilities, select Crash +Reports, select the crash report in question. Right click on it, select Open In +Finder, then include that file in your bug report. [See the Apple +documentation][apple-crashreport] for more details. + +[apple-crashreport]: https://developer.apple.com/documentation/xcode/acquiring-crash-reports-and-diagnostic-logs#Locate-crash-reports-and-memory-logs-on-the-device |