Eelco Dolstra
9fe24c5a0d
* Don't create thunks for simple constants (integers, strings, paths)
...
and allocate them only once.
* Move Value and related functions into value.hh.
2012-01-07 17:26:33 +00:00
Eelco Dolstra
b52966e821
* Remove dead code.
2012-01-04 21:47:48 +00:00
Eelco Dolstra
35f2a6ba82
* Don't use dynamic_cast, it's very slow. "nix-instantiate
...
/etc/nixos/nixos -A system" spent about 10% of its time in
dynamic_cast.
2012-01-04 21:24:11 +00:00
Eelco Dolstra
71f3c46cf6
* Drop the inefficient "Path" suffix in output attribute names.
2012-01-03 15:27:18 +00:00
Eelco Dolstra
921111d197
* Move the implementation of the ‘derivation’ primop into a separate
...
file.
2012-01-03 14:01:47 +00:00
Eelco Dolstra
6c31232e14
* Sync with the trunk.
2012-01-03 12:59:31 +00:00
Eelco Dolstra
48cea0d01e
* Refactoring: Get rid of a few subdirectories in corepkgs/, and some
...
other simplifications.
* Use <nix/...> to locate the corepkgs. This allows them to be
overriden through $NIX_PATH.
* Use bash's pipefail option in the NAR builder so that we don't need
to create a temporary file.
2012-01-03 00:16:29 +00:00
Eelco Dolstra
93b56acb2d
* Support multiple outputs in nix-store (specifically the ‘--query’
...
and ‘--realise’ actions).
2011-12-30 17:25:19 +00:00
Eelco Dolstra
a71d02440b
* Oops.
2011-12-30 17:13:25 +00:00
Eelco Dolstra
6f5e3326ce
* Move topoSortPaths() out of gc.cc.
2011-12-30 15:02:50 +00:00
Eelco Dolstra
b1004f40f7
* Reject a build if there is a cycle among the outputs. This is
...
necessary because existing code assumes that the references graph is
acyclic.
2011-12-30 14:47:14 +00:00
Eelco Dolstra
254b3399ba
* Sync with the trunk.
2011-12-30 13:08:14 +00:00
Eelco Dolstra
8c42a8c8ff
* Make sure that lock files are cleaned up properly when building
...
through the build hook.
2011-12-25 16:38:37 +00:00
Eelco Dolstra
524fa8a4f1
* Oops.
2011-12-22 16:27:03 +00:00
Eelco Dolstra
b33da599c5
* In the garbage collector, delete invalid paths before deleting
...
unreachable paths. This matters when using --max-freed etc.:
unreachable paths could become reachable again, so it's nicer to
keep them if there is "real" garbage to be deleted. Also, don't use
readDirectory() but read the Nix store and delete invalid paths in
parallel. This reduces GC latency on very large Nix stores.
2011-12-22 15:55:53 +00:00
Eelco Dolstra
58d974336c
* Drop unnecessary call to canonPath() (nixStore is already canonical).
2011-12-22 14:33:34 +00:00
Eelco Dolstra
2aac7cd021
* Another case of lock file permissions being too liberal.
2011-12-21 19:17:45 +00:00
Eelco Dolstra
5679041132
* The ‘foo.drvPath’ feature was already broken in read-only mode.
...
Since it's rarely used and fixing it is too much work right now,
just document it.
2011-12-21 18:19:05 +00:00
Shea Levy
b4cee3f816
Revert previous commit
...
It doesn't detect indirect references
2011-12-21 17:31:34 +00:00
Shea Levy
f3c88f297d
Detect and reject mutually-referential outputs
...
There is probably a more efficient way to do this.
2011-12-21 17:14:28 +00:00
Eelco Dolstra
b19a0f63db
* Simplify the context handling logic.
2011-12-21 15:33:30 +00:00
Eelco Dolstra
b5363810bb
* Fix the build.
2011-12-20 16:37:01 +00:00
Eelco Dolstra
194d21f9f6
* Sync with the trunk.
2011-12-16 23:33:01 +00:00
Eelco Dolstra
273b288a7e
* importPath() -> importPaths(). Because of buffering of the input
...
stream it's now necessary for the daemon to process the entire
sequence of exported paths, rather than letting the client do it.
2011-12-16 22:31:25 +00:00
Eelco Dolstra
8d3dfa2c17
* Avoid expensive conversions from char arrays to STL strings.
2011-12-16 21:29:46 +00:00
Eelco Dolstra
e0bd307802
* Make the import operation through the daemon much more efficient
...
(way fewer roundtrips) by allowing the client to send data in bigger
chunks.
* Some refactoring.
2011-12-16 19:44:13 +00:00
Eelco Dolstra
78598d06f0
* Clean up exception handling.
2011-12-16 15:45:42 +00:00
Eelco Dolstra
5a1b9ed0aa
* Refactoring: move sink/source buffering into separate classes.
...
* Buffer the HashSink. This speeds up hashing a bit because it
prevents lots of calls to the hash update functions (e.g. nix-hash
went from 9.3s to 8.7s of user time on the closure of my
/var/run/current-system).
2011-12-15 16:19:53 +00:00
Eelco Dolstra
a3e0656cbb
* Buffer reads in FdSource. Together with write buffering, this
...
significantly cuts down the number of syscalls (e.g., for "nix-store
-qR /var/run/current-system" via the daemon, it reduced the number
of syscalls in the client from 29134 to 4766 and in the daemon from
44266 to 20666).
2011-12-15 12:32:08 +00:00
Eelco Dolstra
3a48282b06
* Buffer writes in FdSink. This significantly reduces the number of
...
system calls / context switches when dumping a NAR and in the worker
protocol.
2011-12-14 23:30:06 +00:00
Eelco Dolstra
893cac1402
* Remove the terminate handler, which was only really needed because
...
of Berkeley DB (see r8632).
2011-12-14 22:41:10 +00:00
Eelco Dolstra
c8c0380744
* Remove unnecessary quotes. showPaths() already adds quotes.
2011-12-05 21:04:20 +00:00
Eelco Dolstra
000160f5b9
* In ‘nix-store --verify --check-contents’, repair missing hashes
...
rather than complain about them.
2011-12-02 17:52:18 +00:00
Eelco Dolstra
49f59dceca
* Move parseHash16or32 into libutil, and use in nix-hash.
2011-12-02 11:47:06 +00:00
Eelco Dolstra
b12b21825c
* Allow '<nixexpr>' syntax to be used in nix-instantiate, nix-build
...
and nix-env, e.g.,
$ nix-env -f '<nixpkgs>' -i patchelf
or
$ nix-build '<nixos/tests>' -A login.test
2011-12-01 16:41:43 +00:00
Eelco Dolstra
23c38a04cc
* Slight improvement.
2011-12-01 13:51:05 +00:00
Eelco Dolstra
24f863d86b
* When doing "nix-store --add-fixed" without "--recursive" via the Nix
...
daemon (which is an error), print a nicer error message than
"Connection reset by peer" or "broken pipe".
* In the daemon, log errors that occur during request parameter
processing.
2011-12-01 13:48:48 +00:00
Eelco Dolstra
b1eb8f4249
* Get rid of some superfluous error messages if a substituter fails.
...
* Say "fetch" instead of "substitute".
2011-11-29 13:00:41 +00:00
Eelco Dolstra
5bbd693cae
* Add an API function exportPaths() that provides the functionality of
...
‘nix-store --export’.
* Add a Perl module that provides the functionality of
‘nix-copy-closure --to’. This is used by build-remote.pl so it no
longer needs to start a separate nix-copy-closure process. Also, it
uses the Perl API to do the export, so it doesn't need to start a
separate nix-store process either. As a result, nix-copy-closure
and build-remote.pl should no longer fail on very large closures due
to an "Argument list too long" error. (Note that having very many
dependencies in a single derivation can still fail because the
environment can become too large. Can't be helped though.)
2011-11-23 15:13:37 +00:00
Eelco Dolstra
993fa94fb4
* Move initialisation of variables like nixConfDir from libmain to
...
libstore so that the Perl bindings can use it as well. It's vital
that the Perl bindings use the configuration file, because otherwise
nix-copy-closure will fail with a ‘database locked’ message if the
value of ‘use-sqlite-wal’ is changed from the default.
2011-11-22 17:28:41 +00:00
Rob Vermaas
4e1ea17052
nix: add /etc/hosts with localhost entry to chroot builds.
2011-11-21 15:19:51 +00:00
Eelco Dolstra
c0b706213d
* Boldly make SQLite WAL mode the default again. Hopefully the
...
intermittent problems are gone by now. WAL mode is preferrable
because it does way fewer fsyncs.
2011-11-07 21:11:59 +00:00
Shea Levy
3c3107da86
There's no need to mess with drvPath at all
2011-11-06 07:18:19 +00:00
Shea Levy
2ab29be70c
Fix faulty reversion of my changes to unsafeDiscardOutputDependency
2011-11-06 07:03:14 +00:00
Shea Levy
ca0d47a70c
Respect all outputs passed to the derivation, not just the last one
2011-11-06 06:54:05 +00:00
Shea Levy
24b65937e1
Remove the unused sCurrentOutput symbol
2011-11-06 06:28:34 +00:00
Shea Levy
3522730316
Embed output name into the context of the *OutPath attributes and extract it for input derivations
...
Multiple outputs test passes!
2011-11-06 06:28:30 +00:00
Shea Levy
af2e53fd48
Include all outputs of derivations in the closure of explicitly-passed derivation paths
...
This required adding a queryOutputDerivationNames function in the store API
2011-11-06 06:28:20 +00:00
Shea Levy
981edeab7b
The 'insert output between = signs' approach was not helpful
2011-11-06 06:28:14 +00:00
Shea Levy
2721e9f56f
Merge from trunk
2011-11-06 00:13:09 +00:00