Results for ysh-builtin-eval.test.sh

statusyshysh-cpp
pass 2017
FAIL 36
total2323
caseyshysh-cppdescription
0pass pass Eval does not take a literal block - can restore this later
1pass pass Eval a block within a proc
2pass pass Eval block created by calling a proc
3pass pass eval (block) can read variables like eval ''
4FAIL FAIL eval should have a sandboxed mode
detailsdetails
5pass pass eval with argv bindings
6pass pass eval lines with argv bindings
7pass pass eval lines with var bindings
8pass pass eval with custom dollar0
9pass pass eval with vars bindings
10pass pass dynamic binding names and mutation
11pass pass binding procs in the eval-ed namespace
12pass pass vars initializes the variable frame, but does not remember it
13pass pass eval pos_args must be strings
14pass pass eval with vars follows same scoping as without
15pass pass eval 'mystring' vs. eval (myblock)
16pass FAIL io->evalToDict() - local and global
details
17pass FAIL parseCommand then io->evalToDict() - in global scope
details
18pass pass parseCommand with syntax error
19FAIL FAIL Dict (&d) { ... } converts frame to dict
detailsdetails
20FAIL FAIL Dict (&d) and setvar
detailsdetails
21pass FAIL Dict (&d) and setglobal
details
22pass pass bindings created shvar persist, which is different than evalToDict()
37 passed, 0 OK, 0 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

ysh4 eval should have a sandboxed mode

[ysh stdout] Expected 'TODO\n', got ''

stdout:
stderr: 
    push-frame {
               ^
[ stdin ]:4: fatal: 'push-frame' appears to be external. External commands don't accept typed args (OILS-ERR-200)
ysh-cpp4 eval should have a sandboxed mode

[ysh-cpp stdout] Expected 'TODO\n', got ''

stdout:
stderr: 
    push-frame {
               ^
[ stdin ]:4: fatal: 'push-frame' appears to be external. External commands don't accept typed args (OILS-ERR-200)
ysh-cpp16 io->evalToDict() - local and global

[ysh-cpp stdout] Expected '(Dict) {"foo":42,"bar":"global"}\n(Dict) {"foo":42,"g":"-global","p":"-param","L":"-local"}\n' Got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27433==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x555e58fd3d83 bp 0x7ffc6add4530 sp 0x7ffc6add4430 T0)
==27433==The signal is caused by a READ memory access.
==27433==Hint: address points to the zero page.
    #0 0x555e58fd3d82 in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82)
    #1 0x555e58edf720 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444720)
    #2 0x555e58d33472 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27269
    #3 0x555e58ca2d3e in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16919
    #4 0x555e58e6be55 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51550
    #5 0x555e58e6ca77 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51599
    #6 0x555e58e73161 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52108
    #7 0x555e58e632d7 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50875
    #8 0x555e58da6bea in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35886
    #9 0x555e58db610d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37005
    #10 0x555e58db84fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #11 0x555e58dba24e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37394
    #12 0x555e58d14781 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24704
    #13 0x555e58ec52c8 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57819
    #14 0x555e58c6172f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12490
    #15 0x555e58c61d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12526
    #16 0x555e58ec7430 in main _gen/bin/oils_for_unix.mycpp.cc:57844
    #17 0x7f98f066e09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x555e58c3afc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27433==ABORTING
ysh-cpp17 parseCommand then io->evalToDict() - in global scope

[ysh-cpp stdout] Expected '<Command>\nhi\n(Dict) {"x":42,"y":"global"}\n' Got '<Command>\n'
[ysh-cpp status] Expected 0, got 1

stdout:
<Command>
stderr:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27460==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x55efec78ed83 bp 0x7ffd114192e0 sp 0x7ffd114191e0 T0)
==27460==The signal is caused by a READ memory access.
==27460==Hint: address points to the zero page.
    #0 0x55efec78ed82 in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82)
    #1 0x55efec69a720 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444720)
    #2 0x55efec4ee472 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27269
    #3 0x55efec45dd3e in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16919
    #4 0x55efec626e55 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51550
    #5 0x55efec627a77 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51599
    #6 0x55efec62e161 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52108
    #7 0x55efec61e2d7 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50875
    #8 0x55efec561bea in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35886
    #9 0x55efec57110d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37005
    #10 0x55efec5734fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #11 0x55efec57524e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37394
    #12 0x55efec4cf781 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24704
    #13 0x55efec6802c8 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57819
    #14 0x55efec41c72f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12490
    #15 0x55efec41cd91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12526
    #16 0x55efec682430 in main _gen/bin/oils_for_unix.mycpp.cc:57844
    #17 0x7fed1ae1f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x55efec3f5fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27460==ABORTING
