On Fri, 07 Oct 2016 14:03:39 -0700, barto...@gmx.de wrote: > I think the p6bool is removed here: > https://github.com/rakudo/rakudo/blob/605f272881a76f0c5a9e352670a1e61eaa627ca6/src/Perl6/Optimizer.nqp#L1300 > > As far as I understand, the following code shows the problem at a > lower level (no differentiation between optimize=(1|2) required -- it > happens on all levels): > > $ ./perl6-m --optimize=off -e 'use nqp; say > nqp::unless(nqp::p6bool(nqp::iseq_i(42,42)), False)' > True > > $ ./perl6-m --optimize=0 -e 'use nqp; say > nqp::unless(nqp::p6bool(nqp::iseq_i(42,42)), False)' > 1 > > I have no idea how it can be fixed, though. Maybe it's not even > feasible to do what the comment above the relevant code block > promises? > > # Some ops have first boolean arg, and we may be able to get rid of > # a p6bool if there's already an integer result behind it.
Looks as if this was fixed with https://github.com/rakudo/rakudo/commit/f8b3469439108fead043bab2bd27bde4bac50dca. Tests needed.