Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2010-04-07 | * expr-to-xml -> value-to-xml. | Eelco Dolstra | 4 | -7/+7 | |
2010-04-07 | * Implemented the primops necessary for generating the NixOS manual. | Eelco Dolstra | 7 | -144/+157 | |
2010-04-06 | * In eval(), don't use the target value `v' as a temporary. | Eelco Dolstra | 1 | -13/+17 | |
Overwriting `v' breaks when the expression evaluation to an assertion failure or throw. | |||||
2010-04-01 | * Removed the `~' operator. | Eelco Dolstra | 2 | -2/+0 | |
2010-04-01 | * Quick hack to make coerceToString work more or less correctly on | Eelco Dolstra | 1 | -1/+4 | |
nested lists. `nix-instantiate' can now evaluate the NixOS system derivation attribute correctly (in 2.1s on my laptop vs. 6.2s for the trunk). | |||||
2010-04-01 | * Improve sharing. | Eelco Dolstra | 3 | -19/+25 | |
2010-04-01 | * Functions are incomparable. | Eelco Dolstra | 1 | -6/+13 | |
2010-04-01 | * Make `derivation' lazy again for performance. It also turns out | Eelco Dolstra | 3 | -37/+17 | |
that there are some places in Nixpkgs (php_configurable / composableDerivation, it seems) that call `derivation' with incorrect arguments (namely, the `name' attribute missing) but get away with it because of laziness. | |||||
2010-03-31 | * Fixed the trace primop and path comparison. | Eelco Dolstra | 2 | -41/+11 | |
* Removed exprToString and stringToExpr because there is no ATerm representation to work on anymore (and exposing the internals of the evaluator like this is not a good idea anyway). | |||||
2010-03-31 | * Handle string contexts. `nix-instantiate' can now correctly compute | Eelco Dolstra | 3 | -65/+28 | |
the `firefoxWrapper' attribute in Nixpkgs, and it's about 3 times faster than the trunk :-) | |||||
2010-03-31 | * Get nix-env to compile. | Eelco Dolstra | 1 | -26/+19 | |
2010-03-31 | * Cache parse trees to prevent repeated parsing of imported Nix | Eelco Dolstra | 3 | -7/+10 | |
expressions. | |||||
2010-03-31 | * Implemented derivations. | Eelco Dolstra | 5 | -191/+167 | |
2010-03-31 | * Implemented `rec { inherit ...; }'. | Eelco Dolstra | 2 | -0/+17 | |
2010-03-31 | * Compare nulls. | Eelco Dolstra | 1 | -2/+5 | |
2010-03-30 | * More primops. | Eelco Dolstra | 3 | -91/+109 | |
2010-03-30 | * More operators / primops. | Eelco Dolstra | 4 | -184/+138 | |
2010-03-30 | * More primops. | Eelco Dolstra | 3 | -183/+91 | |
2010-03-30 | * More primops. | Eelco Dolstra | 4 | -96/+55 | |
2010-03-30 | * Implemented `map'. | Eelco Dolstra | 4 | -108/+139 | |
2010-03-30 | * Make `import' work. | Eelco Dolstra | 4 | -62/+141 | |
2010-03-29 | * Started integrating the new evaluator. | Eelco Dolstra | 7 | -708/+736 | |
2010-03-29 | (no commit message) | Eelco Dolstra | 1 | -0/+32 | |
2010-03-29 | (no commit message) | Eelco Dolstra | 1 | -0/+1 | |
2010-03-29 | (no commit message) | Eelco Dolstra | 1 | -12/+55 | |
2010-03-28 | * Strings. | Eelco Dolstra | 1 | -0/+45 | |
2010-03-28 | (no commit message) | Eelco Dolstra | 1 | -53/+51 | |
2010-03-28 | * Implemented multi-argument primops. | Eelco Dolstra | 1 | -9/+36 | |
2010-03-26 | * Primops (not yet finished). | Eelco Dolstra | 1 | -16/+114 | |
2010-03-26 | * Implemented the `==' and `!=' operators. These now use a deep | Eelco Dolstra | 1 | -0/+67 | |
equality test, so they also work for (finite) attribute sets and lists. | |||||
2010-03-25 | * Measure stack usage. | Eelco Dolstra | 1 | -3/+11 | |
2010-03-25 | * Implemented lists. | Eelco Dolstra | 1 | -7/+63 | |
2010-03-25 | * Quick and dirty implementation of `with'. `with e1; e2' is | Eelco Dolstra | 2 | -6/+56 | |
basically desugared to `let <with> = e1; e2', and `lookupVar' looks in each <with> in the environment chain for an attribute with the specified name. | |||||
2010-03-25 | * Don't convert variable names to strings. | Eelco Dolstra | 1 | -12/+15 | |
2010-03-25 | * Implement blackholing. | Eelco Dolstra | 1 | -8/+9 | |
2010-03-25 | * Implement `...' and default function arguments. | Eelco Dolstra | 1 | -7/+31 | |
2010-03-25 | * Simplify @-patterns: only `{attrs}@name' or `name@{attrs}' are now | Eelco Dolstra | 7 | -156/+73 | |
allowed. So `name1@name2', `{attrs1}@{attrs2}' and so on are now no longer legal. This is no big loss because they were not useful anyway. This also changes the output of builtins.toXML for @-patterns slightly. | |||||
2010-03-24 | * Implemented attribute set pattern matches. | Eelco Dolstra | 1 | -13/+117 | |
2010-03-24 | * Store values in environments. | Eelco Dolstra | 1 | -64/+66 | |
2010-03-24 | * Reduce the number of value allocations in eval() by moving | Eelco Dolstra | 1 | -26/+38 | |
responsibility for allocation of the result to the caller. | |||||
2010-03-24 | * Plain lambdas. | Eelco Dolstra | 1 | -2/+38 | |
2010-03-23 | * Start of an evaluator that uses call-by-need (with thunk updating) | Eelco Dolstra | 3 | -1/+200 | |
instead of (memoised) call-by-name. | |||||
2010-03-14 | Merge r20344 & r20346. | Nicolas Pierron | 1 | -1/+7 | |
2009-11-06 | * Remove support for old (before Nix 0.12pre12020) databases. | Eelco Dolstra | 1 | -1/+1 | |
2009-10-22 | * builtins.trace: in the common case that the value is a string, then | Eelco Dolstra | 1 | -1/+6 | |
show the string, not the ATerm, so we get `trace: bla' instead of `trace: Str("bla",[])'. | |||||
2009-10-21 | * Added a primop unsafeDiscardOutputDependency needed by Disnix to | Eelco Dolstra | 1 | -3/+34 | |
pass derivation paths to a builder without actually building them. | |||||
2009-09-23 | * tryEval shouldn't catch all exceptions of type Error, since not all | Eelco Dolstra | 1 | -2/+2 | |
of them leave the evaluator in a continuable state. Also, it should be less chatty. | |||||
2009-09-15 | * Two primops: builtins.intersectAttrs and builtins.functionArgs. | Eelco Dolstra | 1 | -0/+66 | |
intersectAttrs returns the (right-biased) intersection between two attribute sets, e.g. every attribute from the second set that also exists in the first. functionArgs returns the set of attributes expected by a function. The main goal of these is to allow the elimination of most of all-packages.nix. Most package instantiations in all-packages.nix have this form: foo = import ./foo.nix { inherit a b c; }; With intersectAttrs and functionArgs, this can be written as: foo = callPackage (import ./foo.nix) { }; where callPackage = f: args: f ((builtins.intersectAttrs (builtins.functionArgs f) pkgs) // args); I.e., foo.nix is called with all attributes from "pkgs" that it actually needs (e.g., pkgs.a, pkgs.b and pkgs.c). (callPackage can do any other generic package-level stuff we might want, such as applying makeOverridable.) Of course, the automatically supplied arguments can be overriden if needed, e.g. foo = callPackage (import ./foo.nix) { c = c_version_2; }; but for the vast majority of packages, this won't be needed. The advantages are to reduce the amount of typing needed to add a dependency (from three sites to two), and to reduce the number of trivial commits to all-packages.nix. For the former, there have been two previous attempts: - Use "args: with args;" in the package's function definition. This however obscures the actual expected arguments of a function, which is very bad. - Use "{ arg1, arg2, ... }:" in the package's function definition (i.e. use the ellipis "..." to allow arbitrary additional arguments), and then call the function with all of "pkgs" as an argument. But this inhibits error detection if you call it with an misspelled (or obsolete) argument. | |||||
2009-08-25 | Adding tryEval builtin. It allows to catch presence of errors in an expression. | Michael Raskin | 1 | -0/+18 | |
2009-06-30 | * Support integers and lists of strings in meta fields. This is | Eelco Dolstra | 2 | -13/+46 | |
useful for fields like meta.maintainers, meta.priority (which can be a proper integer now) and even meta.license (if there are multiple licenses). |