Eelco Dolstra
71dfe4b90b
* Sync with the trunk.
2010-10-04 11:44:47 +00:00
Eelco Dolstra
4aa9245083
* Hack needed for GCC 4.3.2 on OpenSolaris.
2010-10-04 10:51:16 +00:00
Eelco Dolstra
bf87cc44b4
* Sync with the trunk.
2010-06-21 07:55:38 +00:00
Eelco Dolstra
f16fe2af8d
* builtins.toXML: propagate the string context. This is a regression
...
from the old ATerm-based evaluator.
2010-06-10 10:29:50 +00:00
Eelco Dolstra
b92a2e5cc2
* Sync with the trunk.
2010-05-20 12:36:03 +00:00
Eelco Dolstra
93cd5a4a13
* The << operator on values should be const.
2010-05-18 10:36:37 +00:00
Eelco Dolstra
32539e41d5
* Sync with trunk.
2010-05-16 17:16:00 +00:00
Eelco Dolstra
b2235d81d1
* Restore the __overrides feature that was lost somewhere in the
...
fast-eval branch.
2010-05-15 08:10:12 +00:00
Eelco Dolstra
aa45027818
* Sync with the trunk.
2010-05-12 22:13:09 +00:00
Eelco Dolstra
e2d5e40f4f
* Keep track of the source positions of attributes.
2010-05-07 12:11:05 +00:00
Eelco Dolstra
0bc468f195
* Simplify the implementation of `with'. This gives a 7% speedup in
...
evaluating the NixOS system configuration.
2010-04-22 15:08:09 +00:00
Eelco Dolstra
2d7636529f
* String equality tests should take the context into account. All the
...
evaluation test cases now succeed.
2010-04-22 09:54:11 +00:00
Eelco Dolstra
0777448ca6
* Fixed builtins.genericClosure.
2010-04-21 15:57:11 +00:00
Eelco Dolstra
fe2d869e04
* Store user environment manifests as a Nix expression in
...
$out/manifest.nix rather than as an ATerm.
(Hm, I thought I committed this two days ago...)
2010-04-21 15:08:58 +00:00
Eelco Dolstra
5c31995bb8
* Updated some more primops.
2010-04-16 15:13:47 +00:00
Eelco Dolstra
04c4bd3624
* Store lists as lists of pointers to values rather than as lists of
...
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-15 00:37:36 +00:00
Eelco Dolstra
e41b5828db
* Better stats.
2010-04-14 23:48:46 +00:00
Eelco Dolstra
267dc693d2
* Fix builtins.
2010-04-14 22:59:39 +00:00
Eelco Dolstra
81de12bc8f
* Refactoring: move variable uses to a separate class.
2010-04-14 15:14:23 +00:00
Eelco Dolstra
9985230c00
* After parsing, compute level/displacement pairs for each variable
...
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 14:42:32 +00:00
Eelco Dolstra
85d13c8f93
* Change the semantics of "with" so that inner "withs" take
...
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-14 08:37:08 +00:00
Eelco Dolstra
7d47498b5e
* Evaluate lets directly (i.e. without desugaring to `rec { attrs...;
...
<let-body> = e; }.<let-body>). This prevents the unnecessary
allocation of an attribute set.
2010-04-13 13:42:25 +00:00
Eelco Dolstra
ac1e8f40d4
* Use a symbol table to represent identifiers and attribute names
...
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-13 12:25:42 +00:00
Eelco Dolstra
4d6ad5be17
* Don't use ATerms for the abstract syntax trees anymore. Not
...
finished yet.
2010-04-12 18:30:11 +00:00
Eelco Dolstra
f3dc7ab877
* Keep more statistics about stack space usage.
...
* Reduce stack space usage.
2010-04-09 12:00:49 +00:00
Eelco Dolstra
af2a372bb0
* Update autoCallFunction() and findAlongAttrPath().
2010-04-07 15:47:06 +00:00
Eelco Dolstra
fc92244ba8
* Implemented the primops necessary for generating the NixOS manual.
2010-04-07 13:55:46 +00:00
Eelco Dolstra
7b851915bf
* Improve sharing.
2010-04-01 12:04:57 +00:00
Eelco Dolstra
71f026292b
* Make `derivation' lazy again for performance. It also turns out
...
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-04-01 09:55:57 +00:00
Eelco Dolstra
979f163615
* Handle string contexts. `nix-instantiate' can now correctly compute
...
the `firefoxWrapper' attribute in Nixpkgs, and it's about 3 times
faster than the trunk :-)
2010-03-31 19:52:29 +00:00
Eelco Dolstra
55e207b2dc
* Cache parse trees to prevent repeated parsing of imported Nix
...
expressions.
2010-03-31 16:14:32 +00:00
Eelco Dolstra
3d94be61ea
* Implemented derivations.
2010-03-31 15:38:03 +00:00
Eelco Dolstra
7f19e03c65
* More primops.
2010-03-30 22:39:48 +00:00
Eelco Dolstra
47df476daa
* More operators / primops.
2010-03-30 18:05:54 +00:00
Eelco Dolstra
c9170be2bd
* More primops.
2010-03-30 15:18:20 +00:00
Eelco Dolstra
c3aa615a5f
* More primops.
2010-03-30 14:39:27 +00:00
Eelco Dolstra
5b72d8a749
* Implemented `map'.
2010-03-30 13:47:59 +00:00
Eelco Dolstra
d78a05ab40
* Make `import' work.
2010-03-30 09:22:33 +00:00
Eelco Dolstra
31428c3a06
* Started integrating the new evaluator.
2010-03-29 14:37:56 +00:00
Eelco Dolstra
594eaddd11
* When using the included sqlite/aterm libraries, build with
...
--enable-shared.
* In libutil/libstore/libexpr etc., link against sqlite and aterm.
* Some more header file hygiene.
2010-03-02 15:58:13 +00:00
Eelco Dolstra
50d11b90ca
* Allow unsafe (unspecified) comparisons between attrsets unless
...
NIX_NO_UNSAFE_EQ is set, for now.
2009-05-12 11:06:24 +00:00
Eelco Dolstra
05879db628
* Memoize strict evaluation.
2007-01-13 15:41:54 +00:00
Eelco Dolstra
d7efd76394
* Big cleanup of the semantics of paths, strings, contexts, string
...
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-10-16 15:55:34 +00:00
Eelco Dolstra
2ab4bc44c7
* Builtin function `add' to add integers.
...
* Put common test functions in tests/lang/lib.nix.
2006-09-22 15:29:21 +00:00
Eelco Dolstra
75068e7d75
* Use a proper namespace.
...
* Optimise header file usage a bit.
* Compile the parser as C++.
2006-09-04 21:06:23 +00:00
Eelco Dolstra
f93f7b75be
* Okay, that's a bit harder than expected.
2006-08-30 13:10:04 +00:00
Eelco Dolstra
943ab38a0d
* Refactoring: move strictEval to libexpr.
2006-08-24 13:39:22 +00:00
Eelco Dolstra
4661282fde
* `nix-instantiate ... --arg NAME VALUE': allow arguments to be passed
...
to functions from the command line.
* nix-build: started removing backticks.
2006-07-28 16:03:28 +00:00
Eelco Dolstra
ca2238cf81
* Refactoring: get the selection path stuff out of getDerivations()
...
and put it into a separate function findAlongAttrPath().
2006-07-26 15:05:15 +00:00
Eelco Dolstra
4f3725b167
* Better error messages (especially wrt types).
2006-07-19 15:36:15 +00:00