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

How to hack on installed perl6 module source?

我希望能够查看和更改已安装(通过 zef)perl6 模块的源代码。我该怎么做?

在我的系统上,模块源代码在 ~/.perl6/sources/ 下,~/.perl6/dist/ 中还有一些关于模块的元数据文件。

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

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

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

I'd like to be able to view and make changes to the source code of installed (via zef) perl6 modules. How can I do that?

请不要那样做。安装的模块应该是不可变的,正如您所发现的:如果有可用的模块的 pre-compiled 版本,它将 而不是 检查原始源文件是否有已更新。那是因为它没有必要,因为它被认为是不可变的。

如果您想测试已安装模块的更改,请下载 tar 文件/git 克隆模块的分发版,在其中进行所需的更改,然后执行:

zef install . --force-install

在分发的顶级目录中。这将为您 re-install 模块和处理 pre-compilation。