Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

“Oops!!!” when using --target=ast (^…) #6207

Open
p6rt opened this issue Apr 24, 2017 · 3 comments
Open

“Oops!!!” when using --target=ast (^…) #6207

p6rt opened this issue Apr 24, 2017 · 3 comments

Comments

@p6rt
Copy link

p6rt commented Apr 24, 2017

Migrated from rt.perl.org#131206 (status was 'open')

Searchable as RT131206$

@p6rt
Copy link
Author

p6rt commented Apr 24, 2017

From @AlexDaniel

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)

@p6rt
Copy link
Author

p6rt commented Mar 10, 2018

From @dogbert17

On Mon, 24 Apr 2017 15​:32​:33 -0700, alex.jakimenko@​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 rakudo/rakudo@49dce16

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

@p6rt
Copy link
Author

p6rt commented Mar 10, 2018

The RT System itself - Status changed from 'new' to 'open'

@p6rt p6rt added the testneeded label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant