как проверить что модуль бинарный (чтото компилирует)

Oct 01, 2018 08:28


как проверить что модуль бинарный  (чтото компилирует ) ?

например мне нужны модули реализованые на perl без требований к компиляции -

как проверить что модуль не годится?

Leave a comment

Comments 7

unera October 1 2018, 05:36:05 UTC
perl -c path/to/file?

что такое бинарный модуль?

Reply


ico October 1 2018, 06:01:49 UTC
> как проверить что модуль не годится?

ну у вас и вопросы :)

Reply

zupernintendo October 3 2018, 10:29:53 UTC
это просто из контекста вырвано

> например мне нужны модули реализованые на perl без требований к компиляции
в метаинфе к пакету никак не указано что модуль бинарный
я вот вижу только способ проверять по коду в файлах пакета упоминание загрузки модуля
или может не там смотрю?

Reply


gul_kiev October 1 2018, 07:12:53 UTC
Наверное, можно замочить XSLoader::load на die и проверить, пройдёт ли при этом "perl -c" с проверяемым модулем.
Хотя это будет работать в большинстве случаев, но не гарантировано. Можно загрузить бинарный модуль из без XSLoader.

Reply


ocehb October 1 2018, 09:22:04 UTC
pure-perl модуль может имметь в зависимостях xs-модуль, несистемный.
проще поставить всё в нужный каталог и таскать его за собой.

задача-то какая?

Reply

zupernintendo October 3 2018, 10:23:14 UTC
задача проверить что пакет не использует бинарный код ( ... )

Reply

ocehb October 3 2018, 11:04:04 UTC
Можно регуляркой.
А можно так:

# strace -e trace=openat perl -MHTTP::Tiny -le 'print $HTTP::Tiny::VERSION' |& grep -F .so ( ... )

Reply


Leave a comment

Up