Eelco Dolstra 34f25124ba Make LocalStore::addToStore(srcPath) run in constant memory
This reduces memory consumption of

  nix-instantiate \
    -E 'with import <nixpkgs> {}; runCommand "foo" { src = ./blender; } "echo foo"' \
    --option nar-buffer-size 10000

(where ./blender is a 1.1 GiB tree) from 1716 to 36 MiB, while still
ensuring that we don't do any write I/O for small source paths (up to
'nar-buffer-size' bytes). The downside is that large paths are now
always written to a temporary location in the store, even if they
produce an already valid store path. Thus, adding large paths might be
slower and run out of disk space. ¯\_(ツ)_/¯ Of course, you can always
restore the old behaviour by setting 'nar-buffer-size' to a very high
value.
2020-07-08 22:07:21 +02:00
2018-08-13 20:00:17 +00:00
2020-07-03 09:20:01 +02:00
2020-05-08 11:49:40 +02:00
2020-06-18 22:11:26 +00:00
2017-06-05 22:57:28 +01:00
2019-09-04 15:59:33 +02:00
2020-05-08 12:09:37 +02:00
2020-03-30 15:30:19 +02:00
2020-06-24 13:10:41 -06:00
2020-05-08 12:09:37 +02:00
2020-05-01 11:47:26 +02:00
2020-06-16 14:33:03 +02:00
2020-06-17 10:02:33 +02:00

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

Building Nix

You can build Nix using one of the targets provided by release.nix:

$ nix-build ./release.nix -A build.aarch64-linux
$ nix-build ./release.nix -A build.x86_64-darwin
$ nix-build ./release.nix -A build.i686-linux
$ nix-build ./release.nix -A build.x86_64-linux

Development Environment

You can use the provided shell.nix to get a working development environment:

$ nix-shell
$ ./bootstrap.sh
$ ./configure
$ make

Additional Resources

License

Nix is released under the LGPL v2.1.

Description
Languages
C++ 78.1%
Shell 9.7%
Nix 7.5%
Meson 1.8%
C 1.3%
Other 1.6%