Andrew Shitov wrote:
Австрийцы придумали новый формат для встреч своей PM-группы. До этого у них были TechSocialMeetings, - технические встречи, перетекающие в социальную часть. А теперь иногда будут проводиться еще и хаковстречи. На встрече 1 декабря в планах стояло хаченье OpenID на основе PAUSE.Кстати, интересно: если технические встречи - это воркшопы в миниатюре, то хаковстречи - это миниатюрные хакатоны. Для нас это пока единственный незаполненный пункт из списка мероприятий, который проводятся в мире. Конференция была, воркшопы были, хакатонов не было.
Ну ... мы ... в тяпницу ... в ответ на вопрос нафига вообще нужен xs .... провели.В результате, если научится распознавать ABI, или, что легче, сделать кучу сигнатур.
Если привинтить парсилку сишных классов и страктов .... Завернуть это в нормальный интерфейс типаmy $perl_alloc=DLL::Function->new(DLL::Library->new('libperl.so'), 'perl_alloc');
my $externalevaluator=$perl_alloc->call(class=>'PerlInterpreter'); $externalevaluator->perl_parse(); $externalevaluator->perl_run(); Получится мегамодуль. =) см аттач. Кста, на маке запускается ? -- Ivan B. Serezhkin Spamooborona, Yandex. http://so.yandex.ru/
DLL.pm
Description: Perl program
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <dlfcn.h>
MODULE = DLL PACKAGE = DLL
SV * dlerror()
CODE:
RETVAL=newSVpv(dlerror(),0);
void * dlopen(const char *path, int mode)
PREINIT:
void * handle;
CODE:
handle=dlopen(path, mode);
if (!handle) {
fputs (dlerror(), stderr);
exit(1);
}
RETVAL=handle;
OUTPUT:
RETVAL
void * dlsym(void * handle, const char * symbol)
PREINIT:
void * shandle;
CODE:
shandle=dlsym(handle, symbol);
if (!shandle) {
fputs (dlerror(), stderr);
exit(1);
}
RETVAL=shandle;
OUTPUT:
RETVAL
int int_func_pchar(void * handle, char * arg1)
CODE:
int (*func)(char*)=handle;
int retval;
retval=(*func)(arg1);
RETVAL=retval;
OUTPUT:
RETVAL
int RTLD_LAZY()
CODE:
RETVAL=RTLD_LAZY;
int RTLD_NOW()
CODE:
RETVAL=RTLD_NOW;
int RTLD_LOCAL()
CODE:
RETVAL=RTLD_LOCAL;
int RTLD_GLOBAL()
CODE:
RETVAL=RTLD_GLOBAL;
int RTLD_TRACE()
CODE:
RETVAL=RTLD_TRACE;
Makefile.PL
Description: Perl program
test.pl
Description: Perl program
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
