about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2009-05-15 * Change the scoping of "inherit (e) ..." in recs so that theEelco Dolstra3-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 aEelco Dolstra9-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 aEelco Dolstra1-94/+63
separate traversal after parsing. Likewise, check for duplicate pattern variables right away.
2009-05-12 * Allow unsafe (unspecified) comparisons between attrsets unlessEelco Dolstra2-1/+9
NIX_NO_UNSAFE_EQ is set, for now.
2009-05-11 * Disallow equality tests between attribute sets. This was alwaysEelco Dolstra1-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 Dolstra1-2/+3
2009-05-07 * Build a PDF version of the manual in the tarball job (it's notEelco Dolstra1-1/+5
included in the tarball though).
2009-05-07 * Don't have a bugs section in the manual. Bugs should be kept in theEelco Dolstra1-1/+1
bug tracker.
2009-05-07 * Produce the manual in the tarball job.Eelco Dolstra1-5/+6
2009-05-07 * Remove a right recursion that causes the parser to barf on very longEelco Dolstra1-6/+3
lists. The comment about ATreverse requiring unbounded stack space was unfounded anyway.
2009-05-07 * Include the version file.Eelco Dolstra1-1/+1
2009-05-07 * Typo.Eelco Dolstra1-1/+1
2009-05-04 Add an ftruncate call paired with fallocate to play safe with some FSes ↵Michael Raskin2-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 Dolstra1-1/+3
2009-04-21 * Use foreach in a lot of places.Eelco Dolstra10-96/+59
2009-04-21 * nix-store --verify: don't bail out if a referenced path is missing.Eelco Dolstra1-14/+13
(It can't fix it though.)
2009-04-16 * Fix a few "comparison is always false/true due to limited range ofEelco Dolstra3-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 Dolstra1-15/+6
2009-04-15 * Don't cache transient build hook problems.Eelco Dolstra1-6/+11
2009-04-14 * Remove references to __XXX primops.Eelco Dolstra2-14/+4
2009-04-14 * Release notes.Eelco Dolstra1-0/+60
2009-04-02 * Debian packages: use /etc, not /usr/etc.Eelco Dolstra1-0/+1
2009-03-31 * Do a substitution even if --max-jobs == 0.Eelco Dolstra2-18/+23
2009-03-31 * Doh!Eelco Dolstra1-1/+1
2009-03-30 (no commit message)Eelco Dolstra1-0/+1
2009-03-30 * Make the poll interval configurable.Eelco Dolstra2-3/+3
2009-03-29 * Update the mtime on the lock file to make it easy to see when a slotEelco Dolstra1-4/+8
was last used.
2009-03-29 * Undocument the "system" option. No sane person would use it :-)Eelco Dolstra1-20/+0
2009-03-29 * With `--max-jobs 0', print a nicer error message than "AssertionEelco Dolstra1-1/+5
`!awake.empty()' failed."
2009-03-29 * Use polling to wait for a remote build slot when using a build hookEelco Dolstra2-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 Dolstra2-26/+10
which is much faster.
2009-03-28 * Scan for references and compute the SHA-256 hash of the output inEelco Dolstra3-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 Dolstra2-33/+17
2009-03-28 * Simplify communication with the hook a bit (don't use fileEelco Dolstra6-117/+68
descriptors 3/4, just use stdin/stderr).
2009-03-28 * Clean up the output a bit.Eelco Dolstra1-5/+5
2009-03-28 * The `fixedOutput' variable didn't get initialised when using a buildEelco Dolstra1-5/+6
hook, causing negative caching to fail randomly.
2009-03-27 * Argh, stupid timing sensitive tests...Eelco Dolstra1-4/+4
2009-03-27 * Debian 5.0, Ubuntu 8.10 builds.Eelco Dolstra1-4/+8
2009-03-27 * Create /nix/store if it doesn't exist.Eelco Dolstra1-0/+2
2009-03-26 * A job for creating a fully statically linked binary tarball.Eelco Dolstra1-1/+22
2009-03-26 * Support doing a fully static build. Statically linked Nix binariesEelco Dolstra1-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 Dolstra4-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 byEelco Dolstra7-7/+140
default. This is mostly useful for Hydra.
2009-03-25 * Removed the locking.sh test; it's redundant because of the extendedEelco Dolstra5-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 Dolstra2-1/+2
2009-03-24 * Doh.Eelco Dolstra1-1/+1
2009-03-24 (no commit message)Eelco Dolstra1-1/+1
2009-03-23 * Make this test a bit more robust. It's still timing dependentEelco Dolstra3-10/+14
though.
2009-03-23 * Shut up a GCC warning.Eelco Dolstra1-2/+2
2009-03-23 * No longer block while waiting for a lock on a store path. InsteadEelco Dolstra5-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.