nix-super/src/nix
Eelco Dolstra 0629601da1
Move EvalState from the stack to the heap
EvalState contains a few counters (e.g. nrValues) that increase
quickly enough that they end up being interpreted as pointers by the
garbage collector. Moving it to the heap makes them invisible to the
garbage collector.

This reduces the max RSS doing 100 evaluations of
nixos.tests.firefox.x86_64-linux.drvPath from 455 MiB to 292 MiB.

Note: ideally, allocations would be much further up in the 64-bit
address space to reduce the odds of an integer being misinterpreted as
a pointer. Maybe we can use some linker magic to move the .bss segment
to a higher address.
2018-06-12 17:49:55 +02:00
..
add-to-store.cc Add "nix add-to-store" command 2017-09-14 13:29:33 +02:00
build.cc Merge branch 'fix/dry-run-partially' of https://github.com/dtzWill/nix 2018-02-22 12:18:20 +01:00
cat.cc Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
command.cc Remove reference to non-existent manpages 2018-03-29 12:29:10 +02:00
command.hh toBuildables -> build 2018-02-12 17:06:06 +01:00
copy.cc nix copy: add an example with S3 2018-03-30 02:31:14 +01:00
dump-path.cc Fix #1762 2018-02-13 14:26:19 +00:00
edit.cc Handle arguments in $EDITOR 2018-04-17 12:16:04 +02:00
eval.cc nix eval: Stop progress bar before printing the result 2018-01-17 12:04:44 +01:00
hash.cc nix: Respect -I, --arg, --argstr 2017-10-24 12:58:34 +02:00
installables.cc toBuildables -> build 2018-02-12 17:06:06 +01:00
legacy.cc Start of new Nix command-line interface 2016-02-09 21:28:29 +01:00
legacy.hh Fix Darwin build 2016-03-15 12:11:27 +01:00
local.mk Update the progress bar at most 20 times per second 2018-02-06 20:51:37 +01:00
log.cc nix log: use pager 2018-01-12 15:05:26 -06:00
ls.cc Update release notes 2018-02-19 20:38:53 +01:00
main.cc Modularize config settings 2018-05-30 13:28:01 +02:00
optimise-store.cc nix optimise-store: Add 2017-08-16 20:56:03 +02:00
path-info.cc Don't indent JSON output 2017-11-14 14:28:03 +01:00
ping-store.cc Manual: Update chapter on remote builds 2018-02-21 16:24:26 +01:00
progress-bar.cc Filter ANSI colors when not writing to a terminal 2018-03-15 16:08:07 +01:00
progress-bar.hh nix run: Flush the progress bar before starting the command 2017-08-29 15:13:30 +02:00
repl.cc Move EvalState from the stack to the heap 2018-06-12 17:49:55 +02:00
run.cc nix run: Fix segfault on macOS 2018-02-26 18:29:40 +01:00
search.cc Allow multiple search experssions in nix search 2018-04-18 21:08:35 +02:00
show-config.cc Modularize config settings 2018-05-30 13:28:01 +02:00
show-derivation.cc Add "nix show-derivation" 2017-09-25 13:43:35 +02:00
sigs.cc nix: Respect -I, --arg, --argstr 2017-10-24 12:58:34 +02:00
upgrade-nix.cc Move EvalState from the stack to the heap 2018-06-12 17:49:55 +02:00
verify.cc nix: Respect -I, --arg, --argstr 2017-10-24 12:58:34 +02:00
why-depends.cc nix why-depends: Write to stdout 2017-09-25 16:59:16 +02:00