Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2010-04-16 | * Updated some more primops. | Eelco Dolstra | 1 | -10/+13 | |
2010-04-16 | * Improve sharing a bit. | Eelco Dolstra | 1 | -4/+7 | |
2010-04-16 | * Remove some redundant tests. | Eelco Dolstra | 1 | -3/+3 | |
2010-04-16 | * In an nested `with' where the inner with is a variable (`with ...; | Eelco Dolstra | 1 | -1/+7 | |
with someVar; ...'), the contents of the variable would be clobbered. (The attributes in the outer `with' were added to the variable.) | |||||
2010-04-15 | * Store lists as lists of pointers to values rather than as lists of | Eelco Dolstra | 1 | -16/+17 | |
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. | |||||
2010-04-14 | * Better stats. | Eelco Dolstra | 1 | -4/+13 | |
2010-04-14 | * Implemented inherit. | Eelco Dolstra | 1 | -18/+12 | |
2010-04-14 | * Fix builtins. | Eelco Dolstra | 1 | -11/+9 | |
2010-04-14 | * Refactoring: move variable uses to a separate class. | Eelco Dolstra | 1 | -29/+13 | |
2010-04-14 | * Implemented withs. | Eelco Dolstra | 1 | -14/+23 | |
2010-04-14 | * After parsing, compute level/displacement pairs for each variable | Eelco Dolstra | 1 | -36/+55 | |
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. | |||||
2010-04-14 | * Change the semantics of "with" so that inner "withs" take | Eelco Dolstra | 1 | -23/+2 | |
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. | |||||
2010-04-13 | * Use std::tr1::unordered_set instead of std::set for the symbol | Eelco Dolstra | 1 | -0/+1 | |
table. This gives a 10% speed increase on `nix-instantiate /etc/nixos/nixos -A system --readonly-mode'. | |||||
2010-04-13 | * Evaluate lets directly (i.e. without desugaring to `rec { attrs...; | Eelco Dolstra | 1 | -0/+25 | |
<let-body> = e; }.<let-body>). This prevents the unnecessary allocation of an attribute set. | |||||
2010-04-13 | * Use a symbol table to represent identifiers and attribute names | Eelco Dolstra | 1 | -19/+26 | |
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. | |||||
2010-04-12 | * Finished the ATerm-less parser. | Eelco Dolstra | 1 | -3/+30 | |
2010-04-12 | * Indented strings. | Eelco Dolstra | 1 | -0/+6 | |
2010-04-12 | * More missing constructs. | Eelco Dolstra | 1 | -69/+59 | |
2010-04-12 | * Don't use ATerms for the abstract syntax trees anymore. Not | Eelco Dolstra | 1 | -223/+244 | |
finished yet. | |||||
2010-04-12 | * Hack to support builderDefs expressions. | Eelco Dolstra | 1 | -1/+7 | |
2010-04-12 | * Doh. | Eelco Dolstra | 1 | -1/+1 | |
2010-04-09 | * Keep more statistics about stack space usage. | Eelco Dolstra | 1 | -39/+66 | |
* Reduce stack space usage. | |||||
2010-04-08 | * Remove a lot of dead code. | Eelco Dolstra | 1 | -492/+8 | |
2010-04-08 | * Fix blackholing. If evaluation fails due to an assertion failure, | Eelco Dolstra | 1 | -2/+8 | |
then the blackhole has to be removed to ensure that repeated evaluation of the same value gives an assertion failure again rather than an "infinite recursion" error. | |||||
2010-04-07 | * Update autoCallFunction() and findAlongAttrPath(). | Eelco Dolstra | 1 | -27/+37 | |
2010-04-07 | * Implemented the primops necessary for generating the NixOS manual. | Eelco Dolstra | 1 | -24/+28 | |
2010-04-06 | * In eval(), don't use the target value `v' as a temporary. | Eelco Dolstra | 1 | -13/+17 | |
Overwriting `v' breaks when the expression evaluation to an assertion failure or throw. | |||||
2010-04-01 | * Quick hack to make coerceToString work more or less correctly on | Eelco Dolstra | 1 | -1/+4 | |
nested lists. `nix-instantiate' can now evaluate the NixOS system derivation attribute correctly (in 2.1s on my laptop vs. 6.2s for the trunk). | |||||
2010-04-01 | * Improve sharing. | Eelco Dolstra | 1 | -3/+2 | |
2010-04-01 | * Functions are incomparable. | Eelco Dolstra | 1 | -6/+13 | |
2010-04-01 | * Make `derivation' lazy again for performance. It also turns out | Eelco Dolstra | 1 | -9/+1 | |
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. | |||||
2010-03-31 | * Fixed the trace primop and path comparison. | Eelco Dolstra | 1 | -0/+3 | |
* Removed exprToString and stringToExpr because there is no ATerm representation to work on anymore (and exposing the internals of the evaluator like this is not a good idea anyway). | |||||
2010-03-31 | * Handle string contexts. `nix-instantiate' can now correctly compute | Eelco Dolstra | 1 | -63/+25 | |
the `firefoxWrapper' attribute in Nixpkgs, and it's about 3 times faster than the trunk :-) | |||||
2010-03-31 | * Cache parse trees to prevent repeated parsing of imported Nix | Eelco Dolstra | 1 | -1/+8 | |
expressions. | |||||
2010-03-31 | * Implemented derivations. | Eelco Dolstra | 1 | -10/+31 | |
2010-03-31 | * Implemented `rec { inherit ...; }'. | Eelco Dolstra | 1 | -0/+14 | |
2010-03-31 | * Compare nulls. | Eelco Dolstra | 1 | -2/+5 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -4/+9 | |
2010-03-30 | * More operators / primops. | Eelco Dolstra | 1 | -143/+105 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -128/+32 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -8/+24 | |
2010-03-30 | * Implemented `map'. | Eelco Dolstra | 1 | -100/+110 | |
2010-03-30 | * Make `import' work. | Eelco Dolstra | 1 | -33/+105 | |
2010-03-29 | * Started integrating the new evaluator. | Eelco Dolstra | 1 | -19/+545 | |
2010-03-25 | * Simplify @-patterns: only `{attrs}@name' or `name@{attrs}' are now | Eelco Dolstra | 1 | -10/+5 | |
allowed. So `name1@name2', `{attrs1}@{attrs2}' and so on are now no longer legal. This is no big loss because they were not useful anyway. This also changes the output of builtins.toXML for @-patterns slightly. | |||||
2009-05-12 | * Allow unsafe (unspecified) comparisons between attrsets unless | Eelco Dolstra | 1 | -1/+7 | |
NIX_NO_UNSAFE_EQ is set, for now. | |||||
2009-05-11 | * Disallow equality tests between attribute sets. This was always | Eelco Dolstra | 1 | -6/+42 | |
broken, but now the evaluator checks for it to prevent Nix expressions from relying on undefined behaviour. Equality tests are implemented using a shallow pointer equality test between ATerms. However, because attribute sets are lazy and contain position information, this can give false positives. For instance, previously let y = {x = 1;}; in y == y evaluated to true, while the equivalent expression {x = 1;} == {x = 1;} evaluated to false. So disallow these tests for now. (Eventually we may want to implement deep equality tests for attribute sets, like lib.eqStrict.) * Idem: disallow comparisons between functions. * Implemented deep comparisons of lists. This had the same problem as attribute sets - the elements in the list weren't evaluated. For instance, ["xy"] == [("x" + "y")] evaluated to false. Now it works properly. | |||||
2008-08-26 | * Require that __overrides is defined as a non-recursive attribute | Eelco Dolstra | 1 | -1/+1 | |
(which means it can only be defined via "inherit"), otherwise we get scoping bugs, since __overrides can't be recursive (or at least, it would be hard). | |||||
2008-08-14 | Fixing an obvious typo in override code. I do not know whether it works ↵ | Michael Raskin | 1 | -1/+1 | |
correctly after the change, but at least it ca nbe compiled now. | |||||
2008-08-14 | * Another experimental feature: a way to truly override attributes in | Eelco Dolstra | 1 | -2/+24 | |
a rec. This will be very useful to allow end-user customisation of all-packages.nix, for instance globally overriding GCC or some other dependency. The // operator doesn't cut it: you could replace the "gcc" attribute, but all other attributes would continue to reference the original value due to the substitution semantics of rec. The syntax is a bit hacky but this is to allow backwards compatibility. |