lix/src/libexpr
Eelco Dolstra c34e6d71bc * Disallow equality tests between attribute sets. This was always
broken, but now the evaluator checks for it to prevent Nix
  expressions from relying on undefined behaviour.  Equality tests are
  implemented using a shallow pointer equality test between ATerms.
  However, because attribute sets are lazy and contain position
  information, this can give false positives.  For instance,
  previously

    let y = {x = 1;}; in y == y

  evaluated to true, while the equivalent expression

    {x = 1;} == {x = 1;}

  evaluated to false.  So disallow these tests for now.  (Eventually
  we may want to implement deep equality tests for attribute sets,
  like lib.eqStrict.)
  
* Idem: disallow comparisons between functions.

* Implemented deep comparisons of lists.  This had the same problem as
  attribute sets - the elements in the list weren't evaluated.  For
  instance,

    ["xy"] == [("x" + "y")]

  evaluated to false.  Now it works properly.
2009-05-11 15:50:14 +00:00
..
attr-path.cc * Cleanup. 2007-01-13 14:21:49 +00:00
attr-path.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
common-opts.cc * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
common-opts.hh * Option --argstr for passing string arguments easily. (NIX-75) 2007-01-14 12:32:44 +00:00
eval.cc * Disallow equality tests between attribute sets. This was always 2009-05-11 15:50:14 +00:00
eval.hh * Memoize strict evaluation. 2007-01-13 15:41:54 +00:00
expr-to-xml.cc * Added an experimental feature suggested by Andres: ellipses ("...") 2008-08-14 14:00:44 +00:00
expr-to-xml.hh * Big cleanup of the semantics of paths, strings, contexts, string 2006-10-16 15:55:34 +00:00
get-drvs.cc * Evaluate attributes in sorted order for better determinism. 2008-08-25 14:31:29 +00:00
get-drvs.hh * nix-env -i: instead of breaking package ties by version, break them 2007-05-01 20:33:18 +00:00
lexer.l * Added an experimental feature suggested by Andres: ellipses ("...") 2008-08-14 14:00:44 +00:00
Makefile.am 2009-03-06 11:01:45 +00:00
names.cc * Export the nix-env derivation name parsing and version comparison 2008-07-01 10:10:32 +00:00
names.hh * Export the nix-env derivation name parsing and version comparison 2008-07-01 10:10:32 +00:00
nix.sdf First attempt to update Nix SDF grammar to match the actual bison grammar 2008-06-04 14:36:46 +00:00
nixexpr-ast.def * Another experimental feature: a way to truly override attributes in 2008-08-14 16:59:37 +00:00
nixexpr.cc * Added an experimental feature suggested by Andres: ellipses ("...") 2008-08-14 14:00:44 +00:00
nixexpr.hh * Added an experimental feature suggested by Andres: ellipses ("...") 2008-08-14 14:00:44 +00:00
parser.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
parser.y * Remove a right recursion that causes the parser to barf on very long 2009-05-07 11:35:52 +00:00
primops.cc * Unify exportReferencesGraph and exportBuildReferencesGraph, and make 2009-03-18 17:36:42 +00:00