Eelco Dolstra
53e376d836
* Refactored the source tree.
2003-10-20 09:20:11 +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
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
c190f051ac
* Automatically recover the database in case of a crash.
2003-10-14 15:33:00 +00:00
Eelco Dolstra
1d61e473c8
* New query `nix --query --predecessors' to print the predecessors of
...
a Nix expression.
2003-10-10 15:25:21 +00:00
Eelco Dolstra
0abe185688
* `nix --verify': check and repair reverse mapping for successors.
2003-10-10 15:14:29 +00:00
Eelco Dolstra
d3d5e77810
* Reverse mappings for the successor and substitute mappings.
2003-10-10 14:46:28 +00:00
Eelco Dolstra
1eb4da156c
* Performance improvement: don't register already registered terms,
...
thus greatly reducing the number of db transactions.
2003-10-10 13:22:29 +00:00
Eelco Dolstra
6baa2c4420
* Get rid of identifiers since they are redundant now. This greatly
...
simplifies stuff.
* The format of Nix expressions and the database schema changed
because of this, so it's best to delete old Nix installations.
2003-10-08 15:06:59 +00:00
Eelco Dolstra
b9f4942bd2
* string -> Path.
2003-10-07 14:37:41 +00:00
Eelco Dolstra
5d4171f7fb
* Synchronise terminology with the ICSE paper (e.g., slice -> closure,
...
fstate -> Nix expression).
* Fix src/test.cc.
2003-10-07 12:27:49 +00:00
Eelco Dolstra
e78f753aa8
* Include the right files in a distribution.
2003-10-02 12:22:19 +00:00
Eelco Dolstra
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.
2003-10-02 11:55:38 +00:00
Eelco Dolstra
1c7d6bf5fc
* Removed references to char_traits so that boost/format also works on
...
GCC 2.95.
2003-09-11 10:23:55 +00:00
Eelco Dolstra
d930a9bc5a
* Added some missing #includes.
2003-09-11 08:31:29 +00:00
Eelco Dolstra
803a924b77
* Make nicer dot graphs. Also show the inner structure of slices.
2003-09-03 14:49:58 +00:00
Eelco Dolstra
c0bbed0959
* Factored out dot graph generation into a separate file.
2003-09-03 11:20:18 +00:00
Eelco Dolstra
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.
2003-08-29 13:12:30 +00:00
Eelco Dolstra
b018517314
* Do not try to remove write permission from symlinks, since chmod()
...
follows symlinks. (Note that the permissions on symlinks are
ignored anyway.)
2003-08-28 10:51:14 +00:00
Eelco Dolstra
31be53cd0a
* Fix the atrocious (exponential? factorial?) time complexity in
...
`nix --query --requisites'.
2003-08-25 14:56:11 +00:00
Eelco Dolstra
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).
2003-08-22 20:12:44 +00:00
Eelco Dolstra
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.
2003-08-20 14:11:40 +00:00
Eelco Dolstra
624c48260f
* Change the abstract syntax of slices. It used to be that ids were used as
...
keys to reference slice elements, e.g.,
Slice(["1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["8c99..."]), ...])
This was wrong, since ids represent contents, not locations. Therefore we
now have:
Slice(["/nix/store/1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["/nix/store/8c99-..."]), ...])
* Fix a bug in the computation of slice closures that could cause slice
elements to be duplicated.
2003-08-20 12:39:56 +00:00
Eelco Dolstra
ed0db2e0d8
* Fixed a serious bug in the computation of slices. Sometimes the slices
...
would not be properly closed under the path reference relation.
2003-08-20 11:30:45 +00:00
Eelco Dolstra
1472cc4825
* Pipe /dev/null into stdin.
2003-08-19 13:07:38 +00:00
Eelco Dolstra
2de8504791
* Delete the temporary directories of failed builds by default, and an
...
option `--keep-failed' to override this behaviour.
2003-08-19 09:04:47 +00:00
Eelco Dolstra
31e4aa6439
* Allow lists in package bindings, e.g.,
...
("srcs", [Relative("foo/bar.c"), Relative("foo/baz.h")])
The result is an environment variable that contains the path names of the
inputs separated by spaces (so this is not safe for values containing
spaces).
2003-08-18 16:32:55 +00:00
Eelco Dolstra
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.
2003-08-18 14:54:54 +00:00
Eelco Dolstra
96c7b98bf0
* Argument support in Fix. Arguments can be passed through the
...
builder using the `args' binding:
("args", ["bla", True, IncludeFix("aterm/aterm.fix")])
Note that packages can also be declared as inputs by specifying them
in the argument list.
2003-08-15 13:01:45 +00:00
Eelco Dolstra
555347744d
* Derivation expressions now can specify arguments to be passed to the
...
builder. Note that this unfortunately causes all Fix-computed
hashes to change.
2003-08-15 12:32:37 +00:00
Eelco Dolstra
163db7367f
* Fix can now read expressions from stdin (by saying `fix -').
2003-08-15 09:21:19 +00:00
Eelco Dolstra
dc0ef2ca98
* Detect infinite loops using blackholing.
2003-08-14 12:37:31 +00:00
Eelco Dolstra
5cde23f869
* Function() takes a list of formals.
2003-08-14 09:49:31 +00:00
Eelco Dolstra
0a2de7f543
* Lam -> Function. Doh!
2003-08-14 09:29:07 +00:00
Eelco Dolstra
c602930e08
* deletePath(): some operating systems (e.g., Mac OS X) don't like it
...
when we delete entries from a directory while we are reading it.
So read the directory into memory, then delete its contents.
2003-08-08 14:55:56 +00:00
Eelco Dolstra
236eb59293
* Allow locks on paths to be acquired recursively (that is, if the
...
process is already holding a lock on a path, it may acquire the lock
again without blocking or failing). (This might be dangerous, not
sure). Necessary for fast builds to work.
2003-08-06 09:34:04 +00:00
Eelco Dolstra
720f06e3b0
* A flag `--flat' to just compute the MD5 checksum of the contents of
...
a regular file. I.e., `nix-hash --flat' is equivalent to the
coreutils `md5sum' command (which doesn't exist on all systems).
2003-08-06 09:06:32 +00:00
Eelco Dolstra
37483672d4
* App -> Call.
...
* Allow booleans in package environment bindings (True maps to "1",
False maps to "").
2003-08-06 09:05:04 +00:00
Eelco Dolstra
d34b4d4f28
* Conditionals.
2003-08-05 13:05:30 +00:00
Eelco Dolstra
4ce652640b
* Cache result of fstatePaths(). TODO: do this in fstore.cc.
2003-08-05 12:29:47 +00:00
Eelco Dolstra
17f05dba77
* Allow the top-level expression to be a list of expressions that
...
normalise to Nix expression.
2003-08-05 11:13:38 +00:00
Eelco Dolstra
d6b6b2d3a8
* Delete obstructed paths prior to building.
2003-08-05 09:47:20 +00:00
Eelco Dolstra
d2e963f7a3
* Path locking in addToStore() and expandPath().
2003-08-04 07:09:36 +00:00
Eelco Dolstra
c95b4ad290
* In normaliseFState(), wrap registration of the output paths and the
...
normal form in a single transaction to ensure that if we crash,
either everything is registered or nothing is. This is for
recoverability: unregistered paths in the store can be deleted
arbitrarily, while registered paths can only be deleted by running
the garbage collector.
2003-08-01 15:41:47 +00:00
Eelco Dolstra
d99d04e644
* Defensive programming against POSIX locking idiocy.
...
* Simplified realiseSlice().
2003-08-01 15:06:23 +00:00
Eelco Dolstra
545145cd58
* normaliseFState() now locks all output paths prior to building, thus
...
ensuring that simultaneous invocations of Nix don't clobber
each other's builds.
* Fixed a bug in `make install'.
2003-08-01 14:11:19 +00:00
Eelco Dolstra
9df93f30bd
* Don't use substitutes in addToStore().
2003-08-01 09:01:51 +00:00