Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created January 5, 2023 01:01
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/65e8a90a5f4dc00317ff064eb3e9393a to your computer and use it in GitHub Desktop.
Save Whateverable/65e8a90a5f4dc00317ff064eb3e9393a to your computer and use it in GitHub Desktop.
bisectable6
sub demo(-->int32) { 42 }; say Bool(demo());
Bisecting: 80 revisions left to test after this (roughly 6 steps)
[4ea2ca2d18db52b6ee70c4d8cdea62ffdc91ed09] Merge pull request #4627 from MasterDuke17/consistently_use_is-raw_for_(Mix|Bag|Set)Hash_.values
»»»»» Testing 4ea2ca2d18db52b6ee70c4d8cdea62ffdc91ed09
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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 665adc06c3ff615d6e3a931d088b60546fea6681
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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 8fd65670f8fb05cb4472e934a5a9f4ed24e63dbd
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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 15ed1566ad4b4cd9163388850ef6e2180f75bd2d
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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 736ffd2281ac434def21d685a4b440f8e319de75
»»»»» Script output:
True
»»»»» 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 a3c68bdf56e3920b594c292dfe30a5ad674e204a
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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 6bd955e6ea131dee6794256f5bf0da8018c3e095
»»»»» Script output:
Impossible coercion from 'Int' into 'Bool': value is of unacceptable type BOOTInt
in block <unit> at /tmp/6LQrtLDbMa 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”
6bd955e6ea131dee6794256f5bf0da8018c3e095 is the first new commit
commit 6bd955e6ea131dee6794256f5bf0da8018c3e095
Author: Stefan Seifert <nine@detonation.org>
Date: Sun Oct 24 16:44:49 2021 +0200
Fix unnecessary boxing by routines with native return types
Commit 3cc9d765b2b350c9d15d0164ed53a9914b333afb caused a regression that made
us box natively typed return values of called routines. Before this the
optimizer copied the return type from the routine to the call QAST::Op node.
After the type got added to the QAST::Want node instead. This made code-gen
always emit invoke_o/dispatch_o instead of natively typed versions.
Fix by copying the type to both the QAST::Op and QAST::Want nodes. However we
don't do so for lvalue routines as those must return containers that can be
assigned into.
src/Perl6/Optimizer.nqp | 3 ++-
tools/templates/NQP_REVISION | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment