about summary refs log tree commit diff
path: root/src/libexpr/get-drvs.cc
AgeCommit message (Collapse)AuthorFilesLines
2013-11-19 Check meta values and warn about bad onesEelco Dolstra1-2/+20
2013-11-19 Generalise meta attributesEelco Dolstra1-63/+96
2013-10-24 Rename "attribute sets" to "sets"Eelco Dolstra1-12/+10
We don't have any other kind of sets so calling them attribute sets is unnecessarily verbose.
2012-11-28 nix-env -q --out-path: Support multiple outputsEelco Dolstra1-8/+38
We now print all output paths of a package, e.g. openssl-1.0.0i bin=/nix/store/gq2mvh0wb9l90djvsagln3aqywqmr6vl-openssl-1.0.0i-bin;man=/nix/store/7zwf5r5hsdarl3n86dasvb4chm2xzw9n-openssl-1.0.0i-man;/nix/store/cj7xvk7fjp9q887359j75pw3pzjfmqf1-openssl-1.0.0i or (in XML mode) <item attrPath="openssl" name="openssl-1.0.0i" system="x86_64-linux"> <output name="bin" path="/nix/store/gq2mvh0wb9l90djvsagln3aqywqmr6vl-openssl-1.0.0i-bin" /> <output name="man" path="/nix/store/7zwf5r5hsdarl3n86dasvb4chm2xzw9n-openssl-1.0.0i-man" /> <output name="out" path="/nix/store/cj7xvk7fjp9q887359j75pw3pzjfmqf1-openssl-1.0.0i" /> </item>
2012-11-26 nix-instantiate: Fix read-only evaluationEelco Dolstra1-0/+11
2012-10-04 getDerivation(): Don't always quietly ignore assertion failureEelco Dolstra1-13/+17
Ignoring assertion failures makes some sense for nix-env -qa, but not for nix-instantiate/nix-build or hydra-eval-jobs.
2012-02-04 * Inline some functions and get rid of the indirection throughEelco Dolstra1-0/+1
EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate /etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
2010-10-24 * Keep attribute sets in sorted order to speed up attribute lookups.Eelco Dolstra1-1/+1
* Simplify the representation of attributes in the AST. * Change the behaviour of listToAttrs() in case of duplicate names.
2010-10-24 * Store attribute sets as a vector instead of a map (i.e. a red-blackEelco Dolstra1-17/+17
tree). This saves a lot of memory. The vector should be sorted so that names can be looked up using binary search, but this is not the case yet. (Surprisingly, looking up attributes using linear search doesn't have a big impact on performance.) Memory consumption for $ nix-instantiate /etc/nixos/nixos/tests -A bittorrent.test --readonly-mode on x86_64-linux with GC enabled is now 185 MiB (compared to 946 MiB on the trunk).
2010-10-22 * Store Value nodes outside of attribute sets. I.e., Attr now storesEelco Dolstra1-20/+20
a pointer to a Value, rather than the Value directly. This improves the effectiveness of garbage collection a lot: if the Value is stored inside the set directly, then any live pointer to the Value causes all other attributes in the set to be live as well.
2010-05-07 * Keep track of the source positions of attributes.Eelco Dolstra1-16/+16
2010-04-21 * Store user environment manifests as a Nix expression inEelco Dolstra1-22/+1
$out/manifest.nix rather than as an ATerm. (Hm, I thought I committed this two days ago...)
2010-04-19 * Added parsing of manifests in ATerm format.Eelco Dolstra1-6/+10
2010-04-16 * In an nested `with' where the inner with is a variable (`with ...;Eelco Dolstra1-6/+7
with someVar; ...'), the contents of the variable would be clobbered. (The attributes in the outer `with' were added to the variable.)
2010-04-15 * Store lists as lists of pointers to values rather than as lists ofEelco Dolstra1-3/+3
values. This improves sharing and gives another speed up. Evaluation of the NixOS system attribute is now almost 7 times faster than the old evaluator.
2010-04-13 * Use a symbol table to represent identifiers and attribute namesEelco Dolstra1-8/+8
efficiently. The symbol table ensures that there is only one copy of each symbol, thus allowing symbols to be compared efficiently using a pointer equality test.
2010-04-12 * Don't use ATerms for the abstract syntax trees anymore. NotEelco Dolstra1-11/+10
finished yet.
2010-04-07 * Update autoCallFunction() and findAlongAttrPath().Eelco Dolstra1-4/+5
2010-04-07 * Implemented the primops necessary for generating the NixOS manual.Eelco Dolstra1-5/+2
2010-04-01 * Improve sharing.Eelco Dolstra1-16/+16
2010-03-31 * Get nix-env to compile.Eelco Dolstra1-26/+19
2010-03-31 * Implemented derivations.Eelco Dolstra1-85/+58
2010-03-29 * Started integrating the new evaluator.Eelco Dolstra1-0/+2
2009-06-30 * Support integers and lists of strings in meta fields. This isEelco Dolstra1-11/+35
useful for fields like meta.maintainers, meta.priority (which can be a proper integer now) and even meta.license (if there are multiple licenses).
2008-08-25 * Evaluate attributes in sorted order for better determinism.Eelco Dolstra1-7/+16
2008-08-25 * Minor simplification.Eelco Dolstra1-9/+6
2007-09-17 * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then theEelco Dolstra1-2/+2
Nix expressions in that directory are combined into an attribute set {file1 = import file1; file2 = import file2; ...}, i.e. each Nix expression is an attribute with the file name as the attribute name. Also recurses into directories. * nix-env: removed the "--import" (-I) option which set the ~/.nix-defexpr symlink. * nix-channel: don't use "nix-env --import", instead symlink ~/.nix-defexpr/channels. So finally nix-channel --update doesn't override any default Nix expressions but combines with them. This means that you can have (say) a local Nixpkgs SVN tree and use it as a default for nix-env: $ ln -s .../path-to-nixpkgs-tree ~/.nix-defexpr/nixpkgs_svn and be subscribed to channels (including Nixpkgs) at the same time. (If there is any ambiguity, the -A flag can be used to disambiguate, e.g. "nix-env -i -A nixpkgs_svn.pan".)
2007-05-01 * Give unpacked channels more sensible names than 0, 1, ... They nowEelco Dolstra1-3/+12
get the basename of the channel URL (e.g., nixpkgs-unstable). The top-level Nix expression of the channel is now an attribute set, the attributes of which are the individual channels (e.g., {nixpkgs_unstable = ...; strategoxt_unstable = ...}). This makes attribute paths ("nix-env -qaA" and "nix-env -iA") more sensible, e.g., "nix-env -iA nixpkgs_unstable.subversion".
2007-05-01 * nix-env -i: instead of breaking package ties by version, break themEelco Dolstra1-0/+9
by priority and version install. That is, if there are multiple packages with the same name, then pick the package with the highest priority, and only use the version if there are multiple packages with the same priority. This makes it possible to mark specific versions/variant in Nixpkgs more or less desirable than others. A typical example would be a beta version of some package (e.g., "gcc-4.2.0rc1") which should not be installed even though it is the highest version, except when it is explicitly selected (e.g., "nix-env -i gcc-4.2.0rc1"). * Idem for nix-env -u, only the semantics are a bit trickier since we also need to take into account the priority of the currently installed package (we never upgrade to a lower priority, unless --always is given).
2007-02-02 * nix-env now maintains meta info (from the `meta' derivationEelco Dolstra1-0/+10
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-13 * Cleanup.Eelco Dolstra1-2/+2
2006-10-17 * Backwards compatibility hack for user environments made by Nix <= 0.10.Eelco Dolstra1-0/+7
2006-10-16 * Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra1-8/+12
concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.)
2006-09-04 * Use a proper namespace.Eelco Dolstra1-1/+8
* Optimise header file usage a bit. * Compile the parser as C++.
2006-07-28 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra1-6/+7
to functions from the command line. * nix-build: started removing backticks.
2006-07-26 * Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra1-98/+33
and put it into a separate function findAlongAttrPath().
2006-07-25 * `nix-instantiate --print-args' prints out the arguments of aEelco Dolstra1-3/+3
top-level function.
2006-07-25 * Applied rbroek's patch from the branch atEelco Dolstra1-15/+29
https://svn.cs.uu.nl:12443/repos/trace/buildfarm-control/trunk/ext/nix/, with some modifications. This allows `nix-env -qa' to show the attribute path that can be used to unambiguously install a package using `nix-env -i -A'. Example: $ nix-env -f top-level/all-packages.nix -qaA subversion xorg-server subversionWithJava subversion-1.2.3 subversion subversion-1.3.2 subversion14 subversion-1.4.0pre-rc1 xorg.xorgserver xorg-server-1.1.0
2006-07-24 * Refactoring to support domain checks.Eelco Dolstra1-4/+3
2006-07-19 * Better error messages (especially wrt types).Eelco Dolstra1-4/+4
2006-05-30 * Don't use badTerm, it gives awful error messages.Eelco Dolstra1-1/+2
2006-05-04 * Use the new ATermMap.Eelco Dolstra1-21/+21
2006-05-02 * Huge reduction in memory use (2/3 or so on large nix-env -qasEelco Dolstra1-8/+8
operations): share ATermMaps between DrvInfos.
2006-05-02 * Some preliminaries towards NIX-45.Eelco Dolstra1-1/+1
2006-05-01 * Allow string concatenations involving derivations, e.g.,Eelco Dolstra1-0/+4
configureFlags = "--with-freetype2-library=" + freetype + "/lib";
2006-03-23 * In `nix-env', look for derivations inside attribute sets that haveEelco Dolstra1-1/+15
the `recurseForDerivations' attribute set to `true'.
2006-03-10 * `nix-env -qa --description' shows human-readable descriptions ofEelco Dolstra1-0/+43
packages (provided that they have a `meta.description' attribute). E.g., $ ./src/nix-env/nix-env -qa --description gcc gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x
2006-03-09 * Regression: semantics of the result of getDerivation() changed.Eelco Dolstra1-2/+2
2006-03-08 * When obtaining derivations from Nix expressions, ignore allEelco Dolstra1-34/+50
expressions that cause an assertion failure (like `assert system == "i686-linux"'). This allows all-packages.nix in Nixpkgs to be used on all platforms, even if some Nix expressions don't work on all platforms. Not sure if this is a good idea; it's a bit hacky. In particular, due to laziness some derivations might appear in `nix-env -qa' but disappear in `nix-env -qas' or `nix-env -i'. Commit 5000!
2006-02-10 * In nix-instantiate, allow us to specify a "path" to theEelco Dolstra1-26/+74
derivation(s) we're interested, e.g., $ nix-instantiate ./all-packages.nix --attr xlibs.libX11 List elements can also be selected: $ nix-instantiate ./build-for-release.nix --attr 0.subversion This allows a non-ambiguous specification of a derivation. Of course, this should also be added to nix-env and nix-build.