(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (FuncDef name: _banner body: (BraceGroup children: [(C {(echo)} {(-----)}) (C {(echo)} {(DQ ($ VSub_At '$@'))}) (C {(echo)} {(-----)})] spids: [80] ) spids: [76 79] ) (FuncDef name: prereq body: (BraceGroup children: [(C {(test/unit.sh)} {(all)}) (C {(test/spec.sh)} {(all)})] spids: [109] ) spids: [105 108] ) (FuncDef name: record-provenance body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: {($ VSub_Number '$1')} spids: [155] ) ] spids: [153] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:host) op:Equal spids:[162])] spids: [160] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(hostname)})]) left_token: <Left_CommandSub '$('> spids: [166 168] ) } spids: [165] ) ] spids: [165] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tmp_dir) op: Equal rhs: {(_tmp/host-id/) ($ VSub_Name '$host')} spids: [183] ) ] spids: [181] ) (C {(benchmarks/id.sh)} {(dump-host-id)} {($ VSub_Name '$tmp_dir')}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:host_hash) op:Equal spids:[198])] spids: [196] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host_hash) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(benchmarks/id.sh)} {(publish-host-id)} {($ VSub_Name '$tmp_dir')}) ] ) left_token: <Left_CommandSub '$('> spids: [202 208] ) } spids: [201] ) ] spids: [201] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:shell_hash) op:Equal spids:[218])] spids: [216] ) (ForEach iter_name: sh_path iter_words: [{(bash)} {(dash)} {(mksh)} {(zsh)} {(bin/osh)} {(_bin/osh)}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$sh_path')})] ) left_token: <Left_CommandSub '$('> spids: [255 259] ) } spids: [254] ) ] spids: [252] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmp_dir) op: Equal rhs: {(_tmp/shell-id/) ($ VSub_Name '$name')} spids: [263] ) ] spids: [263] ) (C {(benchmarks/id.sh)} {(dump-shell-id)} {($ VSub_Name '$sh_path')} {($ VSub_Name '$tmp_dir')} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_hash) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(benchmarks/id.sh)} {(publish-shell-id)} {($ VSub_Name '$tmp_dir')} ) ] ) left_token: <Left_CommandSub '$('> spids: [279 285] ) } spids: [278] ) ] spids: [278] ) (C {(echo)} { (DQ ($ VSub_Name '$job_id') (' ') ($ VSub_Name '$host') (' ') ($ VSub_Name '$host_hash') (' ') ($ VSub_Name '$sh_path') (' ') ($ VSub_Name '$shell_hash') ) } ) ] spids: [245 309] ) spids: [231 243] ) ] spids: [150] ) spids: [146 149] ) (FuncDef name: gen-prefix body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: {($ VSub_Number '$1')} spids: [323] ) ] spids: [321] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:host) op:Equal spids:[330])] spids: [328] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:host) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(hostname)})]) left_token: <Left_CommandSub '$('> spids: [334 336] ) } spids: [333] ) ] spids: [333] ) (C {(echo)} {(_tmp/) (${ VSub_Name host) (.) (${ VSub_Name job_id) (.provenance.txt)}) ] spids: [318] ) spids: [314 317] ) (FuncDef name: write-provenance-txt body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:job_id) op:Equal spids:[364])] spids: [362] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (Y-) (Lit_Other '%') (m-) (Lit_Other '%') (d__) (Lit_Other '%') (H-) (Lit_Other '%') (M-) (Lit_Other '%') (S) } ) ] ) left_token: <Left_CommandSub '$('> spids: [369 385] ) ) } spids: [367] ) ] spids: [367] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [(C {(gen-prefix)} {($ VSub_Name '$job_id')})] ) left_token: <Left_CommandSub '$('> spids: [396 400] ) } ) spids: [393 401] ) } spids: [392] ) ] spids: [390] ) (SimpleCommand words: [{(record-provenance)} {($ VSub_Name '$job_id')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$out')} spids: [409] ) ] ) (C {(log)} {(DQ ('Wrote ') ($ VSub_Name '$out'))}) ] spids: [359] ) spids: [355 358] ) (FuncDef name: measure-all body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provenance) op: Equal rhs: {($ VSub_Number '$1')} spids: [434] ) ] spids: [432] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:base_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(..) (Lit_Slash /) (benchmark-data)} ) spids: [441 447] ) } spids: [440] ) ] spids: [438] ) (C {(benchmarks/vm-baseline.sh)} {(measure)} {($ VSub_Name '$provenance')} {($ VSub_Name '$base_dir') (/vm-baseline)} ) (C {(benchmarks/osh-runtime.sh)} {(measure)} {($ VSub_Name '$provenance')} {($ VSub_Name '$base_dir') (/osh-runtime)} ) (C {(benchmarks/osh-parser.sh)} {(measure)} {($ VSub_Name '$provenance')} {($ VSub_Name '$base_dir') (/osh-parser)} ) ] spids: [429] ) spids: [425 428] ) (FuncDef name: all body: (BraceGroup children: [ (C {(test/spec.sh)} {(install-shells)}) (C {(sudo)} {(apt)} {(install)} {(python-dev)}) (C {(make)} {(clean)}) (C {(build/dev.sh)} {(all)}) (C {(_banner)} {(SQ <'OSH dev build'>)}) (C {(bin/osh)} {(-c)} {(SQ <'echo OSH dev build'>)}) (C {(build/prepare.sh)} {(configure)}) (C {(build/prepare.sh)} {(build-python)}) (C {(make)} {(_bin/oil.ovm)}) (C {(scripts/run.sh)} {(make-bin-links)}) (C {(_banner)} {(SQ <'OSH production build'>)}) (C {(_bin/osh)} {(-c)} {(SQ <'echo OSH production build'>)}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:job_id) op:Equal spids:[620])] spids: [618] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (Y-) (Lit_Other '%') (m-) (Lit_Other '%') (d__) (Lit_Other '%') (H-) (Lit_Other '%') (M-) (Lit_Other '%') (S) } ) ] ) left_token: <Left_CommandSub '$('> spids: [625 641] ) ) } spids: [623] ) ] spids: [623] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provenance) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(gen-prefix)} {($ VSub_Name '$job_id')})] ) left_token: <Left_CommandSub '$('> spids: [649 653] ) } spids: [648] ) ] spids: [646] ) (SimpleCommand words: [{(record-provenance)} {($ VSub_Name '$job_id')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$provenance')} spids: [661] ) ] ) (C {(measure-all)} {($ VSub_Name '$provenance')}) ] spids: [496] ) spids: [492 495] ) (FuncDef name: demo-tasks body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provenance) op: Equal rhs: {($ VSub_Number '$1')} spids: [693] ) ] spids: [691] ) (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: [705 709] ) } spids: [704] ) ] spids: [702] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:job_id) op: Equal rhs: { (BracedVarSub token: <VSub_Name name> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.provenance.txt)}) spids: [715 719] ) } spids: [714] ) ] spids: [712] ) (C {(echo)} {(DQ ('JOB ID: ') ($ VSub_Name '$job_id'))}) (Pipeline children: [ (C {(cat)} {($ VSub_Name '$provenance')}) (While cond: [ (Sentence child: (C {(read)} {(_)} {(_)} {(_)} {(sh_path)} {(_)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (ForEach iter_name: i iter_words: [{(1)} {(2)} {(3)}] do_arg_iter: F body: (DoGroup children: [(C {(echo)} {($ VSub_Name '$i')} {($ VSub_Name '$sh_path')})] spids: [773 783] ) spids: [765 771] ) ] spids: [757 786] ) ) ] negated: F ) ] spids: [688] ) spids: [684 687] ) (C {(DQ ($ VSub_At '$@'))}) ] )