(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {<'benchmarks/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {<'build/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'BASE_DIR='> <'_tmp/ovm-build'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'TAR_DIR='> ($ Id.VSub_DollarName PWD) <'/_deps/ovm-build'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'OIL_VERSION='> 
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <head>
                more_env: []
                words: [{<head>} {<-n>} {<1>} {<oil-version.txt>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<-a>}
        {<Id.Lit_VarLike 'TAR_SUBDIRS='> 
          (ShArrayLiteral
            left: <Id.Op_LParen _>
            words: [{<bash-4.4>} {<dash-0.5.9.1>}]
            right: <Id.Right_ShArrayLiteral _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <tarballs>
      name: tarballs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [<'bash-4.4.tar.gz\n'> <'dash-0.5.9.1.tar.gz\n'> <'mksh-R56c.tgz\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <download>
      name: download
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName TAR_DIR)}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <tarballs>
                  more_env: []
                  words: [{<tarballs>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <xargs>
                  more_env: []
                  words: [
                    {<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/{}'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <extract-other>
      name: extract-other
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.TimeBlock
              keyword: <Id.KW_Time time>
              pipeline: 
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [f]
                  iterable: 
                    (for_iter.Words
                      words: [{($ Id.VSub_DollarName TAR_DIR) <'/'> <Id.Lit_Star '*'> <gz>}]
                    )
                  semi_tok: <Id.Op_Semi _>
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Simple
                          blame_tok: <tar>
                          more_env: []
                          words: [
                            {<tar>}
                            {<-x>}
                            {<--directory>}
                            {($ Id.VSub_DollarName TAR_DIR)}
                            {<--file>}
                            {($ Id.VSub_DollarName f)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <extract-oil>
      name: extract-oil
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {<-r>}
                {<-f>}
                {<-v>}
                {($ Id.VSub_DollarName TAR_DIR) <'/oil-'> <Id.Lit_Star '*'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <tar>
              more_env: []
              words: [
                {<tar>}
                {<-x>}
                {<--directory>}
                {($ Id.VSub_DollarName TAR_DIR)}
                {<--file>}
                {<'_release/oil.tar'>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <sizes-tsv>
      name: sizes-tsv
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (SingleQuoted
                    left: <Id.Left_DollarSingleQuote '$\''>
                    tokens: [
                      <Id.Char_Literals host_label>
                      <Id.Char_OneChar '\\t'>
                      <Id.Char_Literals num_bytes>
                      <Id.Char_OneChar '\\t'>
                      <Id.Char_Literals path>
                    ]
                    right: <Id.Right_SingleQuote '\''>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'host='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <hostname>
                        more_env: []
                        words: [{<hostname>}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <find>
              more_env: []
              words: [
                {<find>}
                {(DQ ($ Id.VSub_At '@'))}
                {<-maxdepth>}
                {<0>}
                {<-printf>}
                {
                  (DQ ($ Id.VSub_DollarName host) <Id.Lit_BadBackslash '\\'> <'t%s'> 
                    <Id.Lit_BadBackslash '\\'> <'t%p'> <Id.Lit_BadBackslash '\\'> <n>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <measure-sizes>
      name: measure-sizes
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'prefix='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_ColonHyphen _>
                        arg_word: 
                          {($ Id.VSub_DollarName BASE_DIR) <Id.Lit_Slash '/'> <raw> <Id.Lit_Slash '/'> 
                            <demo>
                          }
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sizes-tsv>
              more_env: []
              words: [
                {<sizes-tsv>}
                {($ Id.VSub_DollarName TAR_DIR) <'/oil-'> ($ Id.VSub_DollarName OIL_VERSION) 
                  <'/_build/oil/bytecode-opy.zip'>
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name prefix) <.bytecode-size.tsv>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sizes-tsv>
              more_env: []
              words: [
                {<sizes-tsv>}
                {($ Id.VSub_DollarName BASE_DIR) <'/bin/'> <Id.Lit_Star '*'> <'/oil.'> <Id.Lit_Star '*'>}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name prefix) <.bin-sizes.tsv>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sizes-tsv>
              more_env: []
              words: [
                {<sizes-tsv>}
                {($ Id.VSub_DollarName BASE_DIR) <'/bin/'> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'> <sh>}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name prefix) <.other-shell-sizes.tsv>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <log>
              more_env: []
              words: [{<log>} {(DQ <'Wrote '> (${ Id.VSub_Name prefix) <'.*.tsv'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <bytecode-size>
      name: bytecode-size
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'zip='> <'_build/oil/bytecode.zip'>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <unzip>
                  more_env: []
                  words: [{<unzip>} {<-l>} {($ Id.VSub_DollarName zip)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tail>
                  more_env: []
                  words: [{<tail>} {<-n>} {<1>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <ls>
              more_env: []
              words: [{<ls>} {<-l>} {($ Id.VSub_DollarName zip)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <clang-oil-dbg>
      name: clang-oil-dbg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <make>
              more_env: []
              words: [{<make>} {<clean>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <make>
              more_env: [
                (EnvPair
                  left: <Id.Lit_VarLike 'CC='>
                  name: CC
                  val: {($ Id.VSub_DollarName CLANG)}
                )
              ]
              words: [{<make>} {<'_build/oil/ovm-dbg'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <build-task>
      name: build-task
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'raw_dir='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'job_id='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'host='> ($ Id.VSub_Number 3)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'host_hash='> ($ Id.VSub_Number 4)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'compiler_path='> ($ Id.VSub_Number 5)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'compiler_hash='> ($ Id.VSub_Number 6)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'src_dir='> ($ Id.VSub_Number 7)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'action='> ($ Id.VSub_Number 8)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<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>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-a>}
                {<Id.Lit_VarLike 'TIME_PREFIX='> 
                  (ShArrayLiteral
                    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))}
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'bin_base_dir='> ($ Id.VSub_DollarName PWD) <'/'> 
                  ($ Id.VSub_DollarName BASE_DIR) <'/bin'>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'bin_dir='> 
                  (DQ ($ Id.VSub_DollarName bin_base_dir) <'/'> 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <basename>
                          more_env: []
                          words: [{<basename>} {($ Id.VSub_DollarName compiler_path)}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName bin_dir)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <pushd>
              more_env: []
              words: [{<pushd>} {($ Id.VSub_DollarName src_dir)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <configure>
                  pattern: (pat.Words words:[{<configure>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name TIME_PREFIX>
                              var_name: TIME_PREFIX
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {<-->}
                        {<'./configure'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <make>
                      more_env: []
                      words: [{<make>} {<clean>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <make>
                  pattern: (pat.Words words:[{<make>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name TIME_PREFIX>
                              var_name: TIME_PREFIX
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {<-->}
                        {<make>}
                        {<Id.Lit_VarLike 'CC='> ($ Id.VSub_DollarName compiler_path)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [{<local>} {<target>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName src_dir)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <'/bash'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: {<bash>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <'/dash'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: {<'src/dash'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <strip>
                      more_env: []
                      words: [{<strip>} {($ Id.VSub_DollarName target)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [
                        {<cp>}
                        {<-v>}
                        {($ Id.VSub_DollarName target)}
                        {($ Id.VSub_DollarName bin_dir)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [{<local>} {<Id.Lit_VarLike 'target='> ($ Id.VSub_DollarName action)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name TIME_PREFIX>
                              var_name: TIME_PREFIX
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {<-->}
                        {<make>}
                        {<Id.Lit_VarLike 'CC='> ($ Id.VSub_DollarName compiler_path)}
                        {($ Id.VSub_DollarName target)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [
                        {<cp>}
                        {<-v>}
                        {($ Id.VSub_DollarName target)}
                        {($ Id.VSub_DollarName bin_dir)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <popd>
              more_env: []
              words: [{<popd>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <oil-tasks>
      name: oil-tasks
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'dir='> 
                  (DQ ($ Id.VSub_DollarName TAR_DIR) <'/oil-'> ($ Id.VSub_DollarName OIL_VERSION))
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>} {($ Id.VSub_DollarName provenance)}]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<line>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName line))}
                            {($ Id.VSub_DollarName dir)}
                            {<configure>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName line))}
                            {($ Id.VSub_DollarName dir)}
                            {<'_bin/oil.ovm'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName line))}
                            {($ Id.VSub_DollarName dir)}
                            {<'_bin/oil.ovm-dbg'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <other-shell-tasks>
      name: other-shell-tasks
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'tarball='> (SQ <'_release/oil.0.5.alpha1.gz'>)}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>} {($ Id.VSub_DollarName provenance)}]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<line>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName line)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: 
                                (pat.Words
                                  words: [{<Id.Lit_Star '*'> <clang> <Id.Lit_Star '*'>}]
                                )
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [dir]
                          iterable: 
                            (for_iter.Words
                              words: [
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name TAR_SUBDIRS>
                                      var_name: TAR_SUBDIRS
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                            )
                          semi_tok: <Id.Op_Semi _>
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {(DQ ($ Id.VSub_DollarName line))}
                                    {($ Id.VSub_DollarName TAR_DIR) <'/'> ($ Id.VSub_DollarName dir)}
                                    {<configure>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {(DQ ($ Id.VSub_DollarName line))}
                                    {($ Id.VSub_DollarName TAR_DIR) <'/'> ($ Id.VSub_DollarName dir)}
                                    {<make>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <oil-historical-tasks>
      name: oil-historical-tasks
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'HEADER='> 
          (SingleQuoted
            left: <Id.Left_DollarSingleQuote '$\''>
            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>
            ]
            right: <Id.Right_SingleQuote '\''>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'NUM_COLUMNS='> <7>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <measure>
      name: measure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'provenance='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'raw_dir='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 2>
                    var_name: 2
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_ColonHyphen _>
                        arg_word: {($ Id.VSub_DollarName BASE_DIR) <Id.Lit_Slash '/'> <raw>}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <extract-oil>
              more_env: []
              words: [{<extract-oil>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'name='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <basename>
                        more_env: []
                        words: [{<basename>} {($ Id.VSub_DollarName provenance)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'prefix='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name name>
                    var_name: name
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VOp1_Percent '%'>
                        arg_word: {<.compiler-provenance.txt>}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'times_out='> 
                  (DQ ($ Id.VSub_DollarName raw_dir) <'/'> ($ Id.VSub_DollarName prefix) <.times.tsv>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                (word.BracedTree
                  parts: [
                    ($ Id.VSub_DollarName BASE_DIR)
                    <'/'>
                    (word_part.BracedTuple words:[{<raw>} {<stage1>} {<bin>}])
                  ]
                )
                {($ Id.VSub_DollarName raw_dir)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName HEADER))}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName times_out)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 't1='> ($ Id.VSub_DollarName BASE_DIR) <'/oil-tasks.txt'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 't2='> ($ Id.VSub_DollarName BASE_DIR) <'/other-shell-tasks.txt'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <oil-tasks>
              more_env: []
              words: [{<oil-tasks>} {($ Id.VSub_DollarName provenance)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName t1)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <other-shell-tasks>
              more_env: []
              words: [{<other-shell-tasks>} {($ Id.VSub_DollarName provenance)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName t2)}
                )
              ]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.TimeBlock
                  keyword: <Id.KW_Time time>
                  pipeline: 
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>} {($ Id.VSub_DollarName t1)} {($ Id.VSub_DollarName t2)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <xargs>
                          more_env: []
                          words: [
                            {<xargs>}
                            {<-n>}
                            {($ Id.VSub_DollarName NUM_COLUMNS)}
                            {<-->}
                            {($ Id.VSub_Number 0)}
                            {<build-task>}
                            {($ Id.VSub_DollarName raw_dir)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                )
                (command.Simple
                  blame_tok: <die>
                  more_env: []
                  words: [{<die>} {(DQ <'*** Some tasks failed. ***'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <measure-sizes>
              more_env: []
              words: [
                {<measure-sizes>}
                {($ Id.VSub_DollarName raw_dir) <'/'> ($ Id.VSub_DollarName prefix)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cp>
              more_env: []
              words: [{<cp>} {<-v>} {($ Id.VSub_DollarName provenance)} {($ Id.VSub_DollarName raw_dir)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <stage1>
      name: stage1
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'raw_dir='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_ColonHyphen _>
                        arg_word: {($ Id.VSub_DollarName BASE_DIR) <Id.Lit_Slash '/'> <raw>}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'out='> ($ Id.VSub_DollarName BASE_DIR) <'/stage1'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<x>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<-a>} {<a>} {<b>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName out) <'/times.tsv'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'a='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'a='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/flanders.'> <Id.Lit_Star '*'> <.times.tsv>}
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/lisa.'> <Id.Lit_Star '*'> <.times.tsv>}
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tsv-concat>
              more_env: []
              words: [
                {<tsv-concat>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name a>
                    var_name: a
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name b>
                    var_name: b
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName x)}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName out) <'/bytecode-size.tsv'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'a='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'a='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/flanders.'> <Id.Lit_Star '*'> 
                            <.bytecode-size.tsv>
                          }
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/lisa.'> <Id.Lit_Star '*'> 
                            <.bytecode-size.tsv>
                          }
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tsv-concat>
              more_env: []
              words: [
                {<tsv-concat>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name a>
                    var_name: a
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name b>
                    var_name: b
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName x)}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName out) <'/bin-sizes.tsv'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'a='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'a='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/flanders.'> <Id.Lit_Star '*'> 
                            <.bin-sizes.tsv>
                          }
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {($ Id.VSub_DollarName raw_dir) <'/lisa.'> <Id.Lit_Star '*'> <.bin-sizes.tsv>}
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tsv-concat>
              more_env: []
              words: [
                {<tsv-concat>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name a>
                    var_name: a
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name b>
                    var_name: b
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName x)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'raw_data_tsv='> ($ Id.VSub_DollarName out) <'/raw-data.tsv'>}
              ]
              redirects: []
              do_fork: T
            )
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <path>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name a>
                        var_name: a
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name b>
                        var_name: b
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: (arith_expr.Unary op_id:Id.Node_UnaryMinus child:{<Id.Lit_Digits 1>})
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName raw_data_tsv)}
                )
              ]
              right: <Id.Lit_RBrace '}'>
            )
            (command.Simple
              blame_tok: <head>
              more_env: []
              words: [{<head>} {($ Id.VSub_DollarName out) <'/'> <Id.Lit_Star '*'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <wc>
              more_env: []
              words: [{<wc>} {<-l>} {($ Id.VSub_DollarName out) <'/'> <Id.Lit_Star '*'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <print-report>
      name: print-report
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'in_dir='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'base_url='> (SQ <'../../web'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      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'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <tsv2html>
              more_env: []
              words: [
                {<tsv2html>}
                {<--css-class-pattern>}
                {(SQ <'special ^oil'>)}
                {($ Id.VSub_DollarName in_dir) <'/times.tsv'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      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'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <tsv2html>
              more_env: []
              words: [
                {<tsv2html>}
                {<--css-class-pattern>}
                {(SQ <'special /gcc/oil.ovm$'>)}
                {($ Id.VSub_DollarName in_dir) <'/sizes.tsv'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [<'\n'> <'    <h3>Host and Compiler Details</h3>\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <tsv2html>
              more_env: []
              words: [{<tsv2html>} {($ Id.VSub_DollarName in_dir) <'/hosts.tsv'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <tsv2html>
              more_env: []
              words: [{<tsv2html>} {($ Id.VSub_DollarName in_dir) <'/compilers.tsv'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [<'  </body>\n'> <'</html>\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <Id.Left_DoubleQuote '"'>
      more_env: []
      words: [{(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)