Results for ysh-proc-meta.test.sh

statusyshysh_ALT
pass 60
FAIL 17
total77
caseyshysh_ALTdescription
0pass FAIL with eval builtin command, in global scope
details
1pass FAIL with eval builtin command, in local scope
details
2pass FAIL with eval builtin command, making them global with names() and setVar()
details
3FAIL FAIL with parseCommand() then io->eval(), in local scope
detailsdetails
4pass FAIL with parseCommand() then io->eval(cmd, vars={out_dict: {}})
details
5pass FAIL with evalToDict()
details
6pass FAIL with runtime REFLECTION via __invoke__ - no parsing
details
6 passed, 0 OK, 0 not implemented, 0 BUG, 8 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

ysh_ALT0 with eval builtin command, in global scope

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh_ALT1 with eval builtin command, in local scope

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 127, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh_ALT2 with eval builtin command, making them global with names() and setVar()

[ysh_ALT stdout] Expected 'local\nprefix a\nprefix b\n\nglobal\nprefix a\nprefix b\n' Got ''
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh3 with parseCommand() then io->eval(), in local scope

[ysh stdout] Expected 'prefix a\nprefix b\n', got '(value.Command\n frag:(cmd_frag.Expr\n c:(Proc\n keyword:(Token\n id:KW_Proc\n length:4\n col:0\n line:(SourceLine\n line_num:1\n content:"proc echo_a(prefix) {\\n"\n src:(source.Dynamic\n what:"parseCommand()"\n location:(Token\n id:Op_LParen\n length:1\n col:26\n line:(SourceLine\n line_num:9\n content:" var cmd = parseCommand(s)\\n"\n src:(source.Stdin comment:"")\n )\n )\n )\n )\n )\n name:(Token id:Lit_Chars length:6 col:5 line:...0x7f8659bc8940)\n sig:(proc_sig.Closed\n word:(ParamGroup\n params:[\n (Param\n blame_tok:(Token\n id:Expr_Name\n length:6\n col:12\n line:...0x7f8659bc8940\n )\n name:prefix\n )\n ]\n )\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f8659bc8940)\n children:[\n (command.Simple\n blame_tok:(Token\n id:Lit_Chars\n length:4\n col:2\n line:(SourceLine\n line_num:2\n content:" echo $prefix a\\n"\n src:...0x7f86598632d0\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f8659862390])\n (CompoundWord\n parts:[\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:7\n col:7\n line:...0x7f8659bc8aa0\n )\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:15 line:...0x7f8659bc8aa0)\n ]\n )\n ]\n is_last_cmd:F\n )\n ]\n right:(Token\n id:Lit_RBrace\n length:1\n col:0\n line:(SourceLine line_num:3 content:"}\\n" src:...0x7f86598632d0)\n )\n )\n )\n )\n captured_frame:{\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n result\n (Cell exported:F readonly:F nameref:F val:(value.Dict d:{}))\n param\n (Cell exported:F readonly:F nameref:F val:(value.Str s:a))\n s\n (Cell\n exported:F\n readonly:F\n nameref:F\n val:(value.Str s:"proc echo_a(prefix) {\\n echo $prefix a\\n}\\n")\n )\n cmd\n (Cell exported:F readonly:F nameref:F val:...0x7f8659bc8af8)\n }\n module_frame:{\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n ENV\n (Cell\n exported:F\n readonly:F\n nameref:F\n val:(Obj\n d:{\n TMP\n (value.Str\n s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.6970/03-ysh\n )\n REPO_ROOT\n (value.Str s:/home/uke/oil)\n PYTHONPATH\n (value.Str s:"/home/uke/oil:/home/uke/oil/vendor")\n PWD\n (value.Str\n s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.6970/03-ysh\n )\n SH\n (value.Str s:/home/uke/oil/bin/ysh)\n LC_ALL\n (value.Str s:C.UTF-8)\n PATH\n (value.Str\n s:"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"\n )\n LOCALE_ARCHIVE\n (value.Str s:"")\n OILS_GC_ON_EXIT\n (value.Str s:"")\n }\n )\n )\n UID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n EUID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n PPID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:6976))\n OPTIND\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1))\n IFS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n"))\n HOSTNAME\n (Cell exported:F readonly:F nameref:F val:(value.Str s:6c9be955d275))\n OSTYPE\n (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))\n PS4\n (Cell\n exported:F\n readonly:F\n nameref:F\n val:(value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")\n )\n COMP_WORDBREAKS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n\\"\'><=;|&(:"))\n p\n (Cell\n exported:F\n readonly:F\n nameref:F\n val:(value.Proc\n name:p\n name_tok:(Token\n id:Lit_Chars\n length:1\n col:5\n line:(SourceLine\n line_num:1\n content:"proc p {\\n"\n src:...0x7f86598bf2d8\n )\n )\n sig:(proc_sig.Open)\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f8659bc8100)\n children:[\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:2\n line:(SourceLine\n line_num:2\n content:" var result = {}\\n"\n src:...0x7f86598bf2d8\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:6\n col:6\n line:...0x7f8659bc8158\n )\n name:result\n )\n ]\n rhs:(expr.Dict\n left:(Token id:Op_LBrace length:1 col:15 line:...0x7f8659bc8158)\n keys:[]\n values:[]\n )\n )\n (command.ForEach\n keyword:(Token\n id:KW_For\n length:3\n col:2\n line:(SourceLine\n line_num:3\n content:" for param in a b {\\n"\n src:...0x7f86598bf2d8\n )\n )\n iter_names:[param]\n iterable:(for_iter.Words\n words:[\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:1\n col:15\n line:...0x7f8659bc82b8\n tval:a\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:1\n col:17\n line:...0x7f8659bc82b8\n tval:b\n )\n ]\n )\n ]\n )\n body:(BraceGroup\n left:(Token\n id:Lit_LBrace\n length:1\n col:19\n line:...0x7f8659bc82b8\n )\n children:[\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:4\n line:(SourceLine\n line_num:4\n content:" var s = \\"\\"\\"\\n"\n src:...0x7f86598bf2d8\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:1\n col:8\n line:...0x7f8659bc8310\n )\n name:s\n )\n ]\n rhs:(DoubleQuoted\n left:(Token\n id:Left_TDoubleQuote\n length:3\n col:12\n line:...0x7f8659bc8310\n )\n parts:[\n (Token\n id:Lit_CharsWithoutPrefix\n length:10\n col:4\n line:(SourceLine\n line_num:5\n content:" proc echo_$param(prefix) {\\n"\n src:...0x7f86598bf2d8\n )\n tval:"proc echo_"\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:14\n line:...0x7f8659bc8368\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:11\n col:20\n line:...0x7f8659bc8368\n tval:"(prefix) {\\n"\n )\n (Token\n id:Lit_CharsWithoutPrefix\n length:7\n col:4\n line:(SourceLine\n line_num:6\n content:" echo \\\\$prefix $param\\n"\n src:...0x7f86598bf2d8\n )\n tval:" echo "\n )\n (word_part.EscapedLiteral\n token:(Token\n id:Lit_EscapedChar\n length:2\n col:11\n line:...0x7f8659bc83c0\n )\n ch:"$"\n )\n (Token\n id:Lit_Chars\n length:7\n col:13\n line:...0x7f8659bc83c0\n tval:"prefix "\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:20\n line:...0x7f8659bc83c0\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:1\n col:26\n line:...0x7f8659bc83c0\n tval:"\\n"\n )\n (Token\n id:Lit_CharsWithoutPrefix\n length:2\n col:4\n line:(SourceLine\n line_num:7\n content:" }\\n"\n src:...0x7f86598bf2d8\n )\n tval:"}\\n"\n )\n ]\n right:(Token\n id:Right_DoubleQuote\n length:1\n col:6\n line:(SourceLine\n line_num:8\n content:" \\"\\"\\"\\n"\n src:...0x7f86598bf2d8\n )\n )\n )\n )\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:4\n line:...0x7f8659bc85d0\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:3\n col:8\n line:...0x7f8659bc85d0\n )\n name:cmd\n )\n ]\n rhs:(expr.FuncCall\n func:(expr.Var\n left:(Token\n id:Expr_Name\n length:12\n col:14\n line:...0x7f8659bc85d0\n )\n name:parseCommand\n )\n args:(ArgList\n left:...0x7f86598d6460\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:1\n col:27\n line:...0x7f8659bc85d0\n )\n name:s\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:28\n line:...0x7f8659bc85d0\n )\n )\n )\n )\n (command.Simple\n blame_tok:(Token\n id:Lit_Chars\n length:2\n col:4\n line:(SourceLine\n line_num:10\n content:" pp asdl_ (cmd)\\n"\n src:...0x7f86598bf2d8\n )\n tval:pp\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f8659ba7f58])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:5\n col:7\n line:...0x7f8659bc86d8\n tval:asdl_\n )\n ]\n )\n ]\n typed_args:(ArgList\n left:(Token\n id:Op_LParen\n length:1\n col:13\n line:...0x7f8659bc86d8\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:14\n line:...0x7f8659bc86d8\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:17\n line:...0x7f8659bc86d8\n )\n )\n is_last_cmd:F\n )\n (command.Expr\n keyword:(Token\n id:KW_Call\n length:4\n col:4\n line:(SourceLine\n line_num:13\n content:" call io->eval(cmd)\\n"\n src:...0x7f86598bf2d8\n )\n )\n e:(expr.FuncCall\n func:(Attribute\n obj:(expr.Var\n left:(Token\n id:Expr_Name\n length:2\n col:9\n line:...0x7f8659bc87e0\n )\n name:io\n )\n op:(Token\n id:Expr_RArrow\n length:2\n col:11\n line:...0x7f8659bc87e0\n )\n attr:(Token\n id:Expr_Name\n length:4\n col:13\n line:...0x7f8659bc87e0\n )\n attr_name:eval\n ctx:expr_context.Store\n )\n args:(ArgList\n left:(Token\n id:Op_LParen\n length:1\n col:17\n line:...0x7f8659bc87e0\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:18\n line:...0x7f8659bc87e0\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:21\n line:...0x7f8659bc87e0\n )\n )\n )\n )\n (command.Simple\n blame_tok:(Token\n id:Lit_Chars\n length:6\n col:4\n line:(SourceLine\n line_num:15\n content:" echo_a zz\\n"\n src:...0x7f86598bf2d8\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f86598d6870])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:2\n col:11\n line:...0x7f8659bc8890\n )\n ]\n )\n ]\n is_last_cmd:F\n )\n ]\n right:(Token\n id:Lit_RBrace\n length:1\n col:2\n line:(SourceLine\n line_num:16\n content:" }\\n"\n src:...0x7f86598bf2d8\n )\n )\n )\n )\n (command.Simple\n blame_tok:(Token\n id:Lit_Chars\n length:6\n col:2\n line:(SourceLine\n line_num:18\n content:" echo_a prefix\\n"\n src:...0x7f86598bf2d8\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f8659ba7c80])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f8659bc8998)\n ]\n )\n ]\n is_last_cmd:F\n )\n (command.Simple\n blame_tok:(Token\n id:Lit_Chars\n length:6\n col:2\n line:(SourceLine\n line_num:19\n content:" echo_b prefix\\n"\n src:...0x7f86598bf2d8\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f86598d6d50])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f8659bc89f0)\n ]\n )\n ]\n is_last_cmd:F\n )\n ]\n right:(Token\n id:Lit_RBrace\n length:1\n col:0\n line:(SourceLine line_num:20 content:"}\\n" src:...0x7f86598bf2d8)\n )\n )\n sh_compat:F\n module_frame:{\n ARGV\n ...0x7f8659c16dd0\n ENV\n ...0x7f8659c16e90\n UID\n ...0x7f8659c16ef0\n EUID\n ...0x7f8659c16f50\n PPID\n ...0x7f8659c16fb0\n OPTIND\n ...0x7f8659bd7050\n IFS\n ...0x7f8659bd70b0\n HOSTNAME\n ...0x7f8659bd7110\n OSTYPE\n ...0x7f8659bd7170\n PS4\n ...0x7f8659bd71d0\n COMP_WORDBREAKS\n ...0x7f8659bd7230\n p\n ...0x7f8659bd73b0\n }\n )\n )\n }\n)\n'

