相关疑难解决方法(0)

使用方法:自用CompUnit以来

我试图通过使用CompUnit类集预编译来创建POD6的缓存.

我可以创建,存储和检索pod,如下所示:

use v6.c;
use nqp;
my $precomp-store =     CompUnit::PrecompilationStore::File.new(prefix=>'cache'.IO);
my $precomp = CompUnit::PrecompilationRepository::Default.new(store=> $precomp-store );
my $key = nqp::sha1('test.pod6');
'test.pod6'.IO.spurt(q:to/CONTENT/);
=begin pod
=TITLE More and more

Some more text

=end pod

CONTENT
$precomp.precompile('test.pod6'.IO, $key, :force);
my $handle = $precomp.load($key, )[0];
my $resurrected = nqp::atkey($handle.unit,'$=pod')[0];
say $resurrected ~~ Pod::Block::Named;
Run Code Online (Sandbox Code Playgroud)

所以现在我改变POD,我该如何使用:since旗帜?我认为如果:since在编译后包含一段时间,那么句柄的值将为Nil.情况似乎并非如此.

my $new-handle = $precomp.load($key, :since('test.pod6'.IO.modified));
say 'I got a new handle' with $new-handle;
Run Code Online (Sandbox Code Playgroud)

输出是'我有一个新手柄'.

我做错了什么?这是一个包含代码和输出的pastebin链接:https://pastebin.com/wtA9a0nP

perl6

8
推荐指数
1
解决办法
141
查看次数

模块可以热补丁吗?

我希望能够在程序运行时为我正在进行的项目编写热点模块.我试过这个,但它不起作用:

qx[rm -r .precomp/*];
try require PSBot;
try PSBot.test;
Run Code Online (Sandbox Code Playgroud)

有可能吗?如果是这样,我该怎么办?

perl6 hotpatching raku

6
推荐指数
1
解决办法
109
查看次数

标签 统计

perl6 ×2

hotpatching ×1

raku ×1