Skip to content

Instantly share code, notes, and snippets.

@lizmat

lizmat/A.rakumod Secret

Last active June 28, 2023 09:48
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 lizmat/91930d595ca585097a4b069953a8f26a to your computer and use it in GitHub Desktop.
Save lizmat/91930d595ca585097a4b069953a8f26a to your computer and use it in GitHub Desktop.
Problem with precompilation / compile time / RakuAST
# store this as lib/A.rakumod
use v6.*;
class A {
my sub bar($a,$b) { "$a:$b" }
method foo() {
RakuAST::Sub.new(
name => RakuAST::Name.from-identifier("b"),
body => RakuAST::Blockoid.new(
RakuAST::StatementList.new(
RakuAST::Statement::Expression.new(
expression => RakuAST::Call::Name.new(
name => RakuAST::Name.from-identifier("bar"),
args => RakuAST::ArgList.new(
RakuAST::IntLiteral.new(42),
RakuAST::IntLiteral.new(666)
)
)
)
)
)
).EVAL
}
}
#my constant $foo = A.foo; # fails
my $foo = A.foo; # works
say $foo()
$ raku -Ilib -MA --ll-exception -e ''
chars requires a concrete string, but got null
at NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:920 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:serialize_sc)
from NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:925 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:deserialization_code)
from NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:866 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:compile_node)
from NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:700 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:as_mast)
from NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:420 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:to_mast)
from NQP::src/vm/moar/QAST/QASTCompilerMAST.nqp:2217 (/Users/liz/Github/rakudo/install/share/nqp/lib/QAST.moarvm:to_mast)
from NQP::src/vm/moar/HLL/Backend.nqp:794 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:mast)
from NQP::src/HLL/Compiler.nqp:462 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:execute_stage)
from NQP::src/HLL/Compiler.nqp:501 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:run)
from NQP::src/HLL/Compiler.nqp:504 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:)
from NQP::src/HLL/Compiler.nqp:496 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:compile)
from NQP::src/HLL/Compiler.nqp:166 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:eval)
from NQP::src/HLL/Compiler.nqp:441 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
from NQP::src/HLL/Compiler.nqp:364 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
from src/Perl6/Compiler.nqp:233 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from NQP::src/HLL/Compiler.nqp:289 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_line)
from src/main.nqp:81 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:MAIN)
from src/main.nqp:63 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<entry>)
at SETTING::src/core.c/Exception.pm6:65 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:throw)
from SETTING::src/core.c/control.pm6:255 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:die)
from SETTING::src/core.c/CompUnit/PrecompilationRepository.pm6:461 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:precompile)
from SETTING::src/core.c/CompUnit/PrecompilationRepository.pm6:55 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:try-load)
from SETTING::src/core.c/CompUnit/Repository/FileSystem.pm6:116 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:)
from SETTING::src/core.c/CompUnit/Repository/FileSystem.pm6:110 (/Users/liz/Github/rakudo/install/share/perl6/runtime/CORE.c.setting.moarvm:need)
from src/Perl6/World.nqp:1501 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/World.moarvm:load_module)
from src/Perl6/World.nqp:1439 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/World.moarvm:do_pragma_or_load_module)
from src/Perl6/World.nqp:816 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/World.moarvm:comp_unit_stage1)
from src/Perl6/Grammar.nqp:839 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/Grammar.moarvm:comp_unit)
from src/Perl6/Grammar.nqp:554 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/Grammar.moarvm:TOP)
from NQP::src/QRegex/Cursor.nqp:1224 (/Users/liz/Github/rakudo/install/share/nqp/lib/QRegex.moarvm:parse)
from NQP::src/HLL/Compiler.nqp:553 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:parse)
from NQP::src/HLL/Compiler.nqp:465 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:execute_stage)
from NQP::src/HLL/Compiler.nqp:501 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:run)
from NQP::src/HLL/Compiler.nqp:504 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:)
from NQP::src/HLL/Compiler.nqp:496 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:compile)
from NQP::src/HLL/Compiler.nqp:166 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:eval)
from NQP::src/HLL/Compiler.nqp:309 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:)
from NQP::src/HLL/Compiler.nqp:364 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
from src/Perl6/Compiler.nqp:233 (/Users/liz/Github/rakudo/install/share/perl6/lib/Perl6/Compiler.moarvm:command_eval)
from NQP::src/HLL/Compiler.nqp:289 (/Users/liz/Github/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_line)
from src/main.nqp:81 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:MAIN)
from src/main.nqp:63 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<mainline>)
from <unknown>:1 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<main>)
from <unknown>:1 (/Users/liz/Github/rakudo/install/share/perl6/runtime/perl6.moarvm:<entry>)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment