A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community https://lix.systems
Find a file
Eelco Dolstra 48662d151b
Reduce substitution memory consumption
copyStorePath() now pipes the output of srcStore->narFromPath()
directly into dstStore->addToStore(). The sink used by the former is
converted into a source usable by the latter using
boost::coroutine2. This is based on [1].

This reduces the maximum resident size of

  $ nix build --store ~/my-nix/ /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1 --substituters file:///tmp/binary-cache-xz/ --no-require-sigs

from 418592 KiB to 53416 KiB. (The previous commit also reduced the
runtime from ~4.2s to ~3.4s, not sure why.) A further improvement will
be to download files into a Sink.

[1] https://github.com/NixOS/nix/compare/master...Mathnerd314:dump-fix-coroutine#diff-dcbcac55a634031f9cc73707da6e4b18

Issue #1969.
2018-03-16 20:35:59 +01:00
.github Rename 1.12 -> 2.0 2018-01-31 18:58:45 +01:00
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs <nix/fetchurl.nix>: Don't access builtins.currentSystem 2018-01-16 19:24:23 +01:00
doc/manual nix-channel grammar and punctuation 2018-03-01 00:27:25 -05:00
maintainers Release script tweaks 2018-02-22 17:11:17 +01:00
misc launchd: enable keepalive for the nix-daemon service 2018-02-28 19:58:48 +01:00
mk Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
perl Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
scripts Merge pull request #1775 from LnL7/darwin-build-users 2018-02-13 12:31:53 +01:00
src Reduce substitution memory consumption 2018-03-16 20:35:59 +01:00
tests Merge pull request #1939 from dezgeg/lexer-fix 2018-03-16 12:14:58 +01:00
.dir-locals.el Add .dir-locals.el for Emacs 2016-01-28 11:12:04 +01:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
.travis.yml Test the installer 2017-07-14 12:11:04 -04:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac configure.ac: define HAVE_SECCOMP macro when using seccomp, fix build/tests 2018-02-19 12:13:51 -06:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
local.mk Use boost::format from the boost package 2018-03-14 19:24:04 +01:00
Makefile Use boost::format from the boost package 2018-03-14 19:24:04 +01:00
Makefile.config.in configure: Add a flag to disable seccomp. 2018-02-18 02:35:01 -05:00
nix.spec.in Fix RPM build 2017-10-24 15:44:29 +02:00
README.md Fix minor grammatical nitpick ("it's" vs. "its") in README.md. 2017-03-22 10:11:23 -04:00
release-common.nix Factor out commonality between release.nix and shell.nix 2018-03-14 19:25:09 +01:00
release.nix Factor out commonality between release.nix and shell.nix 2018-03-14 19:25:09 +01:00
shell.nix Factor out commonality between release.nix and shell.nix 2018-03-14 19:25:09 +01:00
version Rename 1.12 -> 2.0 2018-01-31 18:58:45 +01:00

Nix, the purely functional package manager

Nix is a new take on package management that is fairly unique. Because of its purity aspects, a lot of issues found in traditional package managers don't appear with Nix.

To find out more about the tool, usage and installation instructions, please read the manual, which is available on the Nix website at http://nixos.org/nix/manual.

Contributing

Take a look at the Hacking Section of the manual. It helps you to get started with building Nix from source.

License

Nix is released under the LGPL v2.1

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.