about summary refs log tree commit diff
path: root/src/libexpr
AgeCommit message (Collapse)AuthorFilesLines
2006-08-23 * A new primop `builtins', which returns an attribute set containingEelco Dolstra1-0/+26
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-16 * Handle carriage returns. Fixes NIX-53.Eelco Dolstra2-5/+14
2006-08-09 * Print a warning that the subpath operator (~) is deprecated.Eelco Dolstra1-0/+5
2006-08-04 * Fix a few warnings.Eelco Dolstra4-5/+5
2006-07-28 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra5-15/+23
to functions from the command line. * nix-build: started removing backticks.
2006-07-28 * `nix-instantiate --print-args': print out the valid values forEelco Dolstra2-0/+26
functions arguments that have a domain.
2006-07-26 * Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra7-102/+150
and put it into a separate function findAlongAttrPath().
2006-07-25 * `nix-instantiate --print-args' prints out the arguments of aEelco Dolstra1-3/+3
top-level function.
2006-07-25 * Applied rbroek's patch from the branch atEelco Dolstra2-15/+30
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-24 * When there is a domain check, we have to evaluate the argument.Eelco Dolstra1-0/+1
Can't be lazy!
2006-07-24 * New language feature: domain checks, which check whether a functionEelco Dolstra3-13/+33
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 * Refactoring to support domain checks.Eelco Dolstra7-26/+33
2006-07-19 * Better error messages (especially wrt types).Eelco Dolstra7-62/+96
2006-07-11 * Doh! Of couse we cannot memoize across scopes.Eelco Dolstra1-4/+8
2006-05-30 * Don't use badTerm, it gives awful error messages.Eelco Dolstra1-1/+2
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra1-9/+8
2006-05-11 * 64-bit compatibility fixes (for problems revealed by building on an AthlonEelco Dolstra1-2/+2
64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully.
2006-05-08 * Allow function argument default values to refer to other argumentsEelco Dolstra1-35/+40
of the function. Implements NIX-45.
2006-05-08 * Show evaluation stats when NIX_SHOW_STATS=1.Eelco Dolstra1-1/+4
2006-05-04 * Use the new ATermMap.Eelco Dolstra6-223/+71
2006-05-02 * Optimise null-ary term builders. Also declare all term builderEelco Dolstra2-6/+2
functions as pure, which might improve performance a bit.
2006-05-02 * Use a linked list of substitutions. This reduces the amount ofEelco Dolstra4-19/+54
copying.
2006-05-02 * Removed a bunch of ATreverses.Eelco Dolstra1-1/+1
2006-05-02 * Huge reduction in memory use (2/3 or so on large nix-env -qasEelco Dolstra2-9/+11
operations): share ATermMaps between DrvInfos.
2006-05-02 * Memory reduction: replaced expensive calls to ATmakeApplList byEelco Dolstra1-11/+16
ATmakeApplArray, and got rid of ATreverse in substitute().
2006-05-02 * Some preliminaries towards NIX-45.Eelco Dolstra3-10/+35
2006-05-01 * Disallow unescaped $ in string literals.Eelco Dolstra1-4/+1
2006-05-01 * String interpolation. Expressions likeEelco Dolstra5-13/+78
"--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 * Allow string concatenations involving derivations, e.g.,Eelco Dolstra5-14/+125
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-24 * Print a more useful stack trace when an error occurs deep in theEelco Dolstra1-4/+10
derivation dependency graph.
2006-03-23 * In `nix-env', look for derivations inside attribute sets that haveEelco Dolstra2-1/+16
the `recurseForDerivations' attribute set to `true'.
2006-03-23 * Hm.Eelco Dolstra1-2/+1
2006-03-10 * `nix-env -qa --description' shows human-readable descriptions ofEelco Dolstra4-23/+62
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 * In theory, this should reduce the number of ATermMapEelco Dolstra2-3/+4
re-allocations.
2006-03-09 * Regression: semantics of the result of getDerivation() changed.Eelco Dolstra1-2/+2
2006-03-09 * Big speedup (factor > 2.5) in all nix-env operations that do actualEelco Dolstra2-3/+14
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-08 * When obtaining derivations from Nix expressions, ignore allEelco Dolstra2-35/+57
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 * Some refactoring of the exception handling code so that we can catchEelco Dolstra3-17/+29
Nix expression assertion failures.
2006-03-06 * GCC 4.1 compatibility.Eelco Dolstra1-1/+1
2006-03-06 * `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra1-0/+1
will be built or substituted.
2006-02-13 * Override YYMALLOC and YYFREE so that we can call AT[un]protectMemoryEelco Dolstra1-0/+20
on the Bison parse stack. Otherwise, a garbage collect during parsing could lead to a crash.
2006-02-10 * In nix-instantiate, allow us to specify a "path" to theEelco Dolstra2-27/+76
derivation(s) we're interested, e.g., $ nix-instantiate ./all-packages.nix --attr xlibs.libX11 List elements can also be selected: $ nix-instantiate ./build-for-release.nix --attr 0.subversion This allows a non-ambiguous specification of a derivation. Of course, this should also be added to nix-env and nix-build.
2006-02-08 * When querying all derivations, filter out syntactically equal derivations.Eelco Dolstra1-12/+36
2006-02-08 * When evaluating, automatically call functions with default arguments.Eelco Dolstra1-4/+23
2006-02-08 * Refactoring: move derivation evaluation to libexpr.Eelco Dolstra3-1/+133
2005-11-04 * Memoise checkVarDefs since internally produced terms (i.e., not theEelco Dolstra1-9/+24
result of parsing) can have very heavy sharing, causing exponential complexity if we naively recurse into them. ATerms are graphs, not trees!
2005-10-29 * Turn off build hooks in nix-push because of an impurity (NIX-21).Eelco Dolstra1-1/+1
2005-09-14 * List concatenation must be right-associative for efficiency.Eelco Dolstra1-1/+1
2005-09-13 * Missing #include.Eelco Dolstra1-0/+2
2005-08-14 * `dependencyClosure' now allows a search path, e.g.,Eelco Dolstra1-20/+69
dependencyClosure { ... searchPath = [ ../foo ../bar ]; ... } * Primop `dirOf' to return the directory part of a path (e.g., dirOf /a/b/c == /a/b). * Primop `relativise' (according to Webster that's a real word!) that given paths A and B returns a string representing path B relative path to A; e.g., relativise /a/b/c a/b/x/y => "../x/y".