ysh19 Dict (&d) { ... } converts frame to dict

[ysh stdout] Expected '', got '(Dict) {"k":"k-block-mutated","k2":"k2-block","k3":"k3","myglobal":"global"}\nk=k-shadowed\nk2=k2-shadowed\n'
[ysh status] Expected 0, got 2

stdout:
(Dict)   {"k":"k-block-mutated","k2":"k2-block","k3":"k3","myglobal":"global"}
k=k-shadowed
k2=k2-shadowed
stderr:
      setvar k2 = 'k2-proc'  # local, so it's checked
             ^~
[ stdin ]:31: setvar couldn't find matching 'var k2' (OILS-ERR-10)
ysh-cpp19 Dict (&d) { ... } converts frame to dict

[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27519==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x55ee562ead83 bp 0x7ffe16d57e70 sp 0x7ffe16d57d70 T0)
==27519==The signal is caused by a READ memory access.
==27519==Hint: address points to the zero page.
    #0 0x55ee562ead82 in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82)
    #1 0x55ee561f6720 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444720)
    #2 0x55ee5604a472 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27269
    #3 0x55ee55fb9d3e in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16919
    #4 0x55ee56182e55 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51550
    #5 0x55ee56183a77 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51599
    #6 0x55ee5618a161 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52108
    #7 0x55ee5617a2d7 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50875
    #8 0x55ee560bdbea in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35886
    #9 0x55ee560cd10d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37005
    #10 0x55ee560cf4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #11 0x55ee560d02b8 in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:37288
    #12 0x55ee560cd67a in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37049
    #13 0x55ee560cf4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #14 0x55ee560d311e in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:37561
    #15 0x55ee56022337 in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24039
    #16 0x55ee560bb3d2 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35725
    #17 0x55ee560c11f7 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36096
    #18 0x55ee560cc6ef in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36945
    #19 0x55ee560cf4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #20 0x55ee560d124e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37394
    #21 0x55ee5602b781 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24704
    #22 0x55ee561dc2c8 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57819
    #23 0x55ee55f7872f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12490
    #24 0x55ee55f78d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12526
    #25 0x55ee561de430 in main _gen/bin/oils_for_unix.mycpp.cc:57844
    #26 0x7f1c35c6609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #27 0x55ee55f51fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27519==ABORTING
ysh20 Dict (&d) and setvar

[ysh stdout] Expected '', got 'inside Dict block\n [frame_vars_] __rear__ outer2 outer not_declared\nproc Dict frame after evalToDict\n [frame_vars_] ARGV out block d\nDict outer=xx\n(Dict) {"outer2":"outer2","outer":"zz","not_declared":"yy"}\nafter outer=xx\nafter Dict\n [frame_vars_] ARGV OIL_VERSION OILS_VERSION LIB_OSH LIB_YSH NAN INFINITY IFS UID EUID PPID HOSTNAME OSTYPE OPTIND PS4 COMP_WORDBREAKS TMP REPO_ROOT PYTHONPATH PWD SH LC_ALL PATH LOCALE_ARCHIVE OILS_GC_ON_EXIT SHELLOPTS YSH_HISTFILE parseHay evalHay _hay len type _group _match _start _end parseCommand parseExpr evalExpr shvarGet getVar Object prototype propView bool int float str list dict runes encodeRunes bytes encodeBytes split shSplit floatsEqual join maybe glob toJson8 toJson fromJson8 fromJson _a2sp _opsp io Dict outer d\n'

stdout:
inside Dict block
    [frame_vars_] __rear__ outer2 outer not_declared
proc Dict frame after evalToDict
    [frame_vars_] ARGV out block d
