- Nov 09, 2018
-
-
Eelco Dolstra authored
-
- Oct 26, 2018
-
-
Will Dietz authored
-
Eelco Dolstra authored
These are all symlinks to 'nix' now, reducing the installed size by about ~1.7 MiB.
-
- Jul 12, 2018
-
-
Eelco Dolstra authored
Before: $ command time nix-prefetch-url https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.6.tar.xz 1.19user 1.02system 0:41.96elapsed 5%CPU (0avgtext+0avgdata 182720maxresident)k After: 1.38user 1.05system 0:39.73elapsed 6%CPU (0avgtext+0avgdata 16204maxresident)k Note however that addToStore() can still take a lot of memory (e.g. RemoteStore::addToStore() is constant space, but LocalStore::addToStore() isn't; that's fixed by https://github.com/edolstra/nix/commit/c94b4fc7ee0c7b322a5f3c7ee784063b47a11d98 though). Fixes #1400.
-
- Jun 12, 2018
-
-
Eelco Dolstra authored
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.
-
- Feb 08, 2018
-
-
Shea Levy authored
All plugins in plugin-files will be dlopened, allowing them to statically construct instances of the various Register* types Nix supports.
-
- Oct 24, 2017
-
-
Eelco Dolstra authored
Also, random cleanup to argument handling.
-
- Sep 18, 2017
-
-
Eelco Dolstra authored
Fixes #1568.
-
- Jul 30, 2017
-
-
Jörg Thalheim authored
Relevant RFC: NixOS/rfcs#4 $ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
-
- Jul 04, 2017
-
-
Eelco Dolstra authored
Also simplify the Hash API. Fixes #1437.
-
- Mar 15, 2017
-
-
Eelco Dolstra authored
For example, if we call brotli with an empty input, it shouldn't read from the caller's stdin.
-
- Nov 25, 2016
-
-
Eelco Dolstra authored
This reverts commit f78126bf. There really is no need for such a massive change...
-
Guillaume Maudoux authored
-
- Sep 21, 2016
-
-
Eelco Dolstra authored
-
- Sep 14, 2016
-
-
Eelco Dolstra authored
The binary cache store can now use HTTP/2 to do lookups. This is much more efficient than HTTP/1.1 due to multiplexing: we can issue many requests in parallel over a single TCP connection. Thus it's no longer necessary to use a bunch of concurrent TCP connections (25 by default). For example, downloading 802 .narinfo files from https://cache.nixos.org/, using a single TCP connection, takes 11.8s with HTTP/1.1, but only 0.61s with HTTP/2. This did require a fairly substantial rewrite of the Downloader class to use the curl multi interface, because otherwise curl wouldn't be able to do multiplexing for us. As a bonus, we get connection reuse even with HTTP/1.1. All downloads are now handled by a single worker thread. Clients call Downloader::enqueueDownload() to tell the worker thread to start the download, getting a std::future to the result.
-
- Jul 26, 2016
-
-
Eelco Dolstra authored
-
- Jun 01, 2016
-
-
Eelco Dolstra authored
-
- Apr 15, 2016
-
-
Eelco Dolstra authored
This allows readFile() to indicate that a file doesn't exist, and might eliminate some large string copying.
-
- Mar 02, 2016
-
-
Eelco Dolstra authored
Allowing stuff like NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 or NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
-
- Feb 29, 2016
-
-
Eelco Dolstra authored
Allowing stuff like NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 or NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
-
- Feb 04, 2016
-
-
Eelco Dolstra authored
Also, move a few free-standing functions into StoreAPI and Derivation. Also, introduce a non-nullable smart pointer, ref<T>, which is just a wrapper around std::shared_ptr ensuring that the pointer is never null. (For reference-counted values, this is better than passing a "T&", because the latter doesn't maintain the refcount. Usually, the caller will have a shared_ptr keeping the value alive, but that's not always the case, e.g., when passing a reference to a std::thread via std::bind.)
-
- Oct 21, 2015
-
-
Eelco Dolstra authored
This makes it consistent with the Nixpkgs fetchurl and makes it work in chroots. We don't need verification because the hash of the result is checked anyway.
-
- Oct 07, 2015
-
-
Eelco Dolstra authored
-
Eelco Dolstra authored
This allows overriding the name component of the resulting Nix store path, which is necessary if the base name of the URI contains "illegal" characters.
-
Eelco Dolstra authored
This is in particular useful for fetchFromGitHub et al., ensuring that the store path produced by nix-prefetch-url corresponds to what those functions expect.
-
Eelco Dolstra authored
This allows nix-prefetch-url to prefetch the output of fetchzip and its wrappers (like fetchFromGitHub). For example: $ nix-prefetch-url --unpack https://github.com/NixOS/patchelf/archive/0.8.tar.gz or from a Nix expression: $ nix-prefetch-url -A nix-repl.src In the latter case, --unpack can be omitted because nix-repl.src is a fetchFromGitHub derivation and thus has "outputHashMode" set to "recursive".
-
- Oct 01, 2015
-
-
Eelco Dolstra authored
For example, $ nix-prefetch-url -A hello.src will prefetch the file specified by the fetchurl call in the attribute ‘hello.src’ from the Nix expression in the current directory. This differs from ‘nix-build -A hello.src’ in that it doesn't verify the hash. You can also specify a path to the Nix expression: $ nix-prefetch-url ~/Dev/nixpkgs -A hello.src List elements (typically used in ‘patches’ attributes) also work: $ nix-prefetch-url -A portmidi.patches.0
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-