about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-06-12 Move EvalState from the stack to the heapEelco Dolstra5-46/+46
EvalState contains a few counters (e.g. nrValues) that increase quickly enough that they end up being interpreted as pointers by the garbage collector. Moving it to the heap makes them invisible to the garbage collector. This reduces the max RSS doing 100 evaluations of nixos.tests.firefox.x86_64-linux.drvPath from 455 MiB to 292 MiB. Note: ideally, allocations would be much further up in the 64-bit address space to reduce the odds of an integer being misinterpreted as a pointer. Maybe we can use some linker magic to move the .bss segment to a higher address.
2018-06-12 GC_malloc -> GC_MALLOCEelco Dolstra2-9/+3
This makes it possible to build with -DGC_DEBUG.
2018-06-12 Don't scan for roots in dynamic librariesEelco Dolstra1-0/+7
This reduces the risk of object liveness misdetection. For example, Glibc has an internal variable "mp_" that often points to a Boehm object, keeping it alive unnecessarily. Since we don't store any actual roots in global variables, we can just disable data segment scanning. With this, the max RSS doing 100 evaluations of nixos.tests.firefox.x86_64-linux.drvPath went from 718 MiB to 455 MiB.
2018-06-12 Add temporary statsEelco Dolstra2-1/+28
2018-06-12 Cache parse treesEelco Dolstra2-2/+19
This prevents EvalState::resetFileCache() from parsing everything all over again.
2018-06-12 Remove duplicate definition of allocBytes()Eelco Dolstra3-29/+15
2018-06-12 Merge pull request #2224 from serokell/getaddrinfo-preloadDaniel Peebles1-4/+8
Fix #2162: use getaddrinfo instead of curl to preload NSS
2018-06-12 Fix #2162: use getaddrinfo instead of curl to preload NSSYorick van Pelt1-4/+8
2018-06-11 Merge pull request #2223 from symphorien/esrchEelco Dolstra1-10/+13
libstore/gc.cc: ignore ESRCH when reading /proc
2018-06-11 libstore/gc.cc: ignore ESRCH when reading /procSymphorien Gibol1-10/+13
If a process disappears between the time /proc/[pid]/maps is opened and the time it is read, the read() syscall will return ESRCH. This should be ignored.
2018-06-11 Merge pull request #2211 from unsatcore/masterEelco Dolstra2-6/+4
tests: more robust check for user namespaces availability (canUseSand…
2018-06-10 Merge pull request #2220 from 7c6f434c/doc-floatsShea Levy1-2/+1
manual: builtins.fromJSON: remove the claim that floats are not allowed
2018-06-10 manual: builtins.fromJSON: remove the claim that floats are not allowedMichael Raskin1-2/+1
floating-point numbers are supported now, including the fromJSON builtin. Reported on IRC by inquisitiv3
2018-06-08 pr-2211: cleanupAleksandr Pashkov1-1/+1
2018-06-08 Merge pull request #2215 from AmineChikhaoui/s3-multipart-debugEelco Dolstra1-1/+1
use debug instead of printTalkative to avoid spamming hydra queue-runner
2018-06-08 use debug instead of printTalkative to avoid spamming hydra queueAmineChikhaoui1-1/+1
runner logs.
2018-06-07 pr-2211: cleanupAleksandr Pashkov1-1/+1
2018-06-06 Merge pull request #2212 from asymmetric/patch-2Eelco Dolstra1-2/+2
Dockerfile: 2.0.4
2018-06-06 Dockerfile: 2.0.4Lorenzo Manacorda1-2/+2
2018-06-06 tests: more robust check for user namespaces availability (canUseSandbox)Aleksandr Pashkov2-6/+4
Issue https://github.com/NixOS/nix/issues/2165
2018-06-05 Don't require --fallback to recover from disappeared binary cache NARsEelco Dolstra4-16/+40
2018-06-05 Handle HTTP 410 Gone errorsEelco Dolstra1-1/+1
2018-06-05 Improve binary cache fallback testEelco Dolstra2-7/+12
2018-06-05 Further improve upload messagesEelco Dolstra2-8/+11
2018-06-05 Remove non-existent NIX_DEBUG_SUBSTEelco Dolstra1-1/+1
2018-06-01 download.cc: fix readCallback return type (int -> size_t)Will Dietz1-2/+2
I'm not sure if curl ever asks for enough data at once for truncation to occur but better safe than sorry.
2018-06-01 Improve binary cache upload messagesEelco Dolstra2-5/+15
Don't say "download" when we mean "upload".
2018-05-31 upload-release.pl: Copy the install script and sign everythingEelco Dolstra1-15/+9
Note: this means that for those doing 'curl | sh', you can now pin a specific version, e.g. curl https://nixos.org/releases/nix/nix-2.0.4/install | sh https://nixos.org/nix/{install,install.sig} are now just symlinks to the corresponding files in the latest release directory.
2018-05-31 Merge pull request #767 from mogorman/garbage_collect_keep_last_fewPeter Simons4-6/+42
Implement --delete-generations + flag for keeping last N number of gens
2018-05-30 Explicitly describe the effects of filterSource excluding a directory.Shea Levy1-1/+3
2018-05-30 Fix static assertion failure on 32-bit systemsEelco Dolstra1-1/+1
2018-05-30 release.nix: Generate the installer scriptEelco Dolstra2-7/+28
2018-05-30 Move installer script from nixos-homepageEelco Dolstra1-0/+67
2018-05-30 Merge pull request #2194 from grahamc/nix-profile-daemon-profile-set-uEelco Dolstra2-3/+3
Nix profile & installation: handle set -u installations
2018-05-30 install-multi-user: support 'set -u' runs, closes #2193Graham Christensen1-1/+1
2018-05-30 nix-daemon.sh profile script: operate under `set -u`Graham Christensen1-2/+2
If the profile is sourced inside a script with `set -u`, the check for __ETC_PROFILE_NIX_SOURCED and NIX_SSL_CERT_FILE would raise an error. A simple guard around this check allows the script to operate under standard environments (where it is fairly reasonable to assume USER and HOME are set.)
2018-05-30 Merge pull request #2164 from mickours/doc-fetchTarball-timoutGraham Christensen1-1/+10
Explain fetchTarball timeout behavior in the doc
2018-05-30 Explain fetchTarball timeout behavior in the docMichael Mercier1-1/+10
2018-05-30 RemoteStore::addToStore(): Ensure capacity is decreased on exceptionsEelco Dolstra1-2/+5
2018-05-30 Fix deadlock in RemoteStore::queryPathInfoUncached()Eelco Dolstra1-25/+28
2018-05-30 Make <nix/fetchurl.nix> run in constant memoryEelco Dolstra3-35/+62
E.g. nix-build --store ~/my-nix/ -E 'import <nix/fetchurl.nix> { url = https://cache.nixos.org/nar/0nwi996rgq4b914qyx0mv2wq4k80hjac7xilikavagw7kxmn2iiv.nar.xz; sha256 = "0nwi996rgq4b914qyx0mv2wq4k80hjac7xilikavagw7kxmn2iiv"; }' now runs in 17 MiB (was 70 MiB), while nix-build --store ~/my-nix/ -E 'import <nix/fetchurl.nix> { url = https://cache.nixos.org/nar/0nwi996rgq4b914qyx0mv2wq4k80hjac7xilikavagw7kxmn2iiv.nar.xz; sha256 = "0d2fxljdih3nc5dqx41hjzic3141ajil94m8kdbpryq569dpsbvb"; unpack = true; }' runs in 17 MiB (was 346 MiB).
2018-05-30 getDownloader(): SimplifyEelco Dolstra1-4/+2
2018-05-30 Make HttpBinaryCacheStore::narFromPath() run in constant memoryEelco Dolstra3-3/+116
This reduces memory consumption of nix copy --from https://cache.nixos.org --to ~/my-nix /nix/store/95cwv4q54dc6giaqv6q6p4r02ia2km35-blender-2.79 from 176 MiB to 82 MiB. (The remaining memory is probably due to xz decompression overhead.) Issue https://github.com/NixOS/nix/issues/1681. Issue https://github.com/NixOS/nix/issues/1969.
2018-05-30 Make LocalBinaryCacheStore::narFromPath() run in constant memoryEelco Dolstra6-31/+65
This reduces memory consumption of nix copy --from file://... --to ~/my-nix /nix/store/95cwv4q54dc6giaqv6q6p4r02ia2km35-blender-2.79 from 514 MiB to 18 MiB for an uncompressed binary cache, and from 192 MiB to 53 MiB for a bzipped binary cache. It may also be faster because fetching can happen concurrently with decompression/writing. Continuation of 48662d151bdf4a38670897beacea9d1bd750376a. Issue https://github.com/NixOS/nix/issues/1681.
2018-05-30 Simplify the callback mechanismEelco Dolstra16-179/+151
2018-05-30 Move evaluator-specific settings out of libstoreEelco Dolstra7-31/+42
2018-05-30 Move some Download-specific settings to download.ccEelco Dolstra3-22/+25
2018-05-30 Modularize config settingsEelco Dolstra15-130/+192
Allow global config settings to be defined in multiple Config classes. For example, this means that libutil can have settings and evaluator settings can be moved out of libstore. The Config classes are registered in a new GlobalConfig class to which config files etc. are applied. Relevant to https://github.com/NixOS/nix/issues/2009 in that it removes the need for ad hoc handling of useCaseHack, which was the underlying cause of that issue.
2018-05-30 Fix assertion failure in storePathToHash()Eelco Dolstra1-0/+2
Fixes https://github.com/NixOS/nix/issues/2015.
2018-05-30 Make 'nix copy --to daemon' run in constant memory (daemon side)Eelco Dolstra3-6/+17
Continuation of 97002b684c902dadcd351a67208f9c2a88ff8f8f. This makes the daemon use constant memory. For example, it reduces the daemon's maximum RSS on $ nix copy --from ~/my-nix --to daemon /nix/store/1n7x0yv8vq6zi90hfmian84vdhd04bgp-blender-2.79a from 264 MiB to 7 MiB. We now use a TunnelSource to prevent the connection from ending up in an undefined state if an exception is thrown while the NAR is being sent. Issue https://github.com/NixOS/nix/issues/1681.