aboutsummaryrefslogtreecommitdiff
path: root/tests/lang
AgeCommit message (Collapse)Author
2008-02-05* Regression test.Eelco Dolstra
2008-01-04* New primop `unsafeDiscardStringContext' to get rid of stringEelco Dolstra
contexts. Needed to prevent unnecessary dependencies when building the NixOS manual.
2007-12-06* Syntax to escape '', ${.Eelco Dolstra
2007-11-30* Added a new kind of multi-line string literal delimited by twoEelco Dolstra
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
2007-08-18primop functions listToAttrs (+test), __isAttrs, __trace addedMarc Weber
new configuration style proposal in lib/default-unstable.nix
2007-05-15* Allow empty argument lists in function definitions (e.g., `{}:Eelco Dolstra
bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented consequence. Hopefully the reduce/reduce conflict won't cause any problems.
2007-01-29New primitives:Eelco Dolstra
* `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
2007-01-13* Canonicalise ASTs in `nix-instantiate --eval': remove positionEelco Dolstra
info, sort attribute sets.
2006-12-12* New built-in function `builtins.attrNames' that returns theEelco Dolstra
names of the attributes in an attribute set.
2006-10-17* Another test.Eelco Dolstra
2006-10-17* Fix the tests wrt the AST changes, i.e., Str(s) -> Str(s, []), andEelco Dolstra
the semantic changes.
2006-10-11* Removed URIs from the evaluator (NIX-66). They are now just anotherEelco Dolstra
kind of notation for strings.
2006-10-02* Finally, a real "let" syntax: `let x = ...; ... z = ...; in ...'.Eelco Dolstra
2006-09-24* Primop `toPath' to convert a string to a path.Eelco Dolstra
* Primop `pathExists' to check for path existence.
2006-09-24* Builtin function `getEnv' for getting environment variables.Eelco Dolstra
2006-09-24* lessThan primitive for integer comparison.Eelco Dolstra
2006-09-22* Builtin function `add' to add integers.Eelco Dolstra
* 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
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 Dolstra
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 Dolstra
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 "{". (TooEelco Dolstra
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
2006-08-30* TDD: == should do a deep equality test, i.e., it should strictlyEelco Dolstra
evaluate its arguments.
2006-08-24* New primop __toXML (or builtins.toXML) to convert an expression toEelco Dolstra
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
2006-08-23* A new primop `builtins', which returns an attribute set containingEelco Dolstra
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
2006-08-17* Test for `nix-instantiate --eval-only --xml'.Eelco Dolstra
2006-08-16* Meh.Eelco Dolstra
2006-08-16* A test for NIX-53.Eelco Dolstra
2006-07-24* New language feature: domain checks, which check whether a functionEelco Dolstra
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
2006-07-24* Refactoring to support domain checks.Eelco Dolstra
2006-07-10* This expression has an undefined variable which isn't detected, soEelco Dolstra
evaluation fails: error: impossible: undefined variable `gcc'
2006-05-08* Allow function argument default values to refer to other argumentsEelco Dolstra
of the function. Implements NIX-45.
2006-05-02* More tests.Eelco Dolstra
2006-05-02* Tests for NIX-45.Eelco Dolstra
2006-05-01* String interpolation. Expressions likeEelco Dolstra
"--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
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-01* More test coverage.Eelco Dolstra
2005-11-17* "Fix" the test, since we cannot feasibly support the intended semantics.Eelco Dolstra
2005-11-04* Scoping bug in `with'.Eelco Dolstra
2005-07-25* Added a list concatenation operator:Eelco Dolstra
[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
`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 NixEelco Dolstra
expressions.
2004-10-27* Use `atdiff' instead of `cmp' for checking test output.Eelco Dolstra
* 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 matchEelco Dolstra
regexp there could be only one such comment per file.
2004-10-27* Remove ancient Fix tests.Eelco Dolstra
* Add automated Nix expression language tests.