Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created February 17, 2018 03:34
Show Gist options
  • Save Whateverable/5122ed84d14717f350ccac195e1d856b to your computer and use it in GitHub Desktop.
Save Whateverable/5122ed84d14717f350ccac195e1d856b to your computer and use it in GitHub Desktop.
bisectable6
https://gist.githubusercontent.com/AlexDaniel/9a48442edbfee6a6d56f237dbb74587d/raw/901eb4d580dcd35bbb3be6877bc5020395541138/%25C2%25AB%257B%257D%25C2%25BB.p6
Bisecting: 3432 revisions left to test after this (roughly 12 steps)
[9dab48c86c9904d1b8bed3e658248fda6626e4e1] Merge branch 'nom' into braids
»»»»» Testing 9dab48c86c9904d1b8bed3e658248fda6626e4e1
»»»»» Cannot test this commit. Reason: Commit exists, but a perl6 executable could not be built for it
»»»»» Therefore, skipping this revision
»»»»» -------------------------------------------------------------------------
»»»»» Testing d61eaed8baa2483e358aa33547e57eea4f705713
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 59f6f485058e69e1167aad90f4dc2896d7f222de
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 0d600a0cb606e59224b89049a472279c3acbafd2
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 88a9cb259e2428cafd514c011cfa242fefb1f1a1
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 6e13bfa29bddffd61b7b75a4aef1060cf14b20b6
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 5be174bbe46e2cf03ae3e6691ed6004a2a190289
»»»»» Script output:
HERE: foo 11199
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing efdbfecad027700d44b435e93e37109035e18ea1
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 7361fe2b6d8f8e3b22173555d140e6b7104d30e4
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 45560ac9ac3dd1445fc11f033d9407b403982d05
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 7c8bbc8dad6a372a973a78bfc4c7e747514962c8
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 1ee89b54074e80c0753a120d679c6265bd8d5d1f
»»»»» Script output:
HERE: foo 11199
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 1676359bcdfc99559b1a646656abe0ae9953dca2
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing a2499c90fc06cf2066c0ff4f66b01ef546ec84d1
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing a5c2398cc744706eb81b3d73b181cb4233c85a17
»»»»» Script output:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
HERE: foo 11199
HERE: foo 22299
HERE: foo 33399
HERE: foo 44499
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
1ee89b54074e80c0753a120d679c6265bd8d5d1f is the first new commit
commit 1ee89b54074e80c0753a120d679c6265bd8d5d1f
Author: Zoffix Znet <cpan@zoffix.com>
Date: Fri Jan 26 10:48:21 2018 +0000
Fix block migration in thunk gen; skids++ for the assist
Phixes https://github.com/rakudo/rakudo/issues/1212
Fixes RT#130575: https://rt.perl.org/Ticket/Display.html?id=130575
Fixes RT#132337: https://rt.perl.org/Ticket/Display.html?id=132337
Fixes RT#131548: https://rt.perl.org/Ticket/Display.html?id=131548
Fixes RT#132211: https://rt.perl.org/Ticket/Display.html?id=132211
Fixes RT#126569: https://rt.perl.org/Ticket/Display.html?id=126569
Fixes RT#128054: https://rt.perl.org/Ticket/Display.html?id=128054
Fixes RT#126413: https://rt.perl.org/Ticket/Display.html?id=126413
Fixes RT#126984: https://rt.perl.org/Ticket/Display.html?id=126984
Fixes RT#132172: https://rt.perl.org/Ticket/Display.html?id=132172
All of the bugs in the tickets are caused by mis-scoped blocks
resulting in p6capturelex failing to set outers correctly, and thus
resulting in issues with updating of values in lexicals. The
mis-scoping occurs during migration of blocks when we're generating
thunks with causes being one or several of:
1) WhateverCode QAST missing `statement_id` annotation, resuling in
migration predicate being false, and thus not migrating the QAST
2) andthen/notandthen/orelse thunks being nested into one another
instead of being alongside each other, as these operators aren't
chained and instead are called with all the thunks present in
a single operator call
3) Missing truthy `in_stmt_mod` annotation on first argument of the
andthen/notandthen/orelse calls. These aren't thunked for the
operator call, but they can have thunks due to other constructs
present in them, so they need the annotation for proper migration
4) Present truthy `in_stmt_mod` annotation on non-first arguments
of the andthen/notandthen/orelse calls. This occurs when we
have one of these operators as a conditional in one of the
statement modifiers. Mis-migration occurs because despite being
in non-first argument of the operator, the migrator still thinks
we're directly in statement modifier code
5) We can have sub-staments within our thunks that get an increased
statement ID, but the migrator only migrates blocks with the same
statement ID as the thunk itself, missing substatements
Fix all the issues with:
- Add `statement_id` annotation to WhateverCode QAST
- Annotate andthen/notandthen/orelse thunks and make migrator skip
them, which avoids unwanted nesting
- Specially annotate first argument of andthen/notandthen/orelse
ops with `in_stmt_mod_andnotelse` annotation to ensure we
migrate any thunks inside appropriately. We can't just re-use
`in_stmt_mod` annotation here, since we need to address cause
(4) above as well, so we have two separate annotations and a
somewhat convoluted migrator condition that covers all the cases
- Look for statement IDs equal to *or greater* than our thunk.
This ensures all substatement inside our thunk get migrated right,
as only blocks that have greater ID than us at this point in time
would all be from within our thunk.
:040000 040000 0b9ed812131253a73e83338a57cb1fea9f6b5108 e8c0952a86f35e8c82ccb53f3ecfdd4f29a98843 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment