Eelco Dolstra
7a3a5d1608
* When there is a domain check, we have to evaluate the argument.
...
Can't be lazy!
2006-07-24 16:49:28 +00:00
Eelco Dolstra
f4c5531d92
* New language feature: domain checks, which check whether a function
...
argument has a valid value, i.e., is in a certain domain. E.g.,
{ foo : [true false]
, bar : ["a" "b" "c"]
}: ...
This previously could be done using assertions, but domain checks
will allow the buildfarm to automatically extract the configuration
space from functions.
2006-07-24 16:35:34 +00:00
Eelco Dolstra
57751fdb55
* Refactoring to support domain checks.
2006-07-24 15:16:03 +00:00
Eelco Dolstra
a4273156c4
* Use $(libexecdir) to find find-runtime-roots.pl.
2006-07-20 13:21:37 +00:00
Eelco Dolstra
ee2cf45d76
* Use debug().
2006-07-20 12:19:55 +00:00
Eelco Dolstra
c15f544356
* Call find-runtime-roots.pl from the garbage collector to prevent
...
running applications etc. from being garbage collected.
2006-07-20 12:17:25 +00:00
Eelco Dolstra
4f3725b167
* Better error messages (especially wrt types).
2006-07-19 15:36:15 +00:00
Eelco Dolstra
e10b830251
* Doh! Of couse we cannot memoize across scopes.
2006-07-11 10:29:52 +00:00
Eelco Dolstra
d51aede4af
* Allow the canonical system name to be specified at runtime in the
...
Nix config file.
2006-07-06 15:30:37 +00:00
Eelco Dolstra
a945fb7905
* `nix-env --upgrade --eq': only upgrade if the old version is equal
...
to the new version. This is actually useful.
2006-06-27 12:17:25 +00:00
Eelco Dolstra
dbf6d7e783
* Concurrent GC on Cygwin.
2006-06-20 17:48:10 +00:00
Eelco Dolstra
cc51f9c539
* Oops.
2006-06-19 16:35:35 +00:00
Eelco Dolstra
5bb3444032
* _exit() doesn't seem to work right on Cygwin.
2006-06-19 16:24:15 +00:00
Eelco Dolstra
b35735d8b2
* On Windows we cannot delete open (lock) files, so we delete lock
...
files after we've closed them. Since this only succeeds if the lock
is no longer opened by any process, the token trick used on Unix is
not necessary.
2006-06-19 14:43:13 +00:00
Eelco Dolstra
0e783e5579
* Write messages to stderr in a slightly more atomic way. Useful when
...
there are several parallel processes.
2006-06-19 14:37:35 +00:00
Eelco Dolstra
c937b73622
* Show when we're blocked waiting for a lock.
2006-06-16 10:13:03 +00:00
Eelco Dolstra
588cb0eade
* In `nix-env -i|-u|-e', lock the profile to prevent races between
...
concurrent nix-env operations on the same profile. Fixes NIX-7.
2006-06-15 11:56:49 +00:00
Eelco Dolstra
b454977909
* Fix for a problem with BSD's group ownership semantics when the user
...
is not in the "wheel" group.
2006-06-14 11:53:55 +00:00
Eelco Dolstra
23960e92df
* Minor cleanup.
2006-06-01 18:13:33 +00:00
Eelco Dolstra
50fe85f016
* For fixed-output derivations, pass the environment variables listed
...
in the attribute variable `impureEnvVars' from the caller to the
builder.
2006-05-31 09:51:45 +00:00
Eelco Dolstra
1390ce4142
* Not all platforms have sys/select.h.
2006-05-30 11:37:21 +00:00
Eelco Dolstra
b1c63dc362
* Don't use badTerm, it gives awful error messages.
2006-05-30 11:31:33 +00:00
Eelco Dolstra
58b4198ed8
* Disable the concurrent garbage collector on Cygwin for now.
2006-05-29 20:46:51 +00:00
Eelco Dolstra
d764409d97
* Some Cygwin fixes.
2006-05-24 13:23:20 +00:00
Eelco Dolstra
b5988004d6
* Support for srcdir != builddir (NIX-41).
2006-05-12 11:47:45 +00:00
Eelco Dolstra
9d72bf8835
* 64-bit compatibility fixes (for problems revealed by building on an Athlon
...
64 running 64-bit SUSE). A patched ATerm library is required to run Nix
succesfully.
2006-05-11 02:19:43 +00:00
Eelco Dolstra
c54287eafe
* GCC 2.95 compatibility.
2006-05-08 15:15:13 +00:00
Eelco Dolstra
5cabd47394
* Allow function argument default values to refer to other arguments
...
of the function. Implements NIX-45.
2006-05-08 12:52:47 +00:00
Eelco Dolstra
310e605995
* Show evaluation stats when NIX_SHOW_STATS=1.
2006-05-08 10:00:37 +00:00
Eelco Dolstra
0832956089
* Use the new ATermMap.
2006-05-04 12:21:08 +00:00
Eelco Dolstra
d300b4383d
* Optimise null-ary term builders. Also declare all term builder
...
functions as pure, which might improve performance a bit.
2006-05-02 21:58:46 +00:00
Eelco Dolstra
68174bdc7d
* Use a linked list of substitutions. This reduces the amount of
...
copying.
2006-05-02 21:39:02 +00:00
Eelco Dolstra
c791e94aee
* Removed a bunch of ATreverses.
2006-05-02 17:51:50 +00:00
Eelco Dolstra
b52e711910
* Huge reduction in memory use (2/3 or so on large nix-env -qas
...
operations): share ATermMaps between DrvInfos.
2006-05-02 17:12:03 +00:00
Eelco Dolstra
11ae2d1e7a
* Memory reduction: replaced expensive calls to ATmakeApplList by
...
ATmakeApplArray, and got rid of ATreverse in substitute().
2006-05-02 14:07:28 +00:00
Eelco Dolstra
dc719e6ba5
* Some preliminaries towards NIX-45.
2006-05-02 13:39:55 +00:00
Eelco Dolstra
7276e194ee
* Disallow unescaped $ in string literals.
2006-05-01 15:29:46 +00:00
Eelco Dolstra
0064599a27
* String interpolation. Expressions like
...
"--with-freetype2-library=" + freetype + "/lib"
can now be written as
"--with-freetype2-library=${freetype}/lib"
An arbitrary expression can be enclosed within ${...}, not just
identifiers.
* Escaping in string literals: \n, \r, \t interpreted as in C, any
other character following \ is interpreted as-is.
* Newlines are now allowed in string literals.
2006-05-01 14:01:47 +00:00
Eelco Dolstra
6cecad2be0
* Allow string concatenations involving derivations, e.g.,
...
configureFlags = "--with-freetype2-library="
+ freetype + "/lib";
2006-05-01 09:56:56 +00:00
Eelco Dolstra
ef2d4a2da9
* Print a more useful stack trace when an error occurs deep in the
...
derivation dependency graph.
2006-03-24 14:02:44 +00:00
Eelco Dolstra
b69e469328
* In `nix-env', look for derivations inside attribute sets that have
...
the `recurseForDerivations' attribute set to `true'.
2006-03-23 16:43:07 +00:00
Eelco Dolstra
49ce8b57dd
* Hm.
2006-03-23 16:37:49 +00:00
Eelco Dolstra
fdea084c36
* Allow `make check' to work in directories that have symlink
...
components.
2006-03-10 22:27:26 +00:00
Eelco Dolstra
37d1b1cafd
* `nix-env -qa --description' shows human-readable descriptions of
...
packages (provided that they have a `meta.description' attribute).
E.g.,
$ ./src/nix-env/nix-env -qa --description gcc
gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux)
gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux)
gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux)
gcc-4.0.2 GNU Compiler Collection, 4.0.x
2006-03-10 16:20:42 +00:00
Eelco Dolstra
2b3b6c9b34
* In theory, this should reduce the number of ATermMap
...
re-allocations.
2006-03-10 16:14:13 +00:00
Eelco Dolstra
4ada6db1fc
* `nix-env -q' now accepts arguments that allow specific derivations
...
to be queried, e.g., `nix-env -qa firefox'. This does require the
argument '*' to be passed if one wants information about all
derivations, so the old `nix-env -qa' now is `nix-env -qa "*"'.
2006-03-10 10:24:46 +00:00
Eelco Dolstra
18c321308d
* Ugh, printHash() was very inefficient because it used
...
ostringstreams. Around 11% of execution time was spent here (now
it's 0.5%).
2006-03-09 17:07:25 +00:00
Eelco Dolstra
b90c00e63f
* Regression: semantics of the result of getDerivation() changed.
2006-03-09 15:10:01 +00:00
Eelco Dolstra
922697c8b2
* Big speedup (factor > 2.5) in all nix-env operations that do actual
...
instantiation, e.g. "nix-env -i" and "nix-env -qas" (but not
"nix-env -qa"). It turns out that many redundant calls to
addToStore(path) were made, which reads and hashes the entire path.
For instance, the bash bootstrap binary in Nixpkgs would be read and
hashed many times. As a result nix-env would spend around 92% of
its time in the function sha256_block (according to callgrind).
Some simple memoization fixes this.
2006-03-09 15:09:18 +00:00
Eelco Dolstra
6dca5c9099
* When obtaining derivations from Nix expressions, ignore all
...
expressions that cause an assertion failure (like `assert system ==
"i686-linux"'). This allows all-packages.nix in Nixpkgs to be used
on all platforms, even if some Nix expressions don't work on all
platforms.
Not sure if this is a good idea; it's a bit hacky. In particular,
due to laziness some derivations might appear in `nix-env -qa' but
disappear in `nix-env -qas' or `nix-env -i'.
Commit 5000!
2006-03-08 16:03:58 +00:00