Created
January 20, 2017 20:20
-
-
Save Whateverable/877f61a45080d12fa694e1560a55542f 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 clip-to ($min, $v is rw, $max) { $v = ($min max $v) min $max }; sub blah ( Array() :$rgbd ) { clip-to 0, $_, 255 for @$rgbd; }; blah(rgbd => <.086, .165, .282> ); |
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: 1590 revisions left to test after this (roughly 11 steps) | |
[aa5e4945a2afb16360b567147ff58b747f2cee5e] Mark some more BUILD's as --> Nil | |
»»»»» Testing aa5e4945a2afb16360b567147ff58b747f2cee5e | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing ce85ba378d295a120b7c75ee865a960aae132a36 | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 82e636daf8055076d700b876db4ff2f102bbc95e | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing f9ed7300fc4c3b8f6b170f2dd80099f3c65fca43 | |
»»»»» Script output: | |
P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value | |
in sub clip-to at /tmp/BqhcZzfRI0 line 1 | |
in sub blah at /tmp/BqhcZzfRI0 line 1 | |
in block <unit> at /tmp/BqhcZzfRI0 line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 1, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 1ee24cc5a4ddef6deab3616b68605e5105ac1b3f | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 2c2934784da8a63c3a1e3f20a7e58fe7b4ef9581 | |
»»»»» Script output: | |
P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value | |
in sub clip-to at /tmp/BqhcZzfRI0 line 1 | |
in sub blah at /tmp/BqhcZzfRI0 line 1 | |
in block <unit> at /tmp/BqhcZzfRI0 line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 1, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing db1836a45d7c08917f0fdbf7186bbc0e3f3f4247 | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 3383361189bcd3a03c6b085746eb1109dfce953e | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing 87fefa9c7052cf65925d1e11f8831b0c8da4a59d | |
»»»»» Script output: | |
P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value | |
in sub clip-to at /tmp/BqhcZzfRI0 line 1 | |
in sub blah at /tmp/BqhcZzfRI0 line 1 | |
in block <unit> at /tmp/BqhcZzfRI0 line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 1, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing a567eb44cae0cdae0b83e7f37ae3ddaa2743df24 | |
»»»»» Script output: | |
P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value | |
in sub clip-to at /tmp/BqhcZzfRI0 line 1 | |
in sub blah at /tmp/BqhcZzfRI0 line 1 | |
in block <unit> at /tmp/BqhcZzfRI0 line 1 | |
»»»»» Script exit code: 1 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 1, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “new” | |
»»»»» ------------------------------------------------------------------------- | |
»»»»» Testing afb6d654ac9c1800ab20b7016c9ca701ccbb9c30 | |
»»»»» Script output: | |
»»»»» Script exit code: 0 | |
»»»»» Bisecting by exit code | |
»»»»» Current exit code is 0, exit code on “old” revision is 0 | |
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new” | |
»»»»» Therefore, marking this revision as “old” | |
»»»»» ------------------------------------------------------------------------- | |
a567eb44cae0cdae0b83e7f37ae3ddaa2743df24 is the first new commit | |
commit a567eb44cae0cdae0b83e7f37ae3ddaa2743df24 | |
Author: Zoffix Znet <cpan@zoffix.com> | |
Date: Fri Dec 30 19:32:58 2016 +0000 | |
Fix infix:<cmp>(Real,Real) with 0-denominator Rationals | |
We have adopted[^1] IEEE 754-2008 semantics for 0-denominator rationals, | |
so that <0/0> is NaN, <-1/0> is -Inf, and <1/0> is Inf when .Num'ed. | |
However, currently infix:<cmp>(Real:D, Real:D) candidate short-cuircuits | |
when one of the arguments is Num(±Inf), which causes incorrect comparison | |
results when the other argument is one of the aforementioned Rats. | |
Fix by detecting whether we have a 0-denominator Rational before trying to | |
short-curcuit with the Num(±Inf) logic. This method is most optimal I could | |
find, with other methods I tried giving 50%–300% slowdowns. The current | |
method gives about a 4%–8% slowdown, depending on the types of Reals compared. | |
The worst hit of 22% was when comparing Rational against another Rational, | |
so I added another infix:<cmp>(Rational, Rational) candidate, which actually | |
made Rational cmp Rational 150% *faster*. Since this candidate is ambiguious | |
with Real,Real candidate, I had to stick `is default` on it, but because | |
`is default` uses `does` operator that doesn't appear until later in the | |
setting, I had to define this new infix:<cmp> candidate in src/core/operators | |
instead of src/core/Order. | |
This commit also 99% fixes the .in-range(0/0) ticket[^2], except for the | |
small adjustment still needed in the exception it generates. | |
[1] https://github.com/rakudo/rakudo/commit/1f3ca6469759c79aa809d60a7741b3a | |
[2] https://rt.perl.org/Ticket/Display.html?id=130452#ticket-history | |
:040000 040000 530b38b75e7a677665f24e124eb3cbd4606ca91d 992295a1047e3210baeb92ee4d0b836df8261bf2 M src |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment