Commit graph

366 commits

Author SHA1 Message Date
Eelco Dolstra
3e5a019a07 * Some utility functions for working with ATerms. 2003-11-16 17:46:31 +00:00
Eelco Dolstra
06ae269c7c * Do not filter when parsing. This is much faster.
* Add some rejections and lexical restrictions to the grammar to make
  this work.
2003-11-10 11:00:38 +00:00
Eelco Dolstra
15801c88fa * Turned the msg() and debug() functions into macros, since they
turned out to be a huge performance bottleneck (the text to printed
  would always be evaluated, even when it was above the verbosity
  level).  This reduces fix-ng execution time by over 50%.

  gprof(1) is very useful. :-)
2003-11-09 10:35:45 +00:00
Eelco Dolstra
d2e3a132fe * Pass CFLAGS to the subpackages. 2003-11-09 10:31:56 +00:00
Eelco Dolstra
90e26d392c * Allow null in derivation bindings. 2003-11-06 15:24:31 +00:00
Eelco Dolstra
cfaea07444 * `null' is a nullary primop. 2003-11-06 14:41:49 +00:00
Eelco Dolstra
569e7940f8 * Allow `+' in path names. 2003-11-06 14:41:29 +00:00
Eelco Dolstra
fa18f1f184 * Assertions.
* Logical operators (!, &&, ||, ->).
2003-11-05 16:27:40 +00:00
Eelco Dolstra
e17e95a828 * Print a shared textual ATerm if the term if very large. Due to
substitutions, Fix terms are very large when printed as trees (in 
  memory, they are quite compact due to sharing).
2003-11-05 16:20:57 +00:00
Eelco Dolstra
80bb477cc4 * Default function arguments. 2003-11-05 15:34:12 +00:00
Eelco Dolstra
0690c1c9c0 * Work around problems with the ATerm library.
The ATerm library doesn't search the heap for pointers to ATerms
  when garbage collecting.  As a result, C++ containers such as
  `map<ATerm, ATerm>' will cause pointer to be hidden from the garbage
  collector, causing crashes.  Instead, we now use ATermTables.
2003-11-03 20:30:40 +00:00
Eelco Dolstra
ff31324278 * Ignore options passed to the aterm library. 2003-11-03 18:21:53 +00:00
Eelco Dolstra
e2655aa332 * Shorter list syntax ([a b c] instead of [a, b, c]). 2003-11-03 11:59:35 +00:00
Eelco Dolstra
ad0976f8d5 * Grammar changes. Attributes in attribute sets are now delimited with
semicolons instead of comma's.  Final semicolon in the set is optional.
2003-11-03 10:21:30 +00:00
Eelco Dolstra
40986312bb * Boolean constants. 2003-11-02 17:36:15 +00:00
Eelco Dolstra
adf9a45469 * Primops: baseNameOf, toString. 2003-11-02 16:31:35 +00:00
Eelco Dolstra
c8268ca991 * Fast builds. 2003-11-01 23:29:02 +00:00
Eelco Dolstra
7de1b2a698 * Print the exit code of the builder. 2003-11-01 21:11:52 +00:00
Eelco Dolstra
1610444671 * Conditions, string equality. 2003-11-01 19:15:08 +00:00
Eelco Dolstra
1b4184ccbb * Let syntax. 2003-11-01 19:10:41 +00:00
Eelco Dolstra
a2a9bacd82 * Filter the substitution list when descending into a recursive
attribute set.
2003-11-01 19:10:19 +00:00
Eelco Dolstra
449411e511 * Typo fix. 2003-10-31 19:20:03 +00:00
Eelco Dolstra
9210d4d530 * Working evaluator.
* Mutually recursive attribute sets.
* Print evaluator efficiency statistics.
2003-10-31 17:09:31 +00:00
Eelco Dolstra
f1c1a3c97f * Allow empty attribute (argument) sets. 2003-10-31 12:21:01 +00:00
Eelco Dolstra
7db08cc924 * Use SGparseString() instead of SGparseFile() because the latter is
buggy.  It fails to clear an internal variable (SG_textIndex)
  between invocations, so it can be called only once during a program
  execution.
2003-10-31 11:22:56 +00:00
Eelco Dolstra
403cb9327f * Factor out evaluation into a separate file. 2003-10-30 16:48:26 +00:00
Eelco Dolstra
9f8f39aa3c * Clean up the imploded parse tree. Quotes around strings are
removed, paths are absolutised relative to the path containing the
  expression we just parsed, and integer literals are converted to
  actual integers.
2003-10-30 16:18:40 +00:00
Eelco Dolstra
e537844f4e * Bottomup rewrite function. 2003-10-30 16:11:24 +00:00
Eelco Dolstra
442b09ea33 * Don't use a search path. 2003-10-30 16:10:56 +00:00
Eelco Dolstra
933b3f677d * Attribute selection operator. 2003-10-30 16:10:20 +00:00
Eelco Dolstra
b95a3dc45b * Basic grammar and parser for the Fix language. We use libsglr and
friends to do the parsing.  The parse table is embedded in the Fix
  executable using bin2c, which converts an arbitrary file into a C
  character array.
2003-10-29 16:05:03 +00:00
Eelco Dolstra
4d728f6a36 * Forked new version of Fix. 2003-10-29 15:05:18 +00:00
Eelco Dolstra
f31661a3b5 * Add sdf2-bundle to externals. 2003-10-29 15:04:50 +00:00
Eelco Dolstra
7102455cba * Don't cache the manifest. 2003-10-27 18:43:09 +00:00
Eelco Dolstra
92eea8fc4e * Fix a race condition in addTextToStore(). 2003-10-23 10:51:55 +00:00
Eelco Dolstra
c4e7d324b8 * Use writeFull(). 2003-10-22 13:29:40 +00:00
Eelco Dolstra
9d95aafe8c * Ad hoc per-package logging. When Nix performs a derivation, it now
writes stdout/stderr of the builder to ${prefix}/var/log/nix/x,
  where x is the file name of the derivation expression, e.g.,

    /nix/var/log/nix/54256391624be04fcb426048ae3ea0a4-d-pan-0.14.2.nix

  Note that consecutive builds of the same expression overwrite,
  rather than append to, existing log files.
2003-10-22 11:04:57 +00:00
Eelco Dolstra
143427f90b * Dead code removal. 2003-10-22 10:53:46 +00:00
Eelco Dolstra
4a8948b7a6 * Some wrapper classes to ensure that file descriptors / directory
handles are closed when they go out of scope.
2003-10-22 10:48:22 +00:00
Eelco Dolstra
c62433751d * Finished refactoring the tree. 2003-10-20 10:05:01 +00:00
Eelco Dolstra
53e376d836 * Refactored the source tree. 2003-10-20 09:20:11 +00:00
Eelco Dolstra
0eab306466 * NarPath -> NarName. 2003-10-20 09:08:44 +00:00
Eelco Dolstra
a0a7a4e087 * Remove some debug output. 2003-10-16 19:24:04 +00:00
Eelco Dolstra
0791282b2f * Substitutes and nix-pull now work again.
* Fixed a segfault caused by the buffering of stderr.
* Fix now allows the specification of the full output path.  This
  should be used with great care, since it by-passes the normal hash
  generation.
* Incremented the version number to 0.4 (prerelease).
2003-10-16 16:29:57 +00:00
Eelco Dolstra
ab5e8767fa * Get nix-push to work again.
* Fixed svn:ignore on externals/.
2003-10-16 13:13:39 +00:00
Eelco Dolstra
c78bf11524 * Enable buffering of stderr in C++. 2003-10-16 11:55:37 +00:00
Eelco Dolstra
f7c7aad135 * Upgraded to Berkeley DB 4.1.25 and do not synchronously flush the
log on commit.  This means that there is a small change that some
  transactions may be rolled back in case of a system crash, but this
  should not be a problem (it merely might cause some expression
  realisations to be rolled back), and it vastly improves performance.

* Upgraded to ATerm 2.0.5 (which also includes Armijn's 64-bit
  patches).
2003-10-16 08:52:44 +00:00
Eelco Dolstra
181aa3dc41 * Don't sort the result of `--query --list'. 2003-10-16 08:06:19 +00:00
Eelco Dolstra
ebff82222c * Refactoring: move all database manipulation into store.cc.
* Removed `--query --generators'.
2003-10-15 12:42:39 +00:00
Eelco Dolstra
5fc7127643 * Keep sources (derivation expression) by default, `--no-source' to
override.
2003-10-15 10:34:50 +00:00