Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created August 2, 2019 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Whateverable/b7031c93698002bebdd969e149e20369 to your computer and use it in GitHub Desktop.
Save Whateverable/b7031c93698002bebdd969e149e20369 to your computer and use it in GitHub Desktop.
bisectable6
old=2018.06 new=HEAD my $i = 0; loop { $_ = $i; last if $i++ == 5; when Int { .say } }
Bisecting: 1280 revisions left to test after this (roughly 10 steps)
[e8285c01279397966ee0f8dc9dfcf1c5e5420579] We need to cache on name
»»»»» Testing e8285c01279397966ee0f8dc9dfcf1c5e5420579
»»»»» Cannot test this commit. Reason: Commit exists, but a perl6 executable could not be built for it
»»»»» Therefore, skipping this revision
»»»»» -------------------------------------------------------------------------
»»»»» Testing 32ab0d30cb4d599f03c02ada7c182f4d303f9bee
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 5e8451f79d7e2271508d7c49bd2969782bd36552
»»»»» Script output:
0
1
2
3
4
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 541a4f1628e4e156f6eefc547938746f7b736104
»»»»» Script output:
0
1
2
3
4
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 09c884307da444c0d1605c3bbbf21056e987cdf2
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 0368fe95bec9786dd214fdb61ecc663e0815f0af
»»»»» Cannot test this commit. Reason: Commit exists, but a perl6 executable could not be built for it
»»»»» Therefore, skipping this revision
»»»»» -------------------------------------------------------------------------
»»»»» Testing e0cd1d9992a2e3db0d7555ffcb97a4f0f58a0470
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing e58e376417eb2f4ce538156c631f34f70dabb501
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 87fcda819b74de7b3b75c191ea357af220a3b5e5
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 27332f04418a027a76f16554777382731540d2ed
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing b0d5d818a983fc3b5bf2d79a3e3857626b8e3979
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 19e4ace62d085a73506a787fffefca6b6671829a
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing fcfd51beba36469478435c2d9103330c1e8f24fc
»»»»» Script output:
0
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
0
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
541a4f1628e4e156f6eefc547938746f7b736104 is the first new commit
commit 541a4f1628e4e156f6eefc547938746f7b736104
Author: Jonathan Worthington <jnthn@jnthn.net>
Date: Mon Jan 7 17:30:58 2019 +0100
More aggressive scope flattening
Previously, we would only ever flatten away lexical scopes if we saw
that there were no declarations inside of that scope, the only special
case being `$_`, which was handled specially. There was also some
special mechanism in place to try and handle topic rebinds correctly.
Recently, lexical to local lowering became more powerful, able to deal
with normal lexical variables rather than just parameters and name
bindings. This handling takes in $_ too.
This commit replaces the scope flattening mechanism with one that, at
its heart, will flatten in an immediate block if all of its variables
were lowered. This means that in a program like:
my $a = 42;
if $a > 21 {
my $b = 10;
if $b < 200 {
say $a + $b
}
}
Then both of those scopes flatten away, thanks to both `$a` and `$b`
having been lowered. Previously, only the innermost one would have been,
thanks to the declaration of `$b`.
Since the `$_` in each block is now also lowered to a local when
possible, then we can replace the `getouterlex` calls with a simple
bind, and do away with the topic preservation mechanism, which was
always rather cheaty.
:040000 040000 322a5751d03238a1cdfce7c2b73fe274dde6cde8 6707b5c3fbc65c7f86483adcab963b26c57655a1 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment