aboutsummaryrefslogtreecommitdiff
path: root/src/libutil
AgeCommit message (Collapse)Author
2016-04-29BinaryCacheStore: Support bzip2 compressionEelco Dolstra
2016-04-29BinaryCacheStore: Support "none" compression methodEelco Dolstra
2016-04-29Eliminate the substituter mechanismEelco Dolstra
Substitution is now simply a Store -> Store copy operation, most typically from BinaryCacheStore to LocalStore.
2016-04-25Improved logging abstractionEelco Dolstra
This also gets rid of --log-type, since the nested log type isn't useful in a multi-threaded situation, and nobody cares about the "pretty" log type.
2016-04-22Factor out parallel processing of work items that have dependenciesEelco Dolstra
2016-04-22ThreadPool: Start doing work as soon as work items are enqueuedEelco Dolstra
2016-04-22Make compression interruptibleEelco Dolstra
2016-04-21nix --help: Show short flagsEelco Dolstra
2016-04-20Cache path info lookups in SQLiteEelco Dolstra
This re-implements the binary cache database in C++, allowing it to be used by other Store backends, in particular the S3 backend.
2016-04-19Move path info caching from BinaryCacheStore to StoreEelco Dolstra
Caching path info is generally useful. For instance, it speeds up "nix path-info -rS /run/current-system" (i.e. showing the closure sizes of all paths in the closure of the current system) from 5.6s to 0.15s. This also eliminates some APIs like Store::queryDeriver() and Store::queryReferences().
2016-04-15BinaryCacheStore::readFile(): Return a shared_ptr to a stringEelco Dolstra
This allows readFile() to indicate that a file doesn't exist, and might eliminate some large string copying.
2016-04-08Make LocalStore thread-safeEelco Dolstra
Necessary for multi-threaded commands like "nix verify-paths".
2016-03-31Add missing -pthreadEelco Dolstra
https://hydra.nixos.org/build/33908385
2016-03-29Improve SIGINT handling in multi-threaded programsEelco Dolstra
The flag remembering whether an Interrupted exception was thrown is now thread-local. Thus, all threads will (eventually) throw Interrupted. Previously, one thread would throw Interrupted, and then the other threads wouldn't see that they were supposed to quit.
2016-03-29Add "nix verify-paths" commandEelco Dolstra
Unlike "nix-store --verify-path", this command verifies signatures in addition to store path contents, is multi-threaded (especially useful when verifying binary caches), and has a progress indicator. Example use: $ nix verify-paths --store https://cache.nixos.org -r $(type -p thunderbird) ... [17/132 checked] checking ‘/nix/store/rawakphadqrqxr6zri2rmnxh03gqkrl3-autogen-5.18.6’
2016-03-15Fix Darwin buildEelco Dolstra
http://hydra.nixos.org/build/33279996
2016-03-04Eliminate some large string copyingEelco Dolstra
2016-03-02Fix reading symlinksEelco Dolstra
The st_size field of a symlink doesn't have to be correct, e.g. for /dev/fd symlinks.
2016-03-02FdSource: track number of bytes readEelco Dolstra
2016-02-25Merge branch 'master' into new-cliEelco Dolstra
2016-02-25Add NAR / Store accessor abstractionEelco Dolstra
This is primary to allow hydra-queue-runner to extract files like "nix-support/hydra-build-products" from NARs in binary caches.
2016-02-25Fix short boolean flagsEelco Dolstra
2016-02-25Merge branch 'master' into new-cliEelco Dolstra
2016-02-24deletePath(): Succeed if path doesn't existEelco Dolstra
Also makes it robust against concurrent deletions.
2016-02-24BinaryCacheStore: Implement addToStore()Eelco Dolstra
So now you can do $ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello and lots of other operations.
2016-02-24TypoEelco Dolstra
2016-02-24Move BinaryCacheStore / LocalBinaryCacheStore from HydraEelco Dolstra
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
2016-02-24std::condition_variable_any -> std::condition_variableEelco Dolstra
The latter is supposed to be more efficient.
2016-02-24C++ templates are just a glorified macro facilityEelco Dolstra
2016-02-24Remove bad daemon connections from the poolEelco Dolstra
This is necessary for long-running processes like hydra-queue-runner: if a nix-daemon worker is killed, we need to stop reusing that connection.
2016-02-23Pool<T>: Allow a maximum pool sizeEelco Dolstra
2016-02-23RemoteStore: Make thread-safeEelco Dolstra
This allows a RemoteStore object to be used safely from multiple threads concurrently. It will make multiple daemon connections if necessary. Note: pool.hh and sync.hh have been copied from the Hydra source tree.
2016-02-23Move ref<t> into a separate headerEelco Dolstra
2016-02-15Add xz compression functionEelco Dolstra
This is used by the Hydra queue runner, but since it may also be useful for the C++ rewrite of nix-push, I'm putting it here.
2016-02-15decompressXZ: Ensure that lzma_end() is calledEelco Dolstra
Otherwise we might leak memory.
2016-02-12Merge pull request #762 from ctheune/ctheune-floatsEelco Dolstra
Implement floats
2016-02-11ref<T>: Add cast operatorEelco Dolstra
2016-02-09Start of new Nix command-line interfaceEelco Dolstra
2016-02-09New command line parsing infrastructureEelco Dolstra
2016-02-04Eliminate the "store" global variableEelco Dolstra
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.)
2016-01-27Define HashType's size to allow it to be forward-declaredEelco Dolstra
2016-01-27TriviaEelco Dolstra
2016-01-27Make hashLength32() a method of HashEelco Dolstra
2016-01-20string2Int: Barf on negative numbers for unsigned typesEelco Dolstra
2016-01-05Fix compilationEelco Dolstra
2016-01-05Merge pull request #685 from vizanto/masterEelco Dolstra
POSIX compliant directory access (fixes build on Solaris)
2016-01-05Fixed unresolved 'BUFSIZ'FrankHB
`BUFSIZ` is defined in header `<cstdio>`.
2016-01-05First hit at providing support for floats in the language.Christian Theune
2015-12-10Build sandbox support etc. unconditionally on LinuxEelco Dolstra
Also, use "#if __APPLE__" instead of "#if SANDBOX_ENABLED" to prevent ambiguity.
2015-11-25Use DT_UNKNOWN when dirent d_type extension is not supported.Danny Wilson
edolstra: “…since callers of readDirectory have to handle the possibility of DT_UNKNOWN anyway, and we don't want to do a stat call for every directory entry unless it's really needed.”