Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-11-22 | Unify #if linux | Alex Shabalin | |
2021-11-19 | Fix build warnings on MacOS | Alex Shabalin | |
2021-10-28 | Use nix::connect() to connect to the garbage collector | Eelco Dolstra | |
2021-10-28 | Remove unused variable | Eelco Dolstra | |
2021-10-15 | Add a test for the non-blocking GC | Eelco Dolstra | |
2021-10-15 | Fix main GC thread exiting | Eelco Dolstra | |
2021-10-15 | Fix crash when a GC client disconnects | Eelco Dolstra | |
The client thread can't just delete its own thread object from connections, it has to detach it. | |||
2021-10-15 | Memoize queryReferrers() | Eelco Dolstra | |
2021-10-14 | Speed up GC by marking entire closures as live | Eelco Dolstra | |
2021-10-14 | Remove GCState | Eelco Dolstra | |
2021-10-14 | Move deleteFromStore() | Eelco Dolstra | |
2021-10-14 | Make the canReachRoots() traversal non-recursive | Eelco Dolstra | |
2021-10-13 | Fix GC when there are cycles in the referrers graph | Eelco Dolstra | |
(where "referrers" includes the reverse of derivation outputs and derivers). Now we do a full traversal to look if we can reach any root. If not, all paths reached can be deleted. | |||
2021-10-13 | Simplify | Eelco Dolstra | |
2021-10-13 | Use a thread per connection | Eelco Dolstra | |
2021-10-13 | Fix auto-gc | Eelco Dolstra | |
2021-10-13 | Non-blocking garbage collector | Eelco Dolstra | |
The garbage collector no longer blocks other processes from adding/building store paths or adding GC roots. To prevent the collector from deleting store paths just added by another process, processes need to connect to the garbage collector via a Unix domain socket to register new temporary roots. | |||
2021-10-13 | Remove syncWithGC() | Eelco Dolstra | |
2021-10-13 | Remove trash directory | Eelco Dolstra | |
2021-06-18 | UDSRemoteStore: Support the 'root' store parameter | Eelco Dolstra | |
Useful when we're using a daemon with a chroot store, e.g. $ NIX_DAEMON_SOCKET_PATH=/tmp/chroot/nix/var/nix/daemon-socket/socket nix-daemon --store /tmp/chroot Then the client can now connect with $ nix build --store unix:///tmp/chroot/nix/var/nix/daemon-socket/socket?root=/tmp/chroot nixpkgs#hello | |||
2020-10-12 | Handle amount of disk space saved by hard linking being negative | volth | |
Fixes bogus messages like "currently hard linking saves 17592186044416.00 MiB". | |||
2020-10-09 | Split out `local-fs-store.hh` | John Ericson | |
This matches the already-existing `local-fs-store.cc`. | |||
2020-09-23 | lstat() cleanup | Eelco Dolstra | |
2020-09-17 | Fix garbage collection of CA derivations | regnat | |
Fix #4026 | |||
2020-09-03 | Remove gc-check-reachability | Eelco Dolstra | |
2020-09-03 | addPermRoot(): Remove indirect flag | Eelco Dolstra | |
2020-07-30 | unsigned long long -> uint64_t | Eelco Dolstra | |
2020-07-13 | toStorePath(): Return a StorePath and the suffix | Eelco Dolstra | |
2020-06-16 | Remove StorePath::clone() and related functions | Eelco Dolstra | |
2020-06-15 | Get rid of explicit ErrorInfo constructors | Eelco Dolstra | |
2020-05-13 | formatting and a few minor changes | Ben Burdette | |
2020-05-13 | consistent capitalization | Ben Burdette | |
2020-05-13 | change status messages to info level | Ben Burdette | |
2020-05-11 | Merge branch 'master' into errors-phase-2 | Ben Burdette | |
2020-05-06 | todo removal | Ben Burdette | |
2020-05-06 | Merge pull request #3546 from guibou/nix_readfile_on_0_sized_files | Eelco Dolstra | |
builtins.readFile: do not truncate content | |||
2020-05-04 | nix auto-gc: use fragment size | Jude Taylor | |
2020-05-01 | convert some errors | Ben Burdette | |
2020-04-29 | Remove the `drain` argument from `readFile` | Guillaume Bouchard | |
Now it is always `drain` (see previous commit). | |||
2020-04-21 | remove 'format' from Error constructor calls | Ben Burdette | |
2020-04-09 | gc.cc: Ignore hidden files in temproots | Philipp Middendorf | |
2020-02-28 | Fix GC failures on bad store path names | Eelco Dolstra | |
It failed on names like '/nix/store/9ip48nkc9rfy0a4yaw98lp6gipqlib1a-'. | |||
2020-01-05 | build: fix sandboxing on darwin | Daiderd Jordan | |
Starting ba87b08f8529e4d9f8c58d8c625152058ceadb75 getEnv now returns an std::optional which means these getEnv() != "" conditions no longer happen if the variables are not defined. | |||
2019-12-10 | Make the Store API more type-safe | Eelco Dolstra | |
Most functions now take a StorePath argument rather than a Path (which is just an alias for std::string). The StorePath constructor ensures that the path is syntactically correct (i.e. it looks like <store-dir>/<base32-hash>-<name>). Similarly, functions like buildPaths() now take a StorePathWithOutputs, rather than abusing Path by adding a '!<outputs>' suffix. Note that the StorePath type is implemented in Rust. This involves some hackery to allow Rust values to be used directly in C++, via a helper type whose destructor calls the Rust type's drop() function. The main issue is the dynamic nature of C++ move semantics: after we have moved a Rust value, we should not call the drop function on the original value. So when we move a value, we set the original value to bitwise zero, and the destructor only calls drop() if the value is not bitwise zero. This should be sufficient for most types. Also lots of minor cleanups to the C++ API to make it more modern (e.g. using std::optional and std::string_view in some places). | |||
2019-11-22 | getEnv(): Return std::optional | Eelco Dolstra | |
This allows distinguishing between an empty value and no value. | |||
2019-09-30 | Merge pull request #2338 from bobvanderlinden/pr-cannot-delete-alive-why | Domen Kožar | |
mention `nix-store --query --roots` when a path cannot be deleted | |||
2019-08-29 | Don't rely on st_blocks | Eelco Dolstra | |
It doesn't seem very reliable on ZFS. | |||
2019-08-29 | Cleanup | Eelco Dolstra | |
2019-08-02 | Simplify | Eelco Dolstra | |
With BSD locks we don't have to guard against reading our own temproots. | |||
2019-08-02 | Use BSD instead of POSIX file locks | Eelco Dolstra | |
POSIX file locks are essentially incompatible with multithreading. BSD locks have much saner semantics. We need this now that there can be multiple concurrent LocalStore::buildPaths() invocations. |