ExtUtils-ParseXS
view release on metacpan or search on metacpan
Revision history for Perl extension ExtUtils::ParseXS.
3.63 Sun Apr 5 2026
- allow 'length(foo)' to work with any 'foo' type that has
'SvPV_nolen()' or similar in its typemap, not just that it maps
to T_PV
- improve warning and error messages
- improve test coverage
- reorganise t/
3.62 Sun Apr 5 2026
- allow XS files with no XS again
- use static, not STATIC
3.61 Fri Jan 9 2026
- rewrite perlxs.pod
- finish refactoring to use an Abstract Syntax Tree (AST) internally
3.60
- Fix INTERFACE for C23
- support perl package names in INTERFACE
- Cleanup typemap file-finding code and change priority
- Revert throwing an exception when combining the length operator
with a typemap other than T_PV
3.59
- Throw an exception when combining the length operator with a
typemap other than T_PV
3.58 Sun Jul 20 09:10:41 PM CEST 2025
- ExtUtils::ParseXS has been extensively restructured internally.
Most of these changes shouldn't be visible externally, but might
affect XS code which was using invalid or unsupported syntax.
3.57 Fri May 2 05:40:59 PM CEST 2025
- Rewrite half of the internals to facilitate refcounted stack
later on
3.51 - Tue May 9 09:32:04 2023 AEST
- Initialize $self correctly in EU::PXS::Utilities::death()
- C++ builds: avoid generating C<< extern "C" extern "C" >>
3.50 - Mon May 8 23:12:28 2023 CEST
- Silence warnings about unreached code in generated XS code
- Correct colon translation of $type in OUTPUT section
- Make versions in ExtUtils-ParseXS consistent
3.49 - Wed Nov 16 11:14:55 2022 CET
- Disable alias value collision warnings by default
3.48 - Tue Nov 8 17:44:11 2022 CET
-Â handle #else and #endif without blank line prefixes
- better support for duplicate ALIASes
- allow symbolic alias of default function
- add support for elifdef and elifndef
3.47 - Sat Oct 22 10:36:38 2022 CET
- fix ExtUtils::ParseXS compatibility with perl < 5.8.8
3.45 - Fri Mar 4 22:42:03 2022
- GH #19320: Fix OVERLOAD and FALLBACK handling.
3.44 - Thu Jan 6 23:49:25 2022
- GH #19054: Always XSprePUSH when producing an output list.
- Use more descriptive variable names.
- Fix plan/skip in test file 002-more.t.
3.43 - Wed Mar 24 15:44:08 2021 CET
- Use PERL_VERSION_LE instead of 5.33+ PERL_VERSION_LT.
- Fix error message bug.
3.42 - Tue Nov 24 21:42:05 2020 CET
- Restore compatibility with old versions that made use of
"errors" function which was renamed to "report_error_count".
3.41 - Wed Aug 12 19:39:04 2020 CET
- Use absolute paths in tests on all platforms.
- Use PERL_VERSION compare macro.
3.40 - Wed Dec 5 05:35:19 2018 CET
- RT #133654: Don't include OUTLIST parameters in the prototype.
3.39 - Mon Mar 5 17:46:41 2018 CET
- RT #132935: Correctly check VERSIONs.
3.38 - Fri Feb 9 12:02:34 2018 CET
- Correct name of variable 'ALIAS' (not 'Alias') in documentation.
- Add PERL_REENTRANT for XS modules (get the reentrant versions of
libc functions automatically without declaring as PERL_CORE or
PERL_EXT).
3.37 - Mon Dec 11 01:54:44 2017 CET
- Update documentation to avoid newGVgen.
3.36 - Tue Nov 14 09:45:55 2017 CET
- Make generated code avoid warnings about the "items" variable
being unused
- Avoid some unused-variable warnings generated by XS code in the
test suite
3.35 - Mon Jul 31 17:50:00 CET 2017
- Fix ExtUtils-ParseXS/t/*.t that needed '.' in @INC (David Mitchell)
- Remove impediment to compiling under C++11 (Karl Williamson)
- Make build reproducinle (Chris Lamb)
- (perl #127834) remove . from the end of @INC if complex modules
are loaded (Tony Cook)
- Replace :: with __ in THIS like it's done for parameters/return
values (Mattia Barbon)
3.30 - Mon Aug 31 10:35:00 CET 2015
- Promote to stable CPAN release.
3.29_01 - Mon Aug 10 10:45:00 CET 2015
- Support added for XS handshake API introduced in 5.21.6.
- Backported S_croak_xs_usage optimized on threaded builds
- Fix INCLUDE_COMMAND $^X for Perl In Space
- Remove 'use lib' left over from refactoring
- Document + improve ancient optimization in ParseXS
- Improve RETVAL code gen
3.24 - Wed Mar 5 18:20:00 CET 2014
- Native Android build fixes
- More lenient syntax for embedded TYPEMAP blocks in XS:
a trailing semicolon will not be required for the block
terminator.
- Code cleanup.
3.22 - Thu Aug 29 19:30:00 CET 2013
- Fix parallel testing crashes.
- Explicitly require new-enough Exporter.
3.21 - Fri Aug 9 19:08:00 CET 2013
- stop "sv_2mortal(&PL_sv_yes)" and "(void)sv_newmortal()" for immortal
typemap entries [perl #116152]
- Deterministic C output (fix for hash randomization in 5.18).
3.18_04 - Fri Jun 20 17:47:00 CET 2013
- Fix targetable size detection (& better tests)
- Assorted cleanup and refactoring.
3.18_03 - Fri Apr 19 18:40:00 CET 2013
- Heuristic (and flawed) type canonicalization for templated
C++ types.
- More tests ported from core.
3.18_02 - Mon Apr 15 07:30:00 CET 2013
- ExtUtils::ParseXS no longer uses global state (if using OO
interface).
- New "real" OO interface.
3.18_01 - Thu Apr 11 19:17:00 CET 2013
- ExtUtils::Typemaps gains a clone method.
3.18 - Mon Nov 19 07:35:00 CET 2012
- Restore portability to Perl 5.6, which was lost at EU-PXS 3.00.
- [perl #112776] avoid warning on an initialized non-parameter
- Only increment PL_amagic_generation before 5.9
3.15 - Thu Feb 2 08:12:00 CET 2012
- Fix version for PAUSE indexer.
3.14 - Wed Feb 1 18:22:00 CET 2012
- Promote to stable release.
- Proper repository and bugtracker info in META.json.
3.13_01 - Sat Jan 29 12:45:00 CET 2012
- ExtUtils::Typemaps:
=> Embedded typemap dumping: A method which will produce the
verbatim string for inclusion in XS.
=> Introducing ExtUtils::Typemaps::Cmd, a helper module which
can produce embedded typemap strings via simple one-liners.
Useful for including typemaps from other modules in XS code
with INCLUDE_COMMAND. See "perldoc ExtUtils::Typemaps::Cmd".
- ExtUtils::ParseXS:
=> Bugfix: Used to have parsing problems with embedded typemaps
occasionally.
=> Better error messages on typemap-related issues. If a no
typemap was found for a given C type, list all mapped C types
so that the user hopefully spots his mistake easily.
3.11 - Thu Dec 29 17:55:00 CET 2011
- Version/distribution fixes.
3.09 - Wed Dec 28 18:48:00 CET 2011
- Escape double quotes of file names/commands in #line directives.
3.08 - Mon Dec 19 18:03:00 CET 2011
- Silence undefined-value-in-addition warning
(Nothing serious, just happened sometimes when reporting line numbers for
errors. But warning during build process.)
3.07 - Wed Dec 7 14:10:00 CET 2011
- Fix inconsistent versioning in 3.06.
3.06 - Fri Dec 2 08:10:00 CET 2011
- Fix Cygwin issues [Tony Cook]
avoid conflicting static / dllexport on legacy perls too
This probably fixes rt.cpan.org 72313 and 71964.
(3928a66ad4bd8aee704eda1942b7877c0ff1ab2c in core)
- Convert ` to ' [James Keenan]
55bee391aeff3c3b8d22fa4ce5491ee9440028aa and
6dfee1ec62c64d7afe8ced4650596dd9e7f71a63 in core
- Avoid some test-time warnings [Zefram]
97bae9c59cd181b3b54061213ec1fdce0ccb30d4 in core
3.05 - Wed Oct 5 08:14:00 CET 2011
- No functional changes, promoted to stable release.
3.04_04 - Mon Sep 12 08:12:00 CET 2011
- Simplify generated XS code by emitting a compatibility version
of dVAR. [Nicholas Clark]
- Fixed "INCLUDE: $cmd |", CPAN RT #70213
3.04_03 - Sun Sep 4 18:49:00 CET 2011
- By #defining PERL_EUPXS_ALWAYS_EXPORT or
PERL_EUPXS_NEVER_EXPORT early in your XS code, you can
force ExtUtils::ParseXS to always or never export
XSUB symbols. This has no effect on boot_* symbols since
those must be exported.
3.04_02 - Sat Sep 3 15:28:00 CET 2011
- Don't put null characters into the generated source
file when -except is used; write the '\0' escape sequence
properly instead. [Stephen Bennett]
3.04_01 - Sun Aug 28 17:50:00 CET 2011
- The XSUB.h changes to make XS(name) use XS_INTERNAL(name)
by default (which were in the 5.15.2 dev release of perl)
have been reverted since too many CPAN modules expect to
be able to refer to XSUBs declared with XS(name).
Instead, ExtUtils::ParseXS will define a copy of the
XS_INTERNAL/XS_EXTERNAL macros as necessary going back to
perl 5.10.0 (which is the oldest perl I had for testing).
By default, ExtUtils::ParseXS will use XS_INTERNAL(name)
instead of XS(name).
3.04 - Thu Aug 25 08:20:00 CET 2011
- Stable release based on 3.03_03, no functional changes.
3.03_03 - Wed Aug 24 19:43:00 CET 2011
- Try to fix regression for input-typemap override in XS argument
list. (CPAN RT #70448)
- Explicit versions in submodules to fail early if something
goes wrong.
3.03_02 - Sun Aug 21 13:19:00 CET 2011
- Properly strip trailing semicolons form inputmaps. These could
trigger warnings (errors in strict C89 compilers) due to
additional semicolons being interpreted as empty statements.
[Torsten Schoenfeld, Jan Dubois, Steffen Mueller]
- Now detects and throws a warning if there is a CODE section using
RETVAL, but no OUTPUT section. [CPAN RT #69536]
- Uses the explicit XS_EXTERNAL macro (from perl 5.15.2 and newer)
for XSUBs that need to be exported. Defines XS_EXTERNAL to fall
back to XS where that is not available.
- Introduces new EXPORT_XSUB_SYMBOLS XS keyword that forces exported
XSUB symbols. It's a no-op on perls before 5.15.2.
3.03 - Thu Aug 11 08:24:00 CET 2011
- Test fix: Try all @INC-derived typemap locations. (CPAN RT #70047)
[Mike Sheldrake]
3.02 - Thu Aug 4 18:19:00 CET 2011
- Test fix: Use File::Spec->catfile instead of catdir where appropriate.
3.01 - Thu Aug 4 17:51:00 CET 2011
- No significant changes from 3.00_05.
3.00_05 - Wed Jul 27 22:54:00 CET 2011
- Define PERL_UNUSED_ARG for pre-3.8.9 perls.
This should fix the tests on those perls.
3.00_04 - Wed Jul 27 22:22:00 CET 2011
- Require perl 5.8.1.
- Patches from CPAN RT #53938, #61908
Both of these are attempts to fix win32 problems:
Bug #61908 for ExtUtils-ParseXS: MSWin compilers and back-slashed paths
Bug #53938 for ExtUtils-ParseXS: MinGW Broken after 2.21
3.00_03 - Fri Jul 22 20:13:00 CET 2011
- Add some diagnostics when xsubpp fails to load a current-enough
version of ExtUtils::ParseXS. [Steffen Mueller]
- Add a check to Makefile.PL that scans @INC to determine whether
the new xsubpp will be shadowed by another, existing xsubpp
and warn the user vehemently. [Steffen Mueller]
3.00_02 - Thu Jul 14 18:00:00 CET 2011
- Move script/xsubpp back to lib/ExtUtils/xsubpp
The original move caused old xsubpp's to be used.
3.00_01 - Tue Jul 12 22:00:00 CET 2011
- Major refactoring of the whole code base.
It finally runs under 'use strict' for the first time!
[James Keenan, Steffen Mueller]
- Typemaps can now be embedded into XS code using a here-doc
like syntax and the new "TYPEMAP:" XS keyword.
[Steffen Mueller]
- Move typemap handling code to ExtUtils::Typemaps
with full object-oriented goodness. [Steffen Mueller]
- Check API compatibility when loading xs modules.
If on a new-enough perl, add the XS_APIVERSION_BOOTCHECK macro to
the _boot function of every XS module to compare it against the API
version the module has been compiled against. If the versions do
not match, an exception is thrown. [Florian Ragwitz]
- Fixed compiler warnings in XS. [Zefram]
- Spell-check [Peter J. Acklam]
2.2206 - Sun Jul 4 15:43:21 EDT 2010
Bug fixes:
- Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez]
- INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry]
- INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873)
[Steffen Mueller]
2.2205 - Wed Mar 10 18:15:36 EST 2010
Other:
- No longer ships with Build.PL to avoid creating a circular dependency
2.2204 - Wed Mar 10 14:23:52 EST 2010
Other:
- Downgraded warnings on using INCLUDE with a command from "deprecated"
to "discouraged" and limited it to the case where the command includes
"perl" [Steffen Mueller]
2.2203 - Thu Feb 11 14:00:51 EST 2010
Bug fixes:
- Build.PL was not including ExtUtils/xsubpp for installation. Fixed
by subclassing M::B::find_pm_files to include it [David Golden]
2.2202 - Wed Jan 27 15:04:59 EST 2010
Bug fixes:
- The fix to IN/OUT/OUTLIST was itself broken and is now fixed.
[Reported by Serdar Dalgic; fix suggested by Rafael Garcia-Suarez]
( run in 1.576 second using v1.01-cache-2.11-cpan-39bf76dae61 )