stdout:
(value.Command
  frag:(cmd_frag.Expr
    c:(Proc
      keyword:(Token
        id:KW_Proc
        length:4
        col:0
        line:(SourceLine
          line_num:1
          content:"proc echo_a(prefix) {\n"
          src:(source.Dynamic
            what:"parseCommand()"
            location:(Token
              id:Op_LParen
              length:1
              col:26
              line:(SourceLine
                line_num:9
                content:"    var cmd = parseCommand(s)\n"
                src:(source.Stdin comment:"")
              )
            )
          )
        )
      )
      name:(Token id:Lit_Chars length:6 col:5 line:...0x7f8659bc8940)
      sig:(proc_sig.Closed
        word:(ParamGroup
          params:[
            (Param
              blame_tok:(Token
                id:Expr_Name
                length:6
                col:12
                line:...0x7f8659bc8940
              )
              name:prefix
            )
          ]
        )
      )
      body:(BraceGroup
        left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f8659bc8940)
        children:[
          (command.Simple
            blame_tok:(Token
              id:Lit_Chars
              length:4
              col:2
              line:(SourceLine
                line_num:2
                content:"  echo $prefix a\n"
                src:...0x7f86598632d0
              )
            )
            more_env:[]
            words:[
              (CompoundWord parts:[...0x7f8659862390])
              (CompoundWord
                parts:[
                  (SimpleVarSub
                    tok:(Token
                      id:VSub_DollarName
                      length:7
                      col:7
                      line:...0x7f8659bc8aa0
                    )
                  )
                ]
              )
              (CompoundWord
                parts:[
                  (Token id:Lit_Chars length:1 col:15 line:...0x7f8659bc8aa0)
                ]
              )
            ]
            is_last_cmd:F
          )
        ]
        right:(Token
          id:Lit_RBrace
          length:1
          col:0
          line:(SourceLine line_num:3 content:"}\n" src:...0x7f86598632d0)
        )
      )
    )
  )
  captured_frame:{
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    result
    (Cell exported:F readonly:F nameref:F val:(value.Dict d:{}))
    param
    (Cell exported:F readonly:F nameref:F val:(value.Str s:a))
    s
    (Cell
      exported:F
      readonly:F
      nameref:F
      val:(value.Str s:"proc echo_a(prefix) {\n  echo $prefix a\n}\n")
    )
    cmd
    (Cell exported:F readonly:F nameref:F val:...0x7f8659bc8af8)
  }
  module_frame:{
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    ENV
    (Cell
      exported:F
      readonly:F
      nameref:F
      val:(Obj
        d:{
          TMP
          (value.Str
            s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.6970/03-ysh
          )
          REPO_ROOT
          (value.Str s:/home/uke/oil)
          PYTHONPATH
          (value.Str s:"/home/uke/oil:/home/uke/oil/vendor")
          PWD
          (value.Str
            s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.6970/03-ysh
          )
          SH
          (value.Str s:/home/uke/oil/bin/ysh)
          LC_ALL
          (value.Str s:C.UTF-8)
          PATH
          (value.Str
            s:"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          )
          LOCALE_ARCHIVE
          (value.Str s:"")
          OILS_GC_ON_EXIT
          (value.Str s:"")
        }
      )
    )
    UID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    EUID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    PPID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:6976))
    OPTIND
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1))
    IFS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n"))
    HOSTNAME
    (Cell exported:F readonly:F nameref:F val:(value.Str s:6c9be955d275))
    OSTYPE
    (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))
    PS4
    (Cell
      exported:F
      readonly:F
      nameref:F
      val:(value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")
    )
    COMP_WORDBREAKS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n\"'><=;|&(:"))
    p
    (Cell
      exported:F
      readonly:F
      nameref:F
      val:(value.Proc
        name:p
        name_tok:(Token
          id:Lit_Chars
          length:1
          col:5
          line:(SourceLine
            line_num:1
            content:"proc p {\n"
            src:...0x7f86598bf2d8
          )
        )
        sig:(proc_sig.Open)
        body:(BraceGroup
          left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f8659bc8100)
          children:[
            (command.VarDecl
              keyword:(Token
                id:KW_Var
                length:3
                col:2
                line:(SourceLine
                  line_num:2
                  content:"  var result = {}\n"
                  src:...0x7f86598bf2d8
                )
              )
              lhs:[
                (NameType
                  left:(Token
                    id:Expr_Name
                    length:6
                    col:6
                    line:...0x7f8659bc8158
                  )
                  name:result
                )
              ]
              rhs:(expr.Dict
                left:(Token id:Op_LBrace length:1 col:15 line:...0x7f8659bc8158)
                keys:[]
                values:[]
              )
            )
            (command.ForEach
              keyword:(Token
                id:KW_For
                length:3
                col:2
                line:(SourceLine
                  line_num:3
                  content:"  for param in a b {\n"
                  src:...0x7f86598bf2d8
                )
              )
              iter_names:[param]
              iterable:(for_iter.Words
                words:[
                  (CompoundWord
                    parts:[
                      (Token
                        id:Lit_Chars
                        length:1
                        col:15
                        line:...0x7f8659bc82b8
                        tval:a
                      )
                    ]
                  )
                  (CompoundWord
                    parts:[
                      (Token
                        id:Lit_Chars
                        length:1
                        col:17
                        line:...0x7f8659bc82b8
                        tval:b
                      )
                    ]
                  )
                ]
              )
              body:(BraceGroup
                left:(Token
                  id:Lit_LBrace
                  length:1
                  col:19
                  line:...0x7f8659bc82b8
                )
                children:[
                  (command.VarDecl
                    keyword:(Token
                      id:KW_Var
                      length:3
                      col:4
                      line:(SourceLine
                        line_num:4
                        content:"    var s = \"\"\"\n"
                        src:...0x7f86598bf2d8
                      )
                    )
                    lhs:[
                      (NameType
                        left:(Token
                          id:Expr_Name
                          length:1
                          col:8
                          line:...0x7f8659bc8310
                        )
                        name:s
                      )
                    ]
                    rhs:(DoubleQuoted
                      left:(Token
                        id:Left_TDoubleQuote
                        length:3
                        col:12
                        line:...0x7f8659bc8310
                      )
                      parts:[
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:10
                          col:4
                          line:(SourceLine
                            line_num:5
                            content:"    proc echo_$param(prefix) {\n"
                            src:...0x7f86598bf2d8
                          )
                          tval:"proc echo_"
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:14
                            line:...0x7f8659bc8368
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:11
                          col:20
                          line:...0x7f8659bc8368
                          tval:"(prefix) {\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:7
                          col:4
                          line:(SourceLine
                            line_num:6
                            content:"      echo \\$prefix $param\n"
                            src:...0x7f86598bf2d8
                          )
                          tval:"  echo "
                        )
                        (word_part.EscapedLiteral
                          token:(Token
                            id:Lit_EscapedChar
                            length:2
                            col:11
                            line:...0x7f8659bc83c0
                          )
                          ch:"$"
                        )
                        (Token
                          id:Lit_Chars
                          length:7
                          col:13
                          line:...0x7f8659bc83c0
                          tval:"prefix "
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:20
                            line:...0x7f8659bc83c0
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:1
                          col:26
                          line:...0x7f8659bc83c0
                          tval:"\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:2
                          col:4
                          line:(SourceLine
                            line_num:7
                            content:"    }\n"
                            src:...0x7f86598bf2d8
                          )
                          tval:"}\n"
                        )
                      ]
                      right:(Token
                        id:Right_DoubleQuote
                        length:1
                        col:6
                        line:(SourceLine
                          line_num:8
                          content:"    \"\"\"\n"
                          src:...0x7f86598bf2d8
                        )
                      )
                    )
                  )
                  (command.VarDecl
                    keyword:(Token
                      id:KW_Var
                      length:3
                      col:4
                      line:...0x7f8659bc85d0
                    )
                    lhs:[
                      (NameType
                        left:(Token
                          id:Expr_Name
                          length:3
                          col:8
                          line:...0x7f8659bc85d0
                        )
                        name:cmd
                      )
                    ]
                    rhs:(expr.FuncCall
                      func:(expr.Var
                        left:(Token
                          id:Expr_Name
                          length:12
                          col:14
                          line:...0x7f8659bc85d0
                        )
                        name:parseCommand
                      )
                      args:(ArgList
                        left:...0x7f86598d6460
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:1
                              col:27
                              line:...0x7f8659bc85d0
                            )
                            name:s
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:28
                          line:...0x7f8659bc85d0
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:2
                      col:4
                      line:(SourceLine
                        line_num:10
                        content:"    pp asdl_ (cmd)\n"
                        src:...0x7f86598bf2d8
                      )
                      tval:pp
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x7f8659ba7f58])
                      (CompoundWord
                        parts:[
                          (Token
                            id:Lit_Chars
                            length:5
                            col:7
                            line:...0x7f8659bc86d8
                            tval:asdl_
                          )
                        ]
                      )
                    ]
                    typed_args:(ArgList
                      left:(Token
                        id:Op_LParen
                        length:1
                        col:13
                        line:...0x7f8659bc86d8
                      )
                      pos_args:[
                        (expr.Var
                          left:(Token
                            id:Expr_Name
                            length:3
                            col:14
                            line:...0x7f8659bc86d8
                          )
                          name:cmd
                        )
                      ]
                      named_args:[]
                      right:(Token
                        id:Op_RParen
                        length:1
                        col:17
                        line:...0x7f8659bc86d8
                      )
                    )
                    is_last_cmd:F
                  )
                  (command.Expr
                    keyword:(Token
                      id:KW_Call
                      length:4
                      col:4
                      line:(SourceLine
                        line_num:13
                        content:"    call io->eval(cmd)\n"
                        src:...0x7f86598bf2d8
                      )
                    )
                    e:(expr.FuncCall
                      func:(Attribute
                        obj:(expr.Var
                          left:(Token
                            id:Expr_Name
                            length:2
                            col:9
                            line:...0x7f8659bc87e0
                          )
                          name:io
                        )
                        op:(Token
                          id:Expr_RArrow
                          length:2
                          col:11
                          line:...0x7f8659bc87e0
                        )
                        attr:(Token
                          id:Expr_Name
                          length:4
                          col:13
                          line:...0x7f8659bc87e0
                        )
                        attr_name:eval
                        ctx:expr_context.Store
                      )
                      args:(ArgList
                        left:(Token
                          id:Op_LParen
                          length:1
                          col:17
                          line:...0x7f8659bc87e0
                        )
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:3
                              col:18
                              line:...0x7f8659bc87e0
                            )
                            name:cmd
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:21
                          line:...0x7f8659bc87e0
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:6
                      col:4
                      line:(SourceLine
                        line_num:15
                        content:"    echo_a zz\n"
                        src:...0x7f86598bf2d8
                      )
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x7f86598d6870])
                      (CompoundWord
                        parts:[
                          (Token
                            id:Lit_Chars
                            length:2
                            col:11
                            line:...0x7f8659bc8890
                          )
                        ]
                      )
                    ]
                    is_last_cmd:F
                  )
                ]
                right:(Token
                  id:Lit_RBrace
                  length:1
                  col:2
                  line:(SourceLine
                    line_num:16
                    content:"  }\n"
                    src:...0x7f86598bf2d8
                  )
                )
              )
            )
            (command.Simple
              blame_tok:(Token
                id:Lit_Chars
                length:6
                col:2
                line:(SourceLine
                  line_num:18
                  content:"  echo_a prefix\n"
                  src:...0x7f86598bf2d8
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x7f8659ba7c80])
                (CompoundWord
                  parts:[
                    (Token id:Lit_Chars length:6 col:9 line:...0x7f8659bc8998)
                  ]
                )
              ]
              is_last_cmd:F
            )
            (command.Simple
              blame_tok:(Token
                id:Lit_Chars
                length:6
                col:2
                line:(SourceLine
                  line_num:19
                  content:"  echo_b prefix\n"
                  src:...0x7f86598bf2d8
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x7f86598d6d50])
                (CompoundWord
                  parts:[
                    (Token id:Lit_Chars length:6 col:9 line:...0x7f8659bc89f0)
                  ]
                )
              ]
              is_last_cmd:F
            )
          ]
          right:(Token
            id:Lit_RBrace
            length:1
            col:0
            line:(SourceLine line_num:20 content:"}\n" src:...0x7f86598bf2d8)
          )
        )
        sh_compat:F
        module_frame:{
          ARGV
          ...0x7f8659c16dd0
          ENV
          ...0x7f8659c16e90
          UID
          ...0x7f8659c16ef0
          EUID
          ...0x7f8659c16f50
          PPID
          ...0x7f8659c16fb0
          OPTIND
          ...0x7f8659bd7050
          IFS
          ...0x7f8659bd70b0
          HOSTNAME
          ...0x7f8659bd7110
          OSTYPE
          ...0x7f8659bd7170
          PS4
          ...0x7f8659bd71d0
          COMP_WORDBREAKS
          ...0x7f8659bd7230
          p
          ...0x7f8659bd73b0
        }
      )
    )
  }
)
stderr:
      echo_a zz
      ^~~~~~
[ stdin ]:15: 'echo_a' not found (OILS-ERR-100)
[ stdin ]:15: errexit PID 6989: command.Simple failed with status 127
ysh_ALT3 with parseCommand() then io->eval(), in local scope

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 127, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh_ALT4 with parseCommand() then io->eval(cmd, vars={out_dict: {}})

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh_ALT5 with evalToDict()

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
ysh_ALT6 with runtime REFLECTION via __invoke__ - no parsing

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got ''
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 740, in Main
    b[builtin_i.bind] = readline_osh.Bind(readline, errfmt, mem)
  File "/home/uke/oil/builtin/readline_osh.py", line 58, in __init__
    readline.set_bind_shell_command_hook(lambda *args: self.bind_shell_command_hook(*args))
  File "/home/uke/oil/frontend/py_readline.py", line 169, in set_bind_shell_command_hook
    line_input.set_bind_shell_command_hook(hook)
AttributeError: 'module' object has no attribute 'set_bind_shell_command_hook'
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47