about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-03-16 Reduce substitution memory consumptionEelco Dolstra8-37/+145
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 decompress(): Use a Source and SinkEelco Dolstra6-87/+206
This allows decompression to happen in O(1) memory.
2018-03-16 Merge pull request #1939 from dezgeg/lexer-fixEelco Dolstra5-4/+11
libexpr: Recognize newline in more places in lexer
2018-03-16 Don't retry on CURLE_SSL_CACERT_BADFILEEelco Dolstra1-0/+1
The certificates won't get any better if we retry.
2018-03-15 Filter ANSI colors when not writing to a terminalEelco Dolstra4-8/+10
Fixes https://github.com/NixOS/nixpkgs/issues/37114.
2018-03-15 Merge pull request #1965 from masaeedu/masterEelco Dolstra3-7/+17
Wrap thread local in function for Cygwin
2018-03-14 Catch more possible instances of passing NULL to memcpy.Shea Levy3-4/+10
Actually fixes #1976.
2018-03-14 Merge branch 'fix/errno-sighandler' of git://github.com/dtzWill/nixShea Levy1-0/+3
2018-03-14 concatLists: Don't pass NULL pointers to memcpy.Shea Levy1-1/+2
This is UB, even if the size is 0. See #1976. Fixes #1976.
2018-03-14 nix-daemon: preserve errno in signal handler (thanks tsan)Will Dietz1-0/+3
2018-03-14 Fix compatibility with latest boost::formatEelco Dolstra2-23/+23
2018-03-14 Factor out commonality between release.nix and shell.nixEelco Dolstra3-48/+43
2018-03-14 Use boost::format from the boost packageEelco Dolstra23-2445/+13
Note that this only requires headers from boost so it doesn't add a runtime dependency. Also, use Nixpkgs 18.03.
2018-03-13 Merge pull request #1906 from dtzWill/fix/nix-searchShea Levy4-2/+71
nix search: tests and fix #1893 and part of #1892
2018-03-13 build-remote: Don't substitute the build resultEelco Dolstra1-1/+1
2018-03-13 TypoEelco Dolstra1-1/+1
2018-03-13 fetchGit: Fix debug messageGuillaume Maudoux1-1/+1
2018-03-12 Wrap thread local in function for CygwinAsad Saeeduddin3-7/+17
Fixes #1826. See #1352 for a previous instance of a similar change.
2018-03-09 Fix double free in Store::queryPathInfo()Eelco Dolstra1-4/+4
It was holding on to a Value* (i.e. a std::shared_ptr<ValidPathInfo>*) outside of the pathInfoCache lock, so the std::shared_ptr could be destroyed between the release of the lock and the decrement of the std::shared_ptr refcount. This can happen if more than 'path-info-cache-size' paths are added in the meantime, *or* if clearPathInfoCache() is called. The hydra-queue-runner queue monitor thread periodically calls the later, so is likely to trigger a crash. Fixes https://github.com/NixOS/hydra/issues/542.
2018-03-09 Merge pull request #1959 from redfish64/masterEelco Dolstra1-11/+11
Modified MakeBinOp to no longer produce its name using concatenation …
2018-03-09 Modified MakeBinOp to no longer produce its name using concatenation and "##".Tim Engler1-11/+11
Doing so prevents emacs tags from working, as well as makes the code extremely confusing for a newbie. In the prior state, if someone wants to find the definition of "ExprApp" for example, a grep through the code reveals nothing. Since the definition could be hiding in numerous ".h" files, it's really difficult to find. This personally took me several hours to figure out.
2018-03-07 Fix #1957Eelco Dolstra1-1/+1
2018-03-07 Merge pull request #1955 from dtzWill/fix/rand-randomEelco Dolstra3-3/+3
rand() -> random(), since we use srandom().
2018-03-06 rand() -> random(), since we use srandom().Will Dietz3-3/+3
rand() requires we call srand() instead, but might as well use random().
2018-03-06 logging: Don't throw from Activity destructorWill Dietz2-2/+9
Move definition of destructor to logging.cc for access to util.hh's ignoreException.
2018-03-05 Merge pull request #1948 from shlevy/no-forwardEelco Dolstra2-1/+12
ssh-ng: Don't forward options to the daemon.
2018-03-05 ssh-ng: Don't forward options to the daemon.Shea Levy2-1/+12
This can be iterated on and currently leaves out settings we know we want to forward, but it fixes #1713 and fixes #1935 and isn't fundamentally broken like the status quo. Future changes are suggested in a comment.
2018-03-03 release.nix: don't try to use nix-2.0 branch, no longer existsWill Dietz1-1/+1
Probably should point at the 18.03 release branch once that's made.
2018-03-02 Merge branch 'improve-search-algorithm' of git://github.com/Ma27/nixShea Levy1-6/+6
2018-03-02 Merge branch 'write-failure-fixes' of git://github.com/lheckemann/nixShea Levy5-1/+16
2018-03-02 Merge pull request #1932 from mfiano/patch-1Eelco Dolstra1-4/+4
nix-channel grammar and punctuation
2018-03-02 libexpr: Recognize newline in more places in lexerTuomas Tynkkynen5-4/+11
Flex's regexes have an annoying feature: the dot matches everything except a newline. This causes problems for expressions like: "${0}\ " where the backslash-newline combination matches this rule instead of the intended one mentioned in the comment: <STRING>\$|\\|\$\\ { /* This can only occur when we reach EOF, otherwise the above (...|\$[^\{\"\\]|\\.|\$\\.)+ would have triggered. This is technically invalid, but we leave the problem to the parser who fails with exact location. */ return STR; } However, the parser actually accepts the resulting token sequence ('"' DOLLAR_CURLY 0 '}' STR '"'), which is a problem because the lexer rule didn't assign anything to yylval. Ultimately this leads to a crash when dereferencing a NULL pointer in ExprConcatStrings::bindVars(). The fix does change the syntax of the language in some corner cases but I think it's only turning previously invalid (or crashing) syntax to valid syntax. E.g. "a\ b" and ''a''\ b'' were previously syntax errors but now both result in "a\nb". Found by afl-fuzz.
2018-03-02 Fix error messageEelco Dolstra1-2/+2
2018-03-01 tests/search.sh: simplify, don't rely on consistent orderingWill Dietz1-7/+3
2018-03-01 nix-channel grammar and punctuationMichael Fiano1-4/+4
Minor changes to the nix-channel manpage for my first contribution
2018-02-28 Merge pull request #1927 from dtzWill/fix/fetchgit-HEADShea Levy1-1/+1
fetchGit: use "HEAD" as default ref instead of "master"
2018-02-28 fetchGit: use "HEAD" as default refWill Dietz1-1/+1
2018-02-28 launchd: enable keepalive for the nix-daemon serviceDaiderd Jordan1-0/+2
Without this the daemon won't be restarted if the process ever dies, for example when sending a SIGHUP to reload nix.conf.
2018-02-28 Actually fix nixDataDir in non-canonical pathShea Levy2-2/+2
2018-02-27 Merge pull request #1912 from dezgeg/replacestrings-take-2Eelco Dolstra3-4/+18
libexpr: Fix prim_replaceStrings() to work on an empty source string, take 2
2018-02-26 libexpr: Fix prim_replaceStrings() to work on an empty source stringTuomas Tynkkynen3-4/+18
Otherwise, running e.g. nix-instantiate --eval -E --strict 'builtins.replaceStrings [""] ["X"] "abc"' would just hang in an infinite loop. Found by afl-fuzz. First attempt of this was reverted in e2d71bd1862cdda because it caused another infinite loop, which is fixed now and a test added.
2018-02-26 nix run: Fix segfault on macOSEelco Dolstra3-3/+11
Note that clearenv() is not available on macOS. Fixes #1907.
2018-02-25 nix search: explicitly handle empty search string, fixes #1893Will Dietz1-0/+5
This is important since this is given as an example. Other patterns containing "empty search string" will still be handled differently on different platforms ("asdf|") but that's less of an issue.
2018-02-25 nix search: fix bug where we wrote to cache when shouldn't, breakingWill Dietz1-1/+1
This is exposed by the tests added previously, and resolves the error reported in #1892: "expected JSON value".
2018-02-25 tests: test nix search behaviorWill Dietz3-1/+69
2018-02-24 Merge pull request #1901 from veprbl/patch-5Graham Christensen1-1/+1
Fix a small typo in the release notes
2018-02-24 Merge pull request #1903 from primeos/release-notes-2.0-url-fixGraham Christensen1-1/+1
doc: Fix a URL in the release notes for Nix 2.0
2018-02-24 doc: Fix a URL in the release notes for Nix 2.0Michael Weiss1-1/+1
2018-02-23 Fix a small typo in the release notesDmitry Kalinkin1-1/+1
2018-02-23 Fix downloadCached() with a chroot storeEelco Dolstra1-2/+2
E.g. nix run --store ~/my-nix -f channel:nixos-17.03 hello -c hello This problem was mentioned in #1897.