about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2007-02-27 * Greatly reduced the amount of stack space used by the Nix expressionEelco Dolstra1-188/+274
evaluator. This was important because the NixOS expressions started to hit 2 MB default stack size on Linux. GCC is really dumb about stack space: it just adds up all the local variables and temporaries of every scope into one huge stack frame. This is really bad for deeply recursive functions. For instance, every `throw Error(format("error message"))' causes a format object of a few hundred bytes to be allocated on the stack. As a result, every recursive call to evalExpr2() consumed 4680 bytes. By splitting evalExpr2() and by moving the exception-throwing code out of the main functions, evalExpr2() now only consumes 40 bytes. Similar for evalExpr().
2007-02-27 * When NIX_SHOW_STATS=1, show the amount of stack space consumed byEelco Dolstra1-2/+10
the Nix expression evaluator.
2007-02-26 * Error message to stdout.Eelco Dolstra1-1/+1
2007-02-22 * Handle EINTR in select().Eelco Dolstra1-3/+3
2007-02-22 * /man -> /share/manEelco Dolstra1-1/+0
2007-02-22 * nix-copy-closure: force a login shell on the remote machine to makeEelco Dolstra1-3/+11
sure that nix-store is in the PATH. * nix-copy-closure: option --gzip to compress data.
2007-02-22 * nix-copy-closure: option --sign.Eelco Dolstra1-2/+20
* nix-copy-closure: set SSH options through NIX_SSHOPTS..
2007-02-21 * New command `nix-copy-closure' to copy a closure to a Nix store onEelco Dolstra2-1/+58
another machine through ssh. E.g., $ nix-copy-closure xyzzy $(which svn) copies the closure of Subversion to machine `xyzzy'. This is like `nix-pack-closure $(which svn) | ssh xyzzy', but it's much more efficient since it only copies those paths that are missing on the target machine.
2007-02-21 * Flush cout to show progress.Eelco Dolstra1-1/+1
2007-02-21 * Export/import many paths in one go.Eelco Dolstra1-3/+8
2007-02-21 * `nix-store -qR' and friends: print the paths sorted topologicallyEelco Dolstra3-40/+12
under the references relation. This is useful for commands that want to copy paths to another Nix store in the right order.
2007-02-21 * Flag `--print-invalid' in `nix-store --check-validity' to print outEelco Dolstra1-3/+14
which paths specified on the command line are invalid (i.e., don't barf when encountering an invalid path, just print it). This is useful for build-remote.pl to figure out which paths need to be copied to a remote machine. (Currently we use rsync, but that's rather inefficient.)
2007-02-21 * Check that the file containing the secret key is secret.Eelco Dolstra1-1/+14
2007-02-21 * `nix-store --import' now also works in remote mode. The workerEelco Dolstra4-9/+62
always requires a signature on the archive. This is to ensure that unprivileged users cannot add Trojan horses to the Nix store.
2007-02-21 * Support exportPath() in remote mode.Eelco Dolstra4-5/+42
2007-02-21 * importPath(): set the deriver.Eelco Dolstra1-3/+13
* exportPath(): lock the path, use a transaction.
2007-02-21 * `nix-store --import': import an archive created by `nix-storeEelco Dolstra8-10/+142
--export' into the Nix store, and optionally check the cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify against a set of public keys.)
2007-02-21 * `nix-store --export --sign': sign the Nix archive using the RSA keyEelco Dolstra8-31/+124
in /nix/etc/nix/signing-key.sec
2007-02-21 * Don't use $SHELL.Eelco Dolstra3-10/+2
2007-02-20 * Start of `nix-store --export' operation for serialising a storeEelco Dolstra6-0/+50
path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner.
2007-02-20 * Temporary notes on how we're going to use OpenSSL.Eelco Dolstra1-0/+24
2007-02-20 * Close the file - just in case.Eelco Dolstra1-0/+3
2007-02-06 * Fix 64-bit compiler warnings.Eelco Dolstra2-4/+4
2007-02-05 * Compatibility with docbook5-xsl.Eelco Dolstra7-7/+8
2007-02-02 * nix-env now maintains meta info (from the `meta' derivationEelco Dolstra6-16/+105
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-29 * Doh!Eelco Dolstra1-2/+0
2007-01-29 * computeStorePathForText: take the references into account whenEelco Dolstra5-6/+18
computing the store path (NIX-77). This is an important security property in multi-user Nix stores. Note that this changes the store paths of derivations (since the derivation aterms are added using addTextToStore), but not most outputs (unless they use builtins.toFile).
2007-01-29 * Don't capitalise the primop functions.Eelco Dolstra1-76/+81
2007-01-29 * Organise primops.cc a bit better.Eelco Dolstra1-321/+376
2007-01-29 New primitives:Eelco Dolstra8-6/+88
* `sub' to subtract two numbers. * `stringLength' to get the length of a string. * `substring' to get a substring of a string. These should be enough to allow most string operations to be expressed.
2007-01-29 * filterSource: pass strings to the predicate function instead ofEelco Dolstra1-1/+1
paths. Paths can have unexpected semantics.
2007-01-24 * Nasty: Glibc clears the TMPDIR environment variable in setuidEelco Dolstra1-1/+8
programs, so if a builder uses TMPDIR, then it will fail when executed through nix-setuid-helper. In fact Glibc clears a whole bunch of variables (see sysdeps/generic/unsecvars.h in the Glibc sources), but only TMPDIR should matter in practice. As a workaround, we reinitialise TMPDIR from NIX_BUILD_TOP.
2007-01-23 * exportReferencesGraph: work on paths within store paths as well.Eelco Dolstra1-2/+10
2007-01-23 * New kind of manifest object: "localPath", which denotes that a storeEelco Dolstra8-22/+73
path can be created by copying it from another location in the file system. This is useful in the NixOS installation.
2007-01-23 * Successors have been gone for ages.Eelco Dolstra8-32/+15
2007-01-22 * nix-prefetch-url: change the default hash to SHA-256 (in base-32).Eelco Dolstra1-1/+1
2007-01-15 * Handle multiple indirect symlinks when loading a Nix expression.Eelco Dolstra3-7/+22
2007-01-15 * builtins.filterSource: pass the type of the file ("regular",Eelco Dolstra3-2/+23
"directory", "symlink") as the second argument to the filter predicate.
2007-01-14 * `nix-store --verify': revive checking the referrers table. This isEelco Dolstra1-42/+56
important to get garbage collection to work if there is any inconsistency in the database (because the referrer table is used to determine whether it is safe to delete a path). * `nix-store --verify': show some progress.
2007-01-14 * Make the garbage collector more resilient to certain consistencyEelco Dolstra3-4/+10
errors: in-use paths now cause a warning, not a fatal error.
2007-01-14 * Don't forget the .flags files.Eelco Dolstra1-1/+1
2007-01-14 * Option --argstr for passing string arguments easily. (NIX-75)Eelco Dolstra11-28/+88
2007-01-14 * Doh.Eelco Dolstra1-0/+2
2007-01-13 * nix-pack-closure: store the top-level store paths in the closure.Eelco Dolstra5-1/+39
* nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64)
2007-01-13 * Allow multiple --attr / -A arguments in nix-build / nix-instantiateEelco Dolstra1-15/+20
(NIX-74).
2007-01-13 * Removed chroot support.Eelco Dolstra4-22/+0
2007-01-13 * Canonicalise ASTs in `nix-instantiate --eval': remove positionEelco Dolstra7-5/+49
info, sort attribute sets.
2007-01-13 * Memoize strict evaluation.Eelco Dolstra2-13/+29
2007-01-13 * printTermAsXML: treat derivations specially; emit an elementEelco Dolstra1-11/+55
<derivation outPath=... drvPath=...> attrs </derivation>. Only emit the attributes of any specific derivation only. This prevents exponententially large XML output due to the absense of sharing.
2007-01-13 * Make printing an expression as XML interruptible.Eelco Dolstra2-0/+7