Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / share / perl / 5.18.2 / ExtUtils / | server ip : 104.21.89.46 your ip : 172.71.254.239 H O M E |
Filename | /usr/share/perl/5.18.2/ExtUtils/ParseXS.pod |
Size | 3.74 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 27-Apr-2025 10:10 |
Last modified | 21-Nov-2018 01:11 |
Last accessed | 06-Jul-2025 11:55 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
=head1 NAME
ExtUtils::ParseXS - converts Perl XS code into C code
=head1 SYNOPSIS
use ExtUtils::ParseXS qw(process_file);
process_file( filename => 'foo.xs' );
process_file( filename => 'foo.xs',
output => 'bar.c',
'C++' => 1,
typemap => 'path/to/typemap',
hiertype => 1,
except => 1,
prototypes => 1,
versioncheck => 1,
linenumbers => 1,
optimize => 1,
prototypes => 1,
);
=head1 DESCRIPTION
C<ExtUtils::ParseXS> will compile XS code into C code by embedding the constructs
necessary to let C functions manipulate Perl values and creates the glue
necessary to let Perl access those functions. The compiler uses typemaps to
determine how to map C function parameters and variables to Perl values.
The compiler will search for typemap files called I<typemap>. It will use
the following search path to find default typemaps, with the rightmost
typemap taking precedence.
../../../typemap:../../typemap:../typemap:typemap
=head1 EXPORT
None by default. C<process_file()> may be exported upon request.
=head1 FUNCTIONS
=over 4
=item process_file()
This function processes an XS file and sends output to a C file.
Named parameters control how the processing is done. The following
parameters are accepted:
=over 4
=item B<C++>
Adds C<extern "C"> to the C code. Default is false.
=item B<hiertype>
Retains C<::> in type names so that C++ hierarchical types can be
mapped. Default is false.
=item B<except>
Adds exception handling stubs to the C code. Default is false.
=item B<typemap>
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.
=item B<prototypes>
Generates prototype code for all xsubs. Default is false.
=item B<versioncheck>
Makes sure at run time that the object file (derived from the C<.xs>
file) and the C<.pm> files have the same version number. Default is
true.
=item B<linenumbers>
Adds C<#line> directives to the C output so error messages will look
like they came from the original XS file. Default is true.
=item B<optimize>
Enables certain optimizations. The only optimization that is currently
affected is the use of I<target>s by the output C code (see L<perlguts>).
Not optimizing may significantly slow down the generated code, but this is the way
B<xsubpp> of 5.005 and earlier operated. Default is to optimize.
=item B<inout>
Enable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST>
declarations. Default is true.
=item B<argtypes>
Enable recognition of ANSI-like descriptions of function signature.
Default is true.
=item B<s>
I<Maintainer note:> I have no clue what this does. Strips function prefixes?
=back
=item errors()
This function returns the number of [a certain kind of] errors
encountered during processing of the XS file.
=back
=head1 AUTHOR
Based on xsubpp code, written by Larry Wall.
Maintained by:
=over 4
=item *
Ken Williams, <[email protected]>
=item *
David Golden, <[email protected]>
=item *
James Keenan, <[email protected]>
=item *
Steffen Mueller, <[email protected]>
=back
=head1 COPYRIGHT
Copyright 2002-2012 by Ken Williams, David Golden and other contributors. All
rights reserved.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
Based on the C<ExtUtils::xsubpp> code by Larry Wall and the Perl 5
Porters, which was released under the same license terms.
=head1 SEE ALSO
L<perl>, ExtUtils::xsubpp, ExtUtils::MakeMaker, L<perlxs>, L<perlxstut>.
=cut
ExtUtils::ParseXS - converts Perl XS code into C code
=head1 SYNOPSIS
use ExtUtils::ParseXS qw(process_file);
process_file( filename => 'foo.xs' );
process_file( filename => 'foo.xs',
output => 'bar.c',
'C++' => 1,
typemap => 'path/to/typemap',
hiertype => 1,
except => 1,
prototypes => 1,
versioncheck => 1,
linenumbers => 1,
optimize => 1,
prototypes => 1,
);
=head1 DESCRIPTION
C<ExtUtils::ParseXS> will compile XS code into C code by embedding the constructs
necessary to let C functions manipulate Perl values and creates the glue
necessary to let Perl access those functions. The compiler uses typemaps to
determine how to map C function parameters and variables to Perl values.
The compiler will search for typemap files called I<typemap>. It will use
the following search path to find default typemaps, with the rightmost
typemap taking precedence.
../../../typemap:../../typemap:../typemap:typemap
=head1 EXPORT
None by default. C<process_file()> may be exported upon request.
=head1 FUNCTIONS
=over 4
=item process_file()
This function processes an XS file and sends output to a C file.
Named parameters control how the processing is done. The following
parameters are accepted:
=over 4
=item B<C++>
Adds C<extern "C"> to the C code. Default is false.
=item B<hiertype>
Retains C<::> in type names so that C++ hierarchical types can be
mapped. Default is false.
=item B<except>
Adds exception handling stubs to the C code. Default is false.
=item B<typemap>
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.
=item B<prototypes>
Generates prototype code for all xsubs. Default is false.
=item B<versioncheck>
Makes sure at run time that the object file (derived from the C<.xs>
file) and the C<.pm> files have the same version number. Default is
true.
=item B<linenumbers>
Adds C<#line> directives to the C output so error messages will look
like they came from the original XS file. Default is true.
=item B<optimize>
Enables certain optimizations. The only optimization that is currently
affected is the use of I<target>s by the output C code (see L<perlguts>).
Not optimizing may significantly slow down the generated code, but this is the way
B<xsubpp> of 5.005 and earlier operated. Default is to optimize.
=item B<inout>
Enable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST>
declarations. Default is true.
=item B<argtypes>
Enable recognition of ANSI-like descriptions of function signature.
Default is true.
=item B<s>
I<Maintainer note:> I have no clue what this does. Strips function prefixes?
=back
=item errors()
This function returns the number of [a certain kind of] errors
encountered during processing of the XS file.
=back
=head1 AUTHOR
Based on xsubpp code, written by Larry Wall.
Maintained by:
=over 4
=item *
Ken Williams, <[email protected]>
=item *
David Golden, <[email protected]>
=item *
James Keenan, <[email protected]>
=item *
Steffen Mueller, <[email protected]>
=back
=head1 COPYRIGHT
Copyright 2002-2012 by Ken Williams, David Golden and other contributors. All
rights reserved.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
Based on the C<ExtUtils::xsubpp> code by Larry Wall and the Perl 5
Porters, which was released under the same license terms.
=head1 SEE ALSO
L<perl>, ExtUtils::xsubpp, ExtUtils::MakeMaker, L<perlxs>, L<perlxstut>.
=cut