Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-05-15 | * Change the scoping of "inherit (e) ..." in recs so that the | Eelco Dolstra | 3 | -2/+10 | |
attributes of the rec are in scope of `e'. This is useful in expressions such as rec { lib = import ./lib; inherit (lib) concatStrings; } It does change the semantics of expressions such as let x = {y = 1;}; in rec { x = {y = 2;}; inherit (x) y; }.y This now returns 2 instead of 1. However, no code in Nixpkgs or NixOS seems to rely on the old behaviour. | |||||
2009-05-15 | * Some syntactic sugar for attribute sets: allow {x.y.z = ...;} as a | Eelco Dolstra | 9 | -26/+118 | |
shorthand for {x = {y = {z = ...;};};}. This is especially useful for NixOS configuration files, e.g. { services = { sshd = { enable = true; port = 2022; }; }; } can now be written as { services.sshd.enable = true; services.sshd.port = 2022; } However, it is currently not permitted to write { services.sshd = {enable = true;}; services.sshd.port = 2022; } as this is considered a duplicate definition of `services.sshd'. | |||||
2009-05-14 | * Check for duplicate attributes in fixAttrs, rather than doing a | Eelco Dolstra | 1 | -94/+63 | |
separate traversal after parsing. Likewise, check for duplicate pattern variables right away. | |||||
2009-05-12 | * Allow unsafe (unspecified) comparisons between attrsets unless | Eelco Dolstra | 2 | -1/+9 | |
NIX_NO_UNSAFE_EQ is set, for now. | |||||
2009-05-11 | * Disallow equality tests between attribute sets. This was always | Eelco Dolstra | 1 | -6/+42 | |
broken, but now the evaluator checks for it to prevent Nix expressions from relying on undefined behaviour. Equality tests are implemented using a shallow pointer equality test between ATerms. However, because attribute sets are lazy and contain position information, this can give false positives. For instance, previously let y = {x = 1;}; in y == y evaluated to true, while the equivalent expression {x = 1;} == {x = 1;} evaluated to false. So disallow these tests for now. (Eventually we may want to implement deep equality tests for attribute sets, like lib.eqStrict.) * Idem: disallow comparisons between functions. * Implemented deep comparisons of lists. This had the same problem as attribute sets - the elements in the list weren't evaluated. For instance, ["xy"] == [("x" + "y")] evaluated to false. Now it works properly. | |||||
2009-05-07 | (no commit message) | Eelco Dolstra | 1 | -2/+3 | |
2009-05-07 | * Build a PDF version of the manual in the tarball job (it's not | Eelco Dolstra | 1 | -1/+5 | |
included in the tarball though). | |||||
2009-05-07 | * Don't have a bugs section in the manual. Bugs should be kept in the | Eelco Dolstra | 1 | -1/+1 | |
bug tracker. | |||||
2009-05-07 | * Produce the manual in the tarball job. | Eelco Dolstra | 1 | -5/+6 | |
2009-05-07 | * Remove a right recursion that causes the parser to barf on very long | Eelco Dolstra | 1 | -6/+3 | |
lists. The comment about ATreverse requiring unbounded stack space was unfounded anyway. | |||||
2009-05-07 | * Include the version file. | Eelco Dolstra | 1 | -1/+1 | |
2009-05-07 | * Typo. | Eelco Dolstra | 1 | -1/+1 | |
2009-05-04 | Add an ftruncate call paired with fallocate to play safe with some FSes ↵ | Michael Raskin | 2 | -0/+9 | |
(namely, BtrFS fallocate sets file size to allocated size, i.e. multiple of block size) | |||||
2009-04-21 | * Machines of type x86_64-linux can do i686-linux builds. | Eelco Dolstra | 1 | -1/+3 | |
2009-04-21 | * Use foreach in a lot of places. | Eelco Dolstra | 10 | -96/+59 | |
2009-04-21 | * nix-store --verify: don't bail out if a referenced path is missing. | Eelco Dolstra | 1 | -14/+13 | |
(It can't fix it though.) | |||||
2009-04-16 | * Fix a few "comparison is always false/true due to limited range of | Eelco Dolstra | 3 | -5/+5 | |
data type" warnings on 64-bit platforms. The one in parser.y is likely to be a real bug. | |||||
2009-04-16 | * Cleanup. | Eelco Dolstra | 1 | -15/+6 | |
2009-04-15 | * Don't cache transient build hook problems. | Eelco Dolstra | 1 | -6/+11 | |
2009-04-14 | * Remove references to __XXX primops. | Eelco Dolstra | 2 | -14/+4 | |
2009-04-14 | * Release notes. | Eelco Dolstra | 1 | -0/+60 | |
2009-04-02 | * Debian packages: use /etc, not /usr/etc. | Eelco Dolstra | 1 | -0/+1 | |
2009-03-31 | * Do a substitution even if --max-jobs == 0. | Eelco Dolstra | 2 | -18/+23 | |
2009-03-31 | * Doh! | Eelco Dolstra | 1 | -1/+1 | |
2009-03-30 | (no commit message) | Eelco Dolstra | 1 | -0/+1 | |
2009-03-30 | * Make the poll interval configurable. | Eelco Dolstra | 2 | -3/+3 | |
2009-03-29 | * Update the mtime on the lock file to make it easy to see when a slot | Eelco Dolstra | 1 | -4/+8 | |
was last used. | |||||
2009-03-29 | * Undocument the "system" option. No sane person would use it :-) | Eelco Dolstra | 1 | -20/+0 | |
2009-03-29 | * With `--max-jobs 0', print a nicer error message than "Assertion | Eelco Dolstra | 1 | -1/+5 | |
`!awake.empty()' failed." | |||||
2009-03-29 | * Use polling to wait for a remote build slot when using a build hook | Eelco Dolstra | 2 | -36/+3 | |
(that is, call the build hook with a certain interval until it accepts the build). * build-remote.pl was totally broken: for all system types other than the local system type, it would send all builds to the *first* machine of the appropriate type. | |||||
2009-03-28 | * nix-copy-closure: compute the closure in one call to nix-store, | Eelco Dolstra | 2 | -26/+10 | |
which is much faster. | |||||
2009-03-28 | * Scan for references and compute the SHA-256 hash of the output in | Eelco Dolstra | 3 | -89/+50 | |
one pass. This halves the amount of I/O. | |||||
2009-03-28 | * Don't use the non-standard __gnu_cxx::stdio_filebuf class. | Eelco Dolstra | 2 | -33/+17 | |
2009-03-28 | * Simplify communication with the hook a bit (don't use file | Eelco Dolstra | 6 | -117/+68 | |
descriptors 3/4, just use stdin/stderr). | |||||
2009-03-28 | * Clean up the output a bit. | Eelco Dolstra | 1 | -5/+5 | |
2009-03-28 | * The `fixedOutput' variable didn't get initialised when using a build | Eelco Dolstra | 1 | -5/+6 | |
hook, causing negative caching to fail randomly. | |||||
2009-03-27 | * Argh, stupid timing sensitive tests... | Eelco Dolstra | 1 | -4/+4 | |
2009-03-27 | * Debian 5.0, Ubuntu 8.10 builds. | Eelco Dolstra | 1 | -4/+8 | |
2009-03-27 | * Create /nix/store if it doesn't exist. | Eelco Dolstra | 1 | -0/+2 | |
2009-03-26 | * A job for creating a fully statically linked binary tarball. | Eelco Dolstra | 1 | -1/+22 | |
2009-03-26 | * Support doing a fully static build. Statically linked Nix binaries | Eelco Dolstra | 1 | -11/+24 | |
will be useful as a fallback on platforms for which there are no RPMs/Debs available. | |||||
2009-03-26 | * Don't use ULLONG_MAX in maxFreed - use 0 to mean "no limit". | Eelco Dolstra | 4 | -10/+8 | |
18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is too large for "long" type'). | |||||
2009-03-25 | * Negative caching, i.e. caching of build failures. Disabled by | Eelco Dolstra | 7 | -7/+140 | |
default. This is mostly useful for Hydra. | |||||
2009-03-25 | * Removed the locking.sh test; it's redundant because of the extended | Eelco Dolstra | 5 | -45/+11 | |
parallel.sh test. Also, don't call multiple nix-builds in parallel, since they can race creating .nix-build-tmp-derivation. | |||||
2009-03-25 | * Use bash in the tests. | Eelco Dolstra | 2 | -1/+2 | |
2009-03-24 | * Doh. | Eelco Dolstra | 1 | -1/+1 | |
2009-03-24 | (no commit message) | Eelco Dolstra | 1 | -1/+1 | |
2009-03-23 | * Make this test a bit more robust. It's still timing dependent | Eelco Dolstra | 3 | -10/+14 | |
though. | |||||
2009-03-23 | * Shut up a GCC warning. | Eelco Dolstra | 1 | -2/+2 | |
2009-03-23 | * No longer block while waiting for a lock on a store path. Instead | Eelco Dolstra | 5 | -28/+85 | |
poll for it (i.e. if we can't acquire the lock, then let the main select() loop wait for at most a few seconds and then try again). This improves parallelism: if two nix-store processes are both trying to build a path at the same time, the second one shouldn't block; it should first see if it can build other goals. Also, it prevents the deadlocks that have been occuring in Hydra lately, where a process waits for a lock held by another process that's waiting for a lock held by the first. The downside is that polling isn't really elegant, but POSIX doesn't provide a way to wait for locks in a select() loop. The only solution would be to spawn a thread for each lock to do a blocking fcntl() and then signal the main thread, but that would require pthreads. |