aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr
AgeCommit message (Collapse)Author
2016-02-12Merge pull request #762 from ctheune/ctheune-floatsEelco Dolstra
Implement floats
2016-02-04StoreAPI -> StoreEelco Dolstra
Calling a class an API is a bit redundant...
2016-02-04Eliminate the "store" global variableEelco Dolstra
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-20Revert "Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra
'start-condition stack underflow'. This fixes #751""" This reverts commit b669d3d2e83d3c50238751b57cff3ed0ca39bc8a.
2016-01-20Revert "next try for "don't abort when given unmatched '}' with ↵Eelco Dolstra
'start-condition stack underflow'. This fixes #751"" This reverts commit ed23c8568e10d15196bb4ff2b79fc14191d28109. Let's merge this *after* the 1.11.1 release.
2016-01-19next try for "don't abort when given unmatched '}' with 'start-condition ↵Fabian Schmitthenner
stack underflow'. This fixes #751" This reverts commit 8120b6fb8a4924f8ae717bba9bbda4a2f89e2141 and fixes the regression introduced in 8d22b26448a091c76ab972c0b0603daac5e255e4.
2016-01-19Revert "don't abort when given unmatched '}' with 'start-condition stack ↵Eelco Dolstra
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-12don't abort when given unmatched '}' with 'start-condition stack underflow'. ↵Fabian Schmitthenner
This fixes #751
2016-01-07Fix some signedness warningsEelco Dolstra
2016-01-06@eelco's feedback: downgrade to regular float for size, remove unused function.Christian Theune
2016-01-05Better error messageFabian Schmitthenner
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-05Use __toString when coercing sets to strings.Shea Levy
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-05manual: document builtins.functionArgsVladimír Čunát
The text is just a conversion of comment from src/libexpr/primops.cc
2016-01-05Edge condition: parser did not pick up floats starting exactly with 0.Christian Theune
2016-01-05Fix up float parsing.Christian Theune
2016-01-05Try a simplified version of float lexing that didn't work.Christian Theune
The last one I tried was botchered anyway ...
2016-01-05First hit at providing support for floats in the language.Christian Theune
2015-12-17showId: Handle empty attribute namesEelco Dolstra
We should probably disallow these, but until then, we shouldn't barf with an assertion failure. Fixes #738.
2015-11-25Merge branch 'auto-call-functor'Shea Levy
autoCallFunction now auto-calls functors
2015-11-25autoCallFunction: Auto-call functorsShea Levy
2015-11-24Merge pull request #704 from ysangkok/freebsd-supportEelco Dolstra
FreeBSD support with knowledge about Linux emulation
2015-10-29int2String() -> std::to_string()Eelco Dolstra
2015-10-08isFunctor: SimplifyEelco Dolstra
2015-10-08forceFunction: allow functors as wellMathnerd314
2015-10-06Don't try to link libdl on FreeBSD.Manuel Jacob
There is no libdl on FreeBSD. Instead the symbols are included in libc.
2015-09-18Shut up clang warningsEelco Dolstra
2015-08-03Removed unnecessary includedIwan Aucamp
2015-07-31Fix stack consumptionEelco Dolstra
2015-07-31Output line number on infinite recursionIwan Aucamp
2015-07-28Add sort primopEelco Dolstra
2015-07-28Add primop genListEelco Dolstra
This can be used to implement functions like ‘imap’ (or for that matter, ‘map’) without the quadratic complexity incurred by calling ‘++’ repeatedly.
2015-07-24Add replaceStrings primopEelco Dolstra
This is a generalisation of replaceChars in Nixpkgs.
2015-07-24Add concatStringsSep as a primopEelco Dolstra
This fixes the quadratic behaviour of concatStrings/concatStringsSep in Nixpkgs.
2015-07-23CleanupEelco Dolstra
2015-07-23Optimize empty setsEelco Dolstra
This reduces the number of Bindings allocations by about 10%.
2015-07-23Merge branch 'attr-set-hh' of https://github.com/nbp/nixEelco Dolstra
Conflicts: src/libexpr/eval.cc
2015-07-23Optimize small listsEelco Dolstra
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-23Add primops all and anyEelco Dolstra
These are used thousands of times during NixOS evaluation, so it's useful to speed them up.
2015-07-23Importing derivations: Add name attribute to make a valid drvShea Levy
2015-07-23Allow derivations-as-srcs in the context of builtins.toFile filesShea Levy
2015-07-23Add foldl' primopEelco Dolstra
2015-07-20Make <nix/fetchurl.nix> a builtin builderEelco Dolstra
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-17OCD: foreach -> C++11 ranged forEelco Dolstra
2015-07-17Make printValue() interruptibleEelco Dolstra
Fixes #572.
2015-07-14Move attribute set data structures into their own header file.Nicolas B. Pierron
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-03Fix the parsing of "$"'s in strings.Guillaume Maudoux
2015-07-03Fix the hack that resets the scanner state.Guillaume Maudoux
2015-06-17Support URLs in $NIX_PATHEelco Dolstra
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-01Add tarball testsEelco Dolstra
2015-06-01Document tarball downloadingEelco Dolstra