Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2010-10-23 | * Make Value smaller by not storing redundant PrimOp info. | Eelco Dolstra | 1 | -9/+23 | |
* Clear pointers in Values after overwriting them to make sure that no objects are kept alive unnecessarily. | |||||
2010-10-23 | * Remove allocValues(). | Eelco Dolstra | 1 | -1/+0 | |
2010-10-22 | * In environments, store pointers to values rather than values. This | Eelco Dolstra | 1 | -9/+1 | |
improves GC effectiveness a bit more (because a live value doesn't keep other values in the environment plus the parent environments alive), and removes the need for copy nodes. | |||||
2010-10-22 | * Store Value nodes outside of attribute sets. I.e., Attr now stores | Eelco Dolstra | 1 | -2/+5 | |
a pointer to a Value, rather than the Value directly. This improves the effectiveness of garbage collection a lot: if the Value is stored inside the set directly, then any live pointer to the Value causes all other attributes in the set to be live as well. | |||||
2010-10-22 | * Make building against the Boehm GC a configure option. | Eelco Dolstra | 1 | -0/+6 | |
2010-10-20 | * Keep some more stats. | Eelco Dolstra | 1 | -0/+3 | |
2010-10-20 | * Use the Boehm garbage collector to reclaim unused memory in the Nix | Eelco Dolstra | 1 | -1/+4 | |
expression evaluator. | |||||
2010-10-04 | * Make sure that config.h is included before the system headers, | Eelco Dolstra | 1 | -2/+2 | |
because it defines _FILE_OFFSET_BITS. Without this, on OpenSolaris the system headers define it to be 32, and then the 32-bit stat() ends up being called with a 64-bit "struct stat", or vice versa. This also ensures that we get 64-bit file sizes everywhere. * Remove the redundant call to stat() in parseExprFromFile(). The file cannot be a symlink because that's the exit condition of the loop before. | |||||
2010-10-04 | * Hack needed for GCC 4.3.2 on OpenSolaris. | Eelco Dolstra | 1 | -1/+1 | |
2010-06-10 | * builtins.toXML: propagate the string context. This is a regression | Eelco Dolstra | 1 | -0/+2 | |
from the old ATerm-based evaluator. | |||||
2010-05-18 | * The << operator on values should be const. | Eelco Dolstra | 1 | -1/+1 | |
2010-05-15 | * Restore the __overrides feature that was lost somewhere in the | Eelco Dolstra | 1 | -1/+2 | |
fast-eval branch. | |||||
2010-05-07 | * Keep track of the source positions of attributes. | Eelco Dolstra | 1 | -1/+10 | |
2010-04-22 | * Simplify the implementation of `with'. This gives a 7% speedup in | Eelco Dolstra | 1 | -0/+1 | |
evaluating the NixOS system configuration. | |||||
2010-04-22 | * String equality tests should take the context into account. All the | Eelco Dolstra | 1 | -1/+1 | |
evaluation test cases now succeed. | |||||
2010-04-21 | * Fixed builtins.genericClosure. | Eelco Dolstra | 1 | -1/+1 | |
2010-04-21 | * Store user environment manifests as a Nix expression in | Eelco Dolstra | 1 | -1/+10 | |
$out/manifest.nix rather than as an ATerm. (Hm, I thought I committed this two days ago...) | |||||
2010-04-16 | * Updated some more primops. | Eelco Dolstra | 1 | -0/+1 | |
2010-04-15 | * Store lists as lists of pointers to values rather than as lists of | Eelco Dolstra | 1 | -2/+2 | |
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 | -1/+3 | |
2010-04-14 | * Fix builtins. | Eelco Dolstra | 1 | -0/+9 | |
2010-04-14 | * Refactoring: move variable uses to a separate class. | Eelco Dolstra | 1 | -1/+1 | |
2010-04-14 | * After parsing, compute level/displacement pairs for each variable | Eelco Dolstra | 1 | -8/+8 | |
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 | -2/+0 | |
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 | * Evaluate lets directly (i.e. without desugaring to `rec { attrs...; | Eelco Dolstra | 1 | -0/+1 | |
<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 | -3/+13 | |
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 | * Don't use ATerms for the abstract syntax trees anymore. Not | Eelco Dolstra | 1 | -13/+33 | |
finished yet. | |||||
2010-04-09 | * Keep more statistics about stack space usage. | Eelco Dolstra | 1 | -4/+12 | |
* Reduce stack space usage. | |||||
2010-04-07 | * Update autoCallFunction() and findAlongAttrPath(). | Eelco Dolstra | 1 | -28/+6 | |
2010-04-07 | * Implemented the primops necessary for generating the NixOS manual. | Eelco Dolstra | 1 | -7/+14 | |
2010-04-01 | * Improve sharing. | Eelco Dolstra | 1 | -0/+7 | |
2010-04-01 | * Make `derivation' lazy again for performance. It also turns out | Eelco Dolstra | 1 | -0/+8 | |
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 | * Handle string contexts. `nix-instantiate' can now correctly compute | Eelco Dolstra | 1 | -0/+1 | |
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 | -0/+2 | |
expressions. | |||||
2010-03-31 | * Implemented derivations. | Eelco Dolstra | 1 | -2/+7 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -1/+2 | |
2010-03-30 | * More operators / primops. | Eelco Dolstra | 1 | -14/+4 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -4/+6 | |
2010-03-30 | * More primops. | Eelco Dolstra | 1 | -0/+4 | |
2010-03-30 | * Implemented `map'. | Eelco Dolstra | 1 | -1/+12 | |
2010-03-30 | * Make `import' work. | Eelco Dolstra | 1 | -14/+24 | |
2010-03-29 | * Started integrating the new evaluator. | Eelco Dolstra | 1 | -10/+142 | |
2009-05-12 | * Allow unsafe (unspecified) comparisons between attrsets unless | Eelco Dolstra | 1 | -0/+2 | |
NIX_NO_UNSAFE_EQ is set, for now. | |||||
2007-01-13 | * Memoize strict evaluation. | Eelco Dolstra | 1 | -2/+1 | |
2006-10-16 | * Big cleanup of the semantics of paths, strings, contexts, string | Eelco Dolstra | 1 | -7/+16 | |
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'.) | |||||
2006-09-22 | * Builtin function `add' to add integers. | Eelco Dolstra | 1 | -0/+1 | |
* Put common test functions in tests/lang/lib.nix. | |||||
2006-09-04 | * Use a proper namespace. | Eelco Dolstra | 1 | -4/+12 | |
* Optimise header file usage a bit. * Compile the parser as C++. | |||||
2006-08-30 | * Okay, that's a bit harder than expected. | Eelco Dolstra | 1 | -2/+5 | |
2006-08-24 | * Refactoring: move strictEval to libexpr. | Eelco Dolstra | 1 | -0/+4 | |
2006-07-28 | * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passed | Eelco Dolstra | 1 | -3/+3 | |
to functions from the command line. * nix-build: started removing backticks. |