On Mon, 24 Apr 2017 15:32:33 -0700, alex.jakime...@gmail.com wrote:
> Run this:
> perl6 --target=ast -e '^…'
> 
> And among normal lines from the output you will see these messages:
> 
> Oops!!! Cannot invoke this object (REPR: P6opaque; NQPMu)
> 
> I don't think it should happen.
> 
> 
> Full output here:
> 
> - QAST::CompUnit  :W<?> :UNIT<?>
>   [pre_deserialize]
>      - QAST::Stmt
>        - QAST::Stmt
>          - QAST::Op(loadbytecode)
>            - QAST::VM
>             [jvm]
>                - QAST::SVal(ModuleLoader.class)
>             [moar]
>                - QAST::SVal(ModuleLoader.moarvm)
>          - QAST::Op(callmethod load_module)
>            - QAST::Op(gethllsym)
>              - QAST::SVal(nqp)
>              - QAST::SVal(ModuleLoader)
>            - QAST::SVal(Perl6::ModuleLoader)
>        - QAST::Op(forceouterctx)
>          - QAST::BVal(2)
>          - QAST::Op(callmethod load_setting)
>            - QAST::Op(getcurhllsym)
>              - QAST::SVal(ModuleLoader)
>            - QAST::SVal(CORE)
>   [post_deserialize]
>      - QAST::Stmts
>        - QAST::Op(bind)
>          - QAST::Var(attribute $!do)
>            - QAST::WVal(Block)
>            - QAST::WVal(Code)
>          - QAST::BVal(1)
>      - QAST::Op(bindcurhllsym)
>        - QAST::SVal(GLOBAL)
>        - QAST::WVal(GLOBAL)
>   [load]
>      - QAST::Op(call)
>        - QAST::BVal(2)
>   [children]
>     - QAST::Block  :in_stmt_mod<?> ^…
>        - QAST::Var(local __args__ :decl(param))
>         - QAST::Stmts
>        - QAST::Op(call)
>         - QAST::Block(:blocktype(declaration_static))
> :IN_DECL<mainline> :in_stmt_mod<?> :code_object<?> :outer<?>
>             - QAST::Stmts
>              - QAST::Var(lexical $¢ :decl(contvar))
>              - QAST::Var(lexical $! :decl(contvar))
>              - QAST::Var(lexical $/ :decl(contvar))
>              - QAST::Var(lexical $_ :decl(contvar))
>              - QAST::Var(lexical GLOBALish :decl(static))
>              - QAST::Var(lexical EXPORT :decl(static))
>              - QAST::Var(lexical $?PACKAGE :decl(static))
>              - QAST::Var(lexical ::?PACKAGE :decl(static))
>              - QAST::Var(lexical $=finish :decl(static))
>              - QAST::Var(lexical $=pod :decl(static))
>               [value]
>                  -
>              - QAST::Var(lexical !UNIT_MARKER :decl(static))
>            - QAST::VM
>             [jvm]
>                - QAST::Op(null)
>             [moar]
>                - QAST::Op(null)
>             [loadlibs]
>               - nqp_group nqp_ops perl6_ops bit_ops math_ops trans_ops
> io_ops obscure_ops os file sys_ops nqp_bigint_ops nqp_dyncall_ops
>            - QAST::Stmts
>              - QAST::Op(bind)
>                - QAST::Var(local ctxsave :decl(var))
>                - QAST::Var(contextual $*CTXSAVE)
>              - QAST::Op(unless)
>                - QAST::Op(isnull)
>                  - QAST::Var(local ctxsave)
>                - QAST::Op(if)
>                  - QAST::Op(can)
>                    - QAST::Var(local ctxsave)
>                    - QAST::SVal(ctxsave)
>                  - QAST::Op(callmethod ctxsave)
>                    - QAST::Var(local ctxsave)
>            - QAST::Stmts
>              - QAST::WVal(Array)
>             - QAST::Stmts <sunk> ^…
>               - QAST::Stmt <sunk final> ^…
>                 - QAST::Want <sunk>
>                   - QAST::Op(call &prefix:<^>) <sunk> :statement_id<?>
> ^
>                     - QAST::Op(call &fail) <wanted> …
>                       - QAST::Op(callmethod new) <wanted>
>                         - QAST::WVal(X::StubCode) <wanted>
> Oops!!! Cannot invoke this object (REPR: P6opaque; NQPMu)
>                   - v
>                    - QAST::Op(p6sink)
>                     - QAST::Op(call &prefix:<^>) <sunk>
> :statement_id<?> ^
>                       - QAST::Op(call &fail) <wanted> …
>                         - QAST::Op(callmethod new) <wanted>
>                           - QAST::WVal(X::StubCode) <wanted>
> Oops!!! Cannot invoke this object (REPR: P6opaque; NQPMu)
>              - QAST::WVal(Nil)

Fixed with commit 
https://github.com/rakudo/rakudo/commit/49dce163e8182ee726cd1e512a03c29551cc16da

Found by bisectbot++ using:
bisect: my $p = run :out, <perl6 --target=ast -e ^…>; say 
$p.out.slurp-rest.contains: ‘Oops’ 

Tests should not be added to roast, rather 
https://github.com/rakudo/rakudo/tree/master/t

Reply via email to