Как взломать установленный модуль на perl6?

Я хотел бы иметь возможность просматривать и вносить изменения в исходный код установлен (через zef) модули perl6. Как я могу это сделать?

В моей системе исходники модуля находятся под ~/.perl6/sources/ и есть также какой-то файл метаданных о модулях в ~/.perl6/dist/,

Я также могу использовать zef locate ... чтобы показать исходный путь модуля, но внесение изменений непосредственно в исходные файлы, кажется, не имеет никаких последствий (т.е. use модуль из REPL не показывает мои изменения).

Я предполагаю, что это потому, что модули были предварительно скомпилированы, и perl6 не принимает мои изменения и не перекомпилирует модули, когда я делаю изменения непосредственно в исходные файлы модуля таким образом...

ОБНОВЛЕНИЕ: Удаление соответствующих предварительно скомпилированных файлов в ~/.perl6/precomp/... кажется, работает, но я не уверен, как и если это что-то испортит.

1 ответ

Решение

Я хотел бы иметь возможность просматривать и вносить изменения в исходный код установленных (через zef) модулей perl6. Как я могу это сделать?

Пожалуйста, не делай так. Установленные модули должны быть неизменными, и как вы узнали: если имеется предварительно скомпилированная версия модуля, он не будет проверять, был ли обновлен исходный исходный файл. Это потому, что это не обязательно, потому что это считается неизменным.

Если вы хотите протестировать изменения в установленном модуле, пожалуйста, скачайте tar-файл / git, клонируйте дистрибутив модуля, внесите необходимые изменения и выполните:

zef install . --force-install

пока в верхнем каталоге в дистрибутиве. Это переустановит модуль и проведет предварительную компиляцию для вас.

Другие вопросы по тегам