- Sep 16, 2020
-
-
regnat authored
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 that was already there in the code but was accidentally removed in the last commits
-
regnat authored
-
regnat authored
-
regnat authored
-
regnat authored
So that it can be printed by `nix describe-stores`
-
regnat authored
-
regnat authored
Allow `-` and `.` in the RFC schemes as stated by [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1). Practically, this is needed so that `ssh-ng` is a valid URI scheme
-
regnat authored
-
regnat authored
-
regnat authored
When opening a store, only try the stores whose `uriSchemes()` include the current one
-
regnat authored
Using virtual inheritance means that only the default constructors of the parent classes will be called, which isn't what we want
-
regnat authored
-
regnat authored
Using the `*Config` class hierarchy
-
regnat authored
Rework the `Store` hierarchy so that there's now one hierarchy for the store configs and one for the implementations (where each implementation extends the corresponding config). So a class hierarchy like ``` StoreConfig-------->Store | | v v SubStoreConfig----->SubStore | | v v SubSubStoreConfig-->SubSubStore ``` (with virtual inheritance to prevent DDD). The advantage of this architecture is that we can now introspect the configuration of a store without having to instantiate the store itself
-
regnat authored
-
regnat authored
The default value is initialized when creating the setting and unchanged after that
-
regnat authored
Don't let it just contain the value, but also the other fields of the setting (description, aliases, etc..)
-
regnat authored
Add a new `init()` method to the `Store` class that is supposed to handle all the effectful initialisation needed to set-up the store. The constructor should remain side-effect free and just initialize the c++ data structure. The goal behind that is that we can create “dummy” instances of each store to query static properties about it (the parameters it accepts for example)
-
regnat authored
-
regnat authored
Directly register the store classes rather than a function to build an instance of them. This gives the possibility to introspect static members of the class or choose different ways of instantiating them.
-
- Sep 15, 2020
-
-
John Ericson authored
We no longer need the `*Opt` to disambiguate.
-
John Ericson authored
-
John Ericson authored
Otherwise, we will associate fixed-output derivations with outputs that they did indeed produce, but which had the wrong hash. That's no good.
-
John Ericson authored
-
Eelco Dolstra authored
-
Eelco Dolstra authored
gracefully handle old daemon versions
-
regnat authored
Add a fallback path in `queryPartialDerivationOutputMap` for daemons that don't support it. Also upstreams a couple methods from `SSHStore` to `RemoteStore` as this is needed to handle the fallback path.
-
- Sep 14, 2020
-
-
Eelco Dolstra authored
Escape `${` in strings when printing Nix expressions
-
regnat authored
Otherwise the result of the printing can't be parsed back correctly by Nix (because the unescaped `${` will be parsed as the begining of an anti-quotation). Fix #3989
-
Eelco Dolstra authored
Fixes #3992.
-
Eelco Dolstra authored
Fix auto argument passing for more auto arguments than formals
-
Eelco Dolstra authored
Add ccls files to .gitignore
-
Eelco Dolstra authored
Fix unspecified behaviour in readStorePathCAMap
-
- Sep 13, 2020
-
-
Brian Leung authored
-
aszlig authored
When deploying a Hydra instance with current Nix master, most builds would not run because of errors like this: queue monitor: error: --- Error --- hydra-queue-runner error: --- UsageError --- nix-daemon not a content address because it is not in the form '<prefix>:<rest>': /nix/store/...-somedrv The last error message is from parseContentAddress, which expects a colon-separated string, however what we got here is a store path. Looking at the worker protocol, the following message sent to the Nix daemon caused the error above: 0x1E -> wopQuerySubstitutablePathInfos 0x01 -> Number of paths 0x16 -> Length of string "/nix/store/...-somedrv" 0x00 -> Length of string "" Looking at writeStorePathCAMap, the store path is indeed the first field that's transmitted. However, readStorePathCAMap expects it to be the *second* field *on my machine*, since expression evaluation order is a classic form of unspecified behaviour[1] in C++. This has been introduced in https://github.com/NixOS/nix/pull/3689, specifically in commit 66a62b31. [1]: https://en.wikipedia.org/wiki/Unspecified_behavior#Order_of_evaluation_of_subexpressions Signed-off-by:
aszlig <aszlig@nix.build>
-
- Sep 12, 2020
-
-
Jade authored
Co-authored-by:
lf- <lf-@users.noreply.github.com>
-
- Sep 11, 2020
-
-
Silvan Mosberger authored
The change in 62620071 didn't account for when the number of auto arguments is bigger than the number of formal arguments. This causes the following: $ nix-instantiate --eval -E '{ ... }@args: args.foo' --argstr foo foo nix-instantiate: src/libexpr/attr-set.hh:55: void nix::Bindings::push_back(const nix::Attr&): Assertion `size_ < capacity_' failed. Aborted (core dumped)
-
Domen Kožar authored
Add `nix-shell` support for preserving PS1
-
- Sep 07, 2020
-
-
Vladimír Čunát authored
-