diff options
author | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-28 21:04:05 +0000 |
---|---|---|
committer | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-28 21:04:39 +0000 |
commit | c0f096b1eaa0213cb58fe8feb0d3672cc0d78d29 (patch) | |
tree | 91d6db105ff1b11ce3b623edc6fa910cb4d4fec1 /jenkins | |
parent | 8c7677ca759d10b1e9cfa20d3bc08659308ba439 (diff) |
onsuccess: #71: 1: [TCWG CI] https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/
Results :
| # reset_artifacts:
| -10
| # build_bmk_llvm:
| -3
| # benchmark -- -O3_marm:
| 1
check_regression status : 0
Diffstat (limited to 'jenkins')
-rw-r--r-- | jenkins/build-name | 2 | ||||
-rw-r--r-- | jenkins/notify-full.log | 4248 | ||||
-rw-r--r-- | jenkins/notify-init.log | 130 | ||||
-rw-r--r-- | jenkins/rewrite.log | 22 | ||||
-rw-r--r-- | jenkins/run-build.env | 9 |
5 files changed, 4292 insertions, 119 deletions
diff --git a/jenkins/build-name b/jenkins/build-name index eced18a..33c362c 100644 --- a/jenkins/build-name +++ b/jenkins/build-name @@ -1 +1 @@ -#70-R# lbm_r_base.default,519.lbm_r failed to run-force +#71-llvm-R1 diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log index 50c4019..b77649b 100644 --- a/jenkins/notify-full.log +++ b/jenkins/notify-full.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_5 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_7 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 4 -+ opts=-p35503 ++ opts=-p35988 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35988' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_5 -+ ssh -p35503 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35503 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_5 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_7 ++ ssh -p35988 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35988 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_7 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_5/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_7/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -70,8 +70,8 @@ + declare -a changed_components + declare print_commits_f print_result_f print_config_f print_last_icommit_f + dump_model_only=false -+ setup_notify_environment # setup_notify_environment ++ setup_notify_environment + echo '# setup_notify_environment' + top_artifacts=artifacts ++ get_current_manifest '{rr[ci_project]}' @@ -82,20 +82,20 @@ ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x + ci_config=llvm-arm-master-O3 -# Debug traces : + echo '# Debug traces :' +# Debug traces : ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/68/ -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/68/' +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/ ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/' # Using dir : base-artifacts + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/ -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/' +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/ ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/' # Using dir : artifacts + echo '# Using dir : artifacts' @@ -111,7 +111,7 @@ ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' force '!=' init ']' ++ '[' onsuccess '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,18 +121,94 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xbaseline '!=' xbaseline ']' ++++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' ++++ echo -ne llvm ++++ delim=' ' +++ echo +++ for c in $(print_updated_components) ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ '[' xd7359bcc760a1229f8dadae8fde4784cad57a839 '!=' x8049db0990d1695a40de57f136af20ce5340b4a6 ']' +++ echo -ne llvm +++ delim=' ' ++ echo + local c base_rev cur_rev c_commits ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=8049db0990d1695a40de57f136af20ce5340b4a6 ++ local res ++ res=0 ++ wait 44822 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ git -C llvm rev-parse 'd7359bcc760a1229f8dadae8fde4784cad57a839^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 05b1a2cb3e6f0c7e783fcbd9e562d605c307ca6a = 8049db0990d1695a40de57f136af20ce5340b4a6 ']' ++ return 1 ++ change_kind=single_component # Debug traces : -# change_kind=no_change : -+ '[' 0 = 0 ']' -+ change_kind=no_change -+ changed_single_component= + echo '# Debug traces :' -+ echo '# change_kind=no_change : ' +# change_kind=single_component : llvm ++ echo '# change_kind=single_component : llvm' ++ for c in "${changed_components[@]}" +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ git -C llvm rev-list --count 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 ++ c_commits=720 +# rev for llvm : 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 (720 commits) ++ echo '# rev for llvm : 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 (720 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -159,25 +235,25 @@ # post_interesting_commits + echo '# post_interesting_commits' + local stage=init -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' full '!=' full ']' + bmk_generate_extra_details + set -euf -o pipefail + local artifacts_mail_dir + artifacts_mail_dir=artifacts/notify -+ /home/tcwg-buildslave/workspace/tcwg_bmk_5/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose ++ /home/tcwg-buildslave/workspace/tcwg_bmk_7/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false -+ '[' xno_change '!=' xsingle_commit ']' ++ '[' xsingle_component '!=' xsingle_commit ']' + return + post_interesting_commits full + set -euf -o pipefail # post_interesting_commits + echo '# post_interesting_commits' + local stage=full -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + true + generate_jira_dir @@ -188,7 +264,7 @@ ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 -++ '[' xno_change '!=' xsingle_commit ']' +++ '[' xsingle_component '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' @@ -208,7 +284,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -218,45 +295,4020 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.regression ']' -++ IFS=, -++ read metric bmk symbol short_diag long_diag -+++ head -n1 artifacts/notify/exe.regression -++ echo '519.lbm_r failed to run' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ short_diag='No change' +++ echo 'No change' ++ print_artifacts_url 'notify/mail-body.txt/*view*/' ++ set -euf -o pipefail ++ local url +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x -++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/artifact/artifacts +++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/artifact/artifacts ++ '[' '' '!=' '' ']' -++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/artifact/artifacts/notify/mail-body.txt/*view*/' -+ echo '# print all notification files' +++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files ++ echo '# print all notification files' + true + generate_mail_files + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail -+ local c= ++ local c=llvm ++ '[' llvm = '' ']' ++ local -A emails ++ emails["tcwg-validation@linaro.org"]=bcc ++ emails["author"]=cc ++ emails["committer"]=to ++ case "$ci_project/$ci_config:$c" in ++ emails["author"]=no ++ emails["committer"]=no ++ emails["maxim.kuvyrkov@linaro.org"]=to ++ local c email base_rev cur_rev +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 ++ read -r email +++ git -C llvm log --pretty=%ae 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ local precommit_postcommit=postcommit + '[' '' = '' ']' -+ echo bcc:tcwg-validation@linaro.org -+ return 0 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 ++ read -r email +++ git -C llvm log --pretty=%ce 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ unset 'emails[author]' 'emails[committer]' ++ local type ++ recipients=() ++ local -a recipients ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=bcc ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$type:$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=to ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ IFS=, ++ echo bcc:tcwg-validation@linaro.org,maxim.kuvyrkov@linaro.org ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline -++ '[' no_change = no_change ']' -++ echo 'baseline build' +++ '[' single_component = no_change ']' +++ local more_lines +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' +++ local new_commits c base_rev cur_rev c_commits components +++ local commits_or_patches +++ '[' '' '!=' '' ']' +++ commits_or_patches=commits +++ new_commits=0 +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 ++++ git -C llvm rev-list --count 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 +++ c_commits=720 +++ new_commits=720 ++++ echo llvm ++++ tr ' ' , +++ components=llvm +++ echo '720 commits in llvm' +++ '[' --oneline = --oneline ']' ++ return 0 ++ bmk_print_result --oneline ++ set -euf -o pipefail @@ -266,7 +4318,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -276,38 +4329,87 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.regression ']' -++ IFS=, -++ read metric bmk symbol short_diag long_diag -+++ head -n1 artifacts/notify/exe.regression -++ echo '519.lbm_r failed to run' -+ echo '[Linaro-TCWG-CI]' 'baseline build: 519.lbm_r failed to run' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ short_diag='No change' +++ echo 'No change' ++ echo '[Linaro-TCWG-CI]' '720 commits in llvm: No change' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/artifact/artifacts ++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -+ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/68/artifact/artifacts ++ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/artifact/artifacts + cat ++ print_commits --short ++ sed -e 's/^/ | /' ++ set -euf -o pipefail ++ false ++ local print_arg=--short -++ '[' no_change = no_change ']' -++ echo 'baseline build' +++ '[' single_component = no_change ']' +++ local more_lines +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' +++ local new_commits c base_rev cur_rev c_commits components +++ local commits_or_patches +++ '[' '' '!=' '' ']' +++ commits_or_patches=commits +++ new_commits=0 +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 ++++ git -C llvm rev-list --count 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 +++ c_commits=720 +++ new_commits=720 ++++ echo llvm ++++ tr ' ' , +++ components=llvm +++ echo '720 commits in llvm' +++ '[' --short = --oneline ']' +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 ++++ git -C llvm rev-list --count 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 +++ c_commits=720 +++ '[' '' '!=' '' ']' +++ git -C llvm log -n 5 --oneline 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 +++ '[' 720 -gt 5 ']' +++ echo '... and 715 more commits in llvm' +++ '[' '' '!=' '' ']' ++ return 0 ++ bmk_print_result --short ++ set -euf -o pipefail @@ -317,7 +4419,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -327,25 +4430,18 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ '[' -f artifacts/notify/exe.regression ']' -++ sort -gr -o artifacts/notify/exe.regression artifacts/notify/exe.regression -++ echo 'the following benchmarks slowed down by more than 3%:' -++ local metric exe symbol short_diag long_diag -++ IFS=, -++ read metric exe symbol short_diag long_diag -++ echo '- 519.lbm_r failed to run
' -++ '[' -f artifacts/notify/519.lbm_r.symbols-regression ']' -++ IFS=, -++ read metric exe symbol short_diag long_diag -++ '[' -f artifacts/notify/symbol.regression ']' -++ '[' -f artifacts/notify/exe.regression ']' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ echo 'No change' ++ bmk_print_config -++ . /home/tcwg-buildslave/workspace/tcwg_bmk_5/jenkins-scripts/tcwg_bmk-config.sh +++ . /home/tcwg-buildslave/workspace/tcwg_bmk_7/jenkins-scripts/tcwg_bmk-config.sh +++ [[ -v rr[ci_project] ]] +++ [[ -v rr[ci_config] ]] +++ declare -A bmk_data @@ -439,7 +4535,7 @@ +++ case "$target" in +++ target=arm-linux-gnueabihf +++ echo arm-linux-gnueabihf -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return # generate dashboard + echo '# generate dashboard' @@ -468,5 +4564,5 @@ + false + false + false -+ echo 'Full stage ran successfully.' Full stage ran successfully. ++ echo 'Full stage ran successfully.' diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log index f9b951f..ee626bc 100644 --- a/jenkins/notify-init.log +++ b/jenkins/notify-init.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_5 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_7 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 4 -+ opts=-p35503 ++ opts=-p35988 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35988' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_5 -+ ssh -p35503 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35503 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_5 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_7 ++ ssh -p35988 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35988 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_7 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_5/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_7/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -81,23 +81,23 @@ ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x -# Debug traces : + ci_config=llvm-arm-master-O3 +# Debug traces : + echo '# Debug traces :' ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/68/ +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/ ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/' # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/68/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/ +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/ ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/71/' # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O3-build/70/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify @@ -105,13 +105,13 @@ + set +x + declare -Ag pw + '[' ignore = precommit ']' -# check_source_changes + check_source_changes +# check_source_changes + echo '# check_source_changes' ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' force '!=' init ']' ++ '[' onsuccess '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,18 +121,94 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xbaseline '!=' xbaseline ']' ++++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' ++++ echo -ne llvm ++++ delim=' ' +++ echo +++ for c in $(print_updated_components) ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ '[' xd7359bcc760a1229f8dadae8fde4784cad57a839 '!=' x8049db0990d1695a40de57f136af20ce5340b4a6 ']' +++ echo -ne llvm +++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 0 = 0 ']' ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=8049db0990d1695a40de57f136af20ce5340b4a6 ++ local res ++ res=0 ++ wait 44711 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ git -C llvm rev-parse 'd7359bcc760a1229f8dadae8fde4784cad57a839^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 05b1a2cb3e6f0c7e783fcbd9e562d605c307ca6a = 8049db0990d1695a40de57f136af20ce5340b4a6 ']' ++ return 1 ++ change_kind=single_component # Debug traces : -# change_kind=no_change : - -+ change_kind=no_change -+ changed_single_component= + echo '# Debug traces :' -+ echo '# change_kind=no_change : ' +# change_kind=single_component : llvm ++ echo '# change_kind=single_component : llvm' ++ for c in "${changed_components[@]}" +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=8049db0990d1695a40de57f136af20ce5340b4a6 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=d7359bcc760a1229f8dadae8fde4784cad57a839 +++ git -C llvm rev-list --count 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 ++ c_commits=720 ++ echo '# rev for llvm : 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 (720 commits)' +# rev for llvm : 8049db0990d1695a40de57f136af20ce5340b4a6..d7359bcc760a1229f8dadae8fde4784cad57a839 (720 commits) + + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -159,7 +235,7 @@ # post_interesting_commits + echo '# post_interesting_commits' + local stage=init -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' init '!=' full ']' + echo 'Init stage ran successfully.' diff --git a/jenkins/rewrite.log b/jenkins/rewrite.log index 956c8d1..61c2398 100644 --- a/jenkins/rewrite.log +++ b/jenkins/rewrite.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_5 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_7 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 4 -+ opts=-p35503 ++ opts=-p35988 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_5:-p35503:ssh_host=tcwg-snow_bmk-02 ssh_port=35503' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_7:-p35988:ssh_host=tcwg-snow_bmk-02 ssh_port=35988' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35503' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=35988' + shift + local -a cmd + cmd=() @@ -58,8 +58,8 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q 100 -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_5 -+ ssh -p35503 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35503 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_5 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_7 ++ ssh -p35988 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=35988 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_7 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' + declare -g rewrite_base_artifacts_first=true + true + update_baseline diff --git a/jenkins/run-build.env b/jenkins/run-build.env index 343f9c9..474b028 100644 --- a/jenkins/run-build.env +++ b/jenkins/run-build.env @@ -1,4 +1,4 @@ -build_name="#70" +build_name="#71" docker_opts=(--distro default --arch @@ -9,6 +9,7 @@ tcwg-snow_bmk-02 true ) source build_container.sh trap "cleanup_all_containers" EXIT -build_name="#70" -branch_opt=() -build_name="#70-R# lbm_r_base.default,519.lbm_r failed to run-force" +build_name="#71-llvm" +branch_opt=(==rr\[llvm_git\] +https://github.com/llvm/llvm-project.git#main ) +build_name="#71-llvm-R1" |