Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created January 20, 2017 20:20
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/877f61a45080d12fa694e1560a55542f to your computer and use it in GitHub Desktop.
Save Whateverable/877f61a45080d12fa694e1560a55542f to your computer and use it in GitHub Desktop.
bisectable6
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> );
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