Commit graph

  • ac68840e79 * Refactoring: put the Nix expression evaluator in its own library so that it can be used by multiple programs. Eelco Dolstra 2003-11-19 11:35:41 +0000
  • 2be8b5917a * Use `sdftable -s' to get warnings about the grammar. * Several bug fixes in the grammar. * Allow one-line comments (#... and //...) to end in EOF. Eelco Dolstra 2003-11-19 10:04:03 +0000
  • 38946e1378 * Forgot this one. Eelco Dolstra 2003-11-18 12:07:39 +0000
  • dfc9c64ead * "Fix expression" -> "Nix expression". * More refactoring. Eelco Dolstra 2003-11-18 12:06:07 +0000
  • b1117ef29d * nix -> nix-store, fix -> nix-instantiate. Eelco Dolstra 2003-11-18 11:38:25 +0000
  • ce92d1bf14 * "Nix expression" -> "store expression". * More refactoring. Eelco Dolstra 2003-11-18 11:22:29 +0000
  • 9f0f020929 * libnix -> libstore. Eelco Dolstra 2003-11-18 10:55:27 +0000
  • 8798fae304 * Source tree refactoring. Eelco Dolstra 2003-11-18 10:47:59 +0000
  • 45610ae675 * An forward non-random access input iterator class for ATermLists. Eelco Dolstra 2003-11-16 18:31:29 +0000
  • 3e5a019a07 * Some utility functions for working with ATerms. Eelco Dolstra 2003-11-16 17:46:31 +0000
  • 06ae269c7c * Do not filter when parsing. This is much faster. * Add some rejections and lexical restrictions to the grammar to make this work. Eelco Dolstra 2003-11-10 11:00:38 +0000
  • 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%. Eelco Dolstra 2003-11-09 10:35:45 +0000
  • d2e3a132fe * Pass CFLAGS to the subpackages. Eelco Dolstra 2003-11-09 10:31:56 +0000
  • 90e26d392c * Allow null in derivation bindings. Eelco Dolstra 2003-11-06 15:24:31 +0000
  • cfaea07444 * `null' is a nullary primop. Eelco Dolstra 2003-11-06 14:41:49 +0000
  • 569e7940f8 * Allow `+' in path names. Eelco Dolstra 2003-11-06 14:41:29 +0000
  • fa18f1f184 * Assertions. * Logical operators (!, &&, ||, ->). Eelco Dolstra 2003-11-05 16:27:40 +0000
  • 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). Eelco Dolstra 2003-11-05 16:20:57 +0000
  • 80bb477cc4 * Default function arguments. Eelco Dolstra 2003-11-05 15:34:12 +0000
  • 0690c1c9c0 * Work around problems with the ATerm library. Eelco Dolstra 2003-11-03 20:30:40 +0000
  • ff31324278 * Ignore options passed to the aterm library. Eelco Dolstra 2003-11-03 18:21:53 +0000
  • e2655aa332 * Shorter list syntax ([a b c] instead of [a, b, c]). Eelco Dolstra 2003-11-03 11:59:35 +0000
  • ad0976f8d5 * Grammar changes. Attributes in attribute sets are now delimited with semicolons instead of comma's. Final semicolon in the set is optional. Eelco Dolstra 2003-11-03 10:21:30 +0000
  • 40986312bb * Boolean constants. Eelco Dolstra 2003-11-02 17:36:15 +0000
  • adf9a45469 * Primops: baseNameOf, toString. Eelco Dolstra 2003-11-02 16:31:35 +0000
  • c8268ca991 * Fast builds. Eelco Dolstra 2003-11-01 23:29:02 +0000
  • 7de1b2a698 * Print the exit code of the builder. Eelco Dolstra 2003-11-01 21:11:52 +0000
  • 1610444671 * Conditions, string equality. Eelco Dolstra 2003-11-01 19:15:08 +0000
  • 1b4184ccbb * Let syntax. Eelco Dolstra 2003-11-01 19:10:41 +0000
  • a2a9bacd82 * Filter the substitution list when descending into a recursive attribute set. Eelco Dolstra 2003-11-01 19:10:19 +0000
  • 449411e511 * Typo fix. Eelco Dolstra 2003-10-31 19:20:03 +0000
  • 9210d4d530 * Working evaluator. * Mutually recursive attribute sets. * Print evaluator efficiency statistics. Eelco Dolstra 2003-10-31 17:09:31 +0000
  • f1c1a3c97f * Allow empty attribute (argument) sets. Eelco Dolstra 2003-10-31 12:21:01 +0000
  • 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. Eelco Dolstra 2003-10-31 11:22:56 +0000
  • 403cb9327f * Factor out evaluation into a separate file. Eelco Dolstra 2003-10-30 16:48:26 +0000
  • 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. Eelco Dolstra 2003-10-30 16:18:40 +0000
  • e537844f4e * Bottomup rewrite function. Eelco Dolstra 2003-10-30 16:11:24 +0000
  • 442b09ea33 * Don't use a search path. Eelco Dolstra 2003-10-30 16:10:56 +0000
  • 933b3f677d * Attribute selection operator. Eelco Dolstra 2003-10-30 16:10:20 +0000
  • 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. Eelco Dolstra 2003-10-29 16:05:03 +0000
  • 4d728f6a36 * Forked new version of Fix. Eelco Dolstra 2003-10-29 15:05:18 +0000
  • f31661a3b5 * Add sdf2-bundle to externals. Eelco Dolstra 2003-10-29 15:04:50 +0000
  • 7102455cba * Don't cache the manifest. Eelco Dolstra 2003-10-27 18:43:09 +0000
  • 92eea8fc4e * Fix a race condition in addTextToStore(). Eelco Dolstra 2003-10-23 10:51:55 +0000
  • c4e7d324b8 * Use writeFull(). Eelco Dolstra 2003-10-22 13:29:40 +0000
  • 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., Eelco Dolstra 2003-10-22 11:04:57 +0000
  • 143427f90b * Dead code removal. Eelco Dolstra 2003-10-22 10:53:46 +0000
  • 4a8948b7a6 * Some wrapper classes to ensure that file descriptors / directory handles are closed when they go out of scope. Eelco Dolstra 2003-10-22 10:48:22 +0000
  • c62433751d * Finished refactoring the tree. Eelco Dolstra 2003-10-20 10:05:01 +0000
  • 53e376d836 * Refactored the source tree. Eelco Dolstra 2003-10-20 09:20:11 +0000
  • 0eab306466 * NarPath -> NarName. Eelco Dolstra 2003-10-20 09:08:44 +0000
  • a0a7a4e087 * Remove some debug output. Eelco Dolstra 2003-10-16 19:24:04 +0000
  • 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). Eelco Dolstra 2003-10-16 16:29:57 +0000
  • ab5e8767fa * Get nix-push to work again. * Fixed svn:ignore on externals/. Eelco Dolstra 2003-10-16 13:13:39 +0000
  • c78bf11524 * Enable buffering of stderr in C++. Eelco Dolstra 2003-10-16 11:55:37 +0000
  • 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. Eelco Dolstra 2003-10-16 08:52:44 +0000
  • 181aa3dc41 * Don't sort the result of `--query --list'. Eelco Dolstra 2003-10-16 08:06:19 +0000
  • ebff82222c * Refactoring: move all database manipulation into store.cc. * Removed `--query --generators'. Eelco Dolstra 2003-10-15 12:42:39 +0000
  • 5fc7127643 * Keep sources (derivation expression) by default, `--no-source' to override. Eelco Dolstra 2003-10-15 10:34:50 +0000
  • c190f051ac * Automatically recover the database in case of a crash. Eelco Dolstra 2003-10-14 15:33:00 +0000
  • 1d61e473c8 * New query `nix --query --predecessors' to print the predecessors of a Nix expression. Eelco Dolstra 2003-10-10 15:25:21 +0000
  • 0abe185688 * `nix --verify': check and repair reverse mapping for successors. Eelco Dolstra 2003-10-10 15:14:29 +0000
  • d3d5e77810 * Reverse mappings for the successor and substitute mappings. Eelco Dolstra 2003-10-10 14:46:28 +0000
  • 1eb4da156c * Performance improvement: don't register already registered terms, thus greatly reducing the number of db transactions. Eelco Dolstra 2003-10-10 13:22:29 +0000
  • 08b7319f5b * Follow successors by default (use `--no-successors' to override). Eelco Dolstra 2003-10-09 15:38:31 +0000
  • 6409c215e5 * Fixed nix-switch. Eelco Dolstra 2003-10-09 15:37:20 +0000
  • 6baa2c4420 * Get rid of identifiers since they are redundant now. This greatly simplifies stuff. Eelco Dolstra 2003-10-08 15:06:59 +0000
  • b9f4942bd2 * string -> Path. Eelco Dolstra 2003-10-07 14:37:41 +0000
  • 5d4171f7fb * Synchronise terminology with the ICSE paper (e.g., slice -> closure, fstate -> Nix expression). * Fix src/test.cc. Eelco Dolstra 2003-10-07 12:27:49 +0000
  • 563afb7fcc * Use passive FTP in wget. Eelco Dolstra 2003-10-02 15:48:47 +0000
  • e78f753aa8 * Include the right files in a distribution. Eelco Dolstra 2003-10-02 12:22:19 +0000
  • 4193d62e08 * Nix now respects $TMPDIR for the creation of temporary build directories. * Retry creation of a temporary directory (with a different name) in the case of EEXIST. Eelco Dolstra 2003-10-02 11:55:38 +0000
  • 6d478597c7 * Argggg... Eelco Dolstra 2003-09-24 08:40:40 +0000
  • 9fb94f4f2f * Forgot a file. Eelco Dolstra 2003-09-24 08:39:49 +0000
  • 9ba2397ea9 * Added missing files to `make dist'. Eelco Dolstra 2003-09-24 08:28:04 +0000
  • 41730f5779 * Put the SVN revision number in the version string. Eelco Dolstra 2003-09-23 14:26:58 +0000
  • 1c7d6bf5fc * Removed references to char_traits so that boost/format also works on GCC 2.95. Eelco Dolstra 2003-09-11 10:23:55 +0000
  • d930a9bc5a * Added some missing #includes. Eelco Dolstra 2003-09-11 08:31:29 +0000
  • 803a924b77 * Make nicer dot graphs. Also show the inner structure of slices. Eelco Dolstra 2003-09-03 14:49:58 +0000
  • c0bbed0959 * Factored out dot graph generation into a separate file. Eelco Dolstra 2003-09-03 11:20:18 +0000
  • 0d2bc68681 * Do not show the output of the builder unless the verbosity is at least at debug level (-vvv). The output is still appended to the build log in /nix/var/log/nix. Eelco Dolstra 2003-08-29 13:12:30 +0000
  • 25304af72e * Set a path. Eelco Dolstra 2003-08-28 10:51:52 +0000
  • b018517314 * Do not try to remove write permission from symlinks, since chmod() follows symlinks. (Note that the permissions on symlinks are ignored anyway.) Eelco Dolstra 2003-08-28 10:51:14 +0000
  • c4f1f49574 * nix-push generated invalid (old-style) slices. * nar.sh needs a path. Eelco Dolstra 2003-08-28 10:10:12 +0000
  • 31be53cd0a * Fix the atrocious (exponential? factorial?) time complexity in `nix --query --requisites'. Eelco Dolstra 2003-08-25 14:56:11 +0000
  • 920193beb1 * Don't continue when the call to nix fails. Eelco Dolstra 2003-08-25 14:36:04 +0000
  • a88144215c * Remove write permission from output paths after they have been built. * Point $HOME to a non-existing path when building to prevent certain tools (such as wget) from falling back on /etc/passwd to locate the home directory (which we don't want them to look at since it's not declared as an input). Eelco Dolstra 2003-08-22 20:12:44 +0000
  • 56b98c3857 * Some work on the introduction. Eelco Dolstra 2003-08-22 11:29:20 +0000
  • 956801fcc2 * Use maps and sets in the FState data type. This ensures normalisation of slices and derivations w.r.t. order of paths, slice elements, etc. Eelco Dolstra 2003-08-20 14:11:40 +0000
  • 624c48260f * Change the abstract syntax of slices. It used to be that ids were used as keys to reference slice elements, e.g., Eelco Dolstra 2003-08-20 12:39:56 +0000
  • 710175e6a0 * Bumped the version number to 0.3. Eelco Dolstra 2003-08-20 11:31:15 +0000
  • ed0db2e0d8 * Fixed a serious bug in the computation of slices. Sometimes the slices would not be properly closed under the path reference relation. Eelco Dolstra 2003-08-20 11:30:45 +0000
  • 1472cc4825 * Pipe /dev/null into stdin. Eelco Dolstra 2003-08-19 13:07:38 +0000
  • 2de8504791 * Delete the temporary directories of failed builds by default, and an option `--keep-failed' to override this behaviour. Eelco Dolstra 2003-08-19 09:04:47 +0000
  • 31e4aa6439 * Allow lists in package bindings, e.g., Eelco Dolstra 2003-08-18 16:32:55 +0000
  • ebbb6ce578 * Most shells initialise PATH to some default (/bin:/usr/bin:...) when PATH is not set. We don't want this, so fill it in with some dummy value. Eelco Dolstra 2003-08-18 14:54:54 +0000
  • c32e01eab2 * Revision 300! * Put `@' in front of echo's in the Makefile. Eelco Dolstra 2003-08-18 08:52:49 +0000
  • 08f9cfe267 * No longer automatically download Berkeley DB / ATerm. Eelco Dolstra 2003-08-18 08:35:16 +0000
  • 96c7b98bf0 * Argument support in Fix. Arguments can be passed through the builder using the `args' binding: Eelco Dolstra 2003-08-15 13:01:45 +0000
  • 555347744d * Derivation expressions now can specify arguments to be passed to the builder. Note that this unfortunately causes all Fix-computed hashes to change. Eelco Dolstra 2003-08-15 12:32:37 +0000