Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created April 6, 2018 19:34
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/6a723e370de877d7bb0f62673d24844b to your computer and use it in GitHub Desktop.
Save Whateverable/6a723e370de877d7bb0f62673d24844b to your computer and use it in GitHub Desktop.
bisectable6
unit package A; our sub need() {}; for <s> { A::need }
Bisecting: 3614 revisions left to test after this (roughly 12 steps)
[8b76ce8c90e9ce1fe4e1f98e2654eecbf2dcd1c0] Change USAGE generation
»»»»» Testing 8b76ce8c90e9ce1fe4e1f98e2654eecbf2dcd1c0
»»»»» 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 0ca5ffa408b60ba67a41b26cd13e609e4d12ead7
»»»»» 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 4755228249e6bc056e533b553cbb38ce934b5b77
»»»»» 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 43859b54d5f1a0fda26a3a3c9b39260428c2d007
»»»»» 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 db010b847a2496ffd61e7ec0eb1e82482081c9ed
»»»»» Script output:
Cannot find method 'Nil' on object of type List
in block at /tmp/XbDOF94eF5 line 1
in block <unit> at /tmp/XbDOF94eF5 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 e3c4db732b0e435cf01cc8fb1f699bcefd60cae4
»»»»» 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 038837f8b292313e02a6f68763e0264a8a780198
»»»»» Script output:
Cannot find method 'Nil' on object of type List
in block at /tmp/XbDOF94eF5 line 1
in block <unit> at /tmp/XbDOF94eF5 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 36caa18a564305931282ba9f253ff0695505df67
»»»»» 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 c1d2a5bc4f17a734fa1329b62cd2f2cd7be80d38
»»»»» Script output:
Cannot find method 'Nil' on object of type List
in block at /tmp/XbDOF94eF5 line 1
in block <unit> at /tmp/XbDOF94eF5 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 4c5b81fedb7434b2356f8019e30061be2deedf66
»»»»» Script output:
Cannot find method 'Nil' on object of type List
in block at /tmp/XbDOF94eF5 line 1
in block <unit> at /tmp/XbDOF94eF5 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 2a8b17ae9c6f886edafb1e510e6abb7c10c69d82
»»»»» 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 639c6da0cec8051a916eaeed99f79183f524c794
»»»»» 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 7c1a6cac7791888e237e6a7f4ac0e6cbf5b0974a
»»»»» 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”
»»»»» -------------------------------------------------------------------------
4c5b81fedb7434b2356f8019e30061be2deedf66 is the first new commit
commit 4c5b81fedb7434b2356f8019e30061be2deedf66
Author: Zoffix Znet <cpan@zoffix.com>
Date: Mon Feb 26 17:40:04 2018 +0000
Fix failure to sink last statements of `for` loops
Fixes R#1531 https://github.com/rakudo/rakudo/issues/1531
Also fixes lack of explosion in `sub foo {fail}; foo for ^1`
In `for` loops, users would tend to expect last statement to get
sunk, but because our for loops are basically `.map` calls, they
don't. For methods calls, we already specially sink them if they're
the last statement, so `Failure.new for ^1` *does* blow up. But
we don't do anything for nqp::calls, which is why `sub foo {fail};
foo for ^1` doesn't blow up.
This patch fixes that problem and fixes stuff like $a Z+= 1 that
returns a Seq that actually needs to get sunk to perform the work.
There's nothing wrong with the patch as far as I can see, except
for one thing: it degrades performance by 8% when measured with
`sub foo {my $x}; { for ^14000_000 { foo }; say now - ENTER now }`
When I ran the stresstest, it too came out 8% slower than my earlier
runs. So... I'm kinda hesitant about pushing this to master.
:040000 040000 fde082e3bd361118aebfa4a62324ac005a6f93d4 2d9419853fe408d8f1279f5480a076e26b393427 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment