Eelco Dolstra
f491ae97d4
* Inline some functions and get rid of the indirection through
...
EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate
/etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
2012-02-04 13:50:25 +00:00
Eelco Dolstra
9fe24c5a0d
* Don't create thunks for simple constants (integers, strings, paths)
...
and allocate them only once.
* Move Value and related functions into value.hh.
2012-01-07 17:26:33 +00:00
Eelco Dolstra
54945a2950
* Refactoring: move parseExprFromFile() and parseExprFromString() into
...
the EvalState class.
2011-08-06 13:02:55 +00:00
Ludovic Courtès
f1462c208b
Use $BDW_GC_LIBS instead of a custom variable.
2011-02-09 21:23:13 +00:00
Eelco Dolstra
41c45a9b31
* Store Value nodes outside of attribute sets. I.e., Attr now stores
...
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 14:47:42 +00:00
Eelco Dolstra
64c3325b0b
* Make building against the Boehm GC a configure option.
2010-10-22 13:39:15 +00:00
Eelco Dolstra
e879a0371b
* Use the Boehm garbage collector to reclaim unused memory in the Nix
...
expression evaluator.
2010-10-20 11:38:30 +00:00
Eelco Dolstra
2be6118f4c
* Don't need the test program anymore.
2010-04-23 09:09:32 +00:00
Eelco Dolstra
f3b8833a48
* Drop the dependency on the ATerm library.
2010-04-19 14:51:58 +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
9a64454faa
* expr-to-xml -> value-to-xml.
2010-04-07 13:59:45 +00:00
Eelco Dolstra
0910ae9568
* Start of an evaluator that uses call-by-need (with thunk updating)
...
instead of (memoised) call-by-name.
2010-03-23 17:30:50 +00:00
Eelco Dolstra
327a232c85
* Remove support for old (before Nix 0.12pre12020) databases.
2009-11-06 01:15:44 +00:00
Eelco Dolstra
d4753c944f
2009-03-06 11:01:45 +00:00
Eelco Dolstra
d567baabbd
* Export the nix-env derivation name parsing and version comparison
...
logic through the `parseDrvName' and `compareVersions' primops.
This will allow expressions to easily check whether some dependency
is a specific needed version or falls in some version range. See
tests/lang/eval-okay-versions.nix for examples.
2008-07-01 10:10:32 +00:00
Eelco Dolstra
e418976107
* Option --argstr for passing string arguments easily. (NIX-75)
2007-01-14 12:32:44 +00:00
Eelco Dolstra
bafc1690fc
* Move setuid stuff to libutil.
...
* Install libexpr header files.
2006-09-04 22:55:28 +00:00
Eelco Dolstra
e5a6c09b12
* Install header files in /nix/include/nix.
2006-09-04 22:41:36 +00:00
Eelco Dolstra
e3ce954582
* Compile the lexer as C++ code. Remove all the redundant C/C++
...
marshalling code.
2006-09-04 21:36:15 +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
aab8812732
* Store the Nix libraries in ${libdir}/nix instead of ${libdir}.
2006-09-04 15:12:24 +00:00
Eelco Dolstra
f793caf936
* Refactoring.
2006-08-24 14:16:55 +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
b5988004d6
* Support for srcdir != builddir (NIX-41).
2006-05-12 11:47:45 +00:00
Eelco Dolstra
39f50db731
* Refactoring: move derivation evaluation to libexpr.
2006-02-08 13:21:16 +00:00
Eelco Dolstra
221c79013f
* Turn off build hooks in nix-push because of an impurity (NIX-21).
2005-10-29 18:17:45 +00:00
Eelco Dolstra
4c20a08293
* Build dynamic libraries.
2005-07-22 14:52:45 +00:00
Eelco Dolstra
f797cb5855
* Revive and update the SDF grammar for Nix expressions.
2005-07-16 14:07:35 +00:00
Eelco Dolstra
a85d1849af
* Missing dependency; only a problem when building from Subversion.
2005-01-27 19:00:48 +00:00
Eelco Dolstra
a69534fc21
* Drop ATmake / ATMatcher also in handling store expressions.
2004-10-29 11:22:49 +00:00
Eelco Dolstra
c7bea941b0
* Oops, I did it again.
2004-10-27 10:05:51 +00:00
Eelco Dolstra
210ab0296d
* Add file to `make dist'.
2004-10-27 00:02:31 +00:00
Eelco Dolstra
5fe9222b36
* Don't use ATmake / ATmatch anymore, nor the ATMatcher class.
...
Instead we generate data bindings (build and match functions) for
the constructors specified in `constructors.def'. In particular
this removes the conversions between AFuns and strings, and Nix
expression evaluation now seems 3 to 4 times faster.
2004-10-26 22:54:26 +00:00
Eelco Dolstra
bbfdd64741
* Allow primops with more that 1 arguments.
2004-08-04 10:59:20 +00:00
Eelco Dolstra
0dfdafdf6d
* Allow linking against an external Berkeley DB / ATerm library.
2004-02-16 16:37:16 +00:00
Eelco Dolstra
47c003cb59
* Doh!
2004-01-30 17:14:08 +00:00
Eelco Dolstra
619f20775d
* Parser numbers again.
...
* Include missing files in distributions.
2004-01-30 17:06:03 +00:00
Eelco Dolstra
c625718513
* Detect flex and bison; updated the manual.
2004-01-30 16:32:14 +00:00
Eelco Dolstra
c5baaafae6
* Replaced the SDF parser by a substantially faster Bison/Flex
...
parser (roughly 80x faster).
The absolutely latest version of Bison (1.875c) is required for
reentrant GLR support, as well as a recent version of Flex (say,
2.5.31). Note that most Unix distributions ship with the
prehistoric Flex 2.5.4, which doesn't support reentrancy.
2004-01-30 15:21:42 +00:00
Eelco Dolstra
66c115ef5f
* More `make dist' fixes.
2003-11-25 13:01:21 +00:00
Eelco Dolstra
fd7ac09f10
* Refactoring (step 2).
2003-11-19 12:03:01 +00:00
Eelco Dolstra
ac68840e79
* Refactoring: put the Nix expression evaluator in its own library so
...
that it can be used by multiple programs.
2003-11-19 11:35:41 +00:00