- 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.
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
- Sep 12, 2016
-
-
Eelco Dolstra authored
It was failing on some platforms. http://hydra.nixos.org/build/39538866
-
Eelco Dolstra authored
GCC 4.9 doesn't like reassigning a std::stringstream. http://hydra.nixos.org/build/40371644
-
Eelco Dolstra authored
That's just silly. Hopefully this also fixes the Debian build failure: http://hydra.nixos.org/build/40371644
-
- Sep 08, 2016
-
-
Eelco Dolstra authored
-
Eelco Dolstra authored
This largely reverts c68e5913. Running builds as root breaks "cp -p", since when running as root, "cp -p" assumes that it can succesfully chown() files. But that's not actually the case since the user namespace doesn't provide a complete uid mapping. So it barfs with a fatal error message ("cp: failed to preserve ownership for 'foo': Invalid argument").
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
Shea Levy authored
BASH_ENV causes all non-interactive shells called via eg. /etc/bashrc to remove the rc-file before the main shell gets to run it. Completion scripts will often do this. Fixes #976. Adapted from and fixes #1034.
-
- Sep 07, 2016
-
-
Eelco Dolstra authored
-
- Aug 31, 2016
-
-
Shea Levy authored
-
Shea Levy authored
-
Shea Levy authored
-
Shea Levy authored
-
Eelco Dolstra authored
Implement resolve-system-dependencies in C++
-
Eelco Dolstra authored
Nix requires either $HOME or $XDG_CACHE_HOME to be set.
-
- Aug 30, 2016
-
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
Eelco Dolstra authored
This fixes an assertion failure in "assert(goal);" in Worker::waitForInput() after a substitution goal is cancelled by the termination of another goal. The problem was the line //worker.childTerminated(shared_from_this()); // FIXME in the SubstitutionGoal destructor. This was disabled because shared_from_this() obviously doesn't work from a destructor. So we now use a real pointer for object identity.
-
Eelco Dolstra authored
These don't support regex_replace either.
-
Eelco Dolstra authored
-
Eelco Dolstra authored
This reverts commit f32c6ed8. It breaks the RPM builds because Nixpkgs's rpmBuild function only copies in the .tar.gz file.
-
Eelco Dolstra authored
These don't support regex_replace. http://hydra.nixos.org/build/39363999 http://hydra.nixos.org/build/39363981
-
Eelco Dolstra authored
-
- Aug 29, 2016
-
-
Eelco Dolstra authored
-
Eelco Dolstra authored
-
Eelco Dolstra authored
The implementation of "partition" in Nixpkgs is O(n^2) (because of the use of ++), and for some reason was causing stack overflows in multi-threaded evaluation (not sure why). This reduces "nix-env -qa --drv-path" runtime by 0.197s and memory usage by 298 MiB (in non-Boehm mode).
-
Eelco Dolstra authored
Also, factor out JSON generation from value-to-json.{cc,hh}, and support producing indented JSON.
-
Shea Levy authored
Normally it's impossible to take a reference to the function passed to callFunction, so some callers (e.g. ExprApp::eval) allocate that value on the stack. For functors, a reference to the functor itself may be kept, so we need to have it on the heap. Fixes #1045
-
- Aug 26, 2016
-
-
Domen Kožar authored
-
- Aug 24, 2016
-
-
Eelco Dolstra authored
The inner lambda was returning a SQLite-internal char * rather than a std::string, leading to Hydra errors liks Caught exception in Hydra::Controller::Root->narinfo "path âø£â is not in the Nix store at /nix/store/6mvvyb8fgwj23miyal5mdr8ik4ixk15w-hydra-0.1.1234.abcdef/libexec/hydra/lib/Hydra/Controller/Root.pm line 352."
-
- Aug 23, 2016
-
-
Eelco Dolstra authored
That is, unless --file is specified, the Nix search path is synthesized into an attribute set. Thus you can say $ nix build nixpkgs.hello assuming $NIX_PATH contains an entry of the form "nixpkgs=...". This is more verbose than $ nix build hello but is less ambiguous.
-
- Aug 17, 2016
-
-
Jude Taylor authored
-
Eelco Dolstra authored
For example, you can now say: configureFlags = "--prefix=${placeholder "out"} --includedir=${placeholder "dev"}"; The strings returned by the ‘placeholder’ builtin are replaced at build time by the actual store paths corresponding to the specified outputs. Previously, you had to work around the inability to self-reference by doing stuff like: preConfigure = '' configureFlags+=" --prefix $out --includedir=$dev" ''; or rely on ad-hoc variable interpolation semantics in Autoconf or Make (e.g. --prefix=\$(out)), which doesn't always work.
-
- Aug 16, 2016
-
-
Jude Taylor authored
-
Jude Taylor authored
-
Jude Taylor authored
-
Eelco Dolstra authored
Allow contexted strings in replaceStrings
-