(command.CommandList children: [ (C {<Id.KW_Set set>} {<-o>} {<nounset>}) (C {<Id.KW_Set set>} {<-o>} {<pipefail>}) (C {<Id.KW_Set set>} {<-o>} {<errexit>}) (C {<source>} {<benchmarks/common.sh>}) (C {<source>} {<build/common.sh>}) (C {<readonly>} {<Id.Lit_VarLike 'BASE_DIR='> <_tmp/ovm-build>}) (C {<readonly>} {<Id.Lit_VarLike 'TAR_DIR='> ($ Id.VSub_DollarName '$PWD') </_deps/ovm-build>}) (C {<readonly>} {<Id.Lit_VarLike 'OIL_VERSION='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<head>} {<-n>} {<1>} {<oil-version.txt>})] ) ) } ) (C {<readonly>} {<-a>} {<Id.Lit_VarLike 'TAR_SUBDIRS='> (sh_array_literal left:<Id.Op_LParen _> words:[{<bash-4.4>} {<dash-0.5.9.1>}]) } ) (command.ShFunction name: tarballs body: (command.BraceGroup children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 192 stdin_parts: [<'bash-4.4.tar.gz\n'> <'dash-0.5.9.1.tar.gz\n'> <'mksh-R56c.tgz\n'>] ) ] ) ] ) ) (command.ShFunction name: download body: (command.BraceGroup children: [ (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$TAR_DIR')}) (command.Pipeline children: [ (C {<tarballs>}) (C {<xargs>} {<-n>} {<1>} {<-I>} {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} {<--verbose>} {<-->} {<wget>} {<--directory>} {($ Id.VSub_DollarName '$TAR_DIR')} {(SQ <'https://www.oilshell.org/blob/ovm-build/{}'>)} ) ] negated: F ) ] ) ) (command.ShFunction name: extract-other body: (command.BraceGroup children: [ (command.TimeBlock pipeline: (command.ForEach iter_name: f iter_words: [{($ Id.VSub_DollarName '$TAR_DIR') </> <Id.Lit_Star '*'> <gz>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<tar>} {<-x>} {<--directory>} {($ Id.VSub_DollarName '$TAR_DIR')} {<--file>} {($ Id.VSub_DollarName '$f')} ) ] ) ) ) ] ) ) (command.ShFunction name: extract-oil body: (command.BraceGroup children: [ (C {<rm>} {<-r>} {<-f>} {<-v>} {($ Id.VSub_DollarName '$TAR_DIR') </oil-> <Id.Lit_Star '*'>}) (C {<tar>} {<-x>} {<--directory>} {($ Id.VSub_DollarName '$TAR_DIR')} {<--file>} {<_release/oil.tar>} ) ] ) ) (command.ShFunction name: sizes-tsv body: (command.BraceGroup children: [ (C {<echo>} { (single_quoted left: <Id.Left_SingleQuoteC "$'"> tokens: [ <Id.Char_Literals host_label> <Id.Char_OneChar '\\t'> <Id.Char_Literals num_bytes> <Id.Char_OneChar '\\t'> <Id.Char_Literals path> ] ) } ) (C {<local>} {<Id.Lit_VarLike 'host='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<hostname>})]) ) } ) (C {<find>} {(DQ ($ Id.VSub_At '$@'))} {<-maxdepth>} {<0>} {<-printf>} { (DQ ($ Id.VSub_DollarName '$host') <Id.Lit_Other '\\'> <'t%s'> <Id.Lit_Other '\\'> <'t%p'> <Id.Lit_Other '\\'> <n> ) } ) ] ) ) (command.ShFunction name: measure-sizes body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'prefix='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$BASE_DIR') <Id.Lit_Slash /> <raw> <Id.Lit_Slash /> <demo> } ) ) } ) (command.Simple words: [ {<sizes-tsv>} {($ Id.VSub_DollarName '$TAR_DIR') </oil-> ($ Id.VSub_DollarName '$OIL_VERSION') </_build/oil/bytecode-opy.zip> } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name prefix) <.bytecode-size.tsv>} ) ] ) (command.Simple words: [ {<sizes-tsv>} {($ Id.VSub_DollarName '$BASE_DIR') </bin/> <Id.Lit_Star '*'> </oil.> <Id.Lit_Star '*'>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name prefix) <.bin-sizes.tsv>} ) ] ) (command.Simple words: [ {<sizes-tsv>} {($ Id.VSub_DollarName '$BASE_DIR') </bin/> <Id.Lit_Star '*'> </> <Id.Lit_Star '*'> <sh>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name prefix) <.other-shell-sizes.tsv>} ) ] ) (C {<log>} {(DQ <'Wrote '> (${ Id.VSub_Name prefix) <'.*.tsv'>)}) ] ) ) (command.ShFunction name: bytecode-size body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'zip='> <_build/oil/bytecode.zip>}) (command.Pipeline children: [(C {<unzip>} {<-l>} {($ Id.VSub_DollarName '$zip')}) (C {<tail>} {<-n>} {<1>})] negated: F ) (C {<ls>} {<-l>} {($ Id.VSub_DollarName '$zip')}) ] ) ) (command.ShFunction name: clang-oil-dbg body: (command.BraceGroup children: [ (C {<make>} {<clean>}) (command.Simple words: [{<make>} {<_build/oil/ovm-dbg>}] more_env: [(env_pair name:CC val:{($ Id.VSub_DollarName '$CLANG')} spids:[612])] ) ] ) ) (command.ShFunction name: build-task body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'raw_dir='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'job_id='> ($ Id.VSub_Number '$2')}) (C {<local>} {<Id.Lit_VarLike 'host='> ($ Id.VSub_Number '$3')}) (C {<local>} {<Id.Lit_VarLike 'host_hash='> ($ Id.VSub_Number '$4')}) (C {<local>} {<Id.Lit_VarLike 'compiler_path='> ($ Id.VSub_Number '$5')}) (C {<local>} {<Id.Lit_VarLike 'compiler_hash='> ($ Id.VSub_Number '$6')}) (C {<local>} {<Id.Lit_VarLike 'src_dir='> ($ Id.VSub_Number '$7')}) (C {<local>} {<Id.Lit_VarLike 'action='> ($ Id.VSub_Number '$8')}) (C {<local>} {<Id.Lit_VarLike 'times_out='> (DQ ($ Id.VSub_DollarName '$PWD') </> ($ Id.VSub_DollarName '$raw_dir') </> ($ Id.VSub_DollarName '$host') <.> ($ Id.VSub_DollarName '$job_id') <.times.tsv> ) } ) (C {<local>} {<-a>} {<Id.Lit_VarLike 'TIME_PREFIX='> (sh_array_literal left: <Id.Op_LParen _> words: [ {<time-tsv>} {<--output>} {($ Id.VSub_DollarName '$times_out')} {<--field>} {(DQ ($ Id.VSub_DollarName '$host'))} {<--field>} {(DQ ($ Id.VSub_DollarName '$host_hash'))} {<--field>} {(DQ ($ Id.VSub_DollarName '$compiler_path'))} {<--field>} {(DQ ($ Id.VSub_DollarName '$compiler_hash'))} {<--field>} {(DQ ($ Id.VSub_DollarName '$src_dir'))} {<--field>} {(DQ ($ Id.VSub_DollarName '$action'))} ] ) } ) (C {<local>} {<Id.Lit_VarLike 'bin_base_dir='> ($ Id.VSub_DollarName '$PWD') </> ($ Id.VSub_DollarName '$BASE_DIR') </bin> } ) (C {<local>} {<Id.Lit_VarLike 'bin_dir='> (DQ ($ Id.VSub_DollarName '$bin_base_dir') </> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<basename>} {($ Id.VSub_DollarName '$compiler_path')})] ) ) ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$bin_dir')}) (command.Simple words: [{<pushd>} {($ Id.VSub_DollarName '$src_dir')}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})] ) (command.Case to_match: {($ Id.VSub_DollarName '$action')} arms: [ (case_arm pat_list: [{<configure>}] action: [ (C { (DQ (braced_var_sub token: <Id.VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-->} {<./configure>} ) (C {<make>} {<clean>}) ] spids: [851 852 887 -1] ) (case_arm pat_list: [{<make>}] action: [ (C { (DQ (braced_var_sub token: <Id.VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-->} {<make>} {<Id.Lit_VarLike 'CC='> ($ Id.VSub_DollarName '$compiler_path')} ) (C {<local>} {<target>}) (command.Case to_match: {($ Id.VSub_DollarName '$src_dir')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> </bash> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:target) op: assign_op.Equal rhs: {<bash>} spids: [931] ) ] ) ] spids: [925 928 935 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> </dash> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:target) op: assign_op.Equal rhs: {<src/dash>} spids: [944] ) ] ) ] spids: [938 941 948 -1] ) ] ) (C {<strip>} {($ Id.VSub_DollarName '$target')}) (C {<cp>} {<-v>} {($ Id.VSub_DollarName '$target')} {($ Id.VSub_DollarName '$bin_dir')} ) ] spids: [891 892 969 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<local>} {<Id.Lit_VarLike 'target='> ($ Id.VSub_DollarName '$action')}) (C { (DQ (braced_var_sub token: <Id.VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-->} {<make>} {<Id.Lit_VarLike 'CC='> ($ Id.VSub_DollarName '$compiler_path')} {($ Id.VSub_DollarName '$target')} ) (C {<cp>} {<-v>} {($ Id.VSub_DollarName '$target')} {($ Id.VSub_DollarName '$bin_dir')} ) ] spids: [973 974 1016 -1] ) ] ) (command.Simple words: [{<popd>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})] ) ] ) ) (command.ShFunction name: oil-tasks body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'dir='> (DQ ($ Id.VSub_DollarName '$TAR_DIR') </oil-> ($ Id.VSub_DollarName '$OIL_VERSION')) } ) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$provenance')}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))} {($ Id.VSub_DollarName '$dir')} {<configure>} ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))} {($ Id.VSub_DollarName '$dir')} {<_bin/oil.ovm>} ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))} {($ Id.VSub_DollarName '$dir')} {<_bin/oil.ovm-dbg>} ) ] ) ) ] negated: F ) ] ) ) (command.ShFunction name: other-shell-tasks body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'tarball='> (SQ <_release/oil.0.5.alpha1.gz>)}) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$provenance')}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$line')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <clang> <Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [1188 1191 1197 -1] ) ] ) (command.ForEach iter_name: dir iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name TAR_SUBDIRS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))} {($ Id.VSub_DollarName '$TAR_DIR') </> ($ Id.VSub_DollarName '$dir')} {<configure>} ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$line'))} {($ Id.VSub_DollarName '$TAR_DIR') </> ($ Id.VSub_DollarName '$dir')} {<make>} ) ] ) ) ] ) ) ] negated: F ) ] ) ) (command.ShFunction name: oil-historical-tasks body: (command.BraceGroup children:[(C {<echo>})]) ) (C {<readonly>} {<Id.Lit_VarLike 'HEADER='> (single_quoted left: <Id.Left_SingleQuoteC "$'"> tokens: [ <Id.Char_Literals status> <Id.Char_OneChar '\\t'> <Id.Char_Literals elapsed_secs> <Id.Char_OneChar '\\t'> <Id.Char_Literals host_name> <Id.Char_OneChar '\\t'> <Id.Char_Literals host_hash> <Id.Char_OneChar '\\t'> <Id.Char_Literals compiler_path> <Id.Char_OneChar '\\t'> <Id.Char_Literals compiler_hash> <Id.Char_OneChar '\\t'> <Id.Char_Literals src_dir> <Id.Char_OneChar '\\t'> <Id.Char_Literals action> ] ) } ) (C {<readonly>} {<Id.Lit_VarLike 'NUM_COLUMNS='> <7>}) (command.ShFunction name: measure body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'raw_dir='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$BASE_DIR') <Id.Lit_Slash /> <raw>} ) ) } ) (C {<extract-oil>}) (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<basename>} {($ Id.VSub_DollarName '$provenance')})] ) ) } ) (C {<local>} {<Id.Lit_VarLike 'prefix='> (braced_var_sub token: <Id.VSub_Name name> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<.compiler-provenance.txt>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'times_out='> (DQ ($ Id.VSub_DollarName '$raw_dir') </> ($ Id.VSub_DollarName '$prefix') <.times.tsv>) } ) (C {<mkdir>} {<-p>} (word.BracedTree parts: [ ($ Id.VSub_DollarName '$BASE_DIR') </> (word_part.BracedTuple words:[{<raw>} {<stage1>} {<bin>}]) ] ) {($ Id.VSub_DollarName '$raw_dir')} ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$HEADER'))}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$times_out')} ) ] ) (C {<local>} {<Id.Lit_VarLike 't1='> ($ Id.VSub_DollarName '$BASE_DIR') </oil-tasks.txt>}) (C {<local>} {<Id.Lit_VarLike 't2='> ($ Id.VSub_DollarName '$BASE_DIR') </other-shell-tasks.txt>} ) (command.Simple words: [{<oil-tasks>} {($ Id.VSub_DollarName '$provenance')}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$t1')} ) ] ) (command.Simple words: [{<other-shell-tasks>} {($ Id.VSub_DollarName '$provenance')}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$t2')} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.TimeBlock pipeline: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$t1')} {($ Id.VSub_DollarName '$t2')}) (C {<xargs>} {<-n>} {($ Id.VSub_DollarName '$NUM_COLUMNS')} {<-->} {($ Id.VSub_Number '$0')} {<build-task>} {($ Id.VSub_DollarName '$raw_dir')} ) ] negated: F ) ) (C {<die>} {(DQ <'*** Some tasks failed. ***'>)}) ] ) (C {<measure-sizes>} {($ Id.VSub_DollarName '$raw_dir') </> ($ Id.VSub_DollarName '$prefix')} ) (C {<cp>} {<-v>} {($ Id.VSub_DollarName '$provenance')} {($ Id.VSub_DollarName '$raw_dir')}) ] ) ) (command.ShFunction name: stage1 body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'raw_dir='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$BASE_DIR') <Id.Lit_Slash /> <raw>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'out='> ($ Id.VSub_DollarName '$BASE_DIR') </stage1>}) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$out')}) (C {<local>} {<x>}) (C {<local>} {<-a>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$out') </times.tsv>} spids: [1581] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </flanders.> <Id.Lit_Star '*'> <.times.tsv> } ] ) } spids: [1586] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </lisa.> <Id.Lit_Star '*'> <.times.tsv>} ] ) } spids: [1595] ) ] ) (command.Simple words: [ {<tsv-concat>} { (braced_var_sub token: <Id.VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } { (braced_var_sub token: <Id.VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$x')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$out') </bytecode-size.tsv>} spids: [1628] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </flanders.> <Id.Lit_Star '*'> <.bytecode-size.tsv> } ] ) } spids: [1633] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </lisa.> <Id.Lit_Star '*'> <.bytecode-size.tsv> } ] ) } spids: [1642] ) ] ) (command.Simple words: [ {<tsv-concat>} { (braced_var_sub token: <Id.VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } { (braced_var_sub token: <Id.VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$x')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$out') </bin-sizes.tsv>} spids: [1675] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </flanders.> <Id.Lit_Star '*'> <.bin-sizes.tsv> } ] ) } spids: [1680] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$raw_dir') </lisa.> <Id.Lit_Star '*'> <.bin-sizes.tsv> } ] ) } spids: [1689] ) ] ) (command.Simple words: [ {<tsv-concat>} { (braced_var_sub token: <Id.VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } { (braced_var_sub token: <Id.VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$x')} ) ] ) (C {<local>} {<Id.Lit_VarLike 'raw_data_tsv='> ($ Id.VSub_DollarName '$out') </raw-data.tsv>} ) (command.BraceGroup children: [ (C {<echo>} {(SQ <path>)}) (C {<echo>} { (braced_var_sub token: <Id.VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ) (C {<echo>} { (braced_var_sub token: <Id.VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) } ) ] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$raw_data_tsv')} ) ] ) (C {<head>} {($ Id.VSub_DollarName '$out') </> <Id.Lit_Star '*'>}) (C {<wc>} {<-l>} {($ Id.VSub_DollarName '$out') </> <Id.Lit_Star '*'>}) ] ) ) (command.ShFunction name: print-report body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'in_dir='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'base_url='> (SQ <../../web>)}) (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 1881 stdin_parts: [ <'<!DOCTYPE html>\n'> <'<html>\n'> <' <head>\n'> <' <title>OVM Build Performance</title>\n'> <' <script type='> <Id.Right_DoubleQuote '"'> <text/javascript> <Id.Right_DoubleQuote '"'> <' src='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$base_url') </table/table-sort.js> <Id.Right_DoubleQuote '"'> <'></script>\n'> <' <link rel='> <Id.Right_DoubleQuote '"'> <stylesheet> <Id.Right_DoubleQuote '"'> <' type='> <Id.Right_DoubleQuote '"'> <text/css> <Id.Right_DoubleQuote '"'> <' href='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$base_url') </table/table-sort.css> <Id.Right_DoubleQuote '"'> <' />\n'> <' <link rel='> <Id.Right_DoubleQuote '"'> <stylesheet> <Id.Right_DoubleQuote '"'> <' type='> <Id.Right_DoubleQuote '"'> <text/css> <Id.Right_DoubleQuote '"'> <' href='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$base_url') </benchmarks.css> <Id.Right_DoubleQuote '"'> <' />\n'> <'\n'> <' </head>\n'> <' <body>\n'> <' <p id='> <Id.Right_DoubleQuote '"'> <home-link> <Id.Right_DoubleQuote '"'> <'>\n'> <' <a href='> <Id.Right_DoubleQuote '"'> </> <Id.Right_DoubleQuote '"'> <'>oilshell.org</a>\n'> <' </p>\n'> <' <h2>OVM Build Performance</h2>\n'> <'\n'> <' <h3>Elapsed Time by Host and Compiler</h3>\n'> <'\n'> < ' <p>We measure the build speed of <code>bash</code> and <code>dash</code>\n' > <' for comparison.\n'> <' </p>\n'> ] ) ] ) (C {<tsv2html>} {<--css-class-pattern>} {(SQ <'special ^oil'>)} {($ Id.VSub_DollarName '$in_dir') </times.tsv>} ) (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 1913 stdin_parts: [ <' <h3>Binary Size</h3>\n'> <'\n'> <' <p>The oil binary has two portions:\n'> <' <ol>\n'> <' <li>Architecture-independent <code>bytecode.zip</code></li>\n'> <' <li>Architecture- and compiler- dependent native code\n'> <' (<code>_build/oil/ovm*</code>)\n'> <' </li>\n'> <' </ol>\n'> <' </p>\n'> <'\n'> ] ) ] ) (C {<tsv2html>} {<--css-class-pattern>} {(SQ <'special /gcc/oil.ovm$'>)} {($ Id.VSub_DollarName '$in_dir') </sizes.tsv>} ) (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 1940 stdin_parts: [<'\n'> <' <h3>Host and Compiler Details</h3>\n'>] ) ] ) (C {<tsv2html>} {($ Id.VSub_DollarName '$in_dir') </hosts.tsv>}) (C {<tsv2html>} {($ Id.VSub_DollarName '$in_dir') </compilers.tsv>}) (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 1963 stdin_parts: [<' </body>\n'> <'</html>\n'>] ) ] ) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )