Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created December 9, 2016 19:15
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/a7b60bcf6fb4ab9fea6d3c468dc531e6 to your computer and use it in GitHub Desktop.
Save Whateverable/a7b60bcf6fb4ab9fea6d3c468dc531e6 to your computer and use it in GitHub Desktop.
bisectable6
old=2016.10 new=HEAD die if 'foo'.match(/d/, :g) ~~ Slip
Bisecting: 243 revisions left to test after this (roughly 8 steps)
[f5bf6c19f48e50ba0b70422f61aeca3744354d8f] Make creation of typed shaped arrays 15% faster
»»»»» Testing f5bf6c19f48e50ba0b70422f61aeca3744354d8f
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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 07eeea8084cd58c1132ee8fabd4572d5c3aa7a2d
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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 ab11e6a9707432fee313358b81355bc763b8e009
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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 6319b5573cb4b3c074d081facb1cf912234b11f9
»»»»» 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 f09b8b7b8a0412c43a384f7b9c53be35ff35176a
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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 c9425931ba8c5622c03e1bf88747c69e54092280
»»»»» 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 41e2572051967dc391de33ea6339b2389bd5728e
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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 127b3be424e3119ac6f1aed4673ad0fc1c50fb10
»»»»» 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 b7201a8f22338a906f2d8027a21387e8f5c77f41
»»»»» Script output:
Died
in block <unit> at /tmp/YWkmru2SlN 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”
»»»»» -------------------------------------------------------------------------
b7201a8f22338a906f2d8027a21387e8f5c77f41 is the first new commit
commit b7201a8f22338a906f2d8027a21387e8f5c77f41
Author: Elizabeth Mattijsen <liz@dijkmat.nl>
Date: Sun Oct 23 21:52:51 2016 +0200
Completely re-imagine Str.match internals
Simple matches without any modifying adverbs is about 1.5x faster.
Complicated setups like with :nth(1,3..*), :3x are about 14x faster.
Other mixes of parameters are generally in the 2x to 3x faster range.
Two semantic changes: (see RT #129945): the family of :nth (as in :st,
:nd, :rd and :th) are now lazy and will return whatever they can find.
Before all matches would be cached to find out if enough matches were
found and none would be returned if not enough were found. Please
use an additional :x for that if you want that behaviour. Also, when
using .nth with an iterator using non-monotonically increasing index
values, it will now die, instead of silently not producing the Matchi
object associated with the non-monotonically increasing index value.
How this was done:
- use MMD for handling single adverb calls faster
- rewrite all (private) methods using nqp
- use iterators instead of gather/take combo's
- use new "skip-one" iterator methods wherever possible
- don't use signatures for multiple named variables
- pass $/ to be set around as a parameter
:040000 040000 310922caf347317b45596f65c9a108c5b4ef6836 898eea463f82db6215203f8380e2753429a1a439 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment