eldritch horrors
b3599166ad
not doing this exposes the binding name order to the annoying
interference of parse order on symbol order, which wouldn't be so bad if
it didn't make the tests less reliable and, importantly, dependent on
linker behavior (due to primop initialization being done in static
initializer, and the order of static initializers being defined only
within a single translation unit).
fixes #143
Change-Id: I3cf417893fbcf19e9ad3ff8986deb7cbcf3ca511
75 lines
2 KiB
Plaintext
75 lines
2 KiB
Plaintext
trace: before outer break
|
|
info: breakpoint reached
|
|
|
|
Here we are in the outer break and the let of "meow". st should show meow there
|
|
as it is in scope.
|
|
nix-repl> :st
|
|
|
|
0: error: breakpoint reached
|
|
«none»:0
|
|
Env level 0
|
|
static: meow
|
|
|
|
Env level 1
|
|
static: a b
|
|
|
|
Env level 2
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> meow
|
|
2
|
|
|
|
If we :st past the frame in the backtrace with the meow in it, the meow should not be there.
|
|
|
|
nix-repl> :st 3
|
|
|
|
3: while calling a function
|
|
TEST_DATA/stack_vars.nix:5:7
|
|
|
|
4| );
|
|
5| b = builtins.trace "before outer break" (
|
|
| ^
|
|
6| let meow = 2; in builtins.break a
|
|
|
|
Env level 0
|
|
static: a b
|
|
|
|
Env level 1
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> :c
|
|
trace: before inner break
|
|
info: breakpoint reached
|
|
|
|
nix-repl> :st
|
|
|
|
0: error: breakpoint reached
|
|
«none»:0
|
|
Env level 0
|
|
static: meow'
|
|
|
|
Env level 1
|
|
static: a b
|
|
|
|
Env level 2
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> meow'
|
|
3
|
|
|
|
nix-repl> :st 3
|
|
|
|
3: while calling a function
|
|
TEST_DATA/stack_vars.nix:2:7
|
|
|
|
1| let
|
|
2| a = builtins.trace "before inner break" (
|
|
| ^
|
|
3| let meow' = 3; in builtins.break { msg = "hello"; }
|
|
|
|
Env level 0
|
|
static: a b
|
|
|
|
Env level 1
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|