Описание тега perl-xs

None Язык XS, который действует как мост между Perl и C
0 ответов

Загружаемая библиотека и двоичные файлы Perl не совпадают в пользовательском xs после обновления до 5.26

У меня есть приложение, которое имеет модули C++ и Perl. У меня есть пользовательский модуль xs crypt.xs (не модуль, поставляемый с perl) Ранее наш модуль perl был построен с версией 5.16.0 perl. У меня есть другое приложение C#, которое выполняет н…
27 янв '19 в 18:02
0 ответов

Есть ли простой способ конвертировать строки JSON SV или C++ в HV

В моем классе C++ есть строка json, которую я конвертировал в SV и возвращаю в свой модуль perl как скаляр. Я разбираю этот скаляр и преобразую его в json в моем модуле perl. Вместо этого я хочу преобразовать строку json в HV или perl-хэш в моем кла…
09 окт '13 в 23:17
2 ответа

Нужно ли освобождать HV*, созданное с помощью newHV?

Если я напишу некоторый код XS с хешем, который я никогда не собираюсь возвращать в Perl, должен ли я его освободить? Если так, то как? Самым близким, что я придумал, является hv_undef, но это только очистка содержимого хэша, а не самого хэша, от то…
24 дек '12 в 19:46
2 ответа

Как обработать строку char символом в коде XS

Давайте предположим, что есть такой код: my $str = 'some text'; my $result = my_subroutine($str); а также my_subroutine() должен быть реализован в виде кода Perl XS. Например, он может вернуть сумму байтов строки (Unicode). В коде XS, как обрабатыва…
16 май '12 в 16:19
2 ответа

Когда вы должны использовать XS?

Я пишу доклад по XS, и мне нужно знать, когда сообщество считает, что это правильно - обратиться к XS.
13 июл '11 в 19:17
1 ответ

Как мне встроить код Perl в модуль perl-xs?

Я написал модуль Perl для создания привязки для разделяемой библиотеки с h2xs. Просто и легко сделать. Тем не менее, теперь я хотел бы включить некоторые помощники Perl с этим модулем. Как мне это сделать? Я хотел бы предположить, что он должен идти…
25 окт '12 в 15:51
2 ответа

Используя Perl ExtUtils::MakeMaker, как я могу скомпилировать исполняемый файл, используя те же настройки, что и мой модуль XS?

Учитывая, что модуль Perl XS использует библиотеку C, предположим, что существует Makefile.PL, который настроен правильно, чтобы все заголовки и расположения библиотек, флаги компилятора и компоновщика и т.д. работали правильно. Теперь, скажем, я хо…
18 апр '14 в 20:37
1 ответ

Могу ли я подавить ошибку "Perl API версии%s из%s не соответствует%s"

Я скопировал модуль Perl (DBD::Pg) из одной системы в другую, чтобы выполнить несколько быстрых проверок проекта Mojolicious. На новой системе все работает нормально, когда я запускаю его под morbo (Mojolicious тестовый веб-демон). Но когда я пытаюс…
22 авг '18 в 19:17
2 ответа

Соединение с разделяемой библиотекой C с использованием Perl XS

Я новичок в PERL XS и у меня есть вопрос о вызове разделяемой библиотеки (.so), написанной на языке Ansi C. Кажется, я не могу найти хороших примеров, показывающих, как именно это сделать. Я пошел, хотя учебник, чтобы начать (Hello World и все такое…
24 окт '13 в 15:08
0 ответов

Как использовать XSUB из другого модуля?

Я сейчас пишу XS модуль. И хочу повторно использовать функции из другого XS в Sub::Indentify, В случае обычного модуля Perl я могу сделать: use Sub::Identify; Sub::Identify::get_code_info( $code ); Как сделать то же самое из XS? UPD Я хочу позвонить…
18 янв '18 в 15:49
1 ответ

Устранение неполадок Math::PARI сбой внутри mod_perl

Я собираю (свариваю) свой собственный perl, затем модуль mod_perl, а затем устанавливаю все необходимые библиотеки perl. Среда mod_perl работает нормально. Однострочники с Math::PARI также работают, например: perl -MMath:: Pari -e "use Math:: Pari '…
13 июн '17 в 08:00
1 ответ

Интеграция кода XS в файлы определения Moose Class

Я написал модуль Perl на основе XS, который обеспечивает доступ к функциям в библиотеке C - давайте сейчас назовем его MyLib_XS. Я хочу двигаться дальше, используя эти функции для определения методов в классе Moose. Конечно, я могу просто use MyLib_…
04 янв '11 в 13:48
1 ответ

Почему происходит сбой приложения при вызове `call_pv()`?

Мы вызываем подпрограмму process_input с call_pv и это вызывается из кода процесса, который обрабатывает ввод текста размером до 1 МБ. Процесс делает следующее: он ест почту от любого почтового клиента создает новый тикет в приложении и отвечает обр…
05 июл '13 в 11:37
1 ответ

В чем разница между `GvNAME` и`GvENAME`?

В источниках Perl GvNAME а также GvENAME, Оба возвращают имя для данного gv, Но второе означает эффективное имя. Сбрасывать имена я не видел разницы. Может кто-нибудь прояснить разницу и привести пример, который это показывает? UPD Потому что это св…
19 янв '18 в 08:51
2 ответа

Как я могу сказать, если структура C имеет член в Perl XS?

Есть ExtUtils::* или же Module::Build (или другой) аналог Ruby's mkmf.have_struct_member? Я хотел бы сделать что-то вроде (в виде подсказки / файла): .... if struct_has_member("msghdr", "msg_accrights") { $self->{CCFLAGS} = join(' ', $self->{C…
20 янв '10 в 20:00
1 ответ

Как эмулировать вызов &sname из XS?

Как подражать z суб поведение внутри XS к югу? package XS; sub hello { print "ARGS: >>@_<<\n"; my $lvl; while( my @frame = caller( $lvl++ ) ) { print ">>@frame[0..4]<<\n"; } } sub z { &hello; } В моем .xs файл у меня есть…
19 янв '18 в 22:09
2 ответа

Сборка мусора Perl XS

Мне приходилось иметь дело с действительно старой кодовой базой в моей компании, в которой API-интерфейс C++ был открыт через perl. В одном из обзоров кода я предположил, что необходимо собрать мусор в памяти, которая была выделена в C++. Вот скелет…
04 ноя '16 в 03:18
1 ответ

Как получить доступ к текущему контексту из XS?

Когда пользователь звонит XS от main:: пакет мы не можем использовать caller_cx(0, NULL); потому что нет рамок для main:: и для XSUB DOC Обратите внимание, что XSUB не получают стековый фрейм, поэтому C вернет информацию для непосредственно окружающ…
17 янв '18 в 11:17
2 ответа

Сборка модуля расширения Perl на OpenBSD

Как мне построить Perl-модуль XS на OpenBSD при необходимости .so файлы отсутствуют? Предыстория: при установке vanilla OpenBSD 5.3 vm я не могу собрать модуль perl, который должен быть связан с -lpthread, pthread.a и pthread.so.Maj.Min существуют в…
22 май '13 в 13:59
2 ответа

Написание модуля Perl для Sys::Getpagesize для системного вызова getpagesize (страница руководства GETPAGESIZE(2))

Мне было поручено написать модуль Perl, который требует использования Perl XS. Я никогда не использовал Perl XS, но я посмотрел документацию здесь: http://perldoc.perl.org/perlxs.html и похоже, что мне понадобится исходный код C для getpagesize сист…
21 июн '13 в 17:39