about summary refs log tree commit diff
path: root/src/libexpr/eval.cc
AgeCommit message (Collapse)AuthorFilesLines
2015-07-17 OCD: foreach -> C++11 ranged forEelco Dolstra1-45/+45
2015-07-17 Make printValue() interruptibleEelco Dolstra1-0/+2
Fixes #572.
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-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-04-16 Fix using restricted mode with chrootsEelco Dolstra1-0/+5
2015-03-25 addToStore(): Take explicit name argumentEelco Dolstra1-1/+1
2015-03-19 Disable scanning for interior pointersEelco Dolstra1-0/+2
This may remove the "Repeated allocation of very large block" warnings.
2015-03-19 Fix Boehm API violationEelco Dolstra1-38/+42
We were calling GC_INIT() after doing an allocation (in the baseEnv construction), which is not allowed.
2015-03-19 Check return values from malloc/strdupEelco Dolstra1-11/+34
2015-03-18 Print some Boehm GC statsEelco Dolstra1-0/+7
2015-03-18 valueSize(): Take into account list/bindings/env sizeEelco Dolstra1-6/+15
2015-03-06 forceValueDeep: Add to error prefixEelco Dolstra1-2/+7
2015-03-06 Improve error messageEelco Dolstra1-11/+20
2015-02-23 Add restricted evaluation modeEelco Dolstra1-3/+20
If ‘--option restrict-eval true’ is given, the evaluator will throw an exception if an attempt is made to access any file outside of the Nix search path. This is primarily intended for Hydra, where we don't want people doing ‘builtins.readFile ~/.ssh/id_dsa’ or stuff like that.
2015-02-19 ExprConcatStrings: canonicalize concatenated pathsShea Levy1-1/+2
2014-12-12 Remove canary stuffEelco Dolstra1-21/+0
2014-12-02 Make all ExternalValueBase functions constShea Levy1-3/+3
2014-12-02 Allow external code using libnixexpr to add typesShea Levy1-0/+33
Code that links to libnixexpr (e.g. plugins loaded with importNative, or nix-exec) may want to provide custom value types and operations on values of those types. For example, nix-exec is currently using sets where a custom IO value type would be more appropriate. This commit provides a generic hook for such types in the form of tExternal and the ExternalBase virtual class, which contains all functions necessary for libnixexpr's type-polymorphic functions (e.g. `showType`) to be implemented.
2014-11-25 forceString(): Accept pos argumentEelco Dolstra1-2/+2
2014-11-15 Add functors (callable attribute sets).Shea Levy1-0/+12
With this, attribute sets with a `__functor` attribute can be applied just like normal functions. This can be used to attach arbitrary metadata to a function without callers needing to treat it specially.
2014-10-31 Fix more warningsEelco Dolstra1-11/+1
2014-10-09 mkList: Scrub betterEelco Dolstra1-0/+1
Clearing v.app.right was not enough, because the length field of a list only takes 32 bits, so the most significant 32 bits of v.app.left (a.k.a. v.thunk.env) would remain. This could cause Boehm GC to interpret it as a valid pointer. This change reduces maximum RSS for evaluating the ‘tested’ job in nixos/release-small.nix from 1.33 GiB to 0.80 GiB, and runtime by about 8%.
2014-10-05 Get rid of some unnecessary ExprConcatStrings nodes in dynamic attrsEelco Dolstra1-6/+3
This gives a ~18% speedup in NixOS evaluation (after converting most calls to hasAttr/getAttr to dynamic attrs).
2014-10-05 Show total allocationsEelco Dolstra1-8/+10
2014-10-01 printValue(): Don't print <CYCLE> for repeated valuesEelco Dolstra1-7/+9
2014-09-22 Make forceValueDeep work on values with cyclesEelco Dolstra1-9/+20
2014-09-22 Rename strictForceValue -> forceValueDeepEelco Dolstra1-3/+3
2014-09-22 Handle cycles when printing a valueEelco Dolstra1-5/+23
So this no longer crashes with a stack overflow: nix-instantiate -E --eval 'let as = { x = as; }; in as' Instead it prints: { x = { x = <CYCLE>; }; }
2014-09-22 Add a function ‘valueSize’Eelco Dolstra1-0/+80
It returns the size of value, including all other values and environments reachable from it. It is intended for debugging memory consumption issues.
2014-09-19 Inline Bindings::find()Eelco Dolstra1-9/+0
2014-09-19 Store Attrs inside BindingsEelco Dolstra1-14/+25
This prevents a double allocation per attribute set.
2014-09-17 Add some instrumentation for debugging GC leaksEelco Dolstra1-0/+22
2014-09-02 Fix boost::too_many_args errorEelco Dolstra1-1/+1
Fixes #333.
2014-08-20 Use proper quotes everywhereEelco Dolstra1-14/+14
2014-08-13 Fix warning about non-existant -I directoriesEelco Dolstra1-1/+1
2014-06-10 == operator: Ignore string contextEelco Dolstra1-11/+2
There really is no case I can think of where taking the context into account is useful. Mostly it's just very inconvenient.
2014-05-26 Remove ExprBuiltinEelco Dolstra1-11/+0
It's slower than ExprVar since it doesn't compute a static displacement. Since we're not using the throw primop in the implementation of <...> anymore, it's also not really needed.
2014-05-26 Ensure that -I flags get included in nixPathEelco Dolstra1-4/+3
Also fixes #261.
2014-05-15 Provide a more useful error message when a dynamic attr lookup failsShea Levy1-2/+10
2014-04-04 Show position info in attribute selection errorsEelco Dolstra1-7/+7
2014-04-04 Show position info in Boolean operationsEelco Dolstra1-7/+17
2014-04-04 Show position info in string concatenation / addition errorsEelco Dolstra1-12/+27
2014-04-04 forceString: Show position infoEelco Dolstra1-9/+24
2014-04-04 forceAttrs: Show position infoEelco Dolstra1-1/+1
2014-04-04 forceList: Show position infoEelco Dolstra1-7/+2
2014-04-04 forceInt: Show position infoEelco Dolstra1-2/+2
2014-04-04 Pass position information to primop callsEelco Dolstra1-3/+3
For example: error: `tail' called on an empty list, at /home/eelco/Dev/nixpkgs/pkgs/applications/misc/hello/ex-2/default.nix:13:7
2014-04-04 Include position info in function applicationEelco Dolstra1-12/+19
This allows error messages like: error: the anonymous function at `/etc/nixos/configuration.nix:1:1' called without required argument `foo', at `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:77:59'
2014-03-30 boost::shared_ptr -> std::shared_ptrEelco Dolstra1-0/+1
2014-03-10 The expr of AttrNames/DynamicAttrDefs is always an ExprConcatStringsShea Levy1-5/+3