status | ysh | ysh_ALT | |
pass | 6 | 6 | |
FAIL | 1 | 1 | |
total | 7 | 7 | |
case | ysh | ysh_ALT | description |
0 | pass | pass | with eval builtin command, in global scope |
1 | pass | pass | with eval builtin command, in local scope |
2 | pass | pass | with eval builtin command, making them global with names() and setVar() |
3 | FAIL | FAIL | with parseCommand() then io->eval(), in local scope |
details | details | ||
4 | pass | pass | with parseCommand() then io->eval(cmd, vars={out_dict: {}}) |
5 | pass | pass | with evalToDict() |
6 | pass | pass | with runtime REFLECTION via __invoke__ - no parsing |
12 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped 1 failed under osh
ysh | 3 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:...0x7f9e72cd38e8)\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:...0x7f9e72cd38e8\n )\n name:prefix\n )\n ]\n )\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f9e72cd38e8)\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:...0x7f9e729692d0\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f9e72966460])\n (CompoundWord\n parts:[\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:7\n col:7\n line:...0x7f9e72cd3a48\n )\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:15 line:...0x7f9e72cd3a48)\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:...0x7f9e729692d0)\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:...0x7f9e72cd3aa0)\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.7506/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.7506/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:7512))\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:bd57fb367d7d))\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:...0x7f9e729c5368\n )\n )\n sig:(proc_sig.Open)\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f9e72cd30a8)\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:...0x7f9e729c5368\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:6\n col:6\n line:...0x7f9e72cd3100\n )\n name:result\n )\n ]\n rhs:(expr.Dict\n left:(Token id:Op_LBrace length:1 col:15 line:...0x7f9e72cd3100)\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:...0x7f9e729c5368\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:...0x7f9e72cd3260\n tval:a\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:1\n col:17\n line:...0x7f9e72cd3260\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:...0x7f9e72cd3260\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:...0x7f9e729c5368\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:1\n col:8\n line:...0x7f9e72cd32b8\n )\n name:s\n )\n ]\n rhs:(DoubleQuoted\n left:(Token\n id:Left_TDoubleQuote\n length:3\n col:12\n line:...0x7f9e72cd32b8\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:...0x7f9e729c5368\n )\n tval:"proc echo_"\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:14\n line:...0x7f9e72cd3310\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:11\n col:20\n line:...0x7f9e72cd3310\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:...0x7f9e729c5368\n )\n tval:" echo "\n )\n (word_part.EscapedLiteral\n token:(Token\n id:Lit_EscapedChar\n length:2\n col:11\n line:...0x7f9e72cd3368\n )\n ch:"$"\n )\n (Token\n id:Lit_Chars\n length:7\n col:13\n line:...0x7f9e72cd3368\n tval:"prefix "\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:20\n line:...0x7f9e72cd3368\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:1\n col:26\n line:...0x7f9e72cd3368\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:...0x7f9e729c5368\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:...0x7f9e729c5368\n )\n )\n )\n )\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:4\n line:...0x7f9e72cd3578\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:3\n col:8\n line:...0x7f9e72cd3578\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:...0x7f9e72cd3578\n )\n name:parseCommand\n )\n args:(ArgList\n left:...0x7f9e729dc050\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:1\n col:27\n line:...0x7f9e72cd3578\n )\n name:s\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:28\n line:...0x7f9e72cd3578\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:...0x7f9e729c5368\n )\n tval:pp\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f9e729dc0b8])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:5\n col:7\n line:...0x7f9e72cd3680\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:...0x7f9e72cd3680\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:14\n line:...0x7f9e72cd3680\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:17\n line:...0x7f9e72cd3680\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:...0x7f9e729c5368\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:...0x7f9e72cd3788\n )\n name:io\n )\n op:(Token\n id:Expr_RArrow\n length:2\n col:11\n line:...0x7f9e72cd3788\n )\n attr:(Token\n id:Expr_Name\n length:4\n col:13\n line:...0x7f9e72cd3788\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:...0x7f9e72cd3788\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:18\n line:...0x7f9e72cd3788\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:21\n line:...0x7f9e72cd3788\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:...0x7f9e729c5368\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f9e729dc940])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:2\n col:11\n line:...0x7f9e72cd3838\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:...0x7f9e729c5368\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:...0x7f9e729c5368\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f9e72ca2d50])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f9e72cd3940)\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:...0x7f9e729c5368\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7f9e729dce20])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7f9e72cd3998)\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:...0x7f9e729c5368)\n )\n )\n sh_compat:F\n module_frame:{\n ARGV\n ...0x7f9e72d1de90\n ENV\n ...0x7f9e72d1df50\n UID\n ...0x7f9e72d1dfb0\n EUID\n ...0x7f9e72cdc050\n PPID\n ...0x7f9e72cdc0b0\n OPTIND\n ...0x7f9e72cdc110\n IFS\n ...0x7f9e72cdc170\n HOSTNAME\n ...0x7f9e72cdc1d0\n OSTYPE\n ...0x7f9e72cdc230\n PS4\n ...0x7f9e72cdc290\n COMP_WORDBREAKS\n ...0x7f9e72cdc2f0\n p\n ...0x7f9e72cdc470\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:...0x7f9e72cd38e8) sig:(proc_sig.Closed word:(ParamGroup params:[ (Param blame_tok:(Token id:Expr_Name length:6 col:12 line:...0x7f9e72cd38e8 ) name:prefix ) ] ) ) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:20 line:...0x7f9e72cd38e8) children:[ (command.Simple blame_tok:(Token id:Lit_Chars length:4 col:2 line:(SourceLine line_num:2 content:" echo $prefix a\n" src:...0x7f9e729692d0 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7f9e72966460]) (CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:7 col:7 line:...0x7f9e72cd3a48 ) ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:15 line:...0x7f9e72cd3a48) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:0 line:(SourceLine line_num:3 content:"}\n" src:...0x7f9e729692d0) ) ) ) ) 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:...0x7f9e72cd3aa0) } 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.7506/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.7506/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:7512)) 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:bd57fb367d7d)) 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:...0x7f9e729c5368 ) ) sig:(proc_sig.Open) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:7 line:...0x7f9e72cd30a8) children:[ (command.VarDecl keyword:(Token id:KW_Var length:3 col:2 line:(SourceLine line_num:2 content:" var result = {}\n" src:...0x7f9e729c5368 ) ) lhs:[ (NameType left:(Token id:Expr_Name length:6 col:6 line:...0x7f9e72cd3100 ) name:result ) ] rhs:(expr.Dict left:(Token id:Op_LBrace length:1 col:15 line:...0x7f9e72cd3100) 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:...0x7f9e729c5368 ) ) iter_names:[param] iterable:(for_iter.Words words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:15 line:...0x7f9e72cd3260 tval:a ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:17 line:...0x7f9e72cd3260 tval:b ) ] ) ] ) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:19 line:...0x7f9e72cd3260 ) children:[ (command.VarDecl keyword:(Token id:KW_Var length:3 col:4 line:(SourceLine line_num:4 content:" var s = \"\"\"\n" src:...0x7f9e729c5368 ) ) lhs:[ (NameType left:(Token id:Expr_Name length:1 col:8 line:...0x7f9e72cd32b8 ) name:s ) ] rhs:(DoubleQuoted left:(Token id:Left_TDoubleQuote length:3 col:12 line:...0x7f9e72cd32b8 ) parts:[ (Token id:Lit_CharsWithoutPrefix length:10 col:4 line:(SourceLine line_num:5 content:" proc echo_$param(prefix) {\n" src:...0x7f9e729c5368 ) tval:"proc echo_" ) (SimpleVarSub tok:(Token id:VSub_DollarName length:6 col:14 line:...0x7f9e72cd3310 tval:param ) ) (Token id:Lit_Chars length:11 col:20 line:...0x7f9e72cd3310 tval:"(prefix) {\n" ) (Token id:Lit_CharsWithoutPrefix length:7 col:4 line:(SourceLine line_num:6 content:" echo \\$prefix $param\n" src:...0x7f9e729c5368 ) tval:" echo " ) (word_part.EscapedLiteral token:(Token id:Lit_EscapedChar length:2 col:11 line:...0x7f9e72cd3368 ) ch:"$" ) (Token id:Lit_Chars length:7 col:13 line:...0x7f9e72cd3368 tval:"prefix " ) (SimpleVarSub tok:(Token id:VSub_DollarName length:6 col:20 line:...0x7f9e72cd3368 tval:param ) ) (Token id:Lit_Chars length:1 col:26 line:...0x7f9e72cd3368 tval:"\n" ) (Token id:Lit_CharsWithoutPrefix length:2 col:4 line:(SourceLine line_num:7 content:" }\n" src:...0x7f9e729c5368 ) tval:"}\n" ) ] right:(Token id:Right_DoubleQuote length:1 col:6 line:(SourceLine line_num:8 content:" \"\"\"\n" src:...0x7f9e729c5368 ) ) ) ) (command.VarDecl keyword:(Token id:KW_Var length:3 col:4 line:...0x7f9e72cd3578 ) lhs:[ (NameType left:(Token id:Expr_Name length:3 col:8 line:...0x7f9e72cd3578 ) name:cmd ) ] rhs:(expr.FuncCall func:(expr.Var left:(Token id:Expr_Name length:12 col:14 line:...0x7f9e72cd3578 ) name:parseCommand ) args:(ArgList left:...0x7f9e729dc050 pos_args:[ (expr.Var left:(Token id:Expr_Name length:1 col:27 line:...0x7f9e72cd3578 ) name:s ) ] named_args:[] right:(Token id:Op_RParen length:1 col:28 line:...0x7f9e72cd3578 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:2 col:4 line:(SourceLine line_num:10 content:" pp asdl_ (cmd)\n" src:...0x7f9e729c5368 ) tval:pp ) more_env:[] words:[ (CompoundWord parts:[...0x7f9e729dc0b8]) (CompoundWord parts:[ (Token id:Lit_Chars length:5 col:7 line:...0x7f9e72cd3680 tval:asdl_ ) ] ) ] typed_args:(ArgList left:(Token id:Op_LParen length:1 col:13 line:...0x7f9e72cd3680 ) pos_args:[ (expr.Var left:(Token id:Expr_Name length:3 col:14 line:...0x7f9e72cd3680 ) name:cmd ) ] named_args:[] right:(Token id:Op_RParen length:1 col:17 line:...0x7f9e72cd3680 ) ) 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:...0x7f9e729c5368 ) ) e:(expr.FuncCall func:(Attribute obj:(expr.Var left:(Token id:Expr_Name length:2 col:9 line:...0x7f9e72cd3788 ) name:io ) op:(Token id:Expr_RArrow length:2 col:11 line:...0x7f9e72cd3788 ) attr:(Token id:Expr_Name length:4 col:13 line:...0x7f9e72cd3788 ) attr_name:eval ctx:expr_context.Store ) args:(ArgList left:(Token id:Op_LParen length:1 col:17 line:...0x7f9e72cd3788 ) pos_args:[ (expr.Var left:(Token id:Expr_Name length:3 col:18 line:...0x7f9e72cd3788 ) name:cmd ) ] named_args:[] right:(Token id:Op_RParen length:1 col:21 line:...0x7f9e72cd3788 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:6 col:4 line:(SourceLine line_num:15 content:" echo_a zz\n" src:...0x7f9e729c5368 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7f9e729dc940]) (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:11 line:...0x7f9e72cd3838 ) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:2 line:(SourceLine line_num:16 content:" }\n" src:...0x7f9e729c5368 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:6 col:2 line:(SourceLine line_num:18 content:" echo_a prefix\n" src:...0x7f9e729c5368 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7f9e72ca2d50]) (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:9 line:...0x7f9e72cd3940) ] ) ] 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:...0x7f9e729c5368 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7f9e729dce20]) (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:9 line:...0x7f9e72cd3998) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:0 line:(SourceLine line_num:20 content:"}\n" src:...0x7f9e729c5368) ) ) sh_compat:F module_frame:{ ARGV ...0x7f9e72d1de90 ENV ...0x7f9e72d1df50 UID ...0x7f9e72d1dfb0 EUID ...0x7f9e72cdc050 PPID ...0x7f9e72cdc0b0 OPTIND ...0x7f9e72cdc110 IFS ...0x7f9e72cdc170 HOSTNAME ...0x7f9e72cdc1d0 OSTYPE ...0x7f9e72cdc230 PS4 ...0x7f9e72cdc290 COMP_WORDBREAKS ...0x7f9e72cdc2f0 p ...0x7f9e72cdc470 } ) ) } )stderr: echo_a zz ^~~~~~ [ stdin ]:15: 'echo_a' not found (OILS-ERR-100) [ stdin ]:15: errexit PID 7525: command.Simple failed with status 127 |
ysh_ALT | 3 with parseCommand() then io->eval(), in local scope [ysh_ALT 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:...0x7ff9f710d9f8)\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:...0x7ff9f710d9f8\n )\n name:prefix\n )\n ]\n )\n )\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:20 line:...0x7ff9f710d9f8)\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:...0x7ff9f6d41d80\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7ff9f6d781c8])\n (CompoundWord\n parts:[\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:7\n col:7\n line:...0x7ff9f710db38\n )\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:1 col:15 line:...0x7ff9f710db38)\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:...0x7ff9f6d41d80)\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:...0x7ff9f710db88)\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.7506/03-ysh_ALT\n )\n REPO_ROOT\n (value.Str s:/home/uke/oil/test/..)\n SH\n (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh)\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 LC_ALL\n (value.Str s:C.UTF-8)\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:7512))\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:bd57fb367d7d))\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:...0x7ff9f6d60448\n )\n )\n sig:(proc_sig.Open)\n body:(BraceGroup\n left:(Token id:Lit_LBrace length:1 col:7 line:...0x7ff9f710d1d8)\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:...0x7ff9f6d60448\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:6\n col:6\n line:...0x7ff9f710d138\n )\n name:result\n )\n ]\n rhs:(expr.Dict\n left:(Token id:Op_LBrace length:1 col:15 line:...0x7ff9f710d138)\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:...0x7ff9f6d60448\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:...0x7ff9f710d408\n tval:a\n )\n ]\n )\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:1\n col:17\n line:...0x7ff9f710d408\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:...0x7ff9f710d408\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:...0x7ff9f6d60448\n )\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:1\n col:8\n line:...0x7ff9f710d458\n )\n name:s\n )\n ]\n rhs:(DoubleQuoted\n left:(Token\n id:Left_TDoubleQuote\n length:3\n col:12\n line:...0x7ff9f710d458\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:...0x7ff9f6d60448\n )\n tval:"proc echo_"\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:14\n line:...0x7ff9f710d4a8\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:11\n col:20\n line:...0x7ff9f710d4a8\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:...0x7ff9f6d60448\n )\n tval:" echo "\n )\n (word_part.EscapedLiteral\n token:(Token\n id:Lit_EscapedChar\n length:2\n col:11\n line:...0x7ff9f710d4f8\n )\n ch:"$"\n )\n (Token\n id:Lit_Chars\n length:7\n col:13\n line:...0x7ff9f710d4f8\n tval:"prefix "\n )\n (SimpleVarSub\n tok:(Token\n id:VSub_DollarName\n length:6\n col:20\n line:...0x7ff9f710d4f8\n tval:param\n )\n )\n (Token\n id:Lit_Chars\n length:1\n col:26\n line:...0x7ff9f710d4f8\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:...0x7ff9f6d60448\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:...0x7ff9f6d60448\n )\n )\n )\n )\n (command.VarDecl\n keyword:(Token\n id:KW_Var\n length:3\n col:4\n line:...0x7ff9f710d6d8\n )\n lhs:[\n (NameType\n left:(Token\n id:Expr_Name\n length:3\n col:8\n line:...0x7ff9f710d6d8\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:...0x7ff9f710d6d8\n )\n name:parseCommand\n )\n args:(ArgList\n left:...0x7ff9f6d6e408\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:1\n col:27\n line:...0x7ff9f710d6d8\n )\n name:s\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:28\n line:...0x7ff9f710d6d8\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:...0x7ff9f6d60448\n )\n tval:pp\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7ff9f70f2fa8])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:5\n col:7\n line:...0x7ff9f710d7c8\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:...0x7ff9f710d7c8\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:14\n line:...0x7ff9f710d7c8\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:17\n line:...0x7ff9f710d7c8\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:...0x7ff9f6d60448\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:...0x7ff9f710d8b8\n )\n name:io\n )\n op:(Token\n id:Expr_RArrow\n length:2\n col:11\n line:...0x7ff9f710d8b8\n )\n attr:(Token\n id:Expr_Name\n length:4\n col:13\n line:...0x7ff9f710d8b8\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:...0x7ff9f710d8b8\n )\n pos_args:[\n (expr.Var\n left:(Token\n id:Expr_Name\n length:3\n col:18\n line:...0x7ff9f710d8b8\n )\n name:cmd\n )\n ]\n named_args:[]\n right:(Token\n id:Op_RParen\n length:1\n col:21\n line:...0x7ff9f710d8b8\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:...0x7ff9f6d60448\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7ff9f6d6e7c8])\n (CompoundWord\n parts:[\n (Token\n id:Lit_Chars\n length:2\n col:11\n line:...0x7ff9f710d958\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:...0x7ff9f6d60448\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:...0x7ff9f6d60448\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7ff9f70f2d08])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7ff9f710da48)\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:...0x7ff9f6d60448\n )\n )\n more_env:[]\n words:[\n (CompoundWord parts:[...0x7ff9f6d6ec48])\n (CompoundWord\n parts:[\n (Token id:Lit_Chars length:6 col:9 line:...0x7ff9f710da98)\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:...0x7ff9f6d60448)\n )\n )\n sh_compat:F\n module_frame:{\n ARGV\n ...0x7ff9f77630f8\n ENV\n ...0x7ff9f7763938\n UID\n ...0x7ff9f70f7620\n EUID\n ...0x7ff9f70f7678\n PPID\n ...0x7ff9f70f76d0\n OPTIND\n ...0x7ff9f70f7728\n IFS\n ...0x7ff9f70f7780\n HOSTNAME\n ...0x7ff9f70f77d8\n OSTYPE\n ...0x7ff9f70f7830\n PS4\n ...0x7ff9f70f7888\n COMP_WORDBREAKS\n ...0x7ff9f70f78e0\n p\n ...0x7ff9f70f7a40\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:...0x7ff9f710d9f8) sig:(proc_sig.Closed word:(ParamGroup params:[ (Param blame_tok:(Token id:Expr_Name length:6 col:12 line:...0x7ff9f710d9f8 ) name:prefix ) ] ) ) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:20 line:...0x7ff9f710d9f8) children:[ (command.Simple blame_tok:(Token id:Lit_Chars length:4 col:2 line:(SourceLine line_num:2 content:" echo $prefix a\n" src:...0x7ff9f6d41d80 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7ff9f6d781c8]) (CompoundWord parts:[ (SimpleVarSub tok:(Token id:VSub_DollarName length:7 col:7 line:...0x7ff9f710db38 ) ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:15 line:...0x7ff9f710db38) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:0 line:(SourceLine line_num:3 content:"}\n" src:...0x7ff9f6d41d80) ) ) ) ) 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:...0x7ff9f710db88) } 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.7506/03-ysh_ALT ) REPO_ROOT (value.Str s:/home/uke/oil/test/..) SH (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.25.0/_bin/ysh) 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" ) LC_ALL (value.Str s:C.UTF-8) 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:7512)) 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:bd57fb367d7d)) 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:...0x7ff9f6d60448 ) ) sig:(proc_sig.Open) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:7 line:...0x7ff9f710d1d8) children:[ (command.VarDecl keyword:(Token id:KW_Var length:3 col:2 line:(SourceLine line_num:2 content:" var result = {}\n" src:...0x7ff9f6d60448 ) ) lhs:[ (NameType left:(Token id:Expr_Name length:6 col:6 line:...0x7ff9f710d138 ) name:result ) ] rhs:(expr.Dict left:(Token id:Op_LBrace length:1 col:15 line:...0x7ff9f710d138) 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:...0x7ff9f6d60448 ) ) iter_names:[param] iterable:(for_iter.Words words:[ (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:15 line:...0x7ff9f710d408 tval:a ) ] ) (CompoundWord parts:[ (Token id:Lit_Chars length:1 col:17 line:...0x7ff9f710d408 tval:b ) ] ) ] ) body:(BraceGroup left:(Token id:Lit_LBrace length:1 col:19 line:...0x7ff9f710d408 ) children:[ (command.VarDecl keyword:(Token id:KW_Var length:3 col:4 line:(SourceLine line_num:4 content:" var s = \"\"\"\n" src:...0x7ff9f6d60448 ) ) lhs:[ (NameType left:(Token id:Expr_Name length:1 col:8 line:...0x7ff9f710d458 ) name:s ) ] rhs:(DoubleQuoted left:(Token id:Left_TDoubleQuote length:3 col:12 line:...0x7ff9f710d458 ) parts:[ (Token id:Lit_CharsWithoutPrefix length:10 col:4 line:(SourceLine line_num:5 content:" proc echo_$param(prefix) {\n" src:...0x7ff9f6d60448 ) tval:"proc echo_" ) (SimpleVarSub tok:(Token id:VSub_DollarName length:6 col:14 line:...0x7ff9f710d4a8 tval:param ) ) (Token id:Lit_Chars length:11 col:20 line:...0x7ff9f710d4a8 tval:"(prefix) {\n" ) (Token id:Lit_CharsWithoutPrefix length:7 col:4 line:(SourceLine line_num:6 content:" echo \\$prefix $param\n" src:...0x7ff9f6d60448 ) tval:" echo " ) (word_part.EscapedLiteral token:(Token id:Lit_EscapedChar length:2 col:11 line:...0x7ff9f710d4f8 ) ch:"$" ) (Token id:Lit_Chars length:7 col:13 line:...0x7ff9f710d4f8 tval:"prefix " ) (SimpleVarSub tok:(Token id:VSub_DollarName length:6 col:20 line:...0x7ff9f710d4f8 tval:param ) ) (Token id:Lit_Chars length:1 col:26 line:...0x7ff9f710d4f8 tval:"\n" ) (Token id:Lit_CharsWithoutPrefix length:2 col:4 line:(SourceLine line_num:7 content:" }\n" src:...0x7ff9f6d60448 ) tval:"}\n" ) ] right:(Token id:Right_DoubleQuote length:1 col:6 line:(SourceLine line_num:8 content:" \"\"\"\n" src:...0x7ff9f6d60448 ) ) ) ) (command.VarDecl keyword:(Token id:KW_Var length:3 col:4 line:...0x7ff9f710d6d8 ) lhs:[ (NameType left:(Token id:Expr_Name length:3 col:8 line:...0x7ff9f710d6d8 ) name:cmd ) ] rhs:(expr.FuncCall func:(expr.Var left:(Token id:Expr_Name length:12 col:14 line:...0x7ff9f710d6d8 ) name:parseCommand ) args:(ArgList left:...0x7ff9f6d6e408 pos_args:[ (expr.Var left:(Token id:Expr_Name length:1 col:27 line:...0x7ff9f710d6d8 ) name:s ) ] named_args:[] right:(Token id:Op_RParen length:1 col:28 line:...0x7ff9f710d6d8 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:2 col:4 line:(SourceLine line_num:10 content:" pp asdl_ (cmd)\n" src:...0x7ff9f6d60448 ) tval:pp ) more_env:[] words:[ (CompoundWord parts:[...0x7ff9f70f2fa8]) (CompoundWord parts:[ (Token id:Lit_Chars length:5 col:7 line:...0x7ff9f710d7c8 tval:asdl_ ) ] ) ] typed_args:(ArgList left:(Token id:Op_LParen length:1 col:13 line:...0x7ff9f710d7c8 ) pos_args:[ (expr.Var left:(Token id:Expr_Name length:3 col:14 line:...0x7ff9f710d7c8 ) name:cmd ) ] named_args:[] right:(Token id:Op_RParen length:1 col:17 line:...0x7ff9f710d7c8 ) ) 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:...0x7ff9f6d60448 ) ) e:(expr.FuncCall func:(Attribute obj:(expr.Var left:(Token id:Expr_Name length:2 col:9 line:...0x7ff9f710d8b8 ) name:io ) op:(Token id:Expr_RArrow length:2 col:11 line:...0x7ff9f710d8b8 ) attr:(Token id:Expr_Name length:4 col:13 line:...0x7ff9f710d8b8 ) attr_name:eval ctx:expr_context.Store ) args:(ArgList left:(Token id:Op_LParen length:1 col:17 line:...0x7ff9f710d8b8 ) pos_args:[ (expr.Var left:(Token id:Expr_Name length:3 col:18 line:...0x7ff9f710d8b8 ) name:cmd ) ] named_args:[] right:(Token id:Op_RParen length:1 col:21 line:...0x7ff9f710d8b8 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:6 col:4 line:(SourceLine line_num:15 content:" echo_a zz\n" src:...0x7ff9f6d60448 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7ff9f6d6e7c8]) (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:11 line:...0x7ff9f710d958 ) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:2 line:(SourceLine line_num:16 content:" }\n" src:...0x7ff9f6d60448 ) ) ) ) (command.Simple blame_tok:(Token id:Lit_Chars length:6 col:2 line:(SourceLine line_num:18 content:" echo_a prefix\n" src:...0x7ff9f6d60448 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7ff9f70f2d08]) (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:9 line:...0x7ff9f710da48) ] ) ] 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:...0x7ff9f6d60448 ) ) more_env:[] words:[ (CompoundWord parts:[...0x7ff9f6d6ec48]) (CompoundWord parts:[ (Token id:Lit_Chars length:6 col:9 line:...0x7ff9f710da98) ] ) ] is_last_cmd:F ) ] right:(Token id:Lit_RBrace length:1 col:0 line:(SourceLine line_num:20 content:"}\n" src:...0x7ff9f6d60448) ) ) sh_compat:F module_frame:{ ARGV ...0x7ff9f77630f8 ENV ...0x7ff9f7763938 UID ...0x7ff9f70f7620 EUID ...0x7ff9f70f7678 PPID ...0x7ff9f70f76d0 OPTIND ...0x7ff9f70f7728 IFS ...0x7ff9f70f7780 HOSTNAME ...0x7ff9f70f77d8 OSTYPE ...0x7ff9f70f7830 PS4 ...0x7ff9f70f7888 COMP_WORDBREAKS ...0x7ff9f70f78e0 p ...0x7ff9f70f7a40 } ) ) } )stderr: echo_a zz ^~~~~~ [ stdin ]:15: 'echo_a' not found (OILS-ERR-100) [ stdin ]:15: errexit PID 7528: command.Simple failed with status 127 |