about summary refs log tree commit diff
path: root/src/fix.cc
AgeCommit message (Collapse)AuthorFilesLines
2003-10-08 * Get rid of identifiers since they are redundant now. This greatlyEelco Dolstra1-56/+53
simplifies stuff. * The format of Nix expressions and the database schema changed because of this, so it's best to delete old Nix installations.
2003-10-07 * Synchronise terminology with the ICSE paper (e.g., slice -> closure,Eelco Dolstra1-36/+37
fstate -> Nix expression). * Fix src/test.cc.
2003-08-20 * Use maps and sets in the FState data type. This ensures normalisation ofEelco Dolstra1-9/+10
slices and derivations w.r.t. order of paths, slice elements, etc.
2003-08-20 * Change the abstract syntax of slices. It used to be that ids were used asEelco Dolstra1-1/+1
keys to reference slice elements, e.g., Slice(["1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["8c99..."]), ...]) This was wrong, since ids represent contents, not locations. Therefore we now have: Slice(["/nix/store/1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["/nix/store/8c99-..."]), ...]) * Fix a bug in the computation of slice closures that could cause slice elements to be duplicated.
2003-08-18 * Allow lists in package bindings, e.g.,Eelco Dolstra1-0/+12
("srcs", [Relative("foo/bar.c"), Relative("foo/baz.h")]) The result is an environment variable that contains the path names of the inputs separated by spaces (so this is not safe for values containing spaces).
2003-08-15 * Argument support in Fix. Arguments can be passed through theEelco Dolstra1-20/+43
builder using the `args' binding: ("args", ["bla", True, IncludeFix("aterm/aterm.fix")]) Note that packages can also be declared as inputs by specifying them in the argument list.
2003-08-15 * Fix can now read expressions from stdin (by saying `fix -').Eelco Dolstra1-1/+17
2003-08-14 * Detect infinite loops using blackholing.Eelco Dolstra1-3/+13
2003-08-14 * Function() takes a list of formals.Eelco Dolstra1-4/+14
2003-08-14 * Lam -> Function. Doh!Eelco Dolstra1-1/+1
2003-08-06 * App -> Call.Eelco Dolstra1-1/+8
* Allow booleans in package environment bindings (True maps to "1", False maps to "").
2003-08-05 * Conditionals.Eelco Dolstra1-0/+33
2003-08-05 * Cache result of fstatePaths(). TODO: do this in fstore.cc.Eelco Dolstra1-2/+17
2003-08-05 * Allow the top-level expression to be a list of expressions thatEelco Dolstra1-5/+19
normalise to Nix expression.
2003-07-31 * Started using Berkeley DB environments. This is necessary forEelco Dolstra1-0/+2
transaction support (but we don't actually use transactions yet).
2003-07-29 * `fstateRefs' now works on derive expressions as well. TODO: makeEelco Dolstra1-1/+1
this more efficient. * A flag `-n' in 'nix --query' to normalise the argument. Default is not to normalise.
2003-07-24 * The `-v' flag no longer takes an argument; it should be repeatedEelco Dolstra1-12/+11
instead (e.g., `-vvvv' for lots of output). Default is to only print error messages.
2003-07-24 * Debug levels. Use `--verbose / -v LEVEL' to display only messagesEelco Dolstra1-0/+10
up to the given verbosity levels. These currently are: lvlError = 0, lvlNormal = 5, lvlDebug = 10, lvlDebugMore = 15 although only lvlError and lvlDebug are actually used right now.
2003-07-22 * Substitutes now should produce a path with the same id as they areEelco Dolstra1-14/+39
substituting for (obvious, really). * For greater efficiency, nix-pull/unnar will place the output in a path that is probably the same as what is actually needed, thus preventing a path copy. * Even if a output id is given in a Fix package expression, ensure that the resulting Nix derive expression has a different id. This is because Nix expressions that are semantically equivalent (i.e., build the same result) might be different w.r.t. efficiency or divergence. It is absolutely vital for the substitute mechanism that such expressions are not used interchangeably.
2003-07-21 * Allow the output/expression id to be forced to a certain Eelco Dolstra1-5/+12
value; this potentially dangerous feature enables better sharing for those paths for which the content is known in advance (e.g., because a content hash is given). * Fast builds: if we can expand all output paths of a derive expression, we don't have to build.
2003-07-21 * Memoize the evaluation of Fix expressions to speed up computation.Eelco Dolstra1-20/+42
2003-07-20 * Refactorings.Eelco Dolstra1-38/+36
2003-07-16 * Substitute fixes.Eelco Dolstra1-0/+8
2003-07-16 * Fix self-referential outputs.Eelco Dolstra1-1/+1
* Fix -qp query.
2003-07-15 * Get Fix and Nix to work again.Eelco Dolstra1-21/+26
2003-07-11 * Fix a bug that caused Fix not to be deterministic (due to addToStoreEelco Dolstra1-1/+1
returning different paths if the hash of the path to be added was already available in the store under a different name).
2003-07-10 * Get `nix-push' working again. It now uses Nix/Fix to create NixEelco Dolstra1-1/+7
archives (using the package in corepkgs/nar). * queryPathByHash -> expandHash, and it takes an argument specifying the target path (which may be empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap Nix and install Nix as a Fix package.
2003-07-10 * Actually go through the search directories when looking for files.Eelco Dolstra1-9/+23
2003-07-09 * When computing the set of paths referenced by an expression, alsoEelco Dolstra1-1/+1
include the paths of the subterms.
2003-07-08 * Canonicalise paths so that Fix produces identical NixEelco Dolstra1-1/+2
expressions for identical inputs.
2003-07-08 * A command to query the paths referenced by an fstate expression.Eelco Dolstra1-27/+3
* Use a temporary directory for build actions.
2003-07-08 * Renamed `id' -> `name' to remove the implication of uniqueness.Eelco Dolstra1-5/+5
2003-07-08 * BaseName() primitive for the generation of more sensible namesEelco Dolstra1-0/+8
(especially in fetchurl.fix).
2003-07-07 * Make dbRefs a mapping from Hash to [Path].Eelco Dolstra1-1/+1
2003-07-07 * Refactoring on the file names.Eelco Dolstra1-2/+2
2003-07-06 * A utility `nix-hash' to compute Nix path hashes.Eelco Dolstra1-3/+1
2003-07-06 * Got Fix working again.Eelco Dolstra1-0/+266
2003-07-04 * Cleanup.Eelco Dolstra1-368/+0
2003-06-15 * Refactoring: hash class.Eelco Dolstra1-18/+21
2003-05-30 * Set umask to 0022 on startup.Eelco Dolstra1-0/+2
2003-05-26 * Nix can now fetch prebuilts (and other files) from the network, iffEelco Dolstra1-9/+14
a mapping from the hash to a url has been registered through `nix regurl'. * Bug fix in nix: don't pollute stdout when running tar, it made nix-switch barf. * Bug fix in nix-push-prebuilts: don't create a subdirectory on the target when rsync'ing.
2003-05-25 * Prebuilt package sharing. We allow transparent binary deployment byEelco Dolstra1-48/+21
sharing package directories (i.e., the result of building a Nix descriptor). `nix-pull-prebuilts' obtains a list of all known prebuilts by consulting the paths and URLs specified in $prefix/etc/nix/prebuilts.conf. The mappings ($pkghash, $prebuilthash) and ($prebuilthash, $location) are registered with Nix so that it can use the prebuilt with hash $prebuilthash when installing a package with hash $pkghash by downloading and unpacking $location. `nix-push-prebuilts' creates prebuilts for all packages for which no prebuilt is known to exist. It can then optionally upload these to the network through rsync. `nix-[pull|push]-prebuilts' just provide a policy. Nix provides the mechanism through the `nix [export|regprebuilt|regurl]' commands.
2003-04-25 * Cleaned up the semantics of Fix expressions.Eelco Dolstra1-66/+130
* Conditionals and variables in Fix expressions. This allows, e.g., Descr( [ Bind("pkgId", "subversion-0.21.0") , Bind("httpsClient", Bool(True)) , Bind("httpServer", Bool(True)) , Bind("ssl", If(Var("httpsClient"), Fix("./openssl-0.9.7b.fix"), "")) , Bind("httpd", If(Var("httpServer"), Fix("./httpd-2.0.45.fix"), "")) ... ]) which introduces domain feature variables httpsClient and httpServer (i.e., whether Subversion is built with https client and webdav server support); the values of the variables influences package dependencies and the build scripts. The next step is to allow that packages can express constraints on each other. E.g., StrategoXT is dependent on an ATerm library with the "gcc" variant enabled. In fact, this may cause several Nix instantiations to be created from a single Fix descriptor. If possible, Fix should try to find the least set of instantiations that obeys the constraints.
2003-04-09 * In `fix --instantiate', only print out the hashes of the NixEelco Dolstra1-3/+1
descriptors generated out of Fix descriptors specified on the command line. This allows us to say: nix-switch $(fix -i ./test/fixdescriptors/system.fix)
2003-04-08 * Descriptor importing in Fix.Eelco Dolstra1-12/+28
2003-04-08 * FreeBSD / gcc 2.95 compatibility fixes.Eelco Dolstra1-15/+27
* A script to generate prebuilt registration scripts.
2003-04-08 * `Fix' is a high-level descriptor instantiator for Nix. It replacesEelco Dolstra1-0/+295
nix-instantiate.