Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2008-01-04 | * New primop `unsafeDiscardStringContext' to get rid of string | Eelco Dolstra | 2 | -0/+7 | |
contexts. Needed to prevent unnecessary dependencies when building the NixOS manual. | |||||
2007-12-06 | * Syntax to escape '', ${. | Eelco Dolstra | 2 | -2/+8 | |
2007-11-30 | * Added a new kind of multi-line string literal delimited by two | Eelco Dolstra | 2 | -0/+108 | |
single quotes. Example (from NixOS): job = '' start on network-interfaces start script rm -f /var/run/opengl-driver ${if videoDriver == "nvidia" then "ln -sf ${nvidiaDrivers} /var/run/opengl-driver" else if cfg.driSupport then "ln -sf ${mesa} /var/run/opengl-driver" else "" } rm -f /var/log/slim.log end script ''; This style has two big advantages: - \, ' and " aren't special, only '' and ${. So you get a lot less escaping in shell scripts / configuration files in Nixpkgs/NixOS. The delimiter '' is rare in scripts (and can usually be written as ""). ${ is also fairly rare. Other delimiters such as <<...>>, {{...}} and <|...|> were also considered but this one appears to have the fewest drawbacks (thanks Martin). - Indentation is intelligently stripped so that multi-line strings can follow the nesting structure of the containing Nix expression. E.g. in the example above 6 spaces are stripped from the start of each line. This prevents unnecessary indentation in generated files (which sometimes even breaks things). See tests/lang/eval-okay-ind-string.nix for some examples. | |||||
2007-11-21 | * New primop `readFile' to get the contents of a file as a string. | Eelco Dolstra | 2 | -0/+2 | |
2007-08-18 | primop functions listToAttrs (+test), __isAttrs, __trace added | Marc Weber | 2 | -0/+9 | |
new configuration style proposal in lib/default-unstable.nix | |||||
2007-05-15 | * Allow empty argument lists in function definitions (e.g., `{}: | Eelco Dolstra | 2 | -0/+2 | |
bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented consequence. Hopefully the reduce/reduce conflict won't cause any problems. | |||||
2007-01-29 | New primitives: | Eelco Dolstra | 4 | -3/+32 | |
* `sub' to subtract two numbers. * `stringLength' to get the length of a string. * `substring' to get a substring of a string. These should be enough to allow most string operations to be expressed. | |||||
2007-01-14 | * Option --argstr for passing string arguments easily. (NIX-75) | Eelco Dolstra | 3 | -0/+17 | |
2007-01-13 | * Canonicalise ASTs in `nix-instantiate --eval': remove position | Eelco Dolstra | 4 | -4/+4 | |
info, sort attribute sets. | |||||
2006-12-12 | * New built-in function `builtins.attrNames' that returns the | Eelco Dolstra | 2 | -0/+12 | |
names of the attributes in an attribute set. | |||||
2006-10-17 | * Another test. | Eelco Dolstra | 1 | -0/+1 | |
2006-10-17 | * Fix the tests wrt the AST changes, i.e., Str(s) -> Str(s, []), and | Eelco Dolstra | 18 | -18/+20 | |
the semantic changes. | |||||
2006-10-11 | * Removed URIs from the evaluator (NIX-66). They are now just another | Eelco Dolstra | 3 | -3/+3 | |
kind of notation for strings. | |||||
2006-10-02 | * Finally, a real "let" syntax: `let x = ...; ... z = ...; in ...'. | Eelco Dolstra | 2 | -0/+15 | |
2006-09-24 | * Primop `toPath' to convert a string to a path. | Eelco Dolstra | 2 | -0/+4 | |
* Primop `pathExists' to check for path existence. | |||||
2006-09-24 | * Builtin function `getEnv' for getting environment variables. | Eelco Dolstra | 2 | -0/+2 | |
2006-09-24 | * lessThan primitive for integer comparison. | Eelco Dolstra | 1 | -1/+4 | |
2006-09-22 | * Builtin function `add' to add integers. | Eelco Dolstra | 7 | -23/+45 | |
* 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 Dolstra | 2 | -0/+20 | |
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 of | Eelco Dolstra | 2 | -0/+14 | |
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 for | Eelco Dolstra | 2 | -0/+11 | |
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-01 | * Allow "$" in strings as long as they are not followed by "{". (Too | Eelco Dolstra | 2 | -1/+2 | |
bad flex doesn't have lexical restrictions, the current solution isn't quite right...) | |||||
2006-08-30 | * Okay, that's a bit harder than expected. | Eelco Dolstra | 1 | -0/+0 | |
2006-08-30 | * TDD: == should do a deep equality test, i.e., it should strictly | Eelco Dolstra | 2 | -0/+4 | |
evaluate its arguments. | |||||
2006-08-24 | * New primop __toXML (or builtins.toXML) to convert an expression to | Eelco Dolstra | 2 | -0/+2 | |
an XML representation stored in a string. This should be useful to pass structured information to builders. | |||||
2006-08-23 | * New primop: abort "error message". | Eelco Dolstra | 1 | -0/+1 | |
2006-08-23 | * A new primop `builtins', which returns an attribute set containing | Eelco Dolstra | 2 | -0/+13 | |
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-22 | * Urgh (see NIX-56). | Eelco Dolstra | 1 | -1/+0 | |
2006-08-17 | * Test for `nix-instantiate --eval-only --xml'. | Eelco Dolstra | 3 | -0/+56 | |
2006-08-16 | * Meh. | Eelco Dolstra | 1 | -2/+2 | |
2006-08-16 | * A test for NIX-53. | Eelco Dolstra | 2 | -0/+18 | |
2006-07-24 | * New language feature: domain checks, which check whether a function | Eelco Dolstra | 1 | -0/+7 | |
argument has a valid value, i.e., is in a certain domain. E.g., { foo : [true false] , bar : ["a" "b" "c"] }: ... This previously could be done using assertions, but domain checks will allow the buildfarm to automatically extract the configuration space from functions. | |||||
2006-07-24 | * Tests for domain checks. | Eelco Dolstra | 3 | -0/+15 | |
2006-07-24 | * Refactoring to support domain checks. | Eelco Dolstra | 3 | -3/+3 | |
2006-07-10 | * This expression has an undefined variable which isn't detected, so | Eelco Dolstra | 1 | -0/+11 | |
evaluation fails: error: impossible: undefined variable `gcc' | |||||
2006-05-08 | * Allow function argument default values to refer to other arguments | Eelco Dolstra | 2 | -0/+2 | |
of the function. Implements NIX-45. | |||||
2006-05-02 | * More tests. | Eelco Dolstra | 3 | -1/+9 | |
2006-05-02 | * Tests for NIX-45. | Eelco Dolstra | 3 | -0/+21 | |
2006-05-01 | * String interpolation. Expressions like | Eelco Dolstra | 2 | -2/+10 | |
"--with-freetype2-library=" + freetype + "/lib" can now be written as "--with-freetype2-library=${freetype}/lib" An arbitrary expression can be enclosed within ${...}, not just identifiers. * Escaping in string literals: \n, \r, \t interpreted as in C, any other character following \ is interpreted as-is. * Newlines are now allowed in string literals. | |||||
2006-05-01 | * Allow string concatenations involving derivations, e.g., | Eelco Dolstra | 2 | -2/+2 | |
configureFlags = "--with-freetype2-library=" + freetype + "/lib"; | |||||
2006-03-01 | * More test coverage. | Eelco Dolstra | 7 | -0/+15 | |
2005-11-17 | * "Fix" the test, since we cannot feasibly support the intended semantics. | Eelco Dolstra | 1 | -1/+1 | |
2005-11-04 | * Scoping bug in `with'. | Eelco Dolstra | 2 | -0/+14 | |
2005-07-25 | * Added a list concatenation operator: | Eelco Dolstra | 2 | -0/+2 | |
[1 2 3] ++ [4 5 6] => [1 2 3 4 5 6] | |||||
2005-05-18 | * Added a primop `removeAttrs' to remove attributes from a set, e.g., | Eelco Dolstra | 3 | -0/+11 | |
`removeAttrs attrs ["x", "y"]' returns the set `attrs' with the attributes named `x' and `y' removed. It is not an error for the named attributes to be missing from the input set. | |||||
2005-03-10 | * Check for duplicate attributes and formal parameters in Nix | Eelco Dolstra | 5 | -0/+31 | |
expressions. | |||||
2004-10-27 | * Use `atdiff' instead of `cmp' for checking test output. | Eelco Dolstra | 2 | -3/+3 | |
* Don't use local file names in tests since they will produce different parse trees depending on the current directory. | |||||
2004-10-27 | * Bug fix in parsing of /* ... */ comments; due to longest match | Eelco Dolstra | 2 | -0/+12 | |
regexp there could be only one such comment per file. | |||||
2004-10-27 | * Remove ancient Fix tests. | Eelco Dolstra | 20 | -0/+91 | |
* Add automated Nix expression language tests. |