如何破解已安装的perl6模块源代码?

cow*_*moo 6 module edit perl6 zef

我希望能够查看和更改已安装(通过zefPerl6模块)的源代码。我怎样才能做到这一点?

在我的系统上,模块源位于下面,~/.perl6/sources/并且中也有关于模块的某种元数据文件~/.perl6/dist/

我也可以zef locate ...用来显示模块的源路径,但是直接对源文件进行更改似乎没有任何效果(即,useREPL中的模块没有显示我的更改)。

我猜这是因为模块是预编译的,而当我以这种方式直接对模块源文件进行更改时,perl6不会接受我的更改并重新预编译模块...

更新:删除下面的相应预编译文件~/.perl6/precomp/...似乎可行,但是我不确定如何以及是否将任何东西弄乱了。

Eli*_*sen 10

我希望能够查看和更改已安装的(通过zef)perl6模块的源代码。我怎样才能做到这一点?

拜托,不要那样做。如您所知,安装的模块应该是不变的:如果有可用的模块的预编译版本,它将不会检查原始源文件是否已更新。那是因为它不是必须的,因为它被认为是不可变的。

如果要测试已安装模块的更改,请下载tar文件/ git clone模块的发行版,在其中进行所需的更改,然后执行以下操作:

zef install . --force-install
Run Code Online (Sandbox Code Playgroud)

而在发行版的顶层目录中。这将重新安装模块并为您处理预编译。