Dict outer=xx
(Dict)   {"outer2":"outer2","outer":"zz","not_declared":"yy"}
after outer=xx
after Dict
    [frame_vars_] ARGV OIL_VERSION OILS_VERSION LIB_OSH LIB_YSH NAN INFINITY IFS UID EUID PPID HOSTNAME OSTYPE OPTIND PS4 COMP_WORDBREAKS TMP REPO_ROOT PYTHONPATH PWD SH LC_ALL PATH LOCALE_ARCHIVE OILS_GC_ON_EXIT SHELLOPTS YSH_HISTFILE parseHay evalHay _hay len type _group _match _start _end parseCommand parseExpr evalExpr shvarGet getVar Object prototype propView bool int float str list dict runes encodeRunes bytes encodeBytes split shSplit floatsEqual join maybe glob toJson8 toJson fromJson8 fromJson _a2sp _opsp io Dict outer d
stderr:
ysh-cpp20 Dict (&d) and setvar

[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27546==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x55bd2929ed83 bp 0x7ffc3b693470 sp 0x7ffc3b693370 T0)
==27546==The signal is caused by a READ memory access.
==27546==Hint: address points to the zero page.
    #0 0x55bd2929ed82 in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82)
    #1 0x55bd291aa720 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444720)
    #2 0x55bd28ffe472 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27269
    #3 0x55bd28f6dd3e in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16919
    #4 0x55bd29136e55 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51550
    #5 0x55bd29137a77 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51599
    #6 0x55bd2913e161 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52108
    #7 0x55bd2912e2d7 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50875
    #8 0x55bd29071bea in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35886
    #9 0x55bd2908110d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37005
    #10 0x55bd290834fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #11 0x55bd290842b8 in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:37288
    #12 0x55bd2908167a in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37049
    #13 0x55bd290834fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #14 0x55bd2908711e in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:37561
    #15 0x55bd28fd6337 in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24039
    #16 0x55bd2906f3d2 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35725
    #17 0x55bd290751f7 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36096
    #18 0x55bd290806ef in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36945
    #19 0x55bd290834fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #20 0x55bd2908524e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37394
    #21 0x55bd28fdf781 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24704
    #22 0x55bd291902c8 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57819
    #23 0x55bd28f2c72f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12490
    #24 0x55bd28f2cd91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12526
    #25 0x55bd29192430 in main _gen/bin/oils_for_unix.mycpp.cc:57844
    #26 0x7fd50eeb809a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #27 0x55bd28f05fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27546==ABORTING
ysh-cpp21 Dict (&d) and setglobal

[ysh-cpp stdout] Expected ' [frame_vars_] __rear__ a\n\n(Dict) {"a":42}\ng=zz\n' Got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27574==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x5634a7277d83 bp 0x7fff698d0400 sp 0x7fff698d0300 T0)
==27574==The signal is caused by a READ memory access.
==27574==Hint: address points to the zero page.
    #0 0x5634a7277d82 in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82)
    #1 0x5634a7183720 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444720)
    #2 0x5634a6fd7472 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27269
    #3 0x5634a6f46d3e in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16919
    #4 0x5634a710fe55 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51550
    #5 0x5634a7110a77 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51599
    #6 0x5634a7117161 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52108
    #7 0x5634a71072d7 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50875
    #8 0x5634a704abea in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35886
    #9 0x5634a705a10d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37005
    #10 0x5634a705c4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #11 0x5634a705d2b8 in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:37288
    #12 0x5634a705a67a in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37049
    #13 0x5634a705c4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #14 0x5634a706011e in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:37561
    #15 0x5634a6faf337 in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24039
    #16 0x5634a70483d2 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35725
    #17 0x5634a704e1f7 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36096
    #18 0x5634a70596ef in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36945
    #19 0x5634a705c4fa in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37223
    #20 0x5634a705e24e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37394
    #21 0x5634a6fb8781 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24704
    #22 0x5634a71692c8 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57819
    #23 0x5634a6f0572f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12490
    #24 0x5634a6f05d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12526
    #25 0x5634a716b430 in main _gen/bin/oils_for_unix.mycpp.cc:57844
    #26 0x7fcadb26a09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #27 0x5634a6edefc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538d82) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27574==ABORTING