(command.CommandList children: [ (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (C {<set>} {<-o>} {<errexit>}) (C {<source>} {<'build/common.sh'>}) (C {<source>} {<'benchmarks/common.sh'>}) (command.ShFunction name: _dump-if-exists body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'path='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'out='> ($ Id.VSub_Number '$2')}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$path')}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Simple words: [{<cat>} {($ Id.VSub_DollarName '$path')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: dump-shell-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'sh='> ($ Id.VSub_Number '$1')}) (C {<local>} {<name>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$sh')}) ) } spids: [240] ) ] ) (C {<local>} {<Id.Lit_VarLike 'out_dir='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_tmp> <Id.Lit_Slash '/'> <shell-id> <Id.Lit_Slash '/'> ($ Id.VSub_DollarName '$name') } ) ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$out_dir')}) (command.Case to_match: {($ Id.VSub_DollarName '$sh')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <'/osh'>}] action: [ (C {<local>} {<branch>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {<--abbrev-ref>} {<HEAD>}) ) } spids: [292] ) ] ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$branch')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/git-branch.txt'>} ) ] do_fork: T ) (command.Simple words: [{<git>} {<rev-parse>} {($ Id.VSub_DollarName '$branch')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/git-commit-hash.txt'>} ) ] do_fork: T ) ] spids: [282 284 326 -1] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$name')} arms: [ (case_arm pat_list: [{<bash>} {<zsh>}] action: [ (command.Simple words: [{($ Id.VSub_DollarName '$sh')} {<--version>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/version.txt'>} ) ] do_fork: T ) ] spids: [340 343 356 -1] ) (case_arm pat_list: [{<osh>}] action: [ (command.Simple words: [{($ Id.VSub_DollarName '$sh')} {<--version>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/osh-version.txt'>} ) ] do_fork: T ) ] spids: [359 360 373 -1] ) (case_arm pat_list: [{<dash>} {<mksh>}] action: [ (command.Simple words: [{<dpkg>} {<-s>} {($ Id.VSub_DollarName '$name')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/dpkg-version.txt'>} ) ] do_fork: T ) ] spids: [376 379 398 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<die>} {(DQ <'Invalid shell \''> ($ Id.VSub_DollarName '$name') <'\''>)})] spids: [401 402 414 -1] ) ] ) ] ) ) (command.ShFunction name: _shell-id-hash body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (C {<local>} {<file>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$src') <'/version.txt'>} spids: [442] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$file')}) (C {<cat>} {($ Id.VSub_DollarName '$file')}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$src') <'/dpkg-version.txt'>} spids: [465] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$file')}) (C {<egrep>} {(SQ <'^Version'>)} {($ Id.VSub_DollarName '$file')}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$src') <'/osh-version.txt'>} spids: [492] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$file')}) (C {<egrep>} {(SQ <'^Oil version|^Interpreter'>)} {($ Id.VSub_DollarName '$file')}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$src') <'/git-commit-hash.txt'>} spids: [519] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$file')}) (C {<cat>} {($ Id.VSub_DollarName '$file')}) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: publish-shell-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'dest_base='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<..> <Id.Lit_Slash '/'> <benchmark-data> <Id.Lit_Slash '/'> <shell-id>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$src')}) ) } ) (C {<local>} {<hash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<_shell-id-hash>} {($ Id.VSub_DollarName '$src')}) (C {<md5sum>}) ] negated: F ) ) } spids: [603] ) ] ) (C {<local>} {<Id.Lit_VarLike 'id='> (DQ (braced_var_sub token: <Id.VSub_Name hash> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 0>} length:{<Id.Lit_Digits 8>}) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'dest='> (DQ ($ Id.VSub_DollarName '$dest_base') <'/'> ($ Id.VSub_DollarName '$name') <-> ($ Id.VSub_DollarName '$id') ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dest')}) (C {<cp>} {<--no-target-directory>} {<--recursive>} {($ Id.VSub_DollarName '$src') <'/'>} {($ Id.VSub_DollarName '$dest') <'/'>} ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$hash')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$dest') <'/HASH.txt'>} ) ] do_fork: T ) (C {<log>} {(DQ <'Published shell ID to '> ($ Id.VSub_DollarName '$dest'))}) (C {<echo>} {($ Id.VSub_DollarName '$id')}) ] ) ) (command.ShFunction name: dump-host-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'out_dir='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_tmp> <Id.Lit_Slash '/'> <host-id> <Id.Lit_Slash '/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<hostname>}) ) } ) ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$out_dir')}) (command.Simple words: [{<hostname>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/hostname.txt'>} ) ] do_fork: T ) (command.Simple words: [{<uname>} {<-m>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/machine.txt'>} ) ] do_fork: T ) (BraceGroup children: [(C {<uname>} {<--kernel-release>}) (C {<uname>} {<--kernel-version>})] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/kernel.txt'>} ) ] ) (C {<_dump-if-exists>} {<'/etc/lsb-release'>} {($ Id.VSub_DollarName '$out_dir') <'/lsb-release.txt'>} ) (command.Simple words: [{<cat>} {<'/proc/cpuinfo'>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/cpuinfo.txt'>} ) ] do_fork: T ) (command.Simple words: [{<cat>} {<'/proc/meminfo'>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/meminfo.txt'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: _host-id-hash body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (C {<cat>} {($ Id.VSub_DollarName '$src') <'/machine.txt'>}) (C {<cat>} {($ Id.VSub_DollarName '$src') <'/kernel.txt'>}) (C {<local>} {<Id.Lit_VarLike 'file='> ($ Id.VSub_DollarName '$src') <'/lsb-release.txt'>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$file')}) (C {<cat>} {($ Id.VSub_DollarName '$file')}) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: publish-host-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'dest_base='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<..> <Id.Lit_Slash '/'> <benchmark-data> <Id.Lit_Slash '/'> <host-id>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$src')}) ) } ) (C {<local>} {<hash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<_host-id-hash>} {($ Id.VSub_DollarName '$src')}) (C {<md5sum>}) ] negated: F ) ) } spids: [996] ) ] ) (C {<local>} {<Id.Lit_VarLike 'id='> (DQ (braced_var_sub token: <Id.VSub_Name hash> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 0>} length:{<Id.Lit_Digits 8>}) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'dest='> (DQ ($ Id.VSub_DollarName '$dest_base') <'/'> ($ Id.VSub_DollarName '$name') <-> ($ Id.VSub_DollarName '$id') ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dest')}) (C {<cp>} {<--no-target-directory>} {<--recursive>} {($ Id.VSub_DollarName '$src') <'/'>} {($ Id.VSub_DollarName '$dest') <'/'>} ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$hash')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$dest') <'/HASH.txt'>} ) ] do_fork: T ) (C {<log>} {(DQ <'Published host ID to '> ($ Id.VSub_DollarName '$dest'))}) (C {<echo>} {($ Id.VSub_DollarName '$id')}) ] ) ) (command.ShFunction name: dump-compiler-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'cc='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'out_dir='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_tmp> <Id.Lit_Slash '/'> <compiler-id> <Id.Lit_Slash '/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$cc')}) ) } ) ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$out_dir')}) (command.Case to_match: {($ Id.VSub_DollarName '$cc')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <'/gcc'>}] action: [(C {($ Id.VSub_DollarName '$cc')} {<--version>})] spids: [1151 1153 1165 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <'/clang'>}] action: [(C {($ Id.VSub_DollarName '$cc')} {<--version>})] spids: [1168 1170 1182 -1] ) ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out_dir') <'/version.txt'>} ) ] ) ] ) ) (command.ShFunction name: test-compiler-id body: (BraceGroup children: [ (C {<dump-compiler-id>} {<gcc>}) (C {<dump-compiler-id>} {($ Id.VSub_DollarName '$CLANG')}) (C {<head>} {<'_tmp/compiler-id/'> <Id.Lit_Star '*'> <'/version.txt'>}) ] ) ) (command.ShFunction name: _compiler-id-hash body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$src') <'/version.txt'>}) (C {<grep>} {<-v>} {<InstalledDir>}) ] negated: F ) ] ) ) (command.ShFunction name: publish-compiler-id body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'dest_base='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<..> <Id.Lit_Slash '/'> <benchmark-data> <Id.Lit_Slash '/'> <compiler-id>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$src')}) ) } ) (C {<local>} {<hash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<_compiler-id-hash>} {($ Id.VSub_DollarName '$src')}) (C {<md5sum>}) ] negated: F ) ) } spids: [1305] ) ] ) (C {<local>} {<Id.Lit_VarLike 'id='> (DQ (braced_var_sub token: <Id.VSub_Name hash> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 0>} length:{<Id.Lit_Digits 8>}) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'dest='> (DQ ($ Id.VSub_DollarName '$dest_base') <'/'> ($ Id.VSub_DollarName '$name') <-> ($ Id.VSub_DollarName '$id') ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dest')}) (C {<cp>} {<--no-target-directory>} {<--recursive>} {($ Id.VSub_DollarName '$src') <'/'>} {($ Id.VSub_DollarName '$dest') <'/'>} ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$hash')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$dest') <'/HASH.txt'>} ) ] do_fork: T ) (C {<log>} {(DQ <'Published compiler ID to '> ($ Id.VSub_DollarName '$dest'))}) (C {<echo>} {($ Id.VSub_DollarName '$id')}) ] ) ) (command.ShFunction name: shell-provenance body: (BraceGroup children: [ (C {<local>} {<job_id>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:job_id) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <m-> <Id.Lit_Other '%'> <d__> <Id.Lit_Other '%'> <H-> <Id.Lit_Other '%'> <M-> <Id.Lit_Other '%'> <S> } ) ) ) } spids: [1440] ) ] ) (C {<local>} {<host>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} spids: [1467] ) ] ) (C {<local>} {<Id.Lit_VarLike 'out='> <'_tmp/'> (${ Id.VSub_Name host) <.> (${ Id.VSub_Name job_id) <.provenance.txt> } ) (C {<local>} {<Id.Lit_VarLike 'tmp_dir='> <'_tmp/host-id/'> ($ Id.VSub_DollarName '$host')}) (C {<dump-host-id>} {($ Id.VSub_DollarName '$tmp_dir')}) (C {<local>} {<host_hash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host_hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<publish-host-id>} {($ Id.VSub_DollarName '$tmp_dir')}) ) } spids: [1511] ) ] ) (C {<local>} {<shell_hash>}) (command.ForEach iter_name: sh_path iter_words: [ {<bash>} {<dash>} {<mksh>} {<zsh>} {<'bin/osh'>} {($ Id.VSub_DollarName '$OSH_OVM')} ] do_arg_iter: F body: (command.DoGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$sh_path')}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp_dir) op: assign_op.Equal rhs: {<'_tmp/shell-id/'> ($ Id.VSub_DollarName '$name')} spids: [1563] ) ] ) (C {<dump-shell-id>} {($ Id.VSub_DollarName '$sh_path')} {($ Id.VSub_DollarName '$tmp_dir')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:shell_hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<publish-shell-id>} {($ Id.VSub_DollarName '$tmp_dir')}) ) } spids: [1576] ) ] ) (C {<echo>} { (DQ ($ Id.VSub_DollarName '$job_id') <' '> ($ Id.VSub_DollarName '$host') <' '> ($ Id.VSub_DollarName '$host_hash') <' '> ($ Id.VSub_DollarName '$sh_path') <' '> ($ Id.VSub_DollarName '$shell_hash') ) } ) ] ) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out')} ) ] ) (C {<log>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out'))}) (C {<echo>} {($ Id.VSub_DollarName '$out')}) ] ) ) (command.ShFunction name: compiler-provenance body: (BraceGroup children: [ (C {<local>} {<job_id>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:job_id) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <m-> <Id.Lit_Other '%'> <d__> <Id.Lit_Other '%'> <H-> <Id.Lit_Other '%'> <M-> <Id.Lit_Other '%'> <S> } ) ) ) } spids: [1640] ) ] ) (C {<local>} {<host>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} spids: [1667] ) ] ) (C {<local>} {<Id.Lit_VarLike 'out='> <'_tmp/'> (${ Id.VSub_Name host) <.> (${ Id.VSub_Name job_id) <.compiler-provenance.txt> } ) (C {<local>} {<Id.Lit_VarLike 'tmp_dir='> <'_tmp/host-id/'> ($ Id.VSub_DollarName '$host')}) (C {<dump-host-id>} {($ Id.VSub_DollarName '$tmp_dir')}) (C {<local>} {<host_hash>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:host_hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<publish-host-id>} {($ Id.VSub_DollarName '$tmp_dir')}) ) } spids: [1711] ) ] ) (C {<local>} {<compiler_hash>}) (command.ForEach iter_name: compiler_path iter_words: [ {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<which>} {<gcc>}))} {($ Id.VSub_DollarName '$CLANG')} ] do_arg_iter: F body: (command.DoGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$compiler_path')}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp_dir) op: assign_op.Equal rhs: {<'_tmp/compiler-id/'> ($ Id.VSub_DollarName '$name')} spids: [1759] ) ] ) (C {<dump-compiler-id>} {($ Id.VSub_DollarName '$compiler_path')} {($ Id.VSub_DollarName '$tmp_dir')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compiler_hash) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<publish-compiler-id>} {($ Id.VSub_DollarName '$tmp_dir')}) ) } spids: [1772] ) ] ) (C {<echo>} { (DQ ($ Id.VSub_DollarName '$job_id') <' '> ($ Id.VSub_DollarName '$host') <' '> ($ Id.VSub_DollarName '$host_hash') <' '> ($ Id.VSub_DollarName '$compiler_path') <' '> ($ Id.VSub_DollarName '$compiler_hash') ) } ) ] ) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$out')} ) ] ) (C {<log>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out'))}) (C {<echo>} {($ Id.VSub_DollarName '$out')}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )