Eelco Dolstra
e3ce954582
* Compile the lexer as C++ code. Remove all the redundant C/C++
...
marshalling code.
2006-09-04 21:36:15 +00:00
Eelco Dolstra
75068e7d75
* Use a proper namespace.
...
* Optimise header file usage a bit.
* Compile the parser as C++.
2006-09-04 21:06:23 +00:00
Eelco Dolstra
aab8812732
* Store the Nix libraries in ${libdir}/nix instead of ${libdir}.
2006-09-04 15:12:24 +00:00
Eelco Dolstra
7974aae81c
* New primop: builtins.toFile, which writes a string into the store
...
and returns its path. This can be used to (for instance) write
builders inside a Nix expression, e.g.,
stdenv.mkDerivation {
builder = "
source $stdenv/setup
...
";
...
}
2006-09-01 12:07:31 +00:00
Eelco Dolstra
de90fdf908
* Allow "$" in strings as long as they are not followed by "{". (Too
...
bad flex doesn't have lexical restrictions, the current solution
isn't quite right...)
2006-09-01 12:04:06 +00:00
Eelco Dolstra
c25f688e23
* Doh! Doh! Doh!
2006-08-31 15:38:43 +00:00
Eelco Dolstra
354d58b3d7
* Better error checking.
2006-08-31 11:40:39 +00:00
Eelco Dolstra
f93f7b75be
* Okay, that's a bit harder than expected.
2006-08-30 13:10:04 +00:00
Eelco Dolstra
3151bdea55
* Uninitialised variable.
2006-08-30 12:00:27 +00:00
Eelco Dolstra
547b119f25
* Support singleton values and nested lists again in `args', but print
...
a warning.
2006-08-29 15:40:49 +00:00
Eelco Dolstra
2132d9ddeb
* Fix the ~ operator.
2006-08-29 15:29:38 +00:00
Eelco Dolstra
1ec9f55741
* In toString, deal with nested lists properly (i.e., flatten them).
2006-08-28 21:47:42 +00:00
Eelco Dolstra
1fca76870b
* Removed processBinding, instead we now apply toString to all
...
derivation attributes to flatten them into strings. This is
possible since string can nowadays be wrapped in contexts that
describe the derivations/sources referenced by the evaluation of the
string.
2006-08-28 13:31:06 +00:00
Eelco Dolstra
8a6080eb14
* Refactoring.
2006-08-26 16:48:01 +00:00
Eelco Dolstra
4b66cebe7b
* Remove those storePath attribute sets, we don't need 'em.
2006-08-25 17:09:55 +00:00
Eelco Dolstra
3e8dccf6ab
* Escape newlines in XML attributes to prevent them from being
...
normalised away.
2006-08-24 15:02:39 +00:00
Eelco Dolstra
215ec2ddc6
* New primop __toXML (or builtins.toXML) to convert an expression to
...
an XML representation stored in a string. This should be useful to
pass structured information to builders.
2006-08-24 14:34:29 +00:00
Eelco Dolstra
f793caf936
* Refactoring.
2006-08-24 14:16:55 +00:00
Eelco Dolstra
da25d80152
* Strict evaluation and XML printing of lists.
2006-08-24 14:03:39 +00:00
Eelco Dolstra
943ab38a0d
* Refactoring: move strictEval to libexpr.
2006-08-24 13:39:22 +00:00
Eelco Dolstra
f41297fdce
* Allow --arg in nix-env as well, example:
...
$ nix-env -qa --system-filter \* --arg system '"powerpc-darwin"'
to override the system from the default value (__currentSystem in
all-packages.nix).
2006-08-23 16:33:21 +00:00
Eelco Dolstra
9638f3f393
* Pass the autoArgs to findAlongAttrPath so that "nix-instantiate
...
foo.nix -A attr --arg name value" will work if (name, value) is
needed in the evaluation leading up to "attr".
2006-08-23 16:20:14 +00:00
Eelco Dolstra
b19cebc513
* Quotes.
2006-08-23 15:46:27 +00:00
Eelco Dolstra
38f18aa6d4
* New primop: abort "error message".
2006-08-23 15:46:00 +00:00
Eelco Dolstra
4a053bfdfd
* A new primop `builtins', which returns an attribute set containing
...
all the primops. This allows Nix expressions to test for new
primops and take appropriate action if they're not available. For
instance, rather than calling a primop `foo' directly, they could
say `if builtins ? foo then builtins.foo ... else ...'.
2006-08-23 14:39:11 +00:00
Eelco Dolstra
24e234a2fa
* Print attributes in sorted order, rather than the arbitrary order
...
produced by ATermMap. Necessary for testing.
* `--strict' should also work on stdin.
2006-08-17 08:53:08 +00:00
Eelco Dolstra
22ba63df16
* More XML output. `--strict' to strictly evaluate attribute sets and
...
so on.
* Removed `--print-args', it's subsumed by `--eval-only --xml'.
2006-08-16 21:59:53 +00:00
Eelco Dolstra
18e4ac0fc6
* `nix-instantiate --{eval|parse}-only --xml': print an XML
...
representation instead of an ATerm.
* Indent XML output.
2006-08-16 10:32:30 +00:00
Eelco Dolstra
2670642733
* Handle carriage returns. Fixes NIX-53.
2006-08-16 10:28:44 +00:00
Martin Bravenboer
3e5b68068b
On cygwin, disable the check that the output is not group or world
...
writable. File permissions on Cygwin are rather complex, and in this
case this check introduced a problem with build jobs invoke from
outside of Cygwin (MSYS). It seemed almost impossible to fix the
permissions of the directory, so for now this safety check is disabled
on Cygwin.
2006-08-15 21:37:48 +00:00
Eelco Dolstra
7455fd8835
* Put the value in an attribute.
2006-08-14 14:24:18 +00:00
Eelco Dolstra
4250b641d8
* `nix-store --gc --print-dead': print the total size of the store
...
objects that would be freed.
2006-08-11 20:26:49 +00:00
Eelco Dolstra
92f7dfa5b7
* Don't assume that paths returned by the runtime root finder are
...
valid.
2006-08-11 20:15:20 +00:00
Eelco Dolstra
d19b6521fc
* New configuration setting `build-max-jobs' which sets the default
...
for the `-j' flag (i.e., the maximum number of jobs to execute in
parallel). Useful on multi-processor machines.
2006-08-10 20:19:13 +00:00
Eelco Dolstra
f1aa71a92f
* Fix the help message wrt --attr.
2006-08-09 15:12:34 +00:00
Eelco Dolstra
a18d02e0b0
* Print a warning that the subpath operator (~) is deprecated.
2006-08-09 15:08:47 +00:00
Eelco Dolstra
a0607be7f4
* Workaround for a bug (?) in GCC 2.95.
2006-08-07 19:48:38 +00:00
Eelco Dolstra
1854f84e83
* Fix a few warnings.
2006-08-04 17:07:13 +00:00
Eelco Dolstra
dcff8cdb76
* Weird issue on Cygwin with the include file order.
2006-08-04 16:01:26 +00:00
Eelco Dolstra
339e6f0e1d
* `nix-env -q --xml': show query result in XML format for easier
...
automated processing.
2006-08-03 15:52:09 +00:00
Eelco Dolstra
0e267e2625
* `nix-instantiate --print-args': produce XML output so that the
...
result can be used more easily by scripts.
2006-08-03 14:49:57 +00:00
Eelco Dolstra
4750f6c5ed
* Simple class for writing XML files.
2006-08-03 13:21:21 +00:00
Eelco Dolstra
6ac237e242
* Show some progress.
2006-08-01 09:43:41 +00:00
Eelco Dolstra
4661282fde
* `nix-instantiate ... --arg NAME VALUE': allow arguments to be passed
...
to functions from the command line.
* nix-build: started removing backticks.
2006-07-28 16:03:28 +00:00
Eelco Dolstra
c11839d7b2
* `nix-instantiate --print-args': print out the valid values for
...
functions arguments that have a domain.
2006-07-28 14:01:29 +00:00
Eelco Dolstra
ca2238cf81
* Refactoring: get the selection path stuff out of getDerivations()
...
and put it into a separate function findAlongAttrPath().
2006-07-26 15:05:15 +00:00
Eelco Dolstra
2317d8f671
* `nix-instantiate --print-args' prints out the arguments of a
...
top-level function.
2006-07-25 21:21:50 +00:00
Eelco Dolstra
0e6dc72a7a
* Applied rbroek's patch from the branch at
...
https://svn.cs.uu.nl:12443/repos/trace/buildfarm-control/trunk/ext/nix/ ,
with some modifications. This allows `nix-env -qa' to show the
attribute path that can be used to unambiguously install a package
using `nix-env -i -A'. Example:
$ nix-env -f top-level/all-packages.nix -qaA subversion xorg-server
subversionWithJava subversion-1.2.3
subversion subversion-1.3.2
subversion14 subversion-1.4.0pre-rc1
xorg.xorgserver xorg-server-1.1.0
2006-07-25 16:40:38 +00:00
Eelco Dolstra
5744dd5480
* Support the --attr / -A flag in nix-env as well. So now we can do,
...
e.g.,
$ nix-env -i -A subversion xorg.xorgserver
The main advantage over using symbolic names is that using attribute
names is unambiguous and much, much faster.
2006-07-25 11:53:22 +00:00
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
Eelco Dolstra
9088dee9e2
* Some refactoring of the exception handling code so that we can catch
...
Nix expression assertion failures.
2006-03-08 14:11:19 +00:00