XS-TCC
view release on metacpan or search on metacpan
set_output_type(xstcc_state *self, int output_type);
CODE:
RETVAL = tcc_set_output_type(self->tccstate, output_type);
OUTPUT: RETVAL
int
add_library_path(xstcc_state *self, const char *pathname)
CODE:
RETVAL = tcc_add_library_path(self->tccstate, pathname);
OUTPUT: RETVAL
int
add_library(xstcc_state *self, const char *libname)
CODE:
RETVAL = tcc_add_library(self->tccstate, libname);
OUTPUT: RETVAL
int
add_symbol(xstcc_state *self, const char *name, const char *value)
CODE:
RETVAL = tcc_add_symbol(self->tccstate, name, value);
OUTPUT: RETVAL
int
output_file(xstcc_state *self, const char *filename)
CODE:
RETVAL = tcc_output_file(self->tccstate, filename);
OUTPUT: RETVAL
int
run(xstcc_state *self, int argc, AV *argv)
PREINIT:
unsigned int avlen, i;
SV **elem;
char **str_argv;
SV *argv_ctrl;
CODE:
avlen = av_len(argv)+1;
argv_ctrl = sv_2mortal(newSV(avlen * sizeof(char *)));
str_argv = (char **)argv_ctrl;
for (i = 0; i < avlen; ++i) {
elem = av_fetch(argv, i, 0);
str_argv[i] = SvPV_nolen(*elem);
}
RETVAL = tcc_run(self->tccstate, argc, str_argv);
OUTPUT: RETVAL
xstcc_symbol *
get_symbol(xstcc_state *self, const char *name)
PREINIT:
const char *CLASS = "XS::TCC::TCCSymbol";
/* Note: Perl symbol objects must not live longer than TCCStates
* or they become invalid. */
CODE:
RETVAL = tcc_get_symbol(self->tccstate, name);
if (RETVAL == NULL)
croak("Symbol '%s' not found!", name);
OUTPUT: RETVAL
int
relocate(xstcc_state *self)
PREINIT:
AV *outav;
SV *memsv;
size_t memsize;
CODE:
outav = get_av("XS::TCC::TCCState::_output_memory", GV_ADD);
memsize = tcc_relocate(self->tccstate, NULL);
memsv = newSV(memsize);
av_push(outav, memsv);
RETVAL = tcc_relocate(self->tccstate, SvPVX(memsv));
OUTPUT: RETVAL
MODULE = XS::TCC PACKAGE = XS::TCC::TCCSymbol
CV *
as_xsub(xstcc_symbol *self)
PREINIT:
XSUBADDR_t sub;
CODE:
sub = (XSUBADDR_t)self;
RETVAL = newXS(NULL, sub, "anon");
sv_2mortal((SV *)RETVAL);
OUTPUT: RETVAL
MODULE = XS::TCC PACKAGE = XS::TCC
( run in 1.014 second using v1.01-cache-2.11-cpan-5511b514fd6 )