about summary refs log tree commit diff
path: root/src/libexpr/attr-path.cc
AgeCommit message (Collapse)AuthorFilesLines
2013-09-03 Work on Values instead of ExprsEelco Dolstra1-17/+18
This prevents some duplicate evaluation in nix-env and nix-instantiate. Also, when traversing ~/.nix-defexpr, only read regular files with the extension .nix. Previously it was reading files like .../channels/binary-caches/<name>. The only reason this didn't cause problems is pure luck (namely, <name> shadows an actual Nix expression, the binary-caches files happen to be syntactically valid Nix expressions, and we iterate over the directory contents in just the right order).
2013-09-02 Get rid of a signedness warningEelco Dolstra1-1/+1
2013-09-02 Fix whitespaceEelco Dolstra1-3/+3
2012-09-19 Templatise tokenizeString()Eelco Dolstra1-1/+1
2012-03-05 Fix compilation on FreeBSDEelco Dolstra1-0/+1
http://hydra.nixos.org/build/2213576 Not sure why compilation doesn't fail on other platforms...
2010-10-24 * Store attribute sets as a vector instead of a map (i.e. a red-blackEelco Dolstra1-1/+1
tree). This saves a lot of memory. The vector should be sorted so that names can be looked up using binary search, but this is not the case yet. (Surprisingly, looking up attributes using linear search doesn't have a big impact on performance.) Memory consumption for $ nix-instantiate /etc/nixos/nixos/tests -A bittorrent.test --readonly-mode on x86_64-linux with GC enabled is now 185 MiB (compared to 946 MiB on the trunk).
2010-10-22 * Store Value nodes outside of attribute sets. I.e., Attr now storesEelco Dolstra1-2/+3
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-05-07 * Keep track of the source positions of attributes.Eelco Dolstra1-1/+1
2010-04-15 * Store lists as lists of pointers to values rather than as lists ofEelco Dolstra1-1/+1
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-13 * Use a symbol table to represent identifiers and attribute namesEelco Dolstra1-1/+1
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. NotEelco Dolstra1-3/+2
finished yet.
2010-04-07 * Update autoCallFunction() and findAlongAttrPath().Eelco Dolstra1-33/+21
2010-03-29 * Started integrating the new evaluator.Eelco Dolstra1-0/+2
2007-01-13 * Cleanup.Eelco Dolstra1-1/+1
2006-09-04 * Use a proper namespace.Eelco Dolstra1-0/+7
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-23 * Pass the autoArgs to findAlongAttrPath so that "nix-instantiateEelco Dolstra1-2/+3
foo.nix -A attr --arg name value" will work if (name, value) is needed in the evaluation leading up to "attr".
2006-07-28 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra1-1/+1
to functions from the command line. * nix-build: started removing backticks.
2006-07-26 * Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra1-0/+74
and put it into a separate function findAlongAttrPath().