Eelco Dolstra
363f37d084
Make the search path lazier with non-fatal errors
...
Thus, -I / $NIX_PATH entries are now downloaded only when they are
needed for evaluation. An error to download an entry is a non-fatal
warning (just like non-existant paths).
This does change the semantics of builtins.nixPath, which now returns
the original, rather than resulting path. E.g., before we had
[ { path = "/nix/store/hgm3yxf1lrrwa3z14zpqaj5p9vs0qklk-nixexprs.tar.xz"; prefix = "nixpkgs"; } ... ]
but now
[ { path = "https://nixos.org/channels/nixos-16.03/nixexprs.tar.xz "; prefix = "nixpkgs"; } ... ]
Fixes #792 .
2016-04-14 15:32:24 +02:00
Eelco Dolstra
12b257f045
Make primop registration pluggable
...
This way we don't have to put all primops in one giant file.
2016-04-14 12:50:01 +02:00
Nikolay Amiantov
f7f0116dd7
Propagate path context via builtins.readFile
2016-03-04 14:04:51 +03:00
Eelco Dolstra
e9c50064b5
Add an HTTP binary cache store
...
Allowing stuff like
NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1
or
NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
2016-02-29 18:15:20 +01:00
Scott Olson
6498adb002
Throw a specific error for incomplete parse errors.
...
`nix-repl` will use this for deciding whether to keep waiting for input or
error out right away.
2016-02-24 04:32:21 -06:00
Eelco Dolstra
7a173a7be1
JSONObject: Support floats and booleans
2016-02-19 14:24:04 +01:00
Eelco Dolstra
e03d6e0998
Fix broken number parsing in fromJSON
...
The call to tmp_number.append had its arguments mixed up. Also, JSON
does not allow a trailing "," after array/object members.
2016-02-15 15:01:26 +01:00
Eelco Dolstra
b3e8d72770
Merge pull request #762 from ctheune/ctheune-floats
...
Implement floats
2016-02-12 12:49:59 +01:00
Eelco Dolstra
fa7cd5369b
StoreAPI -> Store
...
Calling a class an API is a bit redundant...
2016-02-04 14:48:42 +01:00
Eelco Dolstra
c10c61449f
Eliminate the "store" global variable
...
Also, move a few free-standing functions into StoreAPI and Derivation.
Also, introduce a non-nullable smart pointer, ref<T>, which is just a
wrapper around std::shared_ptr ensuring that the pointer is never
null. (For reference-counted values, this is better than passing a
"T&", because the latter doesn't maintain the refcount. Usually, the
caller will have a shared_ptr keeping the value alive, but that's not
always the case, e.g., when passing a reference to a std::thread via
std::bind.)
2016-02-04 14:28:26 +01:00
Eelco Dolstra
5d8b7eb3e1
Revert "Revert "next try for "don't abort when given unmatched '}' with 'start-condition stack underflow'. This fixes #751 """
...
This reverts commit b669d3d2e8
.
2016-01-20 16:34:42 +01:00
Eelco Dolstra
b669d3d2e8
Revert "next try for "don't abort when given unmatched '}' with 'start-condition stack underflow'. This fixes #751 ""
...
This reverts commit ed23c8568e
. Let's
merge this *after* the 1.11.1 release.
2016-01-20 00:05:28 +01:00
Fabian Schmitthenner
ed23c8568e
next try for "don't abort when given unmatched '}' with 'start-condition stack underflow'. This fixes #751 "
...
This reverts commit 8120b6fb8a
and fixes the regression introduced in
8d22b26448
.
2016-01-19 20:35:35 +00:00
Eelco Dolstra
8120b6fb8a
Revert "don't abort when given unmatched '}' with 'start-condition stack underflow'. This fixes #751 "
...
This reverts commit 8d22b26448
. It
breaks Nixpkgs:
$ nix-env -qa
error: syntax error, unexpected IND_STR, expecting '}', at /home/eelco/Dev/nixpkgs-stable/pkgs/top-level/python-packages.nix:7605:8
2016-01-19 20:33:32 +01:00
Fabian Schmitthenner
8d22b26448
don't abort when given unmatched '}' with 'start-condition stack underflow'. This fixes #751
2016-01-12 20:40:41 +00:00
Eelco Dolstra
9aac1861f7
Fix some signedness warnings
2016-01-07 14:37:39 +01:00
Christian Theune
934642155c
@eelco's feedback: downgrade to regular float for size, remove unused function.
2016-01-06 08:25:58 +01:00
Fabian Schmitthenner
39d1da7b51
Better error message
...
Also show types when nix cannot compare values of different types.
This is also more consistent since types are already shown when comparing values of the same not comparable type.
2016-01-05 14:13:54 +01:00
Shea Levy
14080f3e4b
Use __toString when coercing sets to strings.
...
For example, "${{ foo = "bar"; __toString = x: x.foo; }}" evaluates
to "bar".
With this, we can delay calling functions like mkDerivation,
buildPythonPackage, etc. until we actually need a derivation, enabling
overrides and other modifications to happen by simple attribute set
update.
2016-01-05 13:55:06 +01:00
Vladimír Čunát
29c0199d5c
manual: document builtins.functionArgs
...
The text is just a conversion of comment from src/libexpr/primops.cc
2016-01-05 13:29:17 +01:00
Christian Theune
a12a43046b
Edge condition: parser did not pick up floats starting exactly with 0.
2016-01-05 09:54:49 +01:00
Christian Theune
f872262e08
Fix up float parsing.
2016-01-05 09:46:37 +01:00
Christian Theune
494fc5acbb
Try a simplified version of float lexing that didn't work.
...
The last one I tried was botchered anyway ...
2016-01-05 00:53:22 +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
a9faa7bbce
showId: Handle empty attribute names
...
We should probably disallow these, but until then, we shouldn't barf
with an assertion failure.
Fixes #738 .
2015-12-17 15:15:28 +01:00
Shea Levy
f327970129
Merge branch 'auto-call-functor'
...
autoCallFunction now auto-calls functors
2015-11-25 11:57:31 -05:00
Shea Levy
9533532ce2
autoCallFunction: Auto-call functors
2015-11-25 11:56:14 -05:00
Eelco Dolstra
cad40adce5
Merge pull request #704 from ysangkok/freebsd-support
...
FreeBSD support with knowledge about Linux emulation
2015-11-24 19:24:21 +01:00
Eelco Dolstra
5c28943e8f
int2String() -> std::to_string()
2015-10-29 13:26:55 +01:00
Eelco Dolstra
51cf4455b2
isFunctor: Simplify
2015-10-08 13:22:11 +02:00
Mathnerd314
8a87521636
forceFunction: allow functors as well
2015-10-08 13:19:44 +02:00
Manuel Jacob
12c1776df9
Don't try to link libdl on FreeBSD.
...
There is no libdl on FreeBSD. Instead the symbols are included in libc.
2015-10-06 22:28:30 +02:00
Eelco Dolstra
4ba6bc184c
Shut up clang warnings
2015-09-18 01:22:35 +02:00
Iwan Aucamp
3db950aab7
Removed unnecessary included
2015-08-03 11:48:34 +02:00
Eelco Dolstra
2bac04c5ff
Fix stack consumption
2015-07-31 20:28:25 +02:00
Iwan Aucamp
75837651f1
Output line number on infinite recursion
2015-07-31 20:26:44 +02:00
Eelco Dolstra
76cc8e97a2
Add sort primop
2015-07-28 18:39:39 +02:00
Eelco Dolstra
50807f3dd5
Add primop genList
...
This can be used to implement functions like ‘imap’ (or for that
matter, ‘map’) without the quadratic complexity incurred by calling
‘++’ repeatedly.
2015-07-28 17:28:35 +02:00
Eelco Dolstra
d6d5885c15
Add replaceStrings primop
...
This is a generalisation of replaceChars in Nixpkgs.
2015-07-24 15:32:24 +02:00
Eelco Dolstra
2e8fd4c5cd
Add concatStringsSep as a primop
...
This fixes the quadratic behaviour of concatStrings/concatStringsSep
in Nixpkgs.
2015-07-24 02:38:09 +02:00
Eelco Dolstra
cb4320c1a0
Cleanup
2015-07-23 23:14:07 +02:00
Eelco Dolstra
c8bb2371eb
Optimize empty sets
...
This reduces the number of Bindings allocations by about 10%.
2015-07-23 23:11:08 +02:00
Eelco Dolstra
19eddecc0f
Merge branch 'attr-set-hh' of https://github.com/nbp/nix
...
Conflicts:
src/libexpr/eval.cc
2015-07-23 22:16:01 +02: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
14be783676
Add primops all and any
...
These are used thousands of times during NixOS evaluation, so it's
useful to speed them up.
2015-07-23 19:23:11 +02:00
Shea Levy
39e27a04b8
Importing derivations: Add name attribute to make a valid drv
2015-07-23 17:04:07 +02:00
Shea Levy
1ed55234d9
Allow derivations-as-srcs in the context of builtins.toFile files
2015-07-23 17:03:47 +02:00
Eelco Dolstra
61af14a921
Add foldl' primop
2015-07-23 17:03:02 +02:00
Eelco Dolstra
0a2bee307b
Make <nix/fetchurl.nix> a builtin builder
...
This ensures that 1) the derivation doesn't change when Nix changes;
2) the derivation closure doesn't contain Nix and its dependencies; 3)
we don't have to rely on ugly chroot hacks.
2015-07-20 04:38:46 +02:00
Eelco Dolstra
6bd2c7bb38
OCD: foreach -> C++11 ranged for
2015-07-17 20:13:56 +02:00