about summary refs log tree commit diff
path: root/src/libexpr
AgeCommit message (Collapse)AuthorFilesLines
2010-10-23 * Make Value smaller by not storing redundant PrimOp info.Eelco Dolstra2-25/+44
* Clear pointers in Values after overwriting them to make sure that no objects are kept alive unnecessarily.
2010-10-23 * Remove allocValues().Eelco Dolstra3-34/+12
2010-10-22 * In environments, store pointers to values rather than values. ThisEelco Dolstra2-35/+25
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 storesEelco Dolstra12-116/+135
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 Dolstra3-7/+25
2010-10-20 * Keep some more stats.Eelco Dolstra2-0/+12
2010-10-20 * Use the Boehm garbage collector to reclaim unused memory in the NixEelco Dolstra3-11/+20
expression evaluator.
2010-10-04 * Make sure that config.h is included before the system headers,Eelco Dolstra7-18/+16
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 * If std::tr1::unordered_set is unavailable, use std::set.Eelco Dolstra1-0/+9
2010-10-04 * Hack needed for GCC 4.3.2 on OpenSolaris.Eelco Dolstra1-1/+1
2010-08-27 * Oops - "null" was displayed as "true".Eelco Dolstra1-1/+1
2010-08-02 * Optimisation in the // operator: if one of the sets is empty, returnEelco Dolstra1-6/+8
the other set.
2010-08-02 * intersectAttrs: optimise for the case where the second set is largerEelco Dolstra1-7/+7
than the first set. (That's usually the case with callPackage.)
2010-06-10 * builtins.toXML: propagate the string context. This is a regressionEelco Dolstra3-5/+12
from the old ATerm-based evaluator.
2010-06-02 (no commit message)Eelco Dolstra1-0/+1
2010-06-01 * Turn build errors during evaluation into EvalErrors.Eelco Dolstra2-1/+6
2010-05-18 * The << operator on values should be const.Eelco Dolstra3-3/+3
2010-05-15 * Restore the __overrides feature that was lost somewhere in theEelco Dolstra2-3/+21
fast-eval branch.
2010-05-12 * Print attributes in sorted order.Eelco Dolstra1-2/+7
2010-05-12 * Implemented tryEval, the last missing primop in the fast-evalEelco Dolstra1-12/+6
branch. Also added a test for tryEval.
2010-05-07 (no commit message)Eelco Dolstra1-0/+2
2010-05-07 * Sync with the trunk.Eelco Dolstra3-21/+45
2010-05-07 * Store position info for inherited attributes.Eelco Dolstra4-25/+29
2010-05-07 * Updated addErrorContext.Eelco Dolstra1-6/+7
2010-05-07 * Keep track of the source positions of attributes.Eelco Dolstra7-76/+107
2010-05-06 * Store attribute positions in the AST and report duplicate attributeEelco Dolstra5-54/+53
errors with position info. * For all positions, use the position of the first character of the first token, rather than the last character of the first token plus one.
2010-04-23 * Don't need the test program anymore.Eelco Dolstra2-135/+0
2010-04-22 * Simplify the implementation of `with'. This gives a 7% speedup inEelco Dolstra4-30/+15
evaluating the NixOS system configuration.
2010-04-22 * Check for duplicate attribute names / function arguments. `makeEelco Dolstra2-44/+48
check' now succeeds :-) * An attribute set such as `{ foo = { enable = true; }; foo.port = 23; }' now parses. It was previously rejected, but I'm too lazy to implement the check. (The only reason to reject it is that the reverse, `{ foo.port = 23; foo = { enable = true; }; }', is rejected, which is kind of ugly.)
2010-04-22 * String equality tests should take the context into account. All theEelco Dolstra2-4/+12
evaluation test cases now succeed.
2010-04-21 * Fix the interpretation of ''\<character> in indented strings.Eelco Dolstra1-1/+1
2010-04-21 * Fixed builtins.genericClosure.Eelco Dolstra3-26/+62
2010-04-21 * Store user environment manifests as a Nix expression inEelco Dolstra5-40/+38
$out/manifest.nix rather than as an ATerm. (Hm, I thought I committed this two days ago...)
2010-04-19 * Drop the dependency on the ATerm library.Eelco Dolstra1-4/+2
2010-04-19 * Don't use the ATerm library for parsing/printing .drv files.Eelco Dolstra1-1/+1
2010-04-19 * Added parsing of manifests in ATerm format.Eelco Dolstra2-6/+15
2010-04-16 * Updated some more primops.Eelco Dolstra3-58/+37
2010-04-16 * Improve sharing a bit.Eelco Dolstra2-5/+8
2010-04-16 * Remove some redundant tests.Eelco Dolstra1-3/+3
2010-04-16 * In an nested `with' where the inner with is a variable (`with ...;Eelco Dolstra2-7/+14
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 ofEelco Dolstra7-34/+41
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 Dolstra2-5/+16
2010-04-14 * Implemented inherit.Eelco Dolstra4-29/+34
2010-04-14 * Fix builtins.Eelco Dolstra4-28/+30
2010-04-14 * Refactoring: move variable uses to a separate class.Eelco Dolstra4-35/+31
2010-04-14 * Implemented withs.Eelco Dolstra4-15/+38
2010-04-14 * After parsing, compute level/displacement pairs for each variableEelco Dolstra7-135/+250
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 * Remove more obsolete code.Eelco Dolstra2-40/+0
2010-04-14 * Change the semantics of "with" so that inner "withs" takeEelco Dolstra2-25/+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 symbolEelco Dolstra2-1/+8
table. This gives a 10% speed increase on `nix-instantiate /etc/nixos/nixos -A system --readonly-mode'.