Created
December 15, 2020 14:31
-
-
Save Whateverable/b0939ac45971783cb8318f5c2bcbf593 to your computer and use it in GitHub Desktop.
bisectable6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sub a(:$foo) { dd $foo }; &a.wrap: { LEAVE say now - ENTER now; callsame }; a :foo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bisecting: 139 revisions left to test after this (roughly 7 steps) | |
[32b3ddc7e10090427d5a78f48ab4ee5161d2cfcd] Micro-optimize ORDER() by about 7% | |
»»»»» Testing 32b3ddc7e10090427d5a78f48ab4ee5161d2cfcd | |
»»»»» 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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is identical | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing f0c85125f86193a0bfa5b7e7c88b1c5a3fcb6901 | |
»»»»» 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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is identical | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing f6756bb4d9b8b43a55a613a1a2fc85a8c6d379c0 | |
»»»»» 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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is identical | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing fa979c9227033a80302f12612eb8c05e654e338b | |
»»»»» Script output: | |
Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu) | |
in block <unit> at /tmp/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is different | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing d443076dab818722c077e9733419b5af2b6aabb3 | |
»»»»» Script output: | |
Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu) | |
in block <unit> at /tmp/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is different | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 20ccaccad7b632d32280833b8a36f481c7286e02 | |
»»»»» 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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is identical | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing a3a7c142a48026db434893e79930478efba926c9 | |
»»»»» 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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is identical | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 4b5d36f3a8dff65cb41d4c3747c3f15e6fa36cbb | |
»»»»» Script output: | |
Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu) | |
in block <unit> at /tmp/37JO6ZBS9E line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by output | |
»»»»» Output on “old” revision is: | |
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 \r, Real:D \v) | |
(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/37JO6ZBS9E line 1 | |
»»»»» The output is different | |
»»»»» Therefore, marking this revision as “new” | |
4b5d36f3a8dff65cb41d4c3747c3f15e6fa36cbb is the first new commit | |
commit 4b5d36f3a8dff65cb41d4c3747c3f15e6fa36cbb | |
Author: Zoffix Znet <cpan@zoffix.com> | |
Date: Sat Apr 21 06:06:37 2018 +0000 | |
Fix up proto .arity/.count for all core multi subs | |
Fixes https://github.com/rakudo/rakudo/issues/1739 | |
THIS COMMIT HAS REGRESSION IN OPTIMIZATION of rewriting | |
stuff like `*` with natives to `mul_i`. That still needs | |
to be looked at. | |
- Match .count to highest count of all candidates | |
- Match .arity to lowest arity of all candidates | |
- Add a named slurpy to allow for user extension | |
- Remove `Mu` proto params on non-Mu subs | |
- Widen & and @ params in protos to allow Any in | |
case user wants to add such candidates (the same don't | |
apply to `Mu` removal, because `Mu` changes semantics by | |
preventing autothreading of Junctions, so that's sorta | |
in a different category. | |
:040000 040000 154dabaf4a12936bdd4eb347785f3be5d323b49c 9eec937843eacccbbca0283fae462a70b095407d M src |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment