about summary refs log tree commit diff
path: root/src/libexpr/primops.cc
AgeCommit message (Collapse)AuthorFilesLines
2006-12-01 * Replace read-only calls to addTextToStore.Eelco Dolstra1-1/+3
2006-11-30 * Put building in the store API.Eelco Dolstra1-2/+1
2006-11-30 * Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra1-3/+3
containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations.
2006-11-03 * Fix importing of derivation outputs.Eelco Dolstra1-2/+9
2006-10-23 * Some better error messages.Eelco Dolstra1-3/+10
2006-10-19 * Better message.Eelco Dolstra1-1/+1
2006-10-19 * toFile: maintain the references.Eelco Dolstra1-10/+4
2006-10-17 * baseNameOf: paths don't have to be absolute.Eelco Dolstra1-1/+1
2006-10-17 * toPath: should be the identity on paths.Eelco Dolstra1-3/+1
2006-10-17 * dirOf: return a path if the argument is a path.Eelco Dolstra1-2/+6
2006-10-17 * toString: don't copy paths. So toString can be used to passEelco Dolstra1-3/+4
non-store paths to a builder.
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-233/+75
concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.)
2006-10-11 * Removed URIs from the evaluator (NIX-66). They are now just anotherEelco Dolstra1-2/+1
kind of notation for strings.
2006-10-10 * Quick hack to fix NIX-67: evaluation result differing if the NixEelco Dolstra1-9/+8
expression resides in the store.
2006-10-10 * `import': unwrap the context. Necessary to make `import (x + y)'Eelco Dolstra1-13/+14
work, where x is a store path.
2006-10-03 * toXML: propagate the context to allow derivations to be used in theEelco Dolstra1-2/+3
argument.
2006-10-03 * toFile: added an additional argument to specify the store pathEelco Dolstra1-3/+32
suffix, e.g., `builtins.toFile "builder.sh" "..."'. * toFile: handle references to other files correctly.
2006-09-24 * The result of a concatenation with a derivation on the left-handEelco Dolstra1-4/+12
side should be a path, I guess. * Handle paths that are in the store but not direct children of the store directory. * Ugh, hack to prevent double context wrapping.
2006-09-24 * Primop `toPath' to convert a string to a path.Eelco Dolstra1-7/+26
* Primop `pathExists' to check for path existence.
2006-09-24 * Builtin function `getEnv' for getting environment variables.Eelco Dolstra1-6/+18
2006-09-24 * lessThan primitive for integer comparison.Eelco Dolstra1-0/+9
2006-09-22 * Builtin function `add' to add integers.Eelco Dolstra1-0/+9
* Put common test functions in tests/lang/lib.nix.
2006-09-22 * Added a builtin function `isList' to test whether a value is a list.Eelco Dolstra1-0/+9
With this primitive, a list-flattening function can be implemented (NIX-55, example is in tests/lang/eval-okay-flatten.nix).
2006-09-22 * Builtin functions `head' and `tail' to return the head and tail ofEelco Dolstra1-0/+25
list. Useful for lots of things, such as implementing a fold function (see NIX-30, example is in tests/lang/eval-okay-list.nix).
2006-09-22 * New builtin functions builtins.{hasAttr, getAttr} to check forEelco Dolstra1-0/+16
attribute existence and to return an attribute from an attribute set, respectively. Example: `hasAttr "foo" {foo = 1;}'. They differ from the `?' and `.' operators in that the attribute name is an arbitrary expression. (NIX-61)
2006-09-21 * Fix comment.Eelco Dolstra1-3/+1
2006-09-20 * Print a better error message for wrong hashes (NIX-49).Eelco Dolstra1-3/+6
2006-09-04 * Use a proper namespace.Eelco Dolstra1-4/+12
* Optimise header file usage a bit. * Compile the parser as C++.
2006-09-01 * New primop: builtins.toFile, which writes a string into the storeEelco Dolstra1-0/+14
and returns its path. This can be used to (for instance) write builders inside a Nix expression, e.g., stdenv.mkDerivation { builder = " source $stdenv/setup ... "; ... }
2006-08-29 * Support singleton values and nested lists again in `args', but printEelco Dolstra1-1/+5
a warning.
2006-08-29 * Fix the ~ operator.Eelco Dolstra1-1/+1
2006-08-28 * In toString, deal with nested lists properly (i.e., flatten them).Eelco Dolstra1-0/+21
2006-08-28 * Removed processBinding, instead we now apply toString to allEelco Dolstra1-138/+138
derivation attributes to flatten them into strings. This is possible since string can nowadays be wrapped in contexts that describe the derivations/sources referenced by the evaluation of the string.
2006-08-26 * Refactoring.Eelco Dolstra1-6/+1
2006-08-25 * Remove those storePath attribute sets, we don't need 'em.Eelco Dolstra1-12/+1
2006-08-24 * New primop __toXML (or builtins.toXML) to convert an expression toEelco Dolstra1-0/+10
an XML representation stored in a string. This should be useful to pass structured information to builders.
2006-08-23 * Quotes.Eelco Dolstra1-1/+1
2006-08-23 * New primop: abort "error message".Eelco Dolstra1-0/+8
2006-08-23 * A new primop `builtins', which returns an attribute set containingEelco Dolstra1-0/+26
all the primops. This allows Nix expressions to test for new primops and take appropriate action if they're not available. For instance, rather than calling a primop `foo' directly, they could say `if builtins ? foo then builtins.foo ... else ...'.
2006-08-09 * Print a warning that the subpath operator (~) is deprecated.Eelco Dolstra1-0/+5
2006-07-19 * Better error messages (especially wrt types).Eelco Dolstra1-20/+20
2006-05-11 * 64-bit compatibility fixes (for problems revealed by building on an AthlonEelco Dolstra1-2/+2
64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully.
2006-05-04 * Use the new ATermMap.Eelco Dolstra1-14/+19
2006-05-01 * Allow string concatenations involving derivations, e.g.,Eelco Dolstra1-3/+12
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-24 * Print a more useful stack trace when an error occurs deep in theEelco Dolstra1-4/+10
derivation dependency graph.
2006-03-10 * `nix-env -qa --description' shows human-readable descriptions ofEelco Dolstra1-5/+12
packages (provided that they have a `meta.description' attribute). E.g., $ ./src/nix-env/nix-env -qa --description gcc gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x
2006-03-09 * Big speedup (factor > 2.5) in all nix-env operations that do actualEelco Dolstra1-3/+9
instantiation, e.g. "nix-env -i" and "nix-env -qas" (but not "nix-env -qa"). It turns out that many redundant calls to addToStore(path) were made, which reads and hashes the entire path. For instance, the bash bootstrap binary in Nixpkgs would be read and hashed many times. As a result nix-env would spend around 92% of its time in the function sha256_block (according to callgrind). Some simple memoization fixes this.
2006-03-08 * Some refactoring of the exception handling code so that we can catchEelco Dolstra1-4/+6
Nix expression assertion failures.
2006-03-06 * `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra1-0/+1
will be built or substituted.
2005-09-13 * Missing #include.Eelco Dolstra1-0/+2