Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created May 15, 2020 16:25
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/e66698bb55b083a0b55afc54f7e57a5b to your computer and use it in GitHub Desktop.
Save Whateverable/e66698bb55b083a0b55afc54f7e57a5b to your computer and use it in GitHub Desktop.
bisectable6
2020.02 say [0,1,2,3,4,5], *.rotate(-1) … !*.tail;
Bisecting: 256 revisions left to test after this (roughly 8 steps)
[87d2ff9536660a4b37741346958d30a834e3a1bb] Fix Parameter.raku with OUTER default values
»»»»» Testing 87d2ff9536660a4b37741346958d30a834e3a1bb
»»»»» Script output:
([0 1 2 3 4 5] [5 0 1 2 3 4] [4 5 0 1 2 3] [3 4 5 0 1 2] [2 3 4 5 0 1] [1 2 3 4 5 0])
»»»»» 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 f32210a99b837515161c8aec8203652cc726757c
»»»»» Script output:
([0 1 2 3 4 5] [5 0 1 2 3 4] [4 5 0 1 2 3] [3 4 5 0 1 2] [2 3 4 5 0 1] [1 2 3 4 5 0])
»»»»» 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 25f8395cf59e2067880b5963026d78f31518741b
»»»»» Script output:
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at /tmp/Yp3tpPNnSF 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 3d6756b3d839cffe2ac3efd0f985e7af2070b3d1
»»»»» Script output:
([0 1 2 3 4 5] [5 0 1 2 3 4] [4 5 0 1 2 3] [3 4 5 0 1 2] [2 3 4 5 0 1] [1 2 3 4 5 0])
»»»»» 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 6a79e18fbc580b8ca0b39006f3ea618282b2d319
»»»»» Script output:
([0 1 2 3 4 5] [5 0 1 2 3 4] [4 5 0 1 2 3] [3 4 5 0 1 2] [2 3 4 5 0 1] [1 2 3 4 5 0])
»»»»» 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 0ca0f58722e5bb2f551162a528b5a758405d047d
»»»»» Script output:
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at /tmp/Yp3tpPNnSF 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 de173a18cb98f601d89188b655ce4ec0d450cc18
»»»»» Script output:
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at /tmp/Yp3tpPNnSF 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 4a3f29db113a2449e911e2bb2ba4441b69766b86
»»»»» Script output:
([0 1 2 3 4 5] [5 0 1 2 3 4] [4 5 0 1 2 3] [3 4 5 0 1 2] [2 3 4 5 0 1] [1 2 3 4 5 0])
»»»»» 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 4b501bd45f54f911837f70ae59a5204ac3cf6ec0
»»»»» Script output:
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at /tmp/Yp3tpPNnSF 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”
4b501bd45f54f911837f70ae59a5204ac3cf6ec0 is the first new commit
commit 4b501bd45f54f911837f70ae59a5204ac3cf6ec0
Author: Elizabeth Mattijsen <liz@wenzperl.nl>
Date: Thu May 7 14:43:31 2020 +0200
Make .rotate return a Seq, rather than a List, saves memory
- Add R:It.ReifiedRotate to produce rotated values from a reified list
- Adapt List/Shaped1Array.rotate to use new iterator
- Add Array.rotate to use new iterator, making sure it uses right descriptor
- Add R:It.RotateIterator to produce rotated values from an iterator
- Add Seq.rotate to use this iterator
- Remove R:In.RotateListToList, it is no longer needed
This change is mostly about memory usage, so will be most visible when
applying .rotate on large lists / arrays. Instead of basically creating a
clone of the list / array with the values in the right order, it produces
the values on the fly, preventing a potentially costly copy.
This also makes sure that .rotate produces containers with the right
descriptor for list/arrays with holes in them.
The Seq.rotate case does not need reification at all if the rotation value
is greater than 0.
This requires some tweaking in roast, as there are some tests assuming that
.rotate always returns a list / array, rather than a Seq. This is currently
also documented that way, which should also change.
This change makes .rotate also to be in line with .reverse, which seems
sensible to me.
Finally, done this in one giant commit, so that it can be easily reverted
should that be necessary.
:040000 040000 31f4259081f922df96bd4699308ed77df4d93a25 7b17b2d40af1435f6a928d0ee4c229ee9175e92f M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment