A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
pennae 72f42093e7 optimize unescapeStr
mainly to avoid an allocation and a copy of a string that can be
modified in place (ever since EvalState holds on to the buffer, not the
generated parser itself).

 # before

Benchmark 1: nix search --offline nixpkgs hello
  Time (mean ± σ):     571.7 ms ±   2.4 ms    [User: 563.3 ms, System: 8.0 ms]
  Range (min … max):   566.7 ms … 579.7 ms    50 runs

Benchmark 2: nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
  Time (mean ± σ):     376.6 ms ±   1.0 ms    [User: 345.8 ms, System: 30.5 ms]
  Range (min … max):   374.5 ms … 379.1 ms    50 runs

Benchmark 3: nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
  Time (mean ± σ):      2.922 s ±  0.006 s    [User: 2.707 s, System: 0.215 s]
  Range (min … max):    2.906 s …  2.934 s    50 runs

 # after

Benchmark 1: nix search --offline nixpkgs hello
  Time (mean ± σ):     570.4 ms ±   2.8 ms    [User: 561.3 ms, System: 8.6 ms]
  Range (min … max):   564.6 ms … 578.1 ms    50 runs

Benchmark 2: nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
  Time (mean ± σ):     375.4 ms ±   1.3 ms    [User: 343.2 ms, System: 31.7 ms]
  Range (min … max):   373.4 ms … 378.2 ms    50 runs

Benchmark 3: nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
  Time (mean ± σ):      2.925 s ±  0.006 s    [User: 2.704 s, System: 0.219 s]
  Range (min … max):    2.910 s …  2.942 s    50 runs
2022-01-13 18:06:15 +01:00
.github add pull_request_template.md 2021-12-09 14:31:34 -05:00
config
contrib
doc/manual Fix docker instructions 2021-12-16 21:48:38 +01:00
m4
maintainers
misc launchd: Set NumberOfFiles to 4096 2021-12-04 20:46:29 +08:00
mk
nix-rust
perl Document libsodium, which is now mandatory, as a dependency 2021-11-27 23:11:11 +01:00
scripts Merge pull request #5521 from abathur/clearly_mark_validation_step 2021-12-08 20:04:03 +00:00
src optimize unescapeStr 2022-01-13 18:06:15 +01:00
tests Merge pull request #5047 from symphorien/fix-nix-channel 2021-12-17 10:05:48 +01:00
.dir-locals.el
.editorconfig
.gitignore Remove nix-reduce-build and nix-http-export 2021-11-18 21:17:57 +01:00
.version Bump version 2021-12-14 00:01:42 +01:00
boehmgc-coroutine-sp-fallback.diff
bootstrap.sh
configure.ac Merge pull request #5678 from t184256/document-libsodium 2021-11-29 11:11:10 +01:00
COPYING
default.nix
docker.nix docker: fix image so that nix profile works 2021-12-16 11:29:05 +01:00
flake.lock Revert "update flake.nix to 21.11" 2021-12-15 13:49:05 +01:00
flake.nix pkgconfig -> pkg-config 2021-12-15 19:13:06 +01:00
local.mk
Makefile
Makefile.config.in
precompiled-headers.h
README.md
shell.nix

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.