about summary refs log tree commit diff
path: root/src/libexpr/symbol-table.hh
AgeCommit message (Collapse)AuthorFilesLines
2014-05-26 Use std::unordered_setEelco Dolstra1-9/+2
2013-10-24 Rename "attribute sets" to "sets"Eelco Dolstra1-5/+4
We don't have any other kind of sets so calling them attribute sets is unnecessarily verbose.
2013-10-08 printStats(): Print the size of the symbol table in bytesEelco Dolstra1-0/+2
2013-05-16 Show function names in error messagesEelco Dolstra1-4/+9
Functions in Nix are anonymous, but if they're assigned to a variable/attribute, we can use the variable/attribute name in error messages, e.g. while evaluating `concatMapStrings' at `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/strings.nix:18:25': ...
2012-07-18 Use "#pragma once" to prevent repeated header file inclusionEelco Dolstra1-4/+1
2010-10-24 * Store attribute sets as a vector instead of a map (i.e. a red-blackEelco Dolstra1-0/+2
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-04 * If std::tr1::unordered_set is unavailable, use std::set.Eelco Dolstra1-0/+9
2010-04-13 * Use std::tr1::unordered_set instead of std::set for the symbolEelco Dolstra1-1/+7
table. This gives a 10% speed increase on `nix-instantiate /etc/nixos/nixos -A system --readonly-mode'.
2010-04-13 * Use a symbol table to represent identifiers and attribute namesEelco Dolstra1-0/+75
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.