Eelco Dolstra
fb6e223ddc
* Synced with the trunk.
2010-03-04 12:15:00 +00:00
Eelco Dolstra
e14e2399ed
* Prevent a potential memory corruption problem if an ATerm garbage
...
collection happens during fixAttrs().
2010-03-02 20:23:42 +00:00
Eelco Dolstra
56af8e86e3
* Protect the true',
false' and `__overrides' constants. Without
...
an ATprotect call, these could be garbage collected, leading to
weird crashes or wrong results.
2010-03-02 20:09:12 +00:00
Eelco Dolstra
3f9e647ae8
* checkInterrupt() shouldn't be called from a destructor.
2010-03-02 19:04:17 +00:00
Eelco Dolstra
594eaddd11
* When using the included sqlite/aterm libraries, build with
...
--enable-shared.
* In libutil/libstore/libexpr etc., link against sqlite and aterm.
* Some more header file hygiene.
2010-03-02 15:58:13 +00:00
Eelco Dolstra
24035b98b1
* Implement RemoteStore::queryValidPaths().
2010-02-26 12:05:01 +00:00
Eelco Dolstra
e42401ee7b
* Implement RemoteStore::queryDerivationOutputs().
2010-02-25 15:52:22 +00:00
Eelco Dolstra
af565c348a
* Support read-only access to the database.
2010-02-24 16:44:43 +00:00
Eelco Dolstra
e33f67ff0b
* Refactor the upgrade / database initialisation logic a bit.
2010-02-24 16:30:20 +00:00
Eelco Dolstra
84a4dd5ff0
* Don't use fdatasync since it doesn't work on Snow Leopard.
...
* Don't refer to config.h in util.hh, because config.h is not
installed (http://hydra.nixos.org/build/303053 ).
2010-02-24 15:46:06 +00:00
Eelco Dolstra
cfe742cfc5
* A function to query just the database id of a valid path.
2010-02-24 15:07:23 +00:00
Eelco Dolstra
6baa2a2f5e
2010-02-24 14:39:52 +00:00
Eelco Dolstra
9fd85c94de
* Use `truncate' journal mode, which should be a bit faster.
2010-02-24 14:22:34 +00:00
Eelco Dolstra
fefd467539
* `helpText' is now zero-terminated.
2010-02-24 13:24:27 +00:00
Eelco Dolstra
a3c63d0d6c
* Disable fsync() in SQLite if the fsync-metadata option is set to
...
false.
* Change the default for `fsync-metadata' to true.
* Disable `fsync-metadata' in `make check'.
2010-02-24 13:12:57 +00:00
Eelco Dolstra
90b6352d0a
* Do registerValidPaths() in one transaction, which is much faster.
...
E.g. it cuts the runtime of the referrers test from 50s to 23s.
2010-02-24 12:48:00 +00:00
Eelco Dolstra
fae0427324
* ADDITIONAL_NETWORK_LIBS -> LIBS.
2010-02-24 12:25:48 +00:00
Eelco Dolstra
fa6a4fcb11
* Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn't
...
work on x86_64 when sqlite is compiled statically.
2010-02-24 12:18:48 +00:00
Eelco Dolstra
5954eadf67
* Remove the fdatasync check since it's no longer needed.
2010-02-24 12:16:50 +00:00
Eelco Dolstra
462bd50aef
* Use normal (rather than full) synchronous mode, which I gather from
...
the description at http://www.sqlite.org/atomiccommit.html should be
safe enough.
2010-02-24 10:57:57 +00:00
Eelco Dolstra
63b09c5e41
2010-02-23 22:31:38 +00:00
Eelco Dolstra
b4e6d98fc3
* configure: flag --with-sqlite.
2010-02-23 22:12:46 +00:00
Eelco Dolstra
2b20318b0e
2010-02-22 14:24:37 +00:00
Eelco Dolstra
9cda616949
* The database needs a trigger to get rid of self-references to
...
prevent a foreign key constraint violation on the Refs table when
deleting a path.
2010-02-22 14:18:55 +00:00
Eelco Dolstra
c4d388add4
* Get derivation outputs from the database instead of the .drv file,
...
which requires more I/O.
2010-02-22 12:44:36 +00:00
Eelco Dolstra
103cfee056
* Revert r19650 (implement gc-keep-outputs by looking for derivations
...
with the same name as the output) and instead use the
DerivationOutputs table in the database, which is the correct way to
to do things.
2010-02-22 11:44:17 +00:00
Eelco Dolstra
299ff64812
* Put the derivation outputs in the database. This is useful for the
...
garbage collector.
2010-02-22 11:15:50 +00:00
Eelco Dolstra
1930570ad9
* Foreign key support in SQLite is not a persistent setting, so enable
...
it at startup.
* Implement negative caching. Now `make check' passes.
2010-02-19 17:15:22 +00:00
Eelco Dolstra
9c9a88e9e2
* Implement more stuff.
2010-02-19 16:43:25 +00:00
Eelco Dolstra
762cee72cc
* Implement registerValidPath().
2010-02-19 16:04:51 +00:00
Eelco Dolstra
268f9aaf28
* Implemented queryValidPaths() and verifyStore().
2010-02-18 16:51:27 +00:00
Eelco Dolstra
836e5b6f57
* Implemented queryReferrers().
2010-02-18 16:21:59 +00:00
Eelco Dolstra
77cb9e3fb1
* Implement queryPathInfo().
2010-02-18 15:52:57 +00:00
Eelco Dolstra
885e22b16e
* Implement isValidPath().
2010-02-18 15:11:08 +00:00
Eelco Dolstra
cfb09e0fad
* Automatically abort transactions if they go out of scope without
...
committing.
2010-02-18 14:40:07 +00:00
Eelco Dolstra
e0305bb7a8
* Some wrapper objects to ensure that SQLite objects are properly
...
destroyed.
2010-02-18 14:30:42 +00:00
Eelco Dolstra
a053d2d8e5
* Add the deriver to the ValidPaths table. In principle we could now
...
store all the derivers of a path efficiently. But that opens a big
can of worms with respect to garbage collector semantics.
2010-02-18 13:48:18 +00:00
Eelco Dolstra
dbddac0fe9
* Assign an integer id to every row in the ValidPaths table in order
...
to make the Refs table more space-efficient. For instance, this
reduces the size of the database on my laptop from 93 MiB to 18
MiB. (It was 72 MiB with the old schema on an ext3 disk with a 1
KiB block size.)
2010-02-18 13:40:46 +00:00
Eelco Dolstra
c1a07f9445
* Convert the Nix database to SQLite.
2010-02-18 13:16:59 +00:00
Ludovic Courtès
20186a4079
Don't rely on `PATH_MAX' on GNU.
2010-02-10 15:55:50 +00:00
Eelco Dolstra
4e17be7981
* Revert r19797, and use a simpler solution: just don't monitor build
...
hooks for silence. It's unnecessary because the remote nix-store
command is already monitoring the real build.
2010-02-03 21:38:41 +00:00
Eelco Dolstra
f859a8d3c3
* While waiting for a lock, print a sign of life every 5 minutes.
...
This prevents remote builders from being killed by the
`max-silent-time' inactivity monitor while they are waiting for a
long garbage collection to finish. This happens fairly often in the
Hydra build farm.
2010-02-03 21:22:57 +00:00
Eelco Dolstra
4bbbe25802
* Remove most Cygwin-specific code. Cygwin 1.7 implements advisory
...
POSIX locks, and simulates Unix-style file deletion semantics
sufficiently. Note that this means that Nix won't work on Cygwin
1.5 anymore.
2010-02-02 15:28:36 +00:00
Eelco Dolstra
2723d9b56e
* If fdatasync() isn't available, use fsync().
2010-02-02 11:57:49 +00:00
Eelco Dolstra
07ffdc2862
* Added an option "fsync-metadata" to fsync() changes to
...
/nix/var/nix/db.
* Removed the function writeStringToFile since it does (almost) the
same thing as writeFile.
2010-01-29 12:22:58 +00:00
Eelco Dolstra
ad529fb89f
* Don't consider a store path valid if its info file exists but is
...
zero bytes long. That makes Nix more robust in case of crashes
(especially on ext4).
2010-01-29 11:53:58 +00:00
Eelco Dolstra
fdcaf37361
* Made `nix-store -qR --include-outputs' much faster if there are
...
multiple paths specified on the command line (from O(n * m) to O(n +
m), where n is the number of arguments and m is the size of the
closure).
2010-01-25 17:18:44 +00:00
Eelco Dolstra
5388944e8d
* Make the garbage collector do the right thing when `gc-keep-outputs'
...
is enabled by not depending on the deriver.
2010-01-25 16:04:32 +00:00
Eelco Dolstra
f0c0277970
* On startup, set the default SIGCHLD handler. This is so that Nix
...
works correctly in weird environments where the SIGCHLD handler is
set to "ignore".
2010-01-12 12:22:38 +00:00
Eelco Dolstra
ef92a14bfe
* Include config.h before the C library headers, because it defines
...
_FILE_OFFSET_BITS=64. Without it, functions like stat() fail on
large file sizes. This happened with a Nix store on squashfs:
$ nix-store --dump /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds > /dev/null
error: getting attributes of path `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds': Value too large for defined data type
$ stat /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds
File: `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds'
Size: 0 Blocks: 36028797018963968 IO Block: 1024 regular empty file
(This is a bug in squashfs or mksquashfs, but it shouldn't cause Nix
to fail.)
2009-12-17 14:12:44 +00:00