Eelco Dolstra
742a8046de
Store short strings in Values
...
The vast majority of strings are < 16 bytes, and so can be stored
directly in a Value. This saves a heap allocation and an indirection.
2019-04-23 12:20:27 +02:00
Eelco Dolstra
7c716b4c49
Checkpoint
2019-04-22 23:25:47 +02:00
Eelco Dolstra
4237414f4d
Checkpoint
2019-04-15 18:40:35 +02:00
Eelco Dolstra
ef52ccf035
experimental/optional -> optional
2019-03-14 14:10:52 +01:00
Eelco Dolstra
90948a4e3a
nix-shell/nix-build: Support .drv files again
...
Fixes #1663 .
Also handle '!<output-name>' (#1694 ).
2017-11-24 18:08:35 +01:00
Jörg Thalheim
2fd8f8bb99
Replace Unicode quotes in user-facing strings by ASCII
...
Relevant RFC: NixOS/rfcs#4
$ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-30 12:32:45 +01:00
Eelco Dolstra
c94f3d5575
nix-shell: Use bashInteractive from <nixpkgs>
...
This adds about 0.1s to nix-shell runtime in the case where
bashInteractive already exists.
See discussion at https://github.com/NixOS/nixpkgs/issues/27493 .
2017-07-20 13:50:25 +02:00
Eelco Dolstra
90825dea51
Add "nix search" command
2017-07-20 13:33:13 +02:00
Eelco Dolstra
b01d62285c
Improve progress indicator
2017-05-16 16:09:57 +02:00
Eelco Dolstra
b0cb117226
getDerivations(): Filter out packages with bad derivation names
...
In particular, this disallows attribute names containing dots or
starting with dots. Hydra already disallowed these. This affects the
following packages in Nixpkgs master:
2048-in-terminal
2bwm
389-ds-base
90secondportraits
lispPackages.3bmd
lispPackages.hu.dwim.asdf
lispPackages.hu.dwim.def
Closes #1342 .
2017-04-19 14:18:26 +02:00
Eelco Dolstra
54801ed6ad
Bindings: Add a method for iterating in lexicographically sorted order
2017-01-26 20:40:33 +01:00
Eelco Dolstra
215b70f51e
Revert "Get rid of unicode quotes ( #1140 )"
...
This reverts commit f78126bfd6 . There
really is no need for such a massive change...
2016-11-26 00:38:01 +01:00
Guillaume Maudoux
f78126bfd6
Get rid of unicode quotes ( #1140 )
2016-11-25 15:48:27 +01:00
Eelco Dolstra
c42d1acfeb
forceBool(): Show position info
2016-08-29 19:37:19 +02:00
Eelco Dolstra
41633f9f73
Improved logging abstraction
...
This also gets rid of --log-type, since the nested log type isn't
useful in a multi-threaded situation, and nobody cares about the
"pretty" log type.
2016-04-25 19:18:45 +02:00
Vladimír Čunát
03cbb9ad59
nix-env: respect meta.outputsToInstall
...
Discussed on https://github.com/NixOS/nixpkgs/pull/12653#discussion_r51601849
2016-02-23 14:19:14 +01:00
Christian Theune
14ebde5289
First hit at providing support for floats in the language.
2016-01-05 00:40:40 +01:00
Eelco Dolstra
b83801f8b3
Optimize small lists
...
The value pointers of lists with 1 or 2 elements are now stored in the
list value itself. In particular, this makes the "concatMap (x: if
cond then [(f x)] else [])" idiom cheaper.
2015-07-23 22:05:09 +02:00
Eelco Dolstra
6bd2c7bb38
OCD: foreach -> C++11 ranged for
2015-07-17 20:13:56 +02:00
Eelco Dolstra
5b58991a71
Store Attrs inside Bindings
...
This prevents a double allocation per attribute set.
2014-09-19 16:49:41 +02:00
Eelco Dolstra
11849a320e
Use proper quotes everywhere
2014-08-20 18:03:48 +02:00
Eelco Dolstra
bd9b1d97b4
Show position info in string concatenation / addition errors
2014-04-04 22:19:33 +02:00
Eelco Dolstra
a5fe730940
forceString: Show position info
2014-04-04 21:14:11 +02:00
Eelco Dolstra
27b44b8cf7
forceAttrs: Show position info
2014-04-04 19:11:40 +02:00
Eelco Dolstra
96b695ccab
forceList: Show position info
2014-04-04 19:05:36 +02:00
Eelco Dolstra
30b986908e
Check meta values and warn about bad ones
2013-11-19 14:29:39 +01:00
Eelco Dolstra
0f24400d90
Generalise meta attributes
2013-11-19 14:09:14 +01:00
Eelco Dolstra
5bc41d78ff
Rename "attribute sets" to "sets"
...
We don't have any other kind of sets so calling them attribute sets is
unnecessarily verbose.
2013-10-24 16:41:04 +02:00
Eelco Dolstra
8eed07cda4
nix-env -q --out-path: Support multiple outputs
...
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-28 13:49:44 +01:00
Eelco Dolstra
408a7bfac1
nix-instantiate: Fix read-only evaluation
2012-11-26 17:41:10 +01:00
Eelco Dolstra
70f75be199
getDerivation(): Don't always quietly ignore assertion failure
...
Ignoring assertion failures makes some sense for nix-env -qa, but not
for nix-instantiate/nix-build or hydra-eval-jobs.
2012-10-04 15:22:25 -04:00
Eelco Dolstra
f491ae97d4
* Inline some functions and get rid of the indirection through
...
EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate
/etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
2012-02-04 13:50:25 +00:00
Eelco Dolstra
e0b7fb8f27
* Keep attribute sets in sorted order to speed up attribute lookups.
...
* Simplify the representation of attributes in the AST.
* Change the behaviour of listToAttrs() in case of duplicate names.
2010-10-24 19:52:33 +00:00
Eelco Dolstra
0b305c534f
* Store attribute sets as a vector instead of a map (i.e. a red-black
...
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-24 00:41:29 +00:00
Eelco Dolstra
41c45a9b31
* Store Value nodes outside of attribute sets. I.e., Attr now stores
...
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-10-22 14:47:42 +00:00
Eelco Dolstra
e2d5e40f4f
* Keep track of the source positions of attributes.
2010-05-07 12:11:05 +00:00
Eelco Dolstra
fe2d869e04
* Store user environment manifests as a Nix expression in
...
$out/manifest.nix rather than as an ATerm.
(Hm, I thought I committed this two days ago...)
2010-04-21 15:08:58 +00:00
Eelco Dolstra
55b5ddd3ca
* Added parsing of manifests in ATerm format.
2010-04-19 12:10:04 +00:00
Eelco Dolstra
02c1dac909
* In an nested with' where the inner with is a variable (with ...;
...
with someVar; ...'), the contents of the variable would be
clobbered. (The attributes in the outer `with' were added to the
variable.)
2010-04-16 13:44:02 +00:00
Eelco Dolstra
04c4bd3624
* Store lists as lists of pointers to values rather than as lists of
...
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-15 00:37:36 +00:00
Eelco Dolstra
ac1e8f40d4
* Use a symbol table to represent identifiers and attribute names
...
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-13 12:25:42 +00:00
Eelco Dolstra
4d6ad5be17
* Don't use ATerms for the abstract syntax trees anymore. Not
...
finished yet.
2010-04-12 18:30:11 +00:00
Eelco Dolstra
af2a372bb0
* Update autoCallFunction() and findAlongAttrPath().
2010-04-07 15:47:06 +00:00
Eelco Dolstra
fc92244ba8
* Implemented the primops necessary for generating the NixOS manual.
2010-04-07 13:55:46 +00:00
Eelco Dolstra
7b851915bf
* Improve sharing.
2010-04-01 12:04:57 +00:00
Eelco Dolstra
d8cd3115d8
* Get nix-env to compile.
2010-03-31 19:12:08 +00:00
Eelco Dolstra
3d94be61ea
* Implemented derivations.
2010-03-31 15:38:03 +00:00
Eelco Dolstra
31428c3a06
* Started integrating the new evaluator.
2010-03-29 14:37:56 +00:00
Eelco Dolstra
749dd97a54
* Support integers and lists of strings in meta fields. This is
...
useful for fields like meta.maintainers, meta.priority (which can be
a proper integer now) and even meta.license (if there are multiple
licenses).
2009-06-30 15:53:39 +00:00
Eelco Dolstra
abec1c0004
* Evaluate attributes in sorted order for better determinism.
2008-08-25 14:31:29 +00:00