lix/src
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
..
build-remote build-remote: Don't substitute the build result 2018-03-13 17:56:51 +01:00
buildenv Fix error message 2018-03-02 14:32:00 +01:00
libexpr Merge pull request #1939 from dezgeg/lexer-fix 2018-03-16 12:14:58 +01:00
libmain Set backup MANPATH in case man path isn’t set correctly. 2018-02-15 10:20:02 -06:00
libstore Reduce substitution memory consumption 2018-03-16 20:35:59 +01:00
libutil Reduce substitution memory consumption 2018-03-16 20:35:59 +01:00
linenoise linenoise.cpp: allow completions from empty input 2017-12-19 12:52:10 -06:00
nix Filter ANSI colors when not writing to a terminal 2018-03-15 16:08:07 +01:00
nix-build Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-channel Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-collect-garbage Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-copy-closure Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-daemon Reduce substitution memory consumption 2018-03-16 20:35:59 +01:00
nix-env Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-instantiate Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-prefetch-url Add plugins to make Nix more extensible. 2018-02-08 12:44:37 -05:00
nix-store Merge branch 'write-failure-fixes' of git://github.com/lheckemann/nix 2018-03-02 10:59:59 -05:00
nlohmann nlohmann-json: 2.1.1 -> 3.0.1 2018-01-22 12:19:50 -06:00
resolve-system-dependencies Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00