Eelco Dolstra
c9f6232304
Correctly detect infinite recursion in function application
...
If we're evaluating some application ‘v = f x’, we can't store ‘f’
temporarily in ‘v’, because if ‘f x’ refers to ‘v’, it will get ‘f’
rather than an infinite recursion error.
Unfortunately, this breaks the tail call optimisation introduced in
c897bac549
.
Fixes #217 .
2014-02-27 21:47:59 +01:00
Eelco Dolstra
29cde917fe
Fix deadlock in SubstitutionGoal
...
We were relying on SubstitutionGoal's destructor releasing the lock,
but if a goal is a top-level goal, the destructor won't run in a
timely manner since its reference count won't drop to zero. So
release it explicitly.
Fixes #178 .
2014-02-27 13:34:13 +01:00
Eelco Dolstra
7c7707638a
Doh
2014-02-26 22:41:29 +01:00
Eelco Dolstra
7880973827
Test trace and addErrorContext
2014-02-26 19:12:31 +01:00
Eelco Dolstra
5ad263c26b
Test some more primops
2014-02-26 19:08:44 +01:00
Eelco Dolstra
3d0a9ec825
Test executables in NARs
2014-02-26 18:59:01 +01:00
Eelco Dolstra
91f25f0510
And another one
2014-02-26 18:55:18 +01:00
Eelco Dolstra
432328cc55
Remove another unused function
2014-02-26 18:49:36 +01:00
Eelco Dolstra
509993e598
Remove unused function
2014-02-26 18:48:32 +01:00
Eelco Dolstra
d58ceae022
Test nix-env --switch-generation
2014-02-26 18:45:26 +01:00
Eelco Dolstra
7bbc68fdff
Test nix-env --set
2014-02-26 18:42:19 +01:00
Eelco Dolstra
a0806389e9
Test the -b and -s flags of nix-store -q
2014-02-26 18:40:08 +01:00
Eelco Dolstra
a9c4a98770
Test ~/.nix-defexpr
2014-02-26 18:33:13 +01:00
Eelco Dolstra
045d3b2ed7
Test nix-store --switch-profile and more daemon actions
2014-02-26 18:28:55 +01:00
Eelco Dolstra
fac6f8aac0
Test nix-store -q --roots
2014-02-26 18:00:46 +01:00
Eelco Dolstra
84143c4bd8
Test nix-store -l
2014-02-26 17:58:53 +01:00
Eelco Dolstra
19437785eb
Test nix-store --optimise
2014-02-26 17:53:51 +01:00
Eelco Dolstra
fdff3a7eae
Add a test for nix-store --dump-db / --load-db
2014-02-26 17:47:54 +01:00
Eelco Dolstra
506d86394d
Installer: Handle Darwin
...
"cp -r" doesn't copy symlinks properly on Darwin, but "cp -R" does.
Fixes #215 .
2014-02-26 17:23:55 +01:00
Eelco Dolstra
6b9cd59a41
nix-store -r: Respect --add-root for non-derivations
...
Fixes #68 .
Fixes #117 .
2014-02-26 16:32:46 +01:00
Eelco Dolstra
7f74513b4e
Also provide an option for setting the curl connection timeout
2014-02-26 16:07:43 +01:00
Eelco Dolstra
00d761016a
Respect $NIX_CONNECT_TIMEOUT properly
...
We were 1) using CURLOPT_TIMEOUT instead of CURLOPT_CONNECTTIMEOUT; 2)
not passing it to the curl child process.
Issue #93 .
2014-02-26 15:58:37 +01:00
Eelco Dolstra
d761009e3c
Add ~/.nix-profile/sbin to $PATH
...
Fixes #112 .
2014-02-26 15:24:48 +01:00
Eelco Dolstra
f14ef84a51
Warn about missing -I paths
...
Fixes #121 . Note that we don't warn about missing $NIX_PATH entries
because it's intended that some may be missing (cf. the default
$NIX_PATH on NixOS, which includes paths like /etc/nixos/nixpkgs for
backward compatibility).
2014-02-26 15:21:56 +01:00
Shea Levy
733214144a
Document dynamic attributes
...
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-26 14:06:45 +01:00
Eelco Dolstra
42eb4afd7a
Simplify getting use-ssh-substituter from untrusted users
2014-02-26 13:58:46 +01:00
Eelco Dolstra
bf4a577a58
Fix broken patch
2014-02-26 13:48:23 +01:00
Ian-Woo Kim
8a02fdc38e
use USER environmental variable if getting user id by getpwuid is failed in perl scripts: download-from-binary-cache.pl and nix-channel
2014-02-26 13:42:11 +01:00
Eelco Dolstra
dcaea042fc
Only start download-via-ssh if it's enabled
2014-02-26 13:41:03 +01:00
Shea Levy
df5de9dfd7
Add use-ssh-substituter setting.
...
It defaults to false and can be overridden by RemoteStore.
Untested currently, just quickly put this together
2014-02-26 13:32:47 +01:00
Eelco Dolstra
36b90e72d7
nix-shell: Add --packages flag
...
This allows you to easily set up a build environment containing the
specified packages from Nixpkgs. For example:
$ nix-shell -p sqlite xorg.libX11 hello
will start a shell in which the given packages are present.
2014-02-19 17:08:01 +01:00
Eelco Dolstra
a897b58373
nix-instantiate: Allow --dry-run as a synonym for --readonly-mode
...
--dry-run is more consistent with nix-env and nix-store.
2014-02-19 16:46:33 +01:00
Eelco Dolstra
e1cf40fa95
nix-instantiate: Rename --eval-only to --eval, --parse-only to --parse
2014-02-19 16:34:24 +01:00
Eelco Dolstra
c31836008e
nix-instantiate: Add a flag --expr / -E to read expressions from the command line
...
This is basically a shortcut for ‘echo 'expr...' | nix-instantiate -’.
Also supported by nix-build and nix-shell.
2014-02-19 16:30:19 +01:00
Eelco Dolstra
e707a8a526
Move manpages around
2014-02-19 15:32:19 +01:00
Eelco Dolstra
73f74ebba0
nix-shell: Don't leave a temporary directory in /tmp behind
2014-02-19 15:01:04 +01:00
Shea Levy
a7e70518b8
lexer-tab.o and parser-tab.o require each other's headers
2014-02-18 17:31:30 +01:00
Shea Levy
70a558e202
Update ignores
2014-02-18 17:31:30 +01:00
Eelco Dolstra
8129cf33d9
Slight simplification
2014-02-18 10:46:30 +01:00
Eelco Dolstra
1aa19b24b2
Add a flag ‘--check’ to verify build determinism
...
The flag ‘--check’ to ‘nix-store -r’ or ‘nix-build’ will cause Nix to
redo the build of a derivation whose output paths are already valid.
If the new output differs from the original output, an error is
printed. This makes it easier to test if a build is deterministic.
(Obviously this cannot catch all sources of non-determinism, but it
catches the most common one, namely the current time.)
For example:
$ nix-build '<nixpkgs>' -A patchelf
...
$ nix-build '<nixpkgs>' -A patchelf --check
error: derivation `/nix/store/1ipvxsdnbhl1rw6siz6x92s7sc8nwkkb-patchelf-0.6' may not be deterministic: hash mismatch in output `/nix/store/4pc1dmw5xkwmc6q3gdc9i5nbjl4dkjpp-patchelf-0.6.drv'
The --check build fails if not all outputs are valid. Thus the first
call to nix-build is necessary to ensure that all outputs are valid.
The current outputs are left untouched: the new outputs are either put
in a chroot or diverted to a different location in the store using
hash rewriting.
2014-02-18 01:01:14 +01:00
Eelco Dolstra
4ec626a286
Test nix-store --verify-path and --repair-path
2014-02-17 23:24:12 +01:00
Eelco Dolstra
99f14c2584
Don't build on Debian 6.0
...
Its linker is too old to understand --no-copy-dt-needed-entries.
http://hydra.nixos.org/build/9113883
2014-02-17 23:10:40 +01:00
Eelco Dolstra
b6def5b542
Make --repair work on Darwin
...
Mac OS X doesn't allow renaming a read-only directory.
http://hydra.nixos.org/build/9113895
2014-02-17 23:09:48 +01:00
Eelco Dolstra
dfbcb7c403
Refactoring
2014-02-17 23:04:52 +01:00
Eelco Dolstra
71adb090f0
When using a build hook, only copy missing paths
2014-02-17 22:58:21 +01:00
Eelco Dolstra
69fe6c58fa
Move some code around
...
In particular, do replacing of valid paths during repair later. This
prevents us from replacing a valid path after the build fails.
2014-02-17 22:25:15 +01:00
Eelco Dolstra
1da6ae4f99
nix-store --gc --max-freed: Support a unit specifier
...
E.g. "--max-freed 10G" means "free ten gigabytes".
2014-02-17 14:48:50 +01:00
Eelco Dolstra
00d30496ca
Heuristically detect if a build may have failed due to a full disk
...
This will allow Hydra to detect that a build should not be marked as
"permanently failed", allowing it to be retried later.
2014-02-17 14:15:56 +01:00
Eelco Dolstra
e81d38c02b
nix-shell: Execute shellHook if it exists
...
Since normal builds don't execute shellHook, this allows nix-shell
specific customisation. Suggested by Domen.
2014-02-17 13:34:24 +01:00
Eelco Dolstra
832377bbd6
Add a test for repairing paths
2014-02-17 12:22:50 +01:00