Results for ysh-proc-meta.test.sh

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

Details on runs that didn't PASS

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:...0x7f3d6b192998)\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:...0x7f3d6b192998\n )\n name:prefix\n )\n ]\n )\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f3d6b192998)\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:...0x7f3d6ae30280\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f3d6ae2d460])\n (CompoundWord\n parts:[\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:7\n col:7\n line:...0x7f3d6b192af8\n )\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:15 line:...0x7f3d6b192af8)\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:...0x7f3d6ae30280)\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:...0x7f3d6b192b50)\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.34097/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.34097/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:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.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:1)\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:34175))\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:226a8892c6fc))\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:...0x7f3d6ae8c440\n )\n )\n sig:(proc_sig.Open)\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f3d6b192158)\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:...0x7f3d6ae8c440\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:6\n col:6\n line:...0x7f3d6b1921b0\n )\n name:result\n )\n ]\n rhs:(expr.Dict\n left:(Token id:Op_LBrace length:1 col:15 line:...0x7f3d6b1921b0)\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:...0x7f3d6ae8c440\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:...0x7f3d6b192310\n tval:a\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:1\n col:17\n line:...0x7f3d6b192310\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:...0x7f3d6b192310\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:...0x7f3d6ae8c440\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:1\n col:8\n line:...0x7f3d6b192368\n )\n name:s\n )\n ]\n rhs:(DoubleQuoted\n left:(Token\n id:Left_TDoubleQuote\n length:3\n col:12\n line:...0x7f3d6b192368\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:...0x7f3d6ae8c440\n )\n tval:"proc echo_"\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:14\n line:...0x7f3d6b1923c0\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:11\n col:20\n line:...0x7f3d6b1923c0\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:...0x7f3d6ae8c440\n )\n tval:" echo "\n )\n (word_part.EscapedLiteral\n token:(Token\n id:Lit_EscapedChar\n length:2\n col:11\n line:...0x7f3d6b192418\n )\n ch:"$"\n )\n (Token\n id:Lit_Chars\n length:7\n col:13\n line:...0x7f3d6b192418\n tval:"prefix "\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:20\n line:...0x7f3d6b192418\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:1\n col:26\n line:...0x7f3d6b192418\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:...0x7f3d6ae8c440\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:...0x7f3d6ae8c440\n )\n )\n )\n )\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:4\n line:...0x7f3d6b192628\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:3\n col:8\n line:...0x7f3d6b192628\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:...0x7f3d6b192628\n )\n name:parseCommand\n )\n args:(ArgList\n left:...0x7f3d6aea3050\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:1\n col:27\n line:...0x7f3d6b192628\n )\n name:s\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:28\n line:...0x7f3d6b192628\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:...0x7f3d6ae8c440\n )\n tval:pp\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f3d6aea30b8])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:5\n col:7\n line:...0x7f3d6b192730\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:...0x7f3d6b192730\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:14\n line:...0x7f3d6b192730\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:17\n line:...0x7f3d6b192730\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:...0x7f3d6ae8c440\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:...0x7f3d6b192838\n )\n name:io\n )\n op:(Token\n id:Expr_RArrow\n length:2\n col:11\n line:...0x7f3d6b192838\n )\n attr:(Token\n id:Expr_Name\n length:4\n col:13\n line:...0x7f3d6b192838\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:...0x7f3d6b192838\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:18\n line:...0x7f3d6b192838\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:21\n line:...0x7f3d6b192838\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:...0x7f3d6ae8c440\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f3d6aea3940])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:2\n col:11\n line:...0x7f3d6b1928e8\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:...0x7f3d6ae8c440\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:...0x7f3d6ae8c440\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f3d6b166d50])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f3d6b1929f0)\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:...0x7f3d6ae8c440\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f3d6aea3e20])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f3d6b192a48)\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:...0x7f3d6ae8c440)\n )\n )\n sh_compat:F\n module_frame:{\n ARGV\n ...0x7f3d6b1e3e30\n ENV\n ...0x7f3d6b1e3ef0\n UID\n ...0x7f3d6b1e3f50\n EUID\n ...0x7f3d6b1e3fb0\n PPID\n ...0x7f3d6b1a4050\n OPTIND\n ...0x7f3d6b1a40b0\n IFS\n ...0x7f3d6b1a4110\n HOSTNAME\n ...0x7f3d6b1a4170\n OSTYPE\n ...0x7f3d6b1a41d0\n PS4\n ...0x7f3d6b1a4230\n COMP_WORDBREAKS\n ...0x7f3d6b1a4290\n p\n ...0x7f3d6b1a4410\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:...0x7f3d6b192998)
      sig:(proc_sig.Closed
        word:(ParamGroup
          params:[
            (Param
              blame_tok:(Token
                id:Expr_Name
                length:6
                col:12
                line:...0x7f3d6b192998
              )
              name:prefix
            )
          ]
        )
      )
      body:(BraceGroup
        left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f3d6b192998)
        children:[
          (command.Simple
            blame_tok:(Token
              id:Lit_Chars
              length:4
              col:2
              line:(SourceLine
                line_num:2
                content:"  echo $prefix a\n"
                src:...0x7f3d6ae30280
              )
            )
            more_env:[]
            words:[
              (CompoundWord parts:[...0x7f3d6ae2d460])
              (CompoundWord
                parts:[
                  (SimpleVarSub
                    tok:(Token
                      id:VSub_DollarName
                      length:7
                      col:7
                      line:...0x7f3d6b192af8
                    )
                  )
                ]
              )
              (CompoundWord
                parts:[
                  (Token id:Lit_Chars length:1 col:15 line:...0x7f3d6b192af8)
                ]
              )
            ]
            is_last_cmd:F
          )
        ]
        right:(Token
          id:Lit_RBrace
          length:1
          col:0
          line:(SourceLine line_num:3 content:"}\n" src:...0x7f3d6ae30280)
        )
      )
    )
  )
  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:...0x7f3d6b192b50)
  }
  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.34097/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.34097/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:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.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:1)
        }
      )
    )
    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:34175))
    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:226a8892c6fc))
    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:...0x7f3d6ae8c440
          )
        )
        sig:(proc_sig.Open)
        body:(BraceGroup
          left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f3d6b192158)
          children:[
            (command.VarDecl
              keyword:(Token
                id:KW_Var
                length:3
                col:2
                line:(SourceLine
                  line_num:2
                  content:"  var result = {}\n"
                  src:...0x7f3d6ae8c440
                )
              )
              lhs:[
                (NameType
                  left:(Token
                    id:Expr_Name
                    length:6
                    col:6
                    line:...0x7f3d6b1921b0
                  )
                  name:result
                )
              ]
              rhs:(expr.Dict
                left:(Token id:Op_LBrace length:1 col:15 line:...0x7f3d6b1921b0)
                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:...0x7f3d6ae8c440
                )
              )
              iter_names:[param]
              iterable:(for_iter.Words
                words:[
                  (CompoundWord
                    parts:[
                      (Token
                        id:Lit_Chars
                        length:1
                        col:15
                        line:...0x7f3d6b192310
                        tval:a
                      )
                    ]
                  )
                  (CompoundWord
                    parts:[
                      (Token
                        id:Lit_Chars
                        length:1
                        col:17
                        line:...0x7f3d6b192310
                        tval:b
                      )
                    ]
                  )
                ]
              )
              body:(BraceGroup
                left:(Token
                  id:Lit_LBrace
                  length:1
                  col:19
                  line:...0x7f3d6b192310
                )
                children:[
                  (command.VarDecl
                    keyword:(Token
                      id:KW_Var
                      length:3
                      col:4
                      line:(SourceLine
                        line_num:4
                        content:"    var s = \"\"\"\n"
                        src:...0x7f3d6ae8c440
                      )
                    )
                    lhs:[
                      (NameType
                        left:(Token
                          id:Expr_Name
                          length:1
                          col:8
                          line:...0x7f3d6b192368
                        )
                        name:s
                      )
                    ]
                    rhs:(DoubleQuoted
                      left:(Token
                        id:Left_TDoubleQuote
                        length:3
                        col:12
                        line:...0x7f3d6b192368
                      )
                      parts:[
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:10
                          col:4
                          line:(SourceLine
                            line_num:5
                            content:"    proc echo_$param(prefix) {\n"
                            src:...0x7f3d6ae8c440
                          )
                          tval:"proc echo_"
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:14
                            line:...0x7f3d6b1923c0
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:11
                          col:20
                          line:...0x7f3d6b1923c0
                          tval:"(prefix) {\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:7
                          col:4
                          line:(SourceLine
                            line_num:6
                            content:"      echo \\$prefix $param\n"
                            src:...0x7f3d6ae8c440
                          )
                          tval:"  echo "
                        )
                        (word_part.EscapedLiteral
                          token:(Token
                            id:Lit_EscapedChar
                            length:2
                            col:11
                            line:...0x7f3d6b192418
                          )
                          ch:"$"
                        )
                        (Token
                          id:Lit_Chars
                          length:7
                          col:13
                          line:...0x7f3d6b192418
                          tval:"prefix "
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:20
                            line:...0x7f3d6b192418
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:1
                          col:26
                          line:...0x7f3d6b192418
                          tval:"\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:2
                          col:4
                          line:(SourceLine
                            line_num:7
                            content:"    }\n"
                            src:...0x7f3d6ae8c440
                          )
                          tval:"}\n"
                        )
                      ]
                      right:(Token
                        id:Right_DoubleQuote
                        length:1
                        col:6
                        line:(SourceLine
                          line_num:8
                          content:"    \"\"\"\n"
                          src:...0x7f3d6ae8c440
                        )
                      )
                    )
                  )
                  (command.VarDecl
                    keyword:(Token
                      id:KW_Var
                      length:3
                      col:4
                      line:...0x7f3d6b192628
                    )
                    lhs:[
                      (NameType
                        left:(Token
                          id:Expr_Name
                          length:3
                          col:8
                          line:...0x7f3d6b192628
                        )
                        name:cmd
                      )
                    ]
                    rhs:(expr.FuncCall
                      func:(expr.Var
                        left:(Token
                          id:Expr_Name
                          length:12
                          col:14
                          line:...0x7f3d6b192628
                        )
                        name:parseCommand
                      )
                      args:(ArgList
                        left:...0x7f3d6aea3050
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:1
                              col:27
                              line:...0x7f3d6b192628
                            )
                            name:s
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:28
                          line:...0x7f3d6b192628
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:2
                      col:4
                      line:(SourceLine
                        line_num:10
                        content:"    pp asdl_ (cmd)\n"
                        src:...0x7f3d6ae8c440
                      )
                      tval:pp
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x7f3d6aea30b8])
                      (CompoundWord
                        parts:[
                          (Token
                            id:Lit_Chars
                            length:5
                            col:7
                            line:...0x7f3d6b192730
                            tval:asdl_
                          )
                        ]
                      )
                    ]
                    typed_args:(ArgList
                      left:(Token
                        id:Op_LParen
                        length:1
                        col:13
                        line:...0x7f3d6b192730
                      )
                      pos_args:[
                        (expr.Var
                          left:(Token
                            id:Expr_Name
                            length:3
                            col:14
                            line:...0x7f3d6b192730
                          )
                          name:cmd
                        )
                      ]
                      named_args:[]
                      right:(Token
                        id:Op_RParen
                        length:1
                        col:17
                        line:...0x7f3d6b192730
                      )
                    )
                    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:...0x7f3d6ae8c440
                      )
                    )
                    e:(expr.FuncCall
                      func:(Attribute
                        obj:(expr.Var
                          left:(Token
                            id:Expr_Name
                            length:2
                            col:9
                            line:...0x7f3d6b192838
                          )
                          name:io
                        )
                        op:(Token
                          id:Expr_RArrow
                          length:2
                          col:11
                          line:...0x7f3d6b192838
                        )
                        attr:(Token
                          id:Expr_Name
                          length:4
                          col:13
                          line:...0x7f3d6b192838
                        )
                        attr_name:eval
                        ctx:expr_context.Store
                      )
                      args:(ArgList
                        left:(Token
                          id:Op_LParen
                          length:1
                          col:17
                          line:...0x7f3d6b192838
                        )
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:3
                              col:18
                              line:...0x7f3d6b192838
                            )
                            name:cmd
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:21
                          line:...0x7f3d6b192838
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:6
                      col:4
                      line:(SourceLine
                        line_num:15
                        content:"    echo_a zz\n"
                        src:...0x7f3d6ae8c440
                      )
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x7f3d6aea3940])
                      (CompoundWord
                        parts:[
                          (Token
                            id:Lit_Chars
                            length:2
                            col:11
                            line:...0x7f3d6b1928e8
                          )
                        ]
                      )
                    ]
                    is_last_cmd:F
                  )
                ]
                right:(Token
                  id:Lit_RBrace
                  length:1
                  col:2
                  line:(SourceLine
                    line_num:16
                    content:"  }\n"
                    src:...0x7f3d6ae8c440
                  )
                )
              )
            )
            (command.Simple
              blame_tok:(Token
                id:Lit_Chars
                length:6
                col:2
                line:(SourceLine
                  line_num:18
                  content:"  echo_a prefix\n"
                  src:...0x7f3d6ae8c440
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x7f3d6b166d50])
                (CompoundWord
                  parts:[
                    (Token id:Lit_Chars length:6 col:9 line:...0x7f3d6b1929f0)
                  ]
                )
              ]
              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:...0x7f3d6ae8c440
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x7f3d6aea3e20])
                (CompoundWord
                  parts:[
                    (Token id:Lit_Chars length:6 col:9 line:...0x7f3d6b192a48)
                  ]
                )
              ]
              is_last_cmd:F
            )
          ]
          right:(Token
            id:Lit_RBrace
            length:1
            col:0
            line:(SourceLine line_num:20 content:"}\n" src:...0x7f3d6ae8c440)
          )
        )
        sh_compat:F
        module_frame:{
          ARGV
          ...0x7f3d6b1e3e30
          ENV
          ...0x7f3d6b1e3ef0
          UID
          ...0x7f3d6b1e3f50
          EUID
          ...0x7f3d6b1e3fb0
          PPID
          ...0x7f3d6b1a4050
          OPTIND
          ...0x7f3d6b1a40b0
          IFS
          ...0x7f3d6b1a4110
          HOSTNAME
          ...0x7f3d6b1a4170
          OSTYPE
          ...0x7f3d6b1a41d0
          PS4
          ...0x7f3d6b1a4230
          COMP_WORDBREAKS
          ...0x7f3d6b1a4290
          p
          ...0x7f3d6b1a4410
        }
      )
    )
  }
)
stderr:
      echo_a zz
      ^~~~~~
[ stdin ]:15: 'echo_a' not found (OILS-ERR-100)
[ stdin ]:15: errexit PID 34177: command.Simple failed with status 127
ysh-cpp3 with parseCommand() then io->eval(), in local scope

[ysh-cpp 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:...0x1612)\n sig:(proc_sig.Closed\n word:(ParamGroup\n params:[\n (Param\n blame_tok:(Token id:Expr_Name length:6 col:12 line:...0x1612)\n name:prefix\n )\n ]\n )\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:20 line:...0x1612)\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:...0x2a4d\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x1592])\n (CompoundWord\n parts:[\n (SimpleVarSub\n tok:(Token id:VSub_DollarName length:7 col:7 line:...0x159a)\n )\n ]\n )\n (CompoundWord\n parts:[(Token id:Lit_Chars length:1 col:15 line:...0x159a)]\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:...0x2a4d)\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:...0x1fd2)\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.34097/03-ysh-cpp\n )\n REPO_ROOT\n (value.Str s:/home/uke/oil/test/..)\n SH\n (value.Str s:/home/uke/oil/_bin/cxx-asan/ysh)\n LC_ALL\n (value.Str s:C.UTF-8)\n PATH\n (value.Str\n s:"/home/uke/oil/test/../spec/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.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:1)\n LINES\n (value.Str s:24)\n COLUMNS\n (value.Str s:80)\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:34189))\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:226a8892c6fc))\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 line_num:1 content:"proc p {\\n" src:...0x1d65)\n )\n sig:(proc_sig.Open)\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:7 line:...0x1306)\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:...0x1d65\n )\n )\n lhs:[\n (NameType\n left:(Token id:Expr_Name length:6 col:6 line:...0x12ba)\n name:result\n )\n ]\n rhs:(expr.Dict\n left:(Token id:Op_LBrace length:1 col:15 line:...0x12ba)\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:...0x1d65\n )\n )\n iter_names:[param]\n iterable:(for_iter.Words\n words:[\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:15 line:...0x1206 tval:a)\n ]\n )\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:17 line:...0x1206 tval:b)\n ]\n )\n ]\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:19 line:...0x1206)\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:...0x1d65\n )\n )\n lhs:[\n (NameType\n left:(Token id:Expr_Name length:1 col:8 line:...0x1196)\n name:s\n )\n ]\n rhs:(DoubleQuoted\n left:(Token\n id:Left_TDoubleQuote\n length:3\n col:12\n line:...0x1196\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:...0x1d65\n )\n tval:"proc echo_"\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:14\n line:...0x10fa\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:11\n col:20\n line:...0x10fa\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:...0x1d65\n )\n tval:" echo "\n )\n (word_part.EscapedLiteral\n token:(Token\n id:Lit_EscapedChar\n length:2\n col:11\n line:...0x10e6\n )\n ch:"$"\n )\n (Token\n id:Lit_Chars\n length:7\n col:13\n line:...0x10e6\n tval:"prefix "\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:20\n line:...0x10e6\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:1\n col:26\n line:...0x10e6\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:...0x1d65\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:...0x1d65\n )\n )\n )\n )\n (command.VarDecl\n keyword:(Token id:KW_Var length:3 col:4 line:...0x108e)\n lhs:[\n (NameType\n left:(Token id:Expr_Name length:3 col:8 line:...0x108e)\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:...0x108e\n )\n name:parseCommand\n )\n args:(ArgList\n left:...0x100a\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:1\n col:27\n line:...0x108e\n )\n name:s\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:28\n line:...0x108e\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:...0x1d65\n )\n tval:pp\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x1a2a])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:5\n col:7\n line:...0x1a32\n tval:asdl_\n )\n ]\n )\n ]\n typed_args:(ArgList\n left:(Token id:Op_LParen length:1 col:13 line:...0x1a32)\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:14\n line:...0x1a32\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token id:Op_RParen length:1 col:17 line:...0x1a32)\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:...0x1d65\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:...0x1976\n )\n name:io\n )\n op:(Token id:Expr_RArrow length:2 col:11 line:...0x1976)\n attr:(Token id:Expr_Name length:4 col:13 line:...0x1976)\n attr_name:eval\n ctx:expr_context.Store\n )\n args:(ArgList\n left:(Token id:Op_LParen length:1 col:17 line:...0x1976)\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:18\n line:...0x1976\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:21\n line:...0x1976\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:...0x1d65\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x187e])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:2 col:11 line:...0x1886)\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 line_num:16 content:" }\\n" src:...0x1d65)\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:...0x1d65\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x181e])\n (CompoundWord\n parts:[(Token id:Lit_Chars length:6 col:9 line:...0x1826)]\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:...0x1d65\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x17e2])\n (CompoundWord\n parts:[(Token id:Lit_Chars length:6 col:9 line:...0x17ea)]\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:...0x1d65)\n )\n )\n sh_compat:F\n module_frame:{\n ARGV\n ...0x849\n ENV\n ...0x7c9\n UID\n ...0x7a1\n EUID\n ...0x795\n PPID\n ...0x789\n OPTIND\n ...0x77d\n IFS\n ...0x771\n HOSTNAME\n ...0x765\n OSTYPE\n ...0x755\n PS4\n ...0x749\n COMP_WORDBREAKS\n ...0x73d\n p\n ...0x16ed\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:...0x1612)
      sig:(proc_sig.Closed
        word:(ParamGroup
          params:[
            (Param
              blame_tok:(Token id:Expr_Name length:6 col:12 line:...0x1612)
              name:prefix
            )
          ]
        )
      )
      body:(BraceGroup
        left:(Token id:Lit_LBrace length:1 col:20 line:...0x1612)
        children:[
          (command.Simple
            blame_tok:(Token
              id:Lit_Chars
              length:4
              col:2
              line:(SourceLine
                line_num:2
                content:"  echo $prefix a\n"
                src:...0x2a4d
              )
            )
            more_env:[]
            words:[
              (CompoundWord parts:[...0x1592])
              (CompoundWord
                parts:[
                  (SimpleVarSub
                    tok:(Token id:VSub_DollarName length:7 col:7 line:...0x159a)
                  )
                ]
              )
              (CompoundWord
                parts:[(Token id:Lit_Chars length:1 col:15 line:...0x159a)]
              )
            ]
            is_last_cmd:F
          )
        ]
        right:(Token
          id:Lit_RBrace
          length:1
          col:0
          line:(SourceLine line_num:3 content:"}\n" src:...0x2a4d)
        )
      )
    )
  )
  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:...0x1fd2)
  }
  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.34097/03-ysh-cpp
          )
          REPO_ROOT
          (value.Str s:/home/uke/oil/test/..)
          SH
          (value.Str s:/home/uke/oil/_bin/cxx-asan/ysh)
          LC_ALL
          (value.Str s:C.UTF-8)
          PATH
          (value.Str
            s:"/home/uke/oil/test/../spec/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.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:1)
          LINES
          (value.Str s:24)
          COLUMNS
          (value.Str s:80)
        }
      )
    )
    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:34189))
    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:226a8892c6fc))
    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:...0x1d65)
        )
        sig:(proc_sig.Open)
        body:(BraceGroup
          left:(Token id:Lit_LBrace length:1 col:7 line:...0x1306)
          children:[
            (command.VarDecl
              keyword:(Token
                id:KW_Var
                length:3
                col:2
                line:(SourceLine
                  line_num:2
                  content:"  var result = {}\n"
                  src:...0x1d65
                )
              )
              lhs:[
                (NameType
                  left:(Token id:Expr_Name length:6 col:6 line:...0x12ba)
                  name:result
                )
              ]
              rhs:(expr.Dict
                left:(Token id:Op_LBrace length:1 col:15 line:...0x12ba)
                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:...0x1d65
                )
              )
              iter_names:[param]
              iterable:(for_iter.Words
                words:[
                  (CompoundWord
                    parts:[
                      (Token id:Lit_Chars length:1 col:15 line:...0x1206 tval:a)
                    ]
                  )
                  (CompoundWord
                    parts:[
                      (Token id:Lit_Chars length:1 col:17 line:...0x1206 tval:b)
                    ]
                  )
                ]
              )
              body:(BraceGroup
                left:(Token id:Lit_LBrace length:1 col:19 line:...0x1206)
                children:[
                  (command.VarDecl
                    keyword:(Token
                      id:KW_Var
                      length:3
                      col:4
                      line:(SourceLine
                        line_num:4
                        content:"    var s = \"\"\"\n"
                        src:...0x1d65
                      )
                    )
                    lhs:[
                      (NameType
                        left:(Token id:Expr_Name length:1 col:8 line:...0x1196)
                        name:s
                      )
                    ]
                    rhs:(DoubleQuoted
                      left:(Token
                        id:Left_TDoubleQuote
                        length:3
                        col:12
                        line:...0x1196
                      )
                      parts:[
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:10
                          col:4
                          line:(SourceLine
                            line_num:5
                            content:"    proc echo_$param(prefix) {\n"
                            src:...0x1d65
                          )
                          tval:"proc echo_"
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:14
                            line:...0x10fa
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:11
                          col:20
                          line:...0x10fa
                          tval:"(prefix) {\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:7
                          col:4
                          line:(SourceLine
                            line_num:6
                            content:"      echo \\$prefix $param\n"
                            src:...0x1d65
                          )
                          tval:"  echo "
                        )
                        (word_part.EscapedLiteral
                          token:(Token
                            id:Lit_EscapedChar
                            length:2
                            col:11
                            line:...0x10e6
                          )
                          ch:"$"
                        )
                        (Token
                          id:Lit_Chars
                          length:7
                          col:13
                          line:...0x10e6
                          tval:"prefix "
                        )
                        (SimpleVarSub
                          tok:(Token
                            id:VSub_DollarName
                            length:6
                            col:20
                            line:...0x10e6
                            tval:param
                          )
                        )
                        (Token
                          id:Lit_Chars
                          length:1
                          col:26
                          line:...0x10e6
                          tval:"\n"
                        )
                        (Token
                          id:Lit_CharsWithoutPrefix
                          length:2
                          col:4
                          line:(SourceLine
                            line_num:7
                            content:"    }\n"
                            src:...0x1d65
                          )
                          tval:"}\n"
                        )
                      ]
                      right:(Token
                        id:Right_DoubleQuote
                        length:1
                        col:6
                        line:(SourceLine
                          line_num:8
                          content:"    \"\"\"\n"
                          src:...0x1d65
                        )
                      )
                    )
                  )
                  (command.VarDecl
                    keyword:(Token id:KW_Var length:3 col:4 line:...0x108e)
                    lhs:[
                      (NameType
                        left:(Token id:Expr_Name length:3 col:8 line:...0x108e)
                        name:cmd
                      )
                    ]
                    rhs:(expr.FuncCall
                      func:(expr.Var
                        left:(Token
                          id:Expr_Name
                          length:12
                          col:14
                          line:...0x108e
                        )
                        name:parseCommand
                      )
                      args:(ArgList
                        left:...0x100a
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:1
                              col:27
                              line:...0x108e
                            )
                            name:s
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:28
                          line:...0x108e
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:2
                      col:4
                      line:(SourceLine
                        line_num:10
                        content:"    pp asdl_ (cmd)\n"
                        src:...0x1d65
                      )
                      tval:pp
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x1a2a])
                      (CompoundWord
                        parts:[
                          (Token
                            id:Lit_Chars
                            length:5
                            col:7
                            line:...0x1a32
                            tval:asdl_
                          )
                        ]
                      )
                    ]
                    typed_args:(ArgList
                      left:(Token id:Op_LParen length:1 col:13 line:...0x1a32)
                      pos_args:[
                        (expr.Var
                          left:(Token
                            id:Expr_Name
                            length:3
                            col:14
                            line:...0x1a32
                          )
                          name:cmd
                        )
                      ]
                      named_args:[]
                      right:(Token id:Op_RParen length:1 col:17 line:...0x1a32)
                    )
                    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:...0x1d65
                      )
                    )
                    e:(expr.FuncCall
                      func:(Attribute
                        obj:(expr.Var
                          left:(Token
                            id:Expr_Name
                            length:2
                            col:9
                            line:...0x1976
                          )
                          name:io
                        )
                        op:(Token id:Expr_RArrow length:2 col:11 line:...0x1976)
                        attr:(Token id:Expr_Name length:4 col:13 line:...0x1976)
                        attr_name:eval
                        ctx:expr_context.Store
                      )
                      args:(ArgList
                        left:(Token id:Op_LParen length:1 col:17 line:...0x1976)
                        pos_args:[
                          (expr.Var
                            left:(Token
                              id:Expr_Name
                              length:3
                              col:18
                              line:...0x1976
                            )
                            name:cmd
                          )
                        ]
                        named_args:[]
                        right:(Token
                          id:Op_RParen
                          length:1
                          col:21
                          line:...0x1976
                        )
                      )
                    )
                  )
                  (command.Simple
                    blame_tok:(Token
                      id:Lit_Chars
                      length:6
                      col:4
                      line:(SourceLine
                        line_num:15
                        content:"    echo_a zz\n"
                        src:...0x1d65
                      )
                    )
                    more_env:[]
                    words:[
                      (CompoundWord parts:[...0x187e])
                      (CompoundWord
                        parts:[
                          (Token id:Lit_Chars length:2 col:11 line:...0x1886)
                        ]
                      )
                    ]
                    is_last_cmd:F
                  )
                ]
                right:(Token
                  id:Lit_RBrace
                  length:1
                  col:2
                  line:(SourceLine line_num:16 content:"  }\n" src:...0x1d65)
                )
              )
            )
            (command.Simple
              blame_tok:(Token
                id:Lit_Chars
                length:6
                col:2
                line:(SourceLine
                  line_num:18
                  content:"  echo_a prefix\n"
                  src:...0x1d65
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x181e])
                (CompoundWord
                  parts:[(Token id:Lit_Chars length:6 col:9 line:...0x1826)]
                )
              ]
              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:...0x1d65
                )
              )
              more_env:[]
              words:[
                (CompoundWord parts:[...0x17e2])
                (CompoundWord
                  parts:[(Token id:Lit_Chars length:6 col:9 line:...0x17ea)]
                )
              ]
              is_last_cmd:F
            )
          ]
          right:(Token
            id:Lit_RBrace
            length:1
            col:0
            line:(SourceLine line_num:20 content:"}\n" src:...0x1d65)
          )
        )
        sh_compat:F
        module_frame:{
          ARGV
          ...0x849
          ENV
          ...0x7c9
          UID
          ...0x7a1
          EUID
          ...0x795
          PPID
          ...0x789
          OPTIND
          ...0x77d
          IFS
          ...0x771
          HOSTNAME
          ...0x765
          OSTYPE
          ...0x755
          PS4
          ...0x749
          COMP_WORDBREAKS
          ...0x73d
          p
          ...0x16ed
        }
      )
    )
  }
)
stderr:
      echo_a zz
      ^~~~~~
[ stdin ]:15: 'echo_a' not found (OILS-ERR-100)
[ stdin ]:15: errexit PID 34191: command.Simple failed with status 127