|ExtUtils::ParseXS(3perl)||Perl Programmers Reference Guide||ExtUtils::ParseXS(3perl)|
use ExtUtils::ParseXS; my $pxs = ExtUtils::ParseXS->new; $pxs->process_file( filename => 'foo.xs' ); $pxs->process_file( filename => 'foo.xs', output => 'bar.c', 'C++' => 1, typemap => 'path/to/typemap', hiertype => 1, except => 1, versioncheck => 1, linenumbers => 1, optimize => 1, prototypes => 1, ); # Legacy non-OO interface using a singleton: use ExtUtils::ParseXS qw(process_file); process_file( filename => 'foo.xs' );
The compiler will search for typemap files called typemap. It will use the following search path to find default typemaps, with the rightmost typemap taking precedence.
- Returns a new, empty XS parser/compiler object.
- This method processes an XS file and sends output to a C file. The method
may be called as a function (this is the legacy interface) and will then
use a singleton as invocant.
Named parameters control how the processing is done. The following parameters are accepted:
- Adds "extern "C"" to the C code. Default is false.
- Retains "::" in type names so that C++ hierarchical types can be mapped. Default is false.
- Adds exception handling stubs to the C code. Default is false.
- Indicates that a user-supplied typemap should take precedence over the default typemaps. A single typemap may be specified as a string, or multiple typemaps can be specified in an array reference, with the last typemap having the highest precedence.
- Generates prototype code for all xsubs. Default is false.
- Makes sure at run time that the object file (derived from the ".xs" file) and the ".pm" files have the same version number. Default is true.
- Adds "#line" directives to the C output so error messages will look like they came from the original XS file. Default is true.
- Enables certain optimizations. The only optimization that is currently affected is the use of targets by the output C code (see perlguts). Not optimizing may significantly slow down the generated code, but this is the way xsubpp of 5.005 and earlier operated. Default is to optimize.
- Enable recognition of "IN", "OUT_LIST" and "INOUT_LIST" declarations. Default is true.
- Enable recognition of ANSI-like descriptions of function signature. Default is true.
- Maintainer note: I have no clue what this does. Strips function prefixes?
- This method returns the number of [a certain kind of] errors encountered
during processing of the XS file.
The method may be called as a function (this is the legacy interface) and will then use a singleton as invocant.
- Ken Williams, <firstname.lastname@example.org>
- David Golden, <email@example.com>
- James Keenan, <firstname.lastname@example.org>
- Steffen Mueller, <email@example.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Based on the "ExtUtils::xsubpp" code by Larry Wall and the Perl 5 Porters, which was released under the same license terms.