Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created Dec 15, 2020
Embed
What would you like to do?
bisectable6
sub a(:$foo) { dd $foo }; &a.wrap: { LEAVE say now - ENTER now; callsame }; a :foo
Bisecting: 109 revisions left to test after this (roughly 7 steps)
[1c64946185df2e878c001663b57ed88e8bd185f0] Actually use new-from-git-describe in Compiler.new
»»»»» Testing 1c64946185df2e878c001663b57ed88e8bd185f0
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing f89a71950994cc1e93866e80f5ac4eb0728a08a5
»»»»» Script output:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing e1a8b1d90758e67456c632ae66c41e2cb129df92
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing cde0cabfd3caaec4cf17624f48b98a309bc3943a
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 2c36ab2ef94b3f94053be4880ab19cbfca5af617
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 4d2b54ebe8993a4e332a699775c00a9f23af699c
»»»»» Script output:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 7f07f68fdf2b2d505a16a8f14ea228ff00ce1eb2
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 58de239cc90bb3a26a055dd4f7d70c055bee20ae
»»»»» Script output:
Cannot resolve caller infix:<->(Instant, Mu); none of these signatures match:
($x = 0)
(\a, \b)
(Real \a, Real \b)
(Int:D \a, Int:D \b --> Int:D)
(int $a, int $b --> int)
(Num:D \a, Num:D \b)
(num $a, num $b --> num)
(Range:D \a, Real:D \b)
(Rational:D \a, Rational:D \b)
(Rational:D \a, Int:D \b)
(Int:D \a, Rational:D \b)
(Complex:D \a, Complex:D \b --> Complex:D)
(Complex:D \a, Real \b --> Complex:D)
(Real \a, Complex:D \b --> Complex:D)
(Instant:D $a, Instant:D $b)
(Instant:D $a, Real:D $b)
(Duration:D $a, Real $b)
(Duration:D $a, Duration:D $b)
(DateTime:D \a, DateTime:D \b)
(DateTime:D \a, Duration:D \b)
(Date:D $d, Int:D $x)
(Date:D $a, Date:D $b)
in block <unit> at /tmp/8qnwgL0YUY line 1
»»»»» Script exit code: 1
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
===SORRY!===
Cannot reference undeclared local 'enter_result__1'
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
58de239cc90bb3a26a055dd4f7d70c055bee20ae is the first new commit
commit 58de239cc90bb3a26a055dd4f7d70c055bee20ae
Author: Zoffix Znet <cpan@zoffix.com>
Date: Tue Jan 30 05:43:04 2018 -0500
Fix crash with ENTER nested inside LEAVE
Phixes https://github.com/rakudo/rakudo/issues/1455
The combination of phasers results in ENTER trying to access an out
of scope local var. Fix by using a lexical var instead when
constructing the QAST. The static optimizer lowers it to a local
for us, whenever that's possible.
:040000 040000 91a771ff3294f26519c9736c998e025231230dc4 25bd5bf2c7d8896ad96cc54aa5b323a3f65fce70 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment