Spec-Zone.ru › Perl 5.30

xsubpp

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНТАКСИС
  • ОПИСАНИЕ
  • ПАРАМЕТРЫ
  • СРЕДА
  • АВТОР
  • ИСТОРИЯ ИЗМЕНЕНИЙ
  • СМОТРИ ТАКЖЕ

ИМЯ

xsubpp - компилятор для преобразования кода Perl XS в код C

СИНТАКСИС

xsubpp [-v] [-except] [-s pattern] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-typemap typemap] [-output filename]... file.xs

ОПИСАНИЕ

Этот компилятор обычно используется makeфайлами, созданными ExtUtils::MakeMaker или Module::Build, или другими инструментами для сборки модулей Perl.

xsubpp компилирует код XS в код C, встраивая конструкции, необходимые для того, чтобы функции C могли манипулировать значениями Perl, и создаёт интерфейс, необходимый для доступа к этим функциям из Perl. Компилятор использует typemap для определения того, как отобразить параметры и переменные функций C в значения Perl.

Компилятор будет искать файлы typemap, называемые typemap. Он будет использовать следующий путь поиска для нахождения стандартных typemap, причём наиболее правое typemap будет иметь приоритет.

../../../typemap:../../typemap:../typemap:typemap

Он также будет использовать стандартный typemap, установленный как ExtUtils::typemap.

ПАРАМЕТРЫ

Обратите внимание, что параметр XSOPT MakeMaker может быть использован для добавления этих параметров в любые makeфайлы, сгенерированные MakeMaker.

-hiertype

Сохраняет '::' в именах типов, чтобы можно было отобразить иерархические типы C++.

-except

Добавляет обработку исключений в код C.

-typemap typemap

Указывает, что пользовательский typemap должен иметь приоритет над стандартными typemap. Этот параметр можно использовать несколько раз, причём последний typemap будет иметь наивысший приоритет.

-output filename

Указывает имя выходного файла. Если файл не указан, вывод будет записан в стандартный вывод.

-v

Выводит номер версии xsubpp в стандартный вывод и завершает работу.

-prototypes

По умолчанию xsubpp не будет автоматически генерировать код прототипов для всех xsubs. Этот флаг включит прототипы.

-noversioncheck

Отключает проверку во время выполнения, которая определяет, имеют ли объектный файл (полученный из файла .xs) и файлы .pm одинаковый номер версии.

-nolinenumbers

Запрещает включение директив '#line' в выходной файл.

-nooptimize

Отключает определённые оптимизации. Единственная оптимизация, на которую сейчас влияет этот параметр, - использование target в выходном коде C (см. perlguts). Это может значительно замедлить сгенерированный код, но именно так работал xsubpp версии 5.005 и более ранних.

-noinout

Отключает распознавание объявлений IN, OUT_LIST и INOUT_LIST.

-noargtypes

Отключает распознавание ANSI-подобных описаний сигнатуры функций.

-C++

В настоящее время ничего не делает. Этот флаг является бесполезным для многих версий perl, по крайней мере, начиная с perl5.003_07. Он разрешен здесь для обратной совместимости.

-s=... или -strip=...

Этот параметр малопонятен и не рекомендуется.

Если указан, данная строка будет удалена из начала имени функции C в сгенерированных XS функциях (если она начинается с этого префикса). Это относится только к XSUB без блоков CODE или PPCODE. Например, XS:

void foo_bar(int i);

когда xsubpp вызывается с -s foo_, будет установлена функция foo_bar в Perl, но фактически вызывается bar(i) в C. В большинстве случаев это противоположно тому, что нужно, а режимы отказов несколько неясны, поэтому, пожалуйста, избегайте использования этого параметра, если это возможно.

СРЕДА

Переменные среды не используются.

АВТОР

Первоначально создан Лэрри Уоллом. Преобразован в модуль ExtUtils::ParseXS Кенном Уильямсом.

ИСТОРИЯ ИЗМЕНЕНИЙ

См. файл Changes.

СМОТРИ ТАКЖЕ

perl(1), perlxs(1), perlxstut(1), ExtUtils::ParseXS

© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.28.3/xsubpp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API