about summary refs log tree commit diff
path: root/src/libutil
AgeCommit message (Collapse)AuthorFilesLines
2017-10-09 Fix a hang in ThreadPoolEelco Dolstra2-33/+57
The worker threads could exit prematurely if they finished processing all items while the main thread was still adding items. In particular, this caused hanging nix-store --serve processes in the build farm. Also, process items from the main thread.
2017-09-25 DohEelco Dolstra1-1/+1
2017-09-14 RemoteStore: Add option to drop old connections from the poolEelco Dolstra1-0/+10
This is a hack to make hydra-queue-runner free its temproots periodically, thereby ensuring that garbage collection of the corresponding paths is not blocked until the queue runner is restarted. It would be better if temproots could be released earlier than at process exit. I started working on a RAII object returned by functions like addToStore() that releases temproots. However, this would be a pretty massive change so I gave up on it for now.
2017-09-14 Add "nix add-to-store" commandEelco Dolstra1-3/+4
2017-09-08 ThreadPool: On exception, interrupt the other worker threadsEelco Dolstra4-7/+14
2017-09-08 ThreadPool: Improve exception handlingEelco Dolstra2-24/+53
In particular, process() won't return as long as there are active items. This prevents work item lambdas from referring to stack frames that no longer exist.
2017-09-06 nix build: Add --out-link and --no-link optionsEelco Dolstra1-0/+13
2017-08-31 Add an activity for binary cache queriesEelco Dolstra1-0/+1
2017-08-31 Fix mismatched tag warningEelco Dolstra1-1/+1
https://hydra.nixos.org/build/59649086
2017-08-29 nix run: Allow passing a command to executeEelco Dolstra2-1/+5
E.g. nix run nixpkgs.hello -c hello --greeting Hallo Note that unlike "nix-shell --command", no quoting of arguments is necessary. "-c" (short for "--command") cannot be combined with "--" because they both consume all remaining arguments. But since installables shouldn't start with a dash, this is unlikely to cause problems.
2017-08-29 readLink(): Handle symlinks in /procEelco Dolstra1-4/+5
Symlinks like /proc/self/exe report a stat() size of 0, so use a buffer of at least PATH_MAX instead.
2017-08-28 Give activities a verbosity level againEelco Dolstra2-4/+15
And print them (separately from the progress bar) given sufficient -v flags.
2017-08-28 Tunnel progress messages from the daemon to the clientEelco Dolstra1-1/+1
This makes the progress bar work for non-root users.
2017-08-28 SimplifyEelco Dolstra1-3/+2
2017-08-25 SimplifyEelco Dolstra1-4/+8
2017-08-25 Allow derivations to update the build phaseEelco Dolstra1-0/+1
So the progress bar can show [1/0/1 built, 0.0 MiB DL] building hello-2.10 (configuring): checking whether pread is declared without a macro... yes
2017-08-25 Allow activities to be nestedEelco Dolstra2-4/+16
In particular, this allows more relevant activities ("substituting X") to supersede inferior ones ("downloading X").
2017-08-25 Handle SIGWINCHEelco Dolstra2-0/+38
2017-08-25 TypoEelco Dolstra1-1/+1
2017-08-25 Restore activity metadataEelco Dolstra2-17/+22
This allows the progress bar to display "building perl-5.22.3" instead of "building /nix/store/<hash>-perl-5.22.3.drv".
2017-08-21 Disallow accidental copy constructionEelco Dolstra1-0/+2
2017-08-18 Remove unused decodeOctalEscapedAndy Wingo2-21/+0
Besides being unused, this function has a bug that it will incorrectly decode the path component Ubuntu\04016.04.2\040LTS\040amd64 as "Ubuntu.04.2 LTS amd64" instead of "Ubuntu 16.04.2 LTS amd64".
2017-08-16 nix verify: Restore the progress indicatorEelco Dolstra1-0/+3
2017-08-16 nix optimise-store: Show how much space has been freedEelco Dolstra1-5/+26
2017-08-16 nix optimise-store: AddEelco Dolstra1-0/+1
This replaces "nix-store --optimise". Main difference is that it has a progress indicator.
2017-08-16 Progress indicator: CleanupEelco Dolstra2-85/+35
2017-08-16 Progress indicator: More improvementsEelco Dolstra1-3/+2
2017-08-16 Progress indicator: Show number of active itemsEelco Dolstra4-12/+21
2017-08-16 Progress indicator: Unify "copying" and "substituting"Eelco Dolstra1-8/+3
They're the same thing after all. Example: $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 49/98 copied, 16.3/92.8 MiB DL, 55.8/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/0pl9li1jigcj2dany47hpmn0r3r48wc4nz48v5mqhh426lgz3bz6.nar.xz'
2017-08-16 Improve substitution progress indicatorEelco Dolstra1-4/+2
E.g. $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 1/97/98 fetched, 65.8/92.8 MiB DL, 203.2/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/1czm9fk0svacy4h6a3fzkpafi4f7a9gml36kk8cq1igaghbspg3k.nar.xz'
2017-08-16 nix copy: Improve progress indicatorEelco Dolstra2-2/+16
It now shows the amount of data copied: [8/1038 copied, 160.4/1590.9 MiB copied] copying path '...'
2017-08-16 nix copy: Revive progress barEelco Dolstra3-0/+28
2017-08-09 Use /proc/self/fd to efficiently close all FDs on LinuxEelco Dolstra2-4/+18
Issue #1506.
2017-08-03 Include missing <cstdlib> for abort()Brian McKenna1-0/+1
This is needed to get Nix compiled using Android NDK.
2017-07-31 Merge branch 'macOS' of https://github.com/davidak/nixEelco Dolstra1-1/+1
2017-07-30 Replace Unicode quotes in user-facing strings by ASCIIJörg Thalheim9-57/+57
Relevant RFC: NixOS/rfcs#4 $ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-30 replace "Mac OS X" with "macOS"davidak1-1/+1
except in older release notes where the name was actually Mac OS X.
2017-07-28 nix-prefetch-url: Fix regression in hash printingEelco Dolstra1-1/+1
2017-07-26 nix search: Add a cacheEelco Dolstra2-11/+23
The package list is now cached in ~/.cache/nix/package-search.json. This gives a substantial speedup to "nix search" queries. For example (on an SSD): First run: (no package search cache, cold page cache) $ time nix search blender Attribute name: nixpkgs.blender Package name: blender Version: 2.78c Description: 3D Creation/Animation/Publishing System real 0m6.516s Second run: (package search cache populated) $ time nix search blender Attribute name: nixpkgs.blender Package name: blender Version: 2.78c Description: 3D Creation/Animation/Publishing System real 0m0.143s
2017-07-20 Add "nix search" commandEelco Dolstra2-2/+3
2017-07-14 nix: Show help when no arguments are givenEelco Dolstra2-3/+4
Fixes #1464.
2017-07-11 replaceSymlink(): Handle the case where the temporary file already existsEelco Dolstra1-4/+13
Not really necessary anymore for #849, but still nice to have.
2017-07-10 Merge pull request #1422 from nh2/fix-potential-hash-comparison-crashEelco Dolstra1-0/+2
Fix potential crash/wrong result two hashes of unequal length are compared
2017-07-04 Support base-64 hashesEelco Dolstra2-123/+113
Also simplify the Hash API. Fixes #1437.
2017-07-03 processGraph(): Call getEdges in parallelEelco Dolstra1-28/+47
2017-06-24 Fix potential crash/wrong result two hashes of unequal length are comparedNiklas Hambüchen1-0/+2
2017-06-12 Suppress spurious "killing process N: Operation not permitted" on macOSEelco Dolstra1-2/+9
2017-06-07 Don't show flags from config settings in "nix --help"Eelco Dolstra4-43/+101
2017-06-07 nix: Add --help-config flagEelco Dolstra2-2/+10
2017-06-07 nix: Make all options available as flagsEelco Dolstra2-0/+31
Thus, instead of ‘--option <name> <value>’, you can write ‘--<name> <value>’. So --option http-connections 100 becomes --http-connections 100 Apart from brevity, the difference is that it's not an error to set a non-existent option via --option, but unrecognized arguments are fatal. Boolean options have special treatment: they're mapped to the argument-less flags ‘--<name>’ and ‘--no-<name>’. E.g. --option auto-optimise-store false becomes --no-auto-optimise-store