(command.CommandList children: [ (C {(KW_Set set)} {(-o)} {(nounset)}) (C {(KW_Set set)} {(-o)} {(pipefail)}) (C {(KW_Set set)} {(-o)} {(errexit)}) (C {(source)} {(benchmarks/common.sh)}) (C {(source)} {(build/common.sh)}) (C {(readonly)} {(Lit_VarLike 'BASE_DIR=') (_tmp/ovm-build)}) (C {(readonly)} {(Lit_VarLike 'TAR_DIR=') ($ VSub_DollarName '$PWD') (/_deps/ovm-build)}) (C {(readonly)} {(Lit_VarLike 'OIL_VERSION=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(head)} {(-n)} {(1)} {(oil-version.txt)})] ) ) } ) (C {(readonly)} {(-a)} {(Lit_VarLike 'TAR_SUBDIRS=') (sh_array_literal left:<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: <Redir_DLess '<<'> fd: 16777215 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)} {($ VSub_DollarName '$TAR_DIR')}) (command.Pipeline children: [ (C {(tarballs)}) (C {(xargs)} {(-n)} {(1)} {(-I)} {(Lit_LBrace '{') (Lit_RBrace '}')} {(--verbose)} {(--)} {(wget)} {(--directory)} {($ 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: [{($ VSub_DollarName '$TAR_DIR') (/) (Lit_Star '*') (gz)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(tar)} {(-x)} {(--directory)} {($ VSub_DollarName '$TAR_DIR')} {(--file)} {($ VSub_DollarName '$f')} ) ] ) ) ) ] ) ) (command.ShFunction name: extract-oil body: (command.BraceGroup children: [ (C {(rm)} {(-r)} {(-f)} {(-v)} {($ VSub_DollarName '$TAR_DIR') (/oil-) (Lit_Star '*')}) (C {(tar)} {(-x)} {(--directory)} {($ VSub_DollarName '$TAR_DIR')} {(--file)} {(_release/oil.tar)} ) ] ) ) (command.ShFunction name: sizes-tsv body: (command.BraceGroup children: [ (C {(echo)} { (single_quoted left: <Left_SingleQuoteC "$'"> tokens: [ <Char_Literals host_label> <Char_OneChar '\\t'> <Char_Literals num_bytes> <Char_OneChar '\\t'> <Char_Literals path> ] ) } ) (C {(local)} {(Lit_VarLike 'host=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(hostname)})]) ) } ) (C {(find)} {(DQ ($ VSub_At '$@'))} {(-maxdepth)} {(0)} {(-printf)} { (DQ ($ VSub_DollarName '$host') (Lit_Other '\\') ('t%s') (Lit_Other '\\') ('t%p') (Lit_Other '\\') (n) ) } ) ] ) ) (command.ShFunction name: measure-sizes body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'prefix=') (braced_var_sub token: <VSub_Number 1> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$BASE_DIR') (Lit_Slash /) (raw) (Lit_Slash /) (demo)} ) ) } ) (command.Simple words: [ {(sizes-tsv)} {($ VSub_DollarName '$TAR_DIR') (/oil-) ($ VSub_DollarName '$OIL_VERSION') (/_build/oil/bytecode-opy.zip) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name prefix) (.bytecode-size.tsv)} ) ] ) (command.Simple words: [ {(sizes-tsv)} {($ VSub_DollarName '$BASE_DIR') (/bin/) (Lit_Star '*') (/oil.) (Lit_Star '*')} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name prefix) (.bin-sizes.tsv)} ) ] ) (command.Simple words: [ {(sizes-tsv)} {($ VSub_DollarName '$BASE_DIR') (/bin/) (Lit_Star '*') (/) (Lit_Star '*') (sh)} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name prefix) (.other-shell-sizes.tsv)} ) ] ) (C {(log)} {(DQ ('Wrote ') (${ VSub_Name prefix) ('.*.tsv'))}) ] ) ) (command.ShFunction name: bytecode-size body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'zip=') (_build/oil/bytecode.zip)}) (command.Pipeline children: [(C {(unzip)} {(-l)} {($ VSub_DollarName '$zip')}) (C {(tail)} {(-n)} {(1)})] negated: F ) (C {(ls)} {(-l)} {($ 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:{($ VSub_DollarName '$CLANG')})] ) ] ) ) (command.ShFunction name: build-task body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'raw_dir=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'job_id=') ($ VSub_Number '$2')}) (C {(local)} {(Lit_VarLike 'host=') ($ VSub_Number '$3')}) (C {(local)} {(Lit_VarLike 'host_hash=') ($ VSub_Number '$4')}) (C {(local)} {(Lit_VarLike 'compiler_path=') ($ VSub_Number '$5')}) (C {(local)} {(Lit_VarLike 'compiler_hash=') ($ VSub_Number '$6')}) (C {(local)} {(Lit_VarLike 'src_dir=') ($ VSub_Number '$7')}) (C {(local)} {(Lit_VarLike 'action=') ($ VSub_Number '$8')}) (C {(local)} {(Lit_VarLike 'times_out=') (DQ ($ VSub_DollarName '$PWD') (/) ($ VSub_DollarName '$raw_dir') (/) ($ VSub_DollarName '$host') (.) ($ VSub_DollarName '$job_id') (.times.tsv) ) } ) (C {(local)} {(-a)} {(Lit_VarLike 'TIME_PREFIX=') (sh_array_literal left: <Op_LParen '('> words: [ {(time-tsv)} {(--output)} {($ VSub_DollarName '$times_out')} {(--field)} {(DQ ($ VSub_DollarName '$host'))} {(--field)} {(DQ ($ VSub_DollarName '$host_hash'))} {(--field)} {(DQ ($ VSub_DollarName '$compiler_path'))} {(--field)} {(DQ ($ VSub_DollarName '$compiler_hash'))} {(--field)} {(DQ ($ VSub_DollarName '$src_dir'))} {(--field)} {(DQ ($ VSub_DollarName '$action'))} ] ) } ) (C {(local)} {(Lit_VarLike 'bin_base_dir=') ($ VSub_DollarName '$PWD') (/) ($ VSub_DollarName '$BASE_DIR') (/bin) } ) (C {(local)} {(Lit_VarLike 'bin_dir=') (DQ ($ VSub_DollarName '$bin_base_dir') (/) (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$compiler_path')})] ) ) ) } ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$bin_dir')}) (command.Simple words: [{(pushd)} {($ VSub_DollarName '$src_dir')}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (command.Case to_match: {($ VSub_DollarName '$action')} arms: [ (case_arm pat_list: [{(configure)}] action: [ (C { (DQ (braced_var_sub token: <VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } {(--)} {(./configure)} ) (C {(make)} {(clean)}) ] ) (case_arm pat_list: [{(make)}] action: [ (C { (DQ (braced_var_sub token: <VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } {(--)} {(make)} {(Lit_VarLike 'CC=') ($ VSub_DollarName '$compiler_path')} ) (C {(local)} {(target)}) (command.Case to_match: {($ VSub_DollarName '$src_dir')} arms: [ (case_arm pat_list: [{(Lit_Star '*') (/bash) (Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:target) op: Equal rhs: {(bash)} ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*') (/dash) (Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:target) op: Equal rhs: {(src/dash)} ) ] ) ] ) ] ) (C {(strip)} {($ VSub_DollarName '$target')}) (C {(cp)} {(-v)} {($ VSub_DollarName '$target')} {($ VSub_DollarName '$bin_dir')}) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (C {(local)} {(Lit_VarLike 'target=') ($ VSub_DollarName '$action')}) (C { (DQ (braced_var_sub token: <VSub_Name TIME_PREFIX> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } {(--)} {(make)} {(Lit_VarLike 'CC=') ($ VSub_DollarName '$compiler_path')} {($ VSub_DollarName '$target')} ) (C {(cp)} {(-v)} {($ VSub_DollarName '$target')} {($ VSub_DollarName '$bin_dir')}) ] ) ] ) (command.Simple words: [{(popd)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) ] ) ) (command.ShFunction name: oil-tasks body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'provenance=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'dir=') (DQ ($ VSub_DollarName '$TAR_DIR') (/oil-) ($ VSub_DollarName '$OIL_VERSION')) } ) (command.Pipeline children: [ (C {(cat)} {($ VSub_DollarName '$provenance')}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$line'))} {($ VSub_DollarName '$dir')} {(configure)} ) (C {(echo)} {(DQ ($ VSub_DollarName '$line'))} {($ VSub_DollarName '$dir')} {(_bin/oil.ovm)} ) (C {(echo)} {(DQ ($ VSub_DollarName '$line'))} {($ VSub_DollarName '$dir')} {(_bin/oil.ovm-dbg)} ) ] ) ) ] negated: F ) ] ) ) (command.ShFunction name: other-shell-tasks body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'provenance=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'tarball=') (SQ <_release/oil.0.5.alpha1.gz>)}) (command.Pipeline children: [ (C {(cat)} {($ VSub_DollarName '$provenance')}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (command.Case to_match: {($ VSub_DollarName '$line')} arms: [ (case_arm pat_list: [{(Lit_Star '*') (clang) (Lit_Star '*')}] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] ) ] ) (command.ForEach iter_name: dir iter_words: [ { (DQ (braced_var_sub token: <VSub_Name TAR_SUBDIRS> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$line'))} {($ VSub_DollarName '$TAR_DIR') (/) ($ VSub_DollarName '$dir')} {(configure)} ) (C {(echo)} {(DQ ($ VSub_DollarName '$line'))} {($ VSub_DollarName '$TAR_DIR') (/) ($ VSub_DollarName '$dir')} {(make)} ) ] ) ) ] ) ) ] negated: F ) ] ) ) (command.ShFunction name: oil-historical-tasks body: (command.BraceGroup children:[(C {(echo)})]) ) (C {(readonly)} {(Lit_VarLike 'HEADER=') (single_quoted left: <Left_SingleQuoteC "$'"> tokens: [ <Char_Literals status> <Char_OneChar '\\t'> <Char_Literals elapsed_secs> <Char_OneChar '\\t'> <Char_Literals host_name> <Char_OneChar '\\t'> <Char_Literals host_hash> <Char_OneChar '\\t'> <Char_Literals compiler_path> <Char_OneChar '\\t'> <Char_Literals compiler_hash> <Char_OneChar '\\t'> <Char_Literals src_dir> <Char_OneChar '\\t'> <Char_Literals action> ] ) } ) (C {(readonly)} {(Lit_VarLike 'NUM_COLUMNS=') (7)}) (command.ShFunction name: measure body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'provenance=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'raw_dir=') (braced_var_sub token: <VSub_Number 2> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$BASE_DIR') (Lit_Slash /) (raw)} ) ) } ) (C {(extract-oil)}) (C {(local)} {(Lit_VarLike 'name=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$provenance')})] ) ) } ) (C {(local)} {(Lit_VarLike 'prefix=') (braced_var_sub token: <VSub_Name name> suffix_op: (suffix_op.Unary op_id:VOp1_Percent arg_word:{(.compiler-provenance.txt)}) ) } ) (C {(local)} {(Lit_VarLike 'times_out=') (DQ ($ VSub_DollarName '$raw_dir') (/) ($ VSub_DollarName '$prefix') (.times.tsv)) } ) (C {(mkdir)} {(-p)} (word.BracedTree parts: [ ($ VSub_DollarName '$BASE_DIR') (/) (word_part.BracedTuple words:[{(raw)} {(stage1)} {(bin)}]) ] ) {($ VSub_DollarName '$raw_dir')} ) (command.Simple words: [{(echo)} {(DQ ($ VSub_DollarName '$HEADER'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$times_out')} ) ] ) (C {(local)} {(Lit_VarLike 't1=') ($ VSub_DollarName '$BASE_DIR') (/oil-tasks.txt)}) (C {(local)} {(Lit_VarLike 't2=') ($ VSub_DollarName '$BASE_DIR') (/other-shell-tasks.txt)}) (command.Simple words: [{(oil-tasks)} {($ VSub_DollarName '$provenance')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$t1')} ) ] ) (command.Simple words: [{(other-shell-tasks)} {($ VSub_DollarName '$provenance')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$t2')} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.TimeBlock pipeline: (command.Pipeline children: [ (C {(cat)} {($ VSub_DollarName '$t1')} {($ VSub_DollarName '$t2')}) (C {(xargs)} {(-n)} {($ VSub_DollarName '$NUM_COLUMNS')} {(--)} {($ VSub_Number '$0')} {(build-task)} {($ VSub_DollarName '$raw_dir')} ) ] negated: F ) ) (C {(die)} {(DQ ('*** Some tasks failed. ***'))}) ] ) (C {(measure-sizes)} {($ VSub_DollarName '$raw_dir') (/) ($ VSub_DollarName '$prefix')}) (C {(cp)} {(-v)} {($ VSub_DollarName '$provenance')} {($ VSub_DollarName '$raw_dir')}) ] ) ) (command.ShFunction name: stage1 body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'raw_dir=') (braced_var_sub token: <VSub_Number 1> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$BASE_DIR') (Lit_Slash /) (raw)} ) ) } ) (C {(local)} {(Lit_VarLike 'out=') ($ VSub_DollarName '$BASE_DIR') (/stage1)}) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$out')}) (C {(local)} {(x)}) (C {(local)} {(-a)} {(a)} {(b)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: {($ VSub_DollarName '$out') (/times.tsv)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ {($ VSub_DollarName '$raw_dir') (/flanders.) (Lit_Star '*') (.times.tsv)} ] ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [{($ VSub_DollarName '$raw_dir') (/lisa.) (Lit_Star '*') (.times.tsv)}] ) } ) ] ) (command.Simple words: [ {(tsv-concat)} { (braced_var_sub token: <VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } { (braced_var_sub token: <VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$x')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: {($ VSub_DollarName '$out') (/bytecode-size.tsv)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ {($ VSub_DollarName '$raw_dir') (/flanders.) (Lit_Star '*') (.bytecode-size.tsv) } ] ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ {($ VSub_DollarName '$raw_dir') (/lisa.) (Lit_Star '*') (.bytecode-size.tsv)} ] ) } ) ] ) (command.Simple words: [ {(tsv-concat)} { (braced_var_sub token: <VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } { (braced_var_sub token: <VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$x')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: Equal rhs: {($ VSub_DollarName '$out') (/bin-sizes.tsv)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:a) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ {($ VSub_DollarName '$raw_dir') (/flanders.) (Lit_Star '*') (.bin-sizes.tsv)} ] ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [ {($ VSub_DollarName '$raw_dir') (/lisa.) (Lit_Star '*') (.bin-sizes.tsv)} ] ) } ) ] ) (command.Simple words: [ {(tsv-concat)} { (braced_var_sub token: <VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } { (braced_var_sub token: <VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$x')} ) ] ) (C {(local)} {(Lit_VarLike 'raw_data_tsv=') ($ VSub_DollarName '$out') (/raw-data.tsv)}) (command.BraceGroup children: [ (C {(echo)} {(SQ <path>)}) (C {(echo)} { (braced_var_sub token: <VSub_Name a> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ) (C {(echo)} { (braced_var_sub token: <VSub_Name b> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Unary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) } ) ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$raw_data_tsv')} ) ] ) (C {(head)} {($ VSub_DollarName '$out') (/) (Lit_Star '*')}) (C {(wc)} {(-l)} {($ VSub_DollarName '$out') (/) (Lit_Star '*')}) ] ) ) (command.ShFunction name: print-report body: (command.BraceGroup children: [ (C {(local)} {(Lit_VarLike 'in_dir=') ($ VSub_Number '$1')}) (C {(local)} {(Lit_VarLike 'base_url=') (SQ <../../web>)}) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 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=') (Right_DoubleQuote '"') (text/javascript) (Right_DoubleQuote '"') (' src=') (Right_DoubleQuote '"') ($ VSub_DollarName '$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_DollarName '$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_DollarName '$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>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'>)} {($ VSub_DollarName '$in_dir') (/times.tsv)} ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 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$'>)} {($ VSub_DollarName '$in_dir') (/sizes.tsv)} ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1940 stdin_parts: [('\n') (' <h3>Host and Compiler Details</h3>\n')] ) ] ) (C {(tsv2html)} {($ VSub_DollarName '$in_dir') (/hosts.tsv)}) (C {(tsv2html)} {($ VSub_DollarName '$in_dir') (/compilers.tsv)}) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 1963 stdin_parts: [(' </body>\n') ('</html>\n')] ) ] ) ] ) ) (C {(DQ ($ VSub_At '$@'))}) ] )