我希望能够查看和更改已安装(通过zef
)的perl6模块的源代码。我该怎么办?
在我的系统上,模块源位于~/.perl6/sources/
下,并且~/.perl6/dist/
中还存在一些有关模块的元数据文件。
我也可以使用zef locate ...
来显示模块的源路径,但是直接对源文件进行更改似乎没有任何效果(即,REPL中的use
模块不会)不能显示我的更改。
我猜这是因为模块是预先编译的,而当我直接对模块源文件进行更改时,perl6不会接受我的更改并重新预编译模块...
更新:在~/.perl6/precomp/...
下删除相应的预编译文件似乎可行,但我不确定如何以及是否将任何东西弄乱了。
答案 0 :(得分:9)
我希望能够查看和更改已安装(通过zef)的perl6模块的源代码。我该怎么办?
请不要那样做。已安装的模块应该是不可变的,正如您所发现的:如果有可用的模块的预编译版本,它将不检查原始源文件是否已更新。那是因为它不是必须的,因为它被认为是不可变的。
如果要测试已安装模块的更改,请下载tar文件/ git clone模块的发行版,在其中进行所需的更改,然后执行:
zef install . --force-install
而位于发行版的顶层目录中。这样将重新安装模块并为您处理预编译。