forked from lix-project/lix
A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
c34e6d71bc
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. |
||
---|---|---|
blacklisting | ||
corepkgs | ||
doc | ||
externals | ||
make | ||
misc | ||
scripts | ||
src | ||
tests | ||
aterm-gc.supp | ||
AUTHORS | ||
bootstrap.sh | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
nix.conf.example | ||
nix.spec.in | ||
README | ||
release.nix | ||
substitute.mk | ||
version |
Nix is a purely functional package manager. For installation and usage instructions, please read the manual, which can be found in `docs/manual/manual.html', and additionally at the Nix website at <http://nixos.org/>. Acknowledgments This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/).