(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>} {<'test/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {<'benchmarks/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'BASE_DIR='> <'_tmp/osh-runtime'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'TAR_DIR='> ($ Id.VSub_DollarName PWD) <'/_deps/osh-runtime'>}
      ]
      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: [{<ocaml-4.06.0>} {<tcc-0.9.26>} {<yash-2.46>}]
            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: [
                        <'tcc-0.9.26.tar.bz2\n'>
                        <'yash-2.46.tar.xz\n'>
                        <'ocaml-4.06.0.tar.xz\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/testdata/{}'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <extract>
      name: extract
      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: [
                        (word.BracedTree
                          parts: [
                            ($ Id.VSub_DollarName TAR_DIR)
                            <'/'>
                            <Id.Lit_Star '*'>
                            <.>
                            (word_part.BracedTuple
                              words: [{<bz2>} {<xz>}]
                            )
                          ]
                        )
                      ]
                    )
                  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: []
                )
            )
            (command.Simple
              blame_tok: <ls>
              more_env: []
              words: [{<ls>} {<-l>} {($ Id.VSub_DollarName TAR_DIR)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'PY27_DIR='> ($ Id.VSub_DollarName PWD) <'/Python-2.7.13'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <cpython-configure>
      name: cpython-configure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'sh_path='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<bash>})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out_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 '/'> 
                            (${ Id.VSub_Name sh_path) <-cpython-configure>
                          }
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <pushd>
              more_env: []
              words: [{<pushd>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.TimeBlock
                  keyword: <Id.KW_Time time>
                  pipeline: 
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$sh_path'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName sh_path)}
                        {($ Id.VSub_DollarName PY27_DIR) <'/configure'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                )
                (command.Simple
                  blame_tok: <true>
                  more_env: []
                  words: [{<true>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <popd>
              more_env: []
              words: [{<popd>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <tree>
              more_env: []
              words: [{<tree>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <osh-cpython-configure>
      name: osh-cpython-configure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cpython-configure>
              more_env: []
              words: [
                {<cpython-configure>}
                {($ Id.VSub_DollarName OSH_OVM)}
                {($ Id.VSub_DollarName BASE_DIR) <'/osh-cpython-configure'>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <runtime-task>
      name: runtime-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 'sh_path='> ($ Id.VSub_Number 5)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'shell_hash='> ($ Id.VSub_Number 6)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'task_type='> ($ Id.VSub_Number 7)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'task_arg='> ($ Id.VSub_Number 8)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'shell_name='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <basename>
                        more_env: []
                        words: [{<basename>} {($ Id.VSub_DollarName sh_path)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'x='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <basename>
                        more_env: []
                        words: [{<basename>} {($ Id.VSub_DollarName task_arg)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'task_label='> 
                  (DQ (${ Id.VSub_Name shell_name) <-> (${ Id.VSub_Name shell_hash) <__> 
                    (${ Id.VSub_Name x)
                  )
                }
              ]
              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.csv>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'vm_out_dir='> 
                  (DQ ($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName raw_dir) <'/'> 
                    ($ Id.VSub_DollarName host) <.> ($ Id.VSub_DollarName job_id) <.virtual-memory>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'files_out_dir='> 
                  (DQ ($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName raw_dir) <'/'> 
                    ($ Id.VSub_DollarName host) <.> ($ Id.VSub_DollarName job_id) <'.files/'> ($ Id.VSub_DollarName task_label)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                {($ Id.VSub_DollarName vm_out_dir)}
                {($ Id.VSub_DollarName files_out_dir)}
              ]
              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: [
                      {($ Id.VSub_DollarName PWD) <'/benchmarks/time.py'>}
                      {<--output>}
                      {($ Id.VSub_DollarName times_out)}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName host))}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName host_hash))}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName shell_name))}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName shell_hash))}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName task_type))}
                      {<--field>}
                      {(DQ ($ Id.VSub_DollarName task_arg))}
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'extra_args='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'extra_args='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extra_args='> name:extra_args)
                  op: assign_op.Equal
                  rhs: {(SQ )}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName shell_name))}
                                {<Id.Lit_Equals '='>}
                                {(SQ <osh>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [
                        {<local>}
                        {<Id.Lit_VarLike 'pdump='> 
                          (DQ (${ Id.VSub_Name vm_out_dir) <'/'> (${ Id.VSub_Name task_label) 
                            <__parser.txt>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [
                        {<local>}
                        {<Id.Lit_VarLike 'rdump='> 
                          (DQ (${ Id.VSub_Name vm_out_dir) <'/'> (${ Id.VSub_Name task_label) 
                            <__runtime.txt>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'extra_args='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'extra_args='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extra_args='> name:extra_args)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'--parser-mem-dump '> ($ Id.VSub_DollarName pdump) 
                                <' --runtime-mem-dump '> ($ Id.VSub_DollarName rdump)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [554 569]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'--- '> ($ Id.VSub_DollarName sh_path) <' '> ($ Id.VSub_DollarName task_type) 
                    <' '> ($ Id.VSub_DollarName task_arg) <' ---'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName task_type)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <abuild>
                  pattern: (pat.Words words:[{<abuild>}])
                  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 '}'>
                            )
                          )
                        }
                        {<-->}
                        {(DQ ($ Id.VSub_DollarName sh_path))}
                        {($ Id.VSub_DollarName extra_args)}
                        {<'testdata/osh-runtime/abuild'>}
                        {<-h>}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName files_out_dir) <'/STDOUT.txt'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <cpython>
                  pattern: (pat.Words words:[{<cpython>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <pushd>
                      more_env: []
                      words: [{<pushd>} {($ Id.VSub_DollarName files_out_dir)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      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 '}'>
                            )
                          )
                        }
                        {<-->}
                        {(DQ ($ Id.VSub_DollarName sh_path))}
                        {($ Id.VSub_DollarName extra_args)}
                        {($ Id.VSub_DollarName PY27_DIR) <'/configure'>}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName files_out_dir) <'/STDOUT.txt'>}
                        )
                      ]
                      do_fork: T
                    )
                    (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
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <configure>
                  pattern: (pat.Words words:[{<configure>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [{<local>} {<Id.Lit_VarLike 'conf_dir='> ($ Id.VSub_DollarName task_arg)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <pushd>
                      more_env: []
                      words: [{<pushd>} {($ Id.VSub_DollarName conf_dir)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <touch>
                      more_env: []
                      words: [{<touch>} {<__TIMESTAMP>}]
                      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 '}'>
                            )
                          )
                        }
                        {<-->}
                        {(DQ ($ Id.VSub_DollarName sh_path))}
                        {($ Id.VSub_DollarName extra_args)}
                        {<'./configure'>}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName files_out_dir) <'/STDOUT.txt'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <find>
                          more_env: []
                          words: [{<find>} {<.>} {<-type>} {<f>} {<-newer>} {<__TIMESTAMP>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <xargs>
                          more_env: []
                          words: [
                            {<xargs>}
                            {<-I>}
                            {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>}
                            {<-->}
                            {<cp>}
                            {<--verbose>}
                            {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>}
                            {($ Id.VSub_DollarName files_out_dir)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                    (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
                    )
                  ]
                  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: <die>
                      more_env: []
                      words: [{<die>} {(DQ <'Invalid task type '> ($ Id.VSub_DollarName task_type))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <print-tasks>
      name: print-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.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>}
                                {<job_id>}
                                {<host_name>}
                                {<host_hash>}
                                {<sh_path>}
                                {<shell_hash>}
                              ]
                              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 sh_path)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <mksh>
                              pattern: (pat.Words words:[{<mksh>} {<zsh>} {<'bin/osh'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <log>
                                  more_env: []
                                  words: [
                                    {<log>}
                                    {(DQ <'--- Skipping '> ($ Id.VSub_DollarName sh_path))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName sh_path)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/osh'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'sh_path='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'sh_path='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'sh_path='>
                                          name: sh_path
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName PWD) <'/'> 
                                          ($ Id.VSub_DollarName sh_path)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <local>
                          more_env: []
                          words: [
                            {<local>}
                            {<Id.Lit_VarLike 'prefix='> 
                              (DQ ($ Id.VSub_DollarName job_id) <' '> ($ Id.VSub_DollarName host_name) 
                                <' '> ($ Id.VSub_DollarName host_hash) <' '> ($ Id.VSub_DollarName sh_path) <' '> 
                                ($ Id.VSub_DollarName shell_hash)
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName prefix))}
                            {<abuild>}
                            {<abuild-help>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ ($ Id.VSub_DollarName prefix))}
                            {<cpython>}
                            {<cpython-configure>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (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 prefix))}
                                    {<configure>}
                                    {($ Id.VSub_DollarName TAR_DIR) <'/'> ($ Id.VSub_DollarName dir)}
                                  ]
                                  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.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'HEADER='> 
          (SQ <'status,elapsed_secs,host_name,host_hash,shell_name,shell_hash,task_type,task_arg'>)
        }
      ]
      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: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'pattern='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 3>
                    var_name: 3
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              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:{<.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.csv>)
                }
              ]
              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>}])
                  ]
                )
                {($ Id.VSub_DollarName raw_dir)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {($ 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 'tasks='> ($ Id.VSub_DollarName BASE_DIR) <'/tasks.txt'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <print-tasks>
              more_env: []
              words: [{<print-tasks>} {($ Id.VSub_DollarName provenance)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName tasks)}
                )
              ]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.TimeBlock
                  keyword: <Id.KW_Time time>
                  pipeline: 
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <egrep>
                          more_env: []
                          words: [
                            {<egrep>}
                            {(DQ ($ Id.VSub_DollarName pattern))}
                            {($ Id.VSub_DollarName tasks)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <xargs>
                          more_env: []
                          words: [
                            {<xargs>}
                            {<-n>}
                            {($ Id.VSub_DollarName NUM_COLUMNS)}
                            {<-->}
                            {($ Id.VSub_Number 0)}
                            {<runtime-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: <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_dir='> ($ Id.VSub_DollarName BASE_DIR) <'/stage1'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'times_csv='> ($ Id.VSub_DollarName out_dir) <'/times.csv'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-a>}
                {<Id.Lit_VarLike 'a='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: [
                      {($ Id.VSub_DollarName raw_dir) <'/flanders.'> <Id.Lit_Star '*'> <.times.csv>}
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-a>}
                {<Id.Lit_VarLike 'b='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: [{($ Id.VSub_DollarName raw_dir) <'/lisa.'> <Id.Lit_Star '*'> <.times.csv>}]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <csv-concat>
              more_env: []
              words: [
                {<csv-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 times_csv)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'vm_csv='> ($ Id.VSub_DollarName out_dir) <'/virtual-memory.csv'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-a>}
                {<Id.Lit_VarLike 'c='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: [
                      {($ Id.VSub_DollarName raw_dir) <'/flanders.'> <Id.Lit_Star '*'> 
                        <.virtual-memory>
                      }
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-a>}
                {<Id.Lit_VarLike 'd='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: [
                      {($ Id.VSub_DollarName raw_dir) <'/lisa.'> <Id.Lit_Star '*'> <.virtual-memory>}
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <'benchmarks/virtual_memory.py'>
              more_env: []
              words: [
                {<'benchmarks/virtual_memory.py'>}
                {<osh-runtime>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name c>
                    var_name: c
                    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 d>
                    var_name: d
                    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 vm_csv)}
                )
              ]
              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>OSH Runtime 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>OSH Runtime Performance</h2>\n'>
                        <'\n'>
                        <'    <h3>Elapsed Time by Shell (milliseconds)</h3>\n'>
                        <'\n'>
                        <
'    <p>Some benchmarks call many external tools, while some exercise the shell\n'
                        >
                        <'    interpreter itself.  Parse time is included.</p>\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <csv2html>
              more_env: []
              words: [{<csv2html>} {($ Id.VSub_DollarName in_dir) <'/times.csv'>}]
              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>Memory Used to Run</h3>\n'>
                        <'\n'>
                        <
'    <p>Running under <code>osh-ovm</code>.  Memory usage is measured in MB\n'
                        >
                        <'    (powers of 10), not MiB (powers of 2).</p>\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <csv2html>
              more_env: []
              words: [{<csv2html>} {($ Id.VSub_DollarName in_dir) <'/virtual-memory.csv'>}]
              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>Shell and Host Details</h3>\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <csv2html>
              more_env: []
              words: [{<csv2html>} {($ Id.VSub_DollarName in_dir) <'/shells.csv'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <csv2html>
              more_env: []
              words: [{<csv2html>} {($ Id.VSub_DollarName in_dir) <'/hosts.csv'>}]
              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.ShFunction
      name_tok: <abuild-h>
      name: abuild-h
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'out_dir='> <'_tmp/osh-runtime'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out='> ($ Id.VSub_DollarName out_dir) <'/abuild-h-times.csv'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'status,elapsed_secs,sh_path'>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName out)}
                )
              ]
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [sh_path]
              iterable: 
                (for_iter.Words
                  words: [{<bash>} {<dash>} {<mksh>} {<zsh>} {($ Id.VSub_DollarName OSH_OVM)}]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <'benchmarks/time.py'>
                      more_env: []
                      words: [
                        {<'benchmarks/time.py'>}
                        {<--output>}
                        {($ Id.VSub_DollarName out)}
                        {<--field>}
                        {(DQ ($ Id.VSub_DollarName sh_path))}
                        {<-->}
                        {($ Id.VSub_DollarName sh_path)}
                        {<'benchmarks/testdata/abuild'>}
                        {<-h>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <qemu-old>
      name: qemu-old
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out_dir='> ($ Id.VSub_DollarName PWD) <'/_tmp/qemu-old'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <configure-and-copy>
              more_env: []
              words: [
                {<configure-and-copy>}
                {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/src/qemu-1.6.0'>}
                {($ Id.VSub_DollarName OSH_OVM)}
                {($ Id.VSub_DollarName out_dir)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <self-exe>
      name: self-exe
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<Id.Lit_Other '+'> <o>} {<errexit>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dash>
              more_env: []
              words: [{<dash>}]
              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: [<'/proc/self/exe -V\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <'_bin/osh'>
              more_env: []
              words: [{<'_bin/osh'>}]
              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: [<'/proc/self/exe -V\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <'_tmp/shells/ash'>
              more_env: []
              words: [{<'_tmp/shells/ash'>}]
              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: [<'/proc/self/exe -V\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
    )
  ]
)