about summary refs log tree commit diff
path: root/src/libexpr
AgeCommit message (Collapse)AuthorFilesLines
2016-02-04 StoreAPI -> StoreEelco Dolstra3-5/+5
Calling a class an API is a bit redundant...
2016-02-04 Eliminate the "store" global variableEelco Dolstra6-36/+40
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-01-20 Revert "Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra1-7/+17
'start-condition stack underflow'. This fixes #751""" This reverts commit b669d3d2e83d3c50238751b57cff3ed0ca39bc8a.
2016-01-20 Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra1-17/+7
'start-condition stack underflow'. This fixes #751"" This reverts commit ed23c8568e10d15196bb4ff2b79fc14191d28109. Let's merge this *after* the 1.11.1 release.
2016-01-19 next try for "don't abort when given unmatched '}' with 'start-condition ↵Fabian Schmitthenner1-7/+17
stack underflow'. This fixes #751" This reverts commit 8120b6fb8a4924f8ae717bba9bbda4a2f89e2141 and fixes the regression introduced in 8d22b26448a091c76ab972c0b0603daac5e255e4.
2016-01-19 Revert "don't abort when given unmatched '}' with 'start-condition stack ↵Eelco Dolstra1-17/+7
underflow'. This fixes #751" This reverts commit 8d22b26448a091c76ab972c0b0603daac5e255e4. 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-12 don't abort when given unmatched '}' with 'start-condition stack underflow'. ↵Fabian Schmitthenner1-7/+17
This fixes #751
2016-01-07 Fix some signedness warningsEelco Dolstra1-1/+1
2016-01-05 Better error messageFabian Schmitthenner1-1/+1
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 Use __toString when coercing sets to strings.Shea Levy2-2/+10
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 manual: document builtins.functionArgsVladimír Čunát1-1/+1
The text is just a conversion of comment from src/libexpr/primops.cc
2015-12-17 showId: Handle empty attribute namesEelco Dolstra1-2/+3
We should probably disallow these, but until then, we shouldn't barf with an assertion failure. Fixes #738.
2015-11-25 Merge branch 'auto-call-functor'Shea Levy1-0/+11
autoCallFunction now auto-calls functors
2015-11-25 autoCallFunction: Auto-call functorsShea Levy1-0/+11
2015-11-24 Merge pull request #704 from ysangkok/freebsd-supportEelco Dolstra1-1/+4
FreeBSD support with knowledge about Linux emulation
2015-10-29 int2String() -> std::to_string()Eelco Dolstra1-1/+1
2015-10-08 isFunctor: SimplifyEelco Dolstra2-11/+6
2015-10-08 forceFunction: allow functors as wellMathnerd3143-1/+13
2015-10-06 Don't try to link libdl on FreeBSD.Manuel Jacob1-1/+4
There is no libdl on FreeBSD. Instead the symbols are included in libc.
2015-09-18 Shut up clang warningsEelco Dolstra1-0/+2
2015-08-03 Removed unnecessary includedIwan Aucamp1-1/+0
2015-07-31 Fix stack consumptionEelco Dolstra2-8/+3
2015-07-31 Output line number on infinite recursionIwan Aucamp3-13/+14
2015-07-28 Add sort primopEelco Dolstra1-1/+36
2015-07-28 Add primop genListEelco Dolstra1-0/+20
This can be used to implement functions like ‘imap’ (or for that matter, ‘map’) without the quadratic complexity incurred by calling ‘++’ repeatedly.
2015-07-24 Add replaceStrings primopEelco Dolstra1-1/+37
This is a generalisation of replaceChars in Nixpkgs.
2015-07-24 Add concatStringsSep as a primopEelco Dolstra1-0/+21
This fixes the quadratic behaviour of concatStrings/concatStringsSep in Nixpkgs.
2015-07-23 CleanupEelco Dolstra2-18/+13
2015-07-23 Optimize empty setsEelco Dolstra3-4/+14
This reduces the number of Bindings allocations by about 10%.
2015-07-23 Merge branch 'attr-set-hh' of https://github.com/nbp/nixEelco Dolstra4-94/+142
Conflicts: src/libexpr/eval.cc
2015-07-23 Optimize small listsEelco Dolstra9-115/+151
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 Add primops all and anyEelco Dolstra1-0/+33
These are used thousands of times during NixOS evaluation, so it's useful to speed them up.
2015-07-23 Importing derivations: Add name attribute to make a valid drvShea Levy1-1/+3
2015-07-23 Allow derivations-as-srcs in the context of builtins.toFile filesShea Levy1-2/+6
2015-07-23 Add foldl' primopEelco Dolstra1-0/+24
2015-07-20 Make <nix/fetchurl.nix> a builtin builderEelco Dolstra3-259/+1
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-17 OCD: foreach -> C++11 ranged forEelco Dolstra9-200/+194
2015-07-17 Make printValue() interruptibleEelco Dolstra1-0/+2
Fixes #572.
2015-07-14 Move attribute set data structures into their own header file.Nicolas B. Pierron4-94/+142
This modification moves Attr and Bindings structures into their own header file which is dedicated to the attribute set representation. The goal of to isolate pieces of code which are related to the attribute set representation. Thus future modifications of the attribute set representation will only have to modify these files, and not every other file across the evaluator.
2015-07-03 Fix the parsing of "$"'s in strings.Guillaume Maudoux1-6/+5
2015-07-03 Fix the hack that resets the scanner state.Guillaume Maudoux2-42/+19
2015-06-17 Support URLs in $NIX_PATHEelco Dolstra1-1/+13
This didn't work (despite claims in the manual), because the colon in "http://" was parsed as a element separator. So handle "://" specially.
2015-06-01 Add tarball testsEelco Dolstra1-1/+1
2015-06-01 Document tarball downloadingEelco Dolstra1-0/+1
2015-06-01 Fix fetchurl/fetchTarballEelco Dolstra1-1/+2
2015-06-01 readFile: Check against nul bytesEelco Dolstra1-1/+4
2015-05-22 Fix import-from-derivation in restricted eval modeEelco Dolstra1-0/+7
This relaxes restricted mode to allow access to anything in the store. In the future, it would be better to allow access to only paths that have been constructed in the current evaluation (so a hard-coded /nix/store/blabla in a Nix expression would still be rejected). However, note that reading /nix/store itself is still rejected, so you can't use this so get access to things you don't know about.
2015-05-06 nix-env/nix-instantiate/nix-build: Support URIsEelco Dolstra4-11/+16
For instance, you can install Firefox from a specific Nixpkgs revision like this: $ nix-env -f https://github.com/NixOS/nixpkgs/archive/63def04891a0abc328b1b0b3a78ec02c58f48583.tar.gz -iA firefox Or build a package from the latest nixpkgs-unstable channel: $ nix-build https://nixos.org/channels/nixpkgs-unstable/nixexprs.tar.xz -A hello
2015-05-05 Allow URLs in the Nix search pathEelco Dolstra4-92/+116
E.g. to install "hello" from the latest Nixpkgs: $ nix-build '<nixpkgs>' -A hello -I nixpkgs=https://nixos.org/channels/nixpkgs-unstable/nixexprs.tar.xz Or to install a specific version of NixOS: $ nixos-rebuild switch -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/63def04891a0abc328b1b0b3a78ec02c58f48583.tar.gz
2015-05-05 Make downloads interruptableEelco Dolstra1-0/+9