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
74 lines
2 KiB
Text
74 lines
2 KiB
Text
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
|