Subject: Re: https://github.com/rust-lang/rust is not bisectable

From: SZEDER Gábor <[email-masked]>
Date: Sun, 18 Dec 2022 10:37:34 +0100

On Sun, Dec 18, 2022 at 06:15:44AM +0300, Askar Safin wrote:
> At some point that "bootstrap" word appeared, then at some point it
> disappeared again. I'm trying to find a point where it has
> disappeared. Consider this script:
> 
> ==begin
> #!/bin/bash
> 
> set -e
> set -x
> 
> git bisect reset
> git bisect start
> git bisect good 7175c499ecc32cb3ff713be0bbac9fd12990a34e
> git bisect bad 49c2279ef658d8732597c4da93897d84838f3df5
> 
> while :; do
>   if grep -q bootstrap compiler/rustc_target/src/abi/mod.rs; then
>     git bisect good
>   else
>     git bisect bad
>   fi
>   sleep 1
> done
> ==end
> 
> Here is the output: https://paste.debian.net/1264444/ . As you can
> see, we always choose "else git bisect bad". And we reach... initial
> commit!

Yeah, but as you can see from all those

  grep: compiler/rustc_target/src/abi/mod.rs: No such file or directory

error messages, it didn't choose bad because "bootstrap" was not
present in the file in question, but because the file in question was
not present in the examined revision in the first place!  You must
take this into consideration when deciding whether a revision is good
or bad.

> Well, technically speaking, this is correct: initial commit is
> actually the first commit, where word "bootstrap" is not present in
> compiler/rustc_target/src/abi/mod.rs . But this is not what I want! I
> want to find commit, which is the first one, which doesn't have
> "bootstrap" in compiler/rustc_target/src/abi/mod.rs, AND which is
> descendant of good commit ( 7175c499ecc32cb3ff713be0bbac9fd12990a34e
> ).

No, you want to find the first commit which does contain a file 
compiler/rustc_target/src/abi/mod.rs, and where that file doesn't
contain "bootstrap".

  $ git bisect start 49c2279ef658d8732597c4da93897d84838f3df5 7175c499ecc32cb3ff713be0bbac9fd12990a34e
  Bisecting: 23901 revisions left to test after this (roughly 15 steps)
  [26562973b3482a635416b2b663a13016d4d90e20] Auto merge of #13653 - VannTen:fix/doc-typo-vim-lsp, r=Veykril
  $ cat run.sh
  #!/bin/sh
  
  file="compiler/rustc_target/src/abi/mod.rs"
  if test ! -f "$file"
  then
  	echo "  !!!  missing $file"
  elif grep -q bootstrap "$file"
  then
  	echo "  +++  found bootstrap in $file"
  else
  	echo "  ---  no bootstrap in $file"
  	false
  fi
  $ git bisect run ./run.sh
  running './run.sh'
    !!!  missing compiler/rustc_target/src/abi/mod.rs
  Bisecting: 11961 revisions left to test after this (roughly 14 steps)
  [7a8636c843bd24038fe1d1f69b4a8e4b0ea55d4e] Auto merge of #100982 - fee1-dead-contrib:const-impl-requires-const-trait, r=oli-obk
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 5974 revisions left to test after this (roughly 13 steps)
  [335e7d3e33300942ce99e7010a31ad4c1086a36a] Rollup merge of #98745 - thomcc:build-dir-arg, r=jyn514
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 2980 revisions left to test after this (roughly 12 steps)
  [512a328e2fb32bddd206461770a2c058368519cc] Auto merge of #95309 - lcnr:dropck-cleanup, r=nikomatsakis
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 1485 revisions left to test after this (roughly 11 steps)
  [143eaa8d441641251ab41ed73deaba0d8d0cf4a5] Auto merge of #93970 - cjgillot:novis, r=petrochenkov
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 748 revisions left to test after this (roughly 10 steps)
  [198a1548ea4c25e3756d70bb2cafed6bb1860d6a] Rollup merge of #95369 - jyn514:test-rustdoc, r=Mark-Simulacrum
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 374 revisions left to test after this (roughly 9 steps)
  [3c2f864ffbf0e3d01f3f684acbd0ee602619bf19] session: opt for enabling directionality markers
  running './run.sh'
    +++  found bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 186 revisions left to test after this (roughly 8 steps)
  [7b285d09e9e4ccf8273cc03dba28e8a428e6084e] Rollup merge of #95791 - oconnor663:doc_comment, r=thomcc
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 93 revisions left to test after this (roughly 7 steps)
  [201cf3dba302cec9b62e9b988858dcad47a88a4f] Auto merge of #95723 - SparrowLii:const_goto, r=fee1-dead
  running './run.sh'
    +++  found bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 47 revisions left to test after this (roughly 6 steps)
  [2e4964ed3d6a4de97b863777f97c7790808afce3] Rollup merge of #95714 - KSBilodeau:master, r=Dylan-DPC
  running './run.sh'
    +++  found bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 23 revisions left to test after this (roughly 5 steps)
  [ed6c958ee4bf081deec951996ace9c508360c1d9] Auto merge of #95760 - Dylan-DPC:rollup-uskzggh, r=Dylan-DPC
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 12 revisions left to test after this (roughly 4 steps)
  [870ab12ea7976ad3c56eac6f0559b122e0f055c5] Rollup merge of #95752 - compiler-errors:issue-82866, r=Dylan-DPC
  running './run.sh'
    +++  found bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 6 revisions left to test after this (roughly 3 steps)
  [73dc13058d37ebcfcdde46e7f63c4c69bd26685d] remove ~const Drop from rustdoc test
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 2 revisions left to test after this (roughly 2 steps)
  [b744bb67fdfd3e34404cc9df1d87acdfdb4a0cb4] rustc_trait_selection changes
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 0 revisions left to test after this (roughly 1 step)
  [181d28bb6110dc974879db20d433f21aa142db3a] trivial cfg(bootstrap) changes
  running './run.sh'
    ---  no bootstrap in compiler/rustc_target/src/abi/mod.rs
  Bisecting: 0 revisions left to test after this (roughly 0 steps)
  [e96538aeeb2a71e672e1d1a40dcaf0ad34a826b5] bump stage0 to the latest beta
  running './run.sh'
    +++  found bootstrap in compiler/rustc_target/src/abi/mod.rs
  181d28bb6110dc974879db20d433f21aa142db3a is the first bad commit
  commit 181d28bb6110dc974879db20d433f21aa142db3a
  Author: Pietro Albini <[email-masked]>
  Date:   Tue Apr 5 22:42:23 2022 +0200
  
      trivial cfg(bootstrap) changes
  
  [ ... diffstat ... ]
  bisect found first bad commit