Age | Commit message (Collapse) | Author |
|
evaluating the NixOS system configuration.
|
|
evaluation test cases now succeed.
|
|
|
|
$out/manifest.nix rather than as an ATerm.
(Hm, I thought I committed this two days ago...)
|
|
|
|
values. This improves sharing and gives another speed up.
Evaluation of the NixOS system attribute is now almost 7 times
faster than the old evaluator.
|
|
|
|
|
|
|
|
use site, allowing environments to be stores as vectors of values
rather than maps. This should speed up evaluation and reduce the
number of allocations.
|
|
precedence, i.e. `with {x=1;}; with {x=2;}; x' evaluates to 2'.
This has a simpler implementation and seems more natural. There
doesn't seem to be any code in Nixpkgs or NixOS that relies on the
old behaviour.
|
|
<let-body> = e; }.<let-body>). This prevents the unnecessary
allocation of an attribute set.
|
|
efficiently. The symbol table ensures that there is only one copy
of each symbol, thus allowing symbols to be compared efficiently
using a pointer equality test.
|
|
finished yet.
|
|
* Reduce stack space usage.
|
|
|
|
|
|
|
|
that there are some places in Nixpkgs (php_configurable /
composableDerivation, it seems) that call `derivation' with
incorrect arguments (namely, the `name' attribute missing) but get
away with it because of laziness.
|
|
the `firefoxWrapper' attribute in Nixpkgs, and it's about 3 times
faster than the trunk :-)
|
|
expressions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NIX_NO_UNSAFE_EQ is set, for now.
|
|
|
|
concatenation and string coercion. This was a big mess (see
e.g. NIX-67). Contexts are now folded into strings, so that they
don't cause evaluation errors when they're not expected. The
semantics of paths has been clarified (see nixexpr-ast.def).
toString() and coerceToString() have been merged.
Semantic change: paths are now copied to the store when they're in a
concatenation (and in most other situations - that's the
formalisation of the meaning of a path). So
"foo " + ./bla
evaluates to "foo /nix/store/hash...-bla", not "foo
/path/to/current-dir/bla". This prevents accidental impurities, and
is more consistent with the treatment of derivation outputs, e.g.,
`"foo " + bla' where `bla' is a derivation. (Here `bla' would be
replaced by the output path of `bla'.)
|
|
* Put common test functions in tests/lang/lib.nix.
|
|
* Optimise header file usage a bit.
* Compile the parser as C++.
|
|
|
|
|
|
to functions from the command line.
* nix-build: started removing backticks.
|
|
and put it into a separate function findAlongAttrPath().
|
|
|
|
functions as pure, which might improve performance a bit.
|
|
configureFlags = "--with-freetype2-library="
+ freetype + "/lib";
|
|
the `recurseForDerivations' attribute set to `true'.
|
|
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
|
|
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.
|
|
Nix expression assertion failures.
|
|
[1 2 3] ++ [4 5 6] => [1 2 3 4 5 6]
|
|
permission to the Nix store or database. E.g., `nix-env -qa' will
work, but `nix-env -qas' won't (the latter needs DB access). The
option `--readonly-mode' forces this mode; otherwise, it's only
activated when the database cannot be opened.
|
|
|
|
* Various performance improvements in the evaluator.
* Do not link against unused (and missing!) libraries (-lsglr, etc.).
|
|
that it can be used by multiple programs.
|