about summary refs log tree commit diff
path: root/tests/lang
AgeCommit message (Collapse)AuthorFilesLines
2007-12-06 * Syntax to escape '', ${.Eelco Dolstra2-2/+8
2007-11-30 * Added a new kind of multi-line string literal delimited by twoEelco Dolstra2-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 Dolstra2-0/+2
2007-08-18 primop functions listToAttrs (+test), __isAttrs, __trace addedMarc Weber2-0/+9
new configuration style proposal in lib/default-unstable.nix
2007-05-15 * Allow empty argument lists in function definitions (e.g., `{}:Eelco Dolstra2-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 Dolstra4-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 Dolstra3-0/+17
2007-01-13 * Canonicalise ASTs in `nix-instantiate --eval': remove positionEelco Dolstra4-4/+4
info, sort attribute sets.
2006-12-12 * New built-in function `builtins.attrNames' that returns theEelco Dolstra2-0/+12
names of the attributes in an attribute set.
2006-10-17 * Another test.Eelco Dolstra1-0/+1
2006-10-17 * Fix the tests wrt the AST changes, i.e., Str(s) -> Str(s, []), andEelco Dolstra18-18/+20
the semantic changes.
2006-10-11 * Removed URIs from the evaluator (NIX-66). They are now just anotherEelco Dolstra3-3/+3
kind of notation for strings.
2006-10-02 * Finally, a real "let" syntax: `let x = ...; ... z = ...; in ...'.Eelco Dolstra2-0/+15
2006-09-24 * Primop `toPath' to convert a string to a path.Eelco Dolstra2-0/+4
* Primop `pathExists' to check for path existence.
2006-09-24 * Builtin function `getEnv' for getting environment variables.Eelco Dolstra2-0/+2
2006-09-24 * lessThan primitive for integer comparison.Eelco Dolstra1-1/+4
2006-09-22 * Builtin function `add' to add integers.Eelco Dolstra7-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 Dolstra2-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 ofEelco Dolstra2-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 forEelco Dolstra2-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 "{". (TooEelco Dolstra2-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 Dolstra1-0/+0
2006-08-30 * TDD: == should do a deep equality test, i.e., it should strictlyEelco Dolstra2-0/+4
evaluate its arguments.
2006-08-24 * New primop __toXML (or builtins.toXML) to convert an expression toEelco Dolstra2-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 Dolstra1-0/+1
2006-08-23 * A new primop `builtins', which returns an attribute set containingEelco Dolstra2-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 Dolstra1-1/+0
2006-08-17 * Test for `nix-instantiate --eval-only --xml'.Eelco Dolstra3-0/+56
2006-08-16 * Meh.Eelco Dolstra1-2/+2
2006-08-16 * A test for NIX-53.Eelco Dolstra2-0/+18
2006-07-24 * New language feature: domain checks, which check whether a functionEelco Dolstra1-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 Dolstra3-0/+15
2006-07-24 * Refactoring to support domain checks.Eelco Dolstra3-3/+3
2006-07-10 * This expression has an undefined variable which isn't detected, soEelco Dolstra1-0/+11
evaluation fails: error: impossible: undefined variable `gcc'
2006-05-08 * Allow function argument default values to refer to other argumentsEelco Dolstra2-0/+2
of the function. Implements NIX-45.
2006-05-02 * More tests.Eelco Dolstra3-1/+9
2006-05-02 * Tests for NIX-45.Eelco Dolstra3-0/+21
2006-05-01 * String interpolation. Expressions likeEelco Dolstra2-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 Dolstra2-2/+2
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-01 * More test coverage.Eelco Dolstra7-0/+15
2005-11-17 * "Fix" the test, since we cannot feasibly support the intended semantics.Eelco Dolstra1-1/+1
2005-11-04 * Scoping bug in `with'.Eelco Dolstra2-0/+14
2005-07-25 * Added a list concatenation operator:Eelco Dolstra2-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 Dolstra3-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 NixEelco Dolstra5-0/+31
expressions.
2004-10-27 * Use `atdiff' instead of `cmp' for checking test output.Eelco Dolstra2-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 matchEelco Dolstra2-0/+12
regexp there could be only one such comment per file.
2004-10-27 * Remove ancient Fix tests.Eelco Dolstra20-0/+91
* Add automated Nix expression language tests.