(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (C {(source)} {(benchmarks/common.sh)}) (Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(LhsName name:BASE_DIR) op:Equal rhs:{(_tmp/osh-runtime)} spids:[52])] spids: [50] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:TAR_DIR) op: Equal rhs: {($ VSub_Name '$PWD') (/_deps/osh-runtime)} spids: [57] ) ] spids: [55] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:OSH) op: Equal rhs: {($ VSub_Name '$PWD') (/_bin/osh)} spids: [73] ) ] spids: [71] ) (FuncDef name: files body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('tcc-0.9.26.tar.bz2\n') ('yash-2.46.tar.xz\n') ('ocaml-4.06.0.tar.xz\n'))} do_expansion: True here_end: EOF was_filled: T spids: [100] ) ] ) ] spids: [95] ) spids: [91 94] ) (FuncDef name: conf-dirs body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ($ VSub_Name '$TAR_DIR') ('/ocaml-4.06.0\n') ($ VSub_Name '$TAR_DIR') ('/tcc-0.9.26\n') ($ VSub_Name '$TAR_DIR') ('/yash-2.46\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [119] ) ] ) ] spids: [114] ) spids: [110 113] ) (FuncDef name: download body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {($ VSub_Name '$TAR_DIR')}) (Pipeline children: [ (C {(files)}) (C {(xargs)} {(-n)} {(1)} {(-I)} {(Lit_LBrace '{') (Lit_RBrace '}')} {(--verbose)} {(--)} {(wget)} {(--directory)} {($ VSub_Name '$TAR_DIR')} {(SQ <'https://www.oilshell.org/blob/testdata/{}'>)} ) ] negated: F ) ] spids: [136] ) spids: [132 135] ) (FuncDef name: extract body: (BraceGroup children: [ (TimeBlock pipeline: (ForEach iter_name: f iter_words: [ (BracedWordTree parts: [ ($ VSub_Name '$TAR_DIR') (/) (Lit_Other '*') (.) (BracedAltPart words:[{(bz2)} {(xz)}]) ] ) ] do_arg_iter: F body: (DoGroup children: [ (C {(tar)} {(-x)} {(--directory)} {($ VSub_Name '$TAR_DIR')} {(--file)} {($ VSub_Name '$f')} ) ] spids: [206 223] ) spids: [194 204] ) ) (C {(ls)} {(-l)} {($ VSub_Name '$TAR_DIR')}) ] spids: [184] ) spids: [180 183] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:PY27_DIR) op: Equal rhs: {($ VSub_Name '$PWD') (/Python-2.7.13)} spids: [247] ) ] spids: [245] ) (FuncDef name: cpython-configure body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:sh_path) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(bash)}) spids: [262 266] ) } spids: [261] ) ] spids: [259] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$BASE_DIR') (Lit_Slash /) (${ VSub_Name sh_path) (-cpython-configure) } ) spids: [272 281] ) } spids: [271] ) ] spids: [269] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')}) (C {(pushd)} {($ VSub_Name '$out_dir')}) (AndOr ops: [Op_DPipe] children: [ (TimeBlock pipeline: (C {($ VSub_Name '$sh_path')} {($ VSub_Name '$PY27_DIR') (/configure)}) ) (C {(true)}) ] ) (C {(popd)}) (C {(tree)} {($ VSub_Name '$out_dir')}) ] spids: [256] ) spids: [252 255] ) (FuncDef name: osh-cpython-configure body: (BraceGroup children: [ (C {(cpython-configure)} {($ VSub_Name '$PWD') (/_bin/osh)} {($ VSub_Name '$BASE_DIR') (/osh-cpython-configure)} ) ] spids: [327] ) spids: [323 326] ) (FuncDef name: runtime-task body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:raw_dir) op: Equal rhs: {($ VSub_Number '$1')} spids: [350] ) ] spids: [348] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: {($ VSub_Number '$2')} spids: [359] ) ] spids: [357] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: {($ VSub_Number '$3')} spids: [365] ) ] spids: [363] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:host_hash) op: Equal rhs: {($ VSub_Number '$4')} spids: [371] ) ] spids: [369] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:sh_path) op: Equal rhs: {($ VSub_Number '$5')} spids: [377] ) ] spids: [375] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:shell_hash) op: Equal rhs: {($ VSub_Number '$6')} spids: [383] ) ] spids: [381] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:task_type) op: Equal rhs: {($ VSub_Number '$7')} spids: [389] ) ] spids: [387] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:task_arg) op: Equal rhs: {($ VSub_Number '$8')} spids: [395] ) ] spids: [393] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:shell_name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$sh_path')})] ) left_token: <Left_CommandSub '$('> spids: [403 407] ) } spids: [402] ) ] spids: [400] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$task_arg')})] ) left_token: <Left_CommandSub '$('> spids: [418 422] ) } spids: [417] ) ] spids: [415] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:task_label) op: Equal rhs: { (DQ (${ VSub_Name shell_name) (-) (${ VSub_Name shell_hash) (__) (${ VSub_Name x)) } spids: [427] ) ] spids: [425] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:times_out) op: Equal rhs: { (DQ ($ VSub_Name '$PWD') (/) ($ VSub_Name '$raw_dir') (/) ($ VSub_Name '$host') (.) ($ VSub_Name '$job_id') (.times.csv) ) } spids: [446] ) ] spids: [444] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:vm_out_dir) op: Equal rhs: { (DQ ($ VSub_Name '$PWD') (/) ($ VSub_Name '$raw_dir') (/) ($ VSub_Name '$host') (.) ($ VSub_Name '$job_id') (.virtual-memory) ) } spids: [461] ) ] spids: [459] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:files_out_dir) op: Equal rhs: { (DQ ($ VSub_Name '$PWD') (/) ($ VSub_Name '$raw_dir') (/) ($ VSub_Name '$host') (.) ($ VSub_Name '$job_id') (.files/) ($ VSub_Name '$task_label') ) } spids: [476] ) ] spids: [474] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$vm_out_dir')} {($ VSub_Name '$files_out_dir')}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:time_tool) op: Equal rhs: {($ VSub_Name '$PWD') (/benchmarks/time.py)} spids: [502] ) ] spids: [500] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:TIME_PREFIX) op: Equal rhs: { (ArrayLiteralPart words: [ {($ VSub_Name '$time_tool')} {(--output)} {($ VSub_Name '$times_out')} {(--field)} {(DQ ($ VSub_Name '$host'))} {(--field)} {(DQ ($ VSub_Name '$host_hash'))} {(--field)} {(DQ ($ VSub_Name '$shell_name'))} {(--field)} {(DQ ($ VSub_Name '$shell_hash'))} {(--field)} {(DQ ($ VSub_Name '$task_type'))} {(--field)} {(DQ ($ VSub_Name '$task_arg'))} ] ) } spids: [511] ) ] spids: [507] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:extra_args) op:Equal rhs:{(SQ )} spids:[574])] spids: [574] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$shell_name'))} {(Lit_Other '=')} {(SQ <osh>)}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:pdump) op: Equal rhs: { (DQ (${ VSub_Name vm_out_dir) (/) (${ VSub_Name task_label) (__parser.txt)) } spids: [599] ) ] spids: [597] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:rdump) op: Equal rhs: { (DQ (${ VSub_Name vm_out_dir) (/) (${ VSub_Name task_label) (__runtime.txt) ) } spids: [614] ) ] spids: [612] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:extra_args) op: Equal rhs: { (DQ ('--parser-mem-dump ') ($ VSub_Name '$pdump') (' --runtime-mem-dump ') ($ VSub_Name '$rdump') ) } spids: [627] ) ] spids: [627] ) ] spids: [16777215 594] ) ] spids: [16777215 641] ) (C {(echo)}) (C {(echo)} { (DQ ('--- ') ($ VSub_Name '$sh_path') (' ') ($ VSub_Name '$task_type') (' ') ($ VSub_Name '$task_arg') (' ---') ) } ) (C {(echo)}) (Case to_match: {($ VSub_Name '$task_type')} arms: [ (case_arm pat_list: [{(abuild)}] action: [ (SimpleCommand words: [ { (DQ (BracedVarSub token: <VSub_Name TIME_PREFIX> bracket_op: (WholeArray op_id:Lit_At) spids: [683 688] ) ) } {(--)} {(DQ ($ VSub_Name '$sh_path'))} {($ VSub_Name '$extra_args')} {(testdata/osh-runtime/abuild)} {(-h)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$files_out_dir') (/STDOUT.txt)} spids: [707] ) ] ) ] spids: [672 673 713 16777215] ) (case_arm pat_list: [{(cpython)}] action: [ (SimpleCommand words: [{(pushd)} {($ VSub_Name '$files_out_dir')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [743] ) ] ) (SimpleCommand words: [ { (DQ (BracedVarSub token: <VSub_Name TIME_PREFIX> bracket_op: (WholeArray op_id:Lit_At) spids: [749 754] ) ) } {(--)} {(DQ ($ VSub_Name '$sh_path'))} {($ VSub_Name '$extra_args')} {($ VSub_Name '$PY27_DIR') (/configure)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$files_out_dir') (/STDOUT.txt)} spids: [772] ) ] ) (SimpleCommand words: [{(popd)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [781] ) ] ) ] spids: [717 718 785 16777215] ) (case_arm pat_list: [{(configure)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:conf_dir) op: Equal rhs: {($ VSub_Name '$task_arg')} spids: [795] ) ] spids: [793] ) (SimpleCommand words: [{(pushd)} {($ VSub_Name '$conf_dir')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [804] ) ] ) (C {(touch)} {(__TIMESTAMP)}) (SimpleCommand words: [ { (DQ (BracedVarSub token: <VSub_Name TIME_PREFIX> bracket_op: (WholeArray op_id:Lit_At) spids: [815 820] ) ) } {(--)} {(DQ ($ VSub_Name '$sh_path'))} {($ VSub_Name '$extra_args')} {(./configure)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$files_out_dir') (/STDOUT.txt)} spids: [835] ) ] ) (Pipeline children: [ (C {(find)} {(.)} {(-type)} {(f)} {(-newer)} {(__TIMESTAMP)}) (C {(xargs)} {(-I)} {(Lit_LBrace '{') (Lit_RBrace '}')} {(--)} {(cp)} {(--verbose)} {(Lit_LBrace '{') (Lit_RBrace '}')} {($ VSub_Name '$files_out_dir')} ) ] negated: F ) (SimpleCommand words: [{(popd)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [879] ) ] ) ] spids: [789 790 883 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(die)} {(DQ ('Invalid task type ') ($ VSub_Name '$task_type'))})] spids: [887 888 899 16777215] ) ] spids: [665 669 902] ) ] spids: [345] ) spids: [341 344] ) (FuncDef name: print-tasks body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provenance) op: Equal rhs: {($ VSub_Number '$1')} spids: [986] ) ] spids: [984] ) (Pipeline children: [ (C {(cat)} {($ VSub_Name '$provenance')}) (While cond: [ (Sentence child: (C {(read)} {(job_id)} {(host_name)} {(host_hash)} {(sh_path)} {(shell_hash)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$sh_path')} arms: [ (case_arm pat_list: [{(mksh)} {(zsh)} {(bin/osh)}] action: [ (C {(log)} {(DQ ('--- Skipping ') ($ VSub_Name '$sh_path'))}) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [1029 1034 1048 16777215] ) ] spids: [1022 1026 1051] ) (Case to_match: {($ VSub_Name '$sh_path')} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/osh)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sh_path) op: Equal rhs: {($ VSub_Name '$PWD') (/) ($ VSub_Name '$sh_path')} spids: [1071] ) ] spids: [1071] ) ] spids: [1066 1068 1077 16777215] ) ] spids: [1059 1063 1080] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: { (DQ ($ VSub_Name '$job_id') (' ') ($ VSub_Name '$host_name') (' ') ($ VSub_Name '$host_hash') (' ') ($ VSub_Name '$sh_path') (' ') ($ VSub_Name '$shell_hash') ) } spids: [1085] ) ] spids: [1083] ) (C {(echo)} {(DQ ($ VSub_Name '$prefix'))} {(abuild)} {(abuild-help)}) (C {(echo)} {(DQ ($ VSub_Name '$prefix'))} {(cpython)} {(cpython-configure)}) (Pipeline children: [ (C {(conf-dirs)}) (C {(xargs)} {(-n)} {(1)} {(--)} {(echo)} {(DQ ($ VSub_Name '$prefix'))} {(configure)} ) ] negated: F ) ] spids: [1018 1149] ) ) ] negated: F ) ] spids: [981] ) spids: [977 980] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:HEADER) op: Equal rhs: { (SQ < 'status,elapsed_secs,host_name,host_hash,shell_name,shell_hash,task_type,task_arg' > ) } spids: [1156] ) ] spids: [1154] ) (Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(LhsName name:NUM_COLUMNS) op:Equal rhs:{(7)} spids:[1163])] spids: [1161] ) (FuncDef name: measure body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provenance) op: Equal rhs: {($ VSub_Number '$1')} spids: [1179] ) ] spids: [1177] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:raw_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(_tmp) (Lit_Slash /) (osh-runtime) (Lit_Slash /) (raw)} ) spids: [1186 1194] ) } spids: [1185] ) ] spids: [1183] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:pattern) op: Equal rhs: { (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [1200 1203] ) } spids: [1199] ) ] spids: [1197] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$provenance')})] ) left_token: <Left_CommandSub '$('> spids: [1219 1223] ) } spids: [1218] ) ] spids: [1216] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: { (BracedVarSub token: <VSub_Name name> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.provenance.txt)}) spids: [1229 1233] ) } spids: [1228] ) ] spids: [1226] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:times_out) op: Equal rhs: {(DQ ($ VSub_Name '$raw_dir') (/) ($ VSub_Name '$prefix') (.times.csv))} spids: [1242] ) ] spids: [1240] ) (C {(mkdir)} {(-p)} (BracedWordTree parts: [($ VSub_Name '$BASE_DIR') (/) (BracedAltPart words:[{(raw)} {(stage1)}])] ) ) (SimpleCommand words: [{(echo)} {($ VSub_Name '$HEADER')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$times_out')} spids: [1273] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tasks) op: Equal rhs: {($ VSub_Name '$BASE_DIR') (/tasks.txt)} spids: [1281] ) ] spids: [1279] ) (SimpleCommand words: [{(print-tasks)} {($ VSub_Name '$provenance')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$tasks')} spids: [1290] ) ] ) (AndOr ops: [Op_DPipe] children: [ (TimeBlock pipeline: (Pipeline children: [ (C {(egrep)} {(DQ ($ VSub_Name '$pattern'))} {($ VSub_Name '$tasks')}) (C {(xargs)} {(-n)} {($ VSub_Name '$NUM_COLUMNS')} {(--)} {($ VSub_Number '$0')} {(runtime-task)} {($ VSub_Name '$raw_dir')} ) ] negated: F ) ) (C {(die)} {(DQ ('*** Some tasks failed. ***'))}) ] ) (C {(cp)} {(-v)} {($ VSub_Name '$provenance')} {($ VSub_Name '$raw_dir')}) ] spids: [1174] ) spids: [1170 1173] ) (FuncDef name: stage1 body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:raw_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$BASE_DIR') (Lit_Slash /) (raw)} ) spids: [1359 1365] ) } spids: [1358] ) ] spids: [1356] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out_dir) op: Equal rhs: {($ VSub_Name '$BASE_DIR') (/stage1)} spids: [1370] ) ] spids: [1368] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:times_csv) op: Equal rhs: {($ VSub_Name '$out_dir') (/times.csv)} spids: [1386] ) ] spids: [1384] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:a) op: Equal rhs: { (ArrayLiteralPart words: [{($ VSub_Name '$raw_dir') (/flanders.) (Lit_Other '*') (.times.csv)}] ) } spids: [1399] ) ] spids: [1395] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:b) op: Equal rhs: { (ArrayLiteralPart words: [{($ VSub_Name '$raw_dir') (/lisa.) (Lit_Other '*') (.times.csv)}] ) } spids: [1412] ) ] spids: [1408] ) (SimpleCommand words: [ {(csv-concat)} { (BracedVarSub token: <VSub_Name a> bracket_op: (ArrayIndex expr: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) spids: [1423 1429] ) } { (BracedVarSub token: <VSub_Name b> bracket_op: (ArrayIndex expr: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) spids: [1431 1437] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$times_csv')} spids: [1439] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:vm_csv) op: Equal rhs: {($ VSub_Name '$out_dir') (/virtual-memory.csv)} spids: [1447] ) ] spids: [1445] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:c) op: Equal rhs: { (ArrayLiteralPart words: [ {($ VSub_Name '$raw_dir') (/flanders.) (Lit_Other '*') (.virtual-memory)} ] ) } spids: [1457] ) ] spids: [1453] ) (Assignment keyword: Assign_Local flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:d) op: Equal rhs: { (ArrayLiteralPart words: [{($ VSub_Name '$raw_dir') (/lisa.) (Lit_Other '*') (.virtual-memory)}] ) } spids: [1470] ) ] spids: [1466] ) (SimpleCommand words: [ {(benchmarks/virtual_memory.py)} {(osh-runtime)} { (BracedVarSub token: <VSub_Name c> bracket_op: (ArrayIndex expr: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) spids: [1483 1489] ) } { (BracedVarSub token: <VSub_Name d> bracket_op: (ArrayIndex expr: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) spids: [1491 1497] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$vm_csv')} spids: [1499] ) ] ) ] spids: [1353] ) spids: [1349 1352] ) (FuncDef name: print-report body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:in_dir) op: Equal rhs: {($ VSub_Number '$1')} spids: [1520] ) ] spids: [1518] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:base_url) op: Equal rhs: {(SQ <../../web>)} spids: [1526] ) ] spids: [1524] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('<!DOCTYPE html>\n') ('<html>\n') (' <head>\n') (' <title>OSH Runtime Performance</title>\n') (' <script type=') (Right_DoubleQuote '"') (text/javascript) (Right_DoubleQuote '"') (' src=') (Right_DoubleQuote '"') ($ VSub_Name '$base_url') (/table/table-sort.js) (Right_DoubleQuote '"') ('></script>\n') (' <link rel=') (Right_DoubleQuote '"') (stylesheet) (Right_DoubleQuote '"') (' type=') (Right_DoubleQuote '"') (text/css) (Right_DoubleQuote '"') (' href=') (Right_DoubleQuote '"') ($ VSub_Name '$base_url') (/table/table-sort.css) (Right_DoubleQuote '"') (' />\n') (' <link rel=') (Right_DoubleQuote '"') (stylesheet) (Right_DoubleQuote '"') (' type=') (Right_DoubleQuote '"') (text/css) (Right_DoubleQuote '"') (' href=') (Right_DoubleQuote '"') ($ VSub_Name '$base_url') (/benchmarks.css) (Right_DoubleQuote '"') (' />\n') ('\n') (' </head>\n') (' <body>\n') (' <p id=') (Right_DoubleQuote '"') (home-link) (Right_DoubleQuote '"') ('>\n') (' <a href=') (Right_DoubleQuote '"') (/) (Right_DoubleQuote '"') ('>oilshell.org</a>\n') (' </p>\n') (' <h2>OSH Runtime Performance</h2>\n') ('\n') (' <h3>Elapsed Time by Shell (milliseconds)</h3>\n') ('\n') (' <p>Some benchmarks call many external tools, while some exercise the shell\n') (' interpreter itself. Parse time is included.</p>\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [1535] ) ] ) (C {(csv2html)} {($ VSub_Name '$in_dir') (/times.csv)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ (' <h3>Memory Used to Run</h3>\n') ('\n') ( ' <p>Running under <code>osh-ovm</code>. Memory usage is measured in MB\n' ) (' (powers of 10), not MiB (powers of 2).</p>\n') ('\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [1611] ) ] ) (C {(csv2html)} {($ VSub_Name '$in_dir') (/virtual-memory.csv)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('\n') (' <h3>Shell and Host Details</h3>\n'))} do_expansion: True here_end: EOF was_filled: T spids: [1630] ) ] ) (C {(csv2html)} {($ VSub_Name '$in_dir') (/shells.csv)}) (C {(csv2html)} {($ VSub_Name '$in_dir') (/hosts.csv)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ (' </body>\n') ('</html>\n'))} do_expansion: True here_end: EOF was_filled: T spids: [1652] ) ] ) ] spids: [1515] ) spids: [1511 1514] ) (FuncDef name: abuild-h body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out_dir) op: Equal rhs: {(_tmp/osh-runtime)} spids: [1680] ) ] spids: [1678] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out) op: Equal rhs: {($ VSub_Name '$out_dir') (/abuild-h-times.csv)} spids: [1698] ) ] spids: [1696] ) (SimpleCommand words: [{(echo)} {(SQ <'status,elapsed_secs,sh_path'>)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$out')} spids: [1710] ) ] ) (ForEach iter_name: sh_path iter_words: [{(bash)} {(dash)} {(mksh)} {(zsh)} {($ VSub_Name '$OSH')}] do_arg_iter: F body: (DoGroup children: [ (C {(benchmarks/time.py)} {(--output)} {($ VSub_Name '$out')} {(--field)} {(DQ ($ VSub_Name '$sh_path'))} {(--)} {($ VSub_Name '$sh_path')} {(benchmarks/testdata/abuild)} {(-h)} ) ] spids: [1732 1758] ) spids: [1720 1730] ) ] spids: [1675] ) spids: [1671 1674] ) (FuncDef name: qemu-old body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out_dir) op: Equal rhs: {($ VSub_Name '$PWD') (/_tmp/qemu-old)} spids: [1785] ) ] spids: [1783] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')}) (C {(configure-and-copy)} {(TildeSubPart prefix:'') (/src/qemu-1.6.0)} {($ VSub_Name '$OSH')} {($ VSub_Name '$out_dir')} ) ] spids: [1780] ) spids: [1776 1779] ) (FuncDef name: self-exe body: (BraceGroup children: [ (C {(set)} {(Lit_Other '+') (o)} {(errexit)}) (SimpleCommand words: [{(dash)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('/proc/self/exe -V\n'))} do_expansion: True here_end: EOF was_filled: T spids: [1832] ) ] ) (C {(echo)}) (SimpleCommand words: [{(_bin/osh)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('/proc/self/exe -V\n'))} do_expansion: True here_end: EOF was_filled: T spids: [1844] ) ] ) (SimpleCommand words: [{(_tmp/shells/ash)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('/proc/self/exe -V\n'))} do_expansion: True here_end: EOF was_filled: T spids: [1853] ) ] ) ] spids: [1819] ) spids: [1815 1818] ) (C {(DQ ($ VSub_At '$@'))}) ] )