aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2003-07-29* Bug: Fix does not allow empty names, so don't generate them.Eelco Dolstra
2003-07-29* Use `--query --requisites' and include successors when pushing. Don't Eelco Dolstra
use `--query --generators' anymore.
2003-07-29* Typo: if -> elsif.Eelco Dolstra
2003-07-29* Get garbage collection and cache population to work *properly*.Eelco Dolstra
Renamed `fstateRefs' to `fstateRequisites'. The semantics of this function is that it returns a list of all paths necessary to realise a given expression. For a derive expression, this is the union of requisites of the inputs; for a slice expression, it is the path of each element in the slice. Also included are the paths of the expressions themselves. Optionally, one can also include the requisites of successor expressions (to recycle intermediate results). * `nix-switch' now distinguishes between an expression and its normal form. Usually, only the normal form is registered as a root of the garbage collector. With the `--source-root' flag, it will also register the original expression as a root. * `nix-collect-garbage' now has a flag `--keep-successors' which causes successors not to be included in the list of garbage paths. * `nix-collect-garbage' now has a flag `--invert' which will print all paths that should *not* be garbage collected.
2003-07-29* Nicer dot graphs.Eelco Dolstra
2003-07-29* `fstateRefs' now works on derive expressions as well. TODO: makeEelco Dolstra
this more efficient. * A flag `-n' in 'nix --query' to normalise the argument. Default is not to normalise.
2003-07-29* Let `nix --install' print out the id of the normal form.Eelco Dolstra
* Some minor refactoring.
2003-07-28* Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh Eelco Dolstra
dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another glibc so loading barfs. Instead, all packages should use rpaths to store library locations in executables/libraries. The disadvantage is that overriding rpaths is harder. (It is possible by invoking the dynamic linker directly, e.g., `/lib/ld-linux.so.2 --ignore-path LIST program args...' to ignore the rpath for the libraries in LIST). It would be better to use DT_RUNPATH, which is consulted by the dynamic linker *after* LD_LIBRARY_PATH but *before* ld.so.cache and the system directories.
2003-07-28* Check for the pthread library (db4 needs it on some platforms).Eelco Dolstra
2003-07-28* `nix --help'.Eelco Dolstra
* `nix --query --graph' to print a dot dependency graph of derive expressions.
2003-07-24* Fix message.Eelco Dolstra
2003-07-24* Prevent spurious rebuilds of db/aterm.Eelco Dolstra
2003-07-24* The `-v' flag no longer takes an argument; it should be repeatedEelco Dolstra
instead (e.g., `-vvvv' for lots of output). Default is to only print error messages.
2003-07-24* Do sync the database, since not doing so caused database changes notEelco Dolstra
to reach the disk at all. Looks like a bug.
2003-07-24* Debug levels. Use `--verbose / -v LEVEL' to display only messagesEelco Dolstra
up to the given verbosity levels. These currently are: lvlError = 0, lvlNormal = 5, lvlDebug = 10, lvlDebugMore = 15 although only lvlError and lvlDebug are actually used right now.
2003-07-24* Don't sync the database on close. This was killing performance.Eelco Dolstra
(Of course, the real problem is that we open the database for *every* operation; we should only open it once. And we should use transactions.)
2003-07-23* Incorporated Berkeley DB and ATerm into the source tree.Eelco Dolstra
* `make dist'.
2003-07-22* libdb_cxx-4 -> libdb_cxxEelco Dolstra
2003-07-22* Substitutes now should produce a path with the same id as they areEelco Dolstra
substituting for (obvious, really). * For greater efficiency, nix-pull/unnar will place the output in a path that is probably the same as what is actually needed, thus preventing a path copy. * Even if a output id is given in a Fix package expression, ensure that the resulting Nix derive expression has a different id. This is because Nix expressions that are semantically equivalent (i.e., build the same result) might be different w.r.t. efficiency or divergence. It is absolutely vital for the substitute mechanism that such expressions are not used interchangeably.
2003-07-22* `nix --query --expansion' (`-qe') to get any path with contentEelco Dolstra
corresponding to the given id.
2003-07-21* Changed nix-pull to match nix-push.Eelco Dolstra
2003-07-21* Syntax fixes.Eelco Dolstra
* When pushing, put the hash in the file name so that the client can verify (proof-carrying file names?).
2003-07-21* In `--query --generators', print out paths, not ids.Eelco Dolstra
(There should really be a switch for this).
2003-07-21* Check for errors.Eelco Dolstra
2003-07-21* Canonicalise path.Eelco Dolstra
2003-07-21* Allow the output/expression id to be forced to a certain Eelco Dolstra
value; this potentially dangerous feature enables better sharing for those paths for which the content is known in advance (e.g., because a content hash is given). * Fast builds: if we can expand all output paths of a derive expression, we don't have to build.
2003-07-21* Changes to the command line syntax of Nix.Eelco Dolstra
* A function to find all Nix expressions whose output ids are completely contained in some set. Useful for uploading relevant Nix expressions to a shared cache.
2003-07-21* Memoize the evaluation of Fix expressions to speed up computation.Eelco Dolstra
2003-07-20* Argh, another short-write problem. Added wrappers aroundEelco Dolstra
read()/write() to fix this once and for all.
2003-07-20* Remove accidentally added file.Eelco Dolstra
2003-07-20* Refactorings.Eelco Dolstra
2003-07-18* Generate nar.sh, fetchurl.sh.Eelco Dolstra
2003-07-17* For debugging: `nix --verify' to check the consistency of theEelco Dolstra
database and store.
2003-07-17* Preserve the executable bit.Eelco Dolstra
2003-07-16* The write() system call can write less than the requested Eelco Dolstra
number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix --dump' to fail sometimes. Note that this bug went unnoticed because the call to `nix --dump' is in a pipeline, and the shell ignores non-zero exit codes from all but the last element in the pipeline. Is there any way to check the result of the initial elements in the pipeline? (In other words, is it at all possible to write reliable shell scripts?)
2003-07-16* Doh!Eelco Dolstra
2003-07-16* Bug fix: slices are transitive, so if we detect that an Eelco Dolstra
input path is referenced in an output paths, we also have to add all ids referenced by that input path. * Better debug assertions to catch these sorts of errors.
2003-07-16* Substitute fixes.Eelco Dolstra
2003-07-16* Fix the -qr query.Eelco Dolstra
2003-07-16* Fix self-referential outputs.Eelco Dolstra
* Fix -qp query.
2003-07-15* Get Fix and Nix to work again.Eelco Dolstra
2003-07-15* The new normaliser now passes the unit tests.Eelco Dolstra
2003-07-15* Basic work on allowing derive expressions to build multiple paths.Eelco Dolstra
This is not entirely trivial since this introduces the possibility of mutual recursion. * Made normal forms self-contained. * Use unique ids, not content hashes, for content referencing.
2003-07-14* Get the garbage collector to work again.Eelco Dolstra
2003-07-14* After building, scan for actual file system references asEelco Dolstra
opposed to declared references. This prunes the reference graph, thus allowing better garbage collection and more efficient derivate distribution.
2003-07-13* Don't check for staleness by default.Eelco Dolstra
2003-07-13* Pass $(prefix) and other variables through -D..., not Eelco Dolstra
through config.h, to prevent silly Autoconf problems.
2003-07-13* Generate the scripts so that we can substitute the prefixEelco Dolstra
etc. correctly. * Fixed nix-switch.
2003-07-12* Fetchurl: check md5 checksum.Eelco Dolstra
2003-07-11* Fix a bug that caused Fix not to be deterministic (due to addToStoreEelco Dolstra
returning different paths if the hash of the path to be added was already available in the store under a different name).