1 Revision history for Perl extension ExtUtils::ParseXS.
3 3.45 - Fri Mar 4 22:42:03 2022
4 - GH #19320: Fix OVERLOAD and FALLBACK handling.
6 3.44 - Thu Jan 6 23:49:25 2022
7 - GH #19054: Always XSprePUSH when producing an output list.
8 - Use more descriptive variable names.
9 - Fix plan/skip in test file 002-more.t.
11 3.43 - Wed Mar 24 15:44:08 2021 CET
12 - Use PERL_VERSION_LE instead of 5.33+ PERL_VERSION_LT.
13 - Fix error message bug.
15 3.42 - Tue Nov 24 21:42:05 2020 CET
16 - Restore compatibility with old versions that made use of
17 "errors" function which was renamed to "report_error_count".
19 3.41 - Wed Aug 12 19:39:04 2020 CET
20 - Use absolute paths in tests on all platforms.
21 - Use PERL_VERSION compare macro.
23 3.40 - Wed Dec 5 05:35:19 2018 CET
24 - RT #133654: Don't include OUTLIST parameters in the prototype.
26 3.39 - Mon Mar 5 17:46:41 2018 CET
27 - RT #132935: Correctly check VERSIONs.
29 3.38 - Fri Feb 9 12:02:34 2018 CET
30 - Correct name of variable 'ALIAS' (not 'Alias') in documentation.
31 - Add PERL_REENTRANT for XS modules (get the reentrant versions of
32 libc functions automatically without declaring as PERL_CORE or
35 3.37 - Mon Dec 11 01:54:44 2017 CET
36 - Update documentation to avoid newGVgen.
38 3.36 - Tue Nov 14 09:45:55 2017 CET
39 - Make generated code avoid warnings about the "items" variable
41 - Avoid some unused-variable warnings generated by XS code in the
44 3.35 - Mon Jul 31 17:50:00 CET 2017
45 - Fix ExtUtils-ParseXS/t/*.t that needed '.' in @INC (David Mitchell)
46 - Remove impediment to compiling under C++11 (Karl Williamson)
47 - Make build reproducinle (Chris Lamb)
48 - (perl #127834) remove . from the end of @INC if complex modules
49 are loaded (Tony Cook)
50 - Replace :: with __ in THIS like it's done for parameters/return
51 values (Mattia Barbon)
53 3.30 - Mon Aug 31 10:35:00 CET 2015
54 - Promote to stable CPAN release.
56 3.29_01 - Mon Aug 10 10:45:00 CET 2015
57 - Support added for XS handshake API introduced in 5.21.6.
58 - Backported S_croak_xs_usage optimized on threaded builds
59 - Fix INCLUDE_COMMAND $^X for Perl In Space
60 - Remove 'use lib' left over from refactoring
61 - Document + improve ancient optimization in ParseXS
62 - Improve RETVAL code gen
64 3.24 - Wed Mar 5 18:20:00 CET 2014
65 - Native Android build fixes
66 - More lenient syntax for embedded TYPEMAP blocks in XS:
67 a trailing semicolon will not be required for the block
71 3.22 - Thu Aug 29 19:30:00 CET 2013
72 - Fix parallel testing crashes.
73 - Explicitly require new-enough Exporter.
75 3.21 - Fri Aug 9 19:08:00 CET 2013
76 - stop "sv_2mortal(&PL_sv_yes)" and "(void)sv_newmortal()" for immortal
77 typemap entries [perl #116152]
78 - Deterministic C output (fix for hash randomization in 5.18).
80 3.18_04 - Fri Jun 20 17:47:00 CET 2013
81 - Fix targetable size detection (& better tests)
82 - Assorted cleanup and refactoring.
84 3.18_03 - Fri Apr 19 18:40:00 CET 2013
85 - Heuristic (and flawed) type canonicalization for templated
87 - More tests ported from core.
89 3.18_02 - Mon Apr 15 07:30:00 CET 2013
90 - ExtUtils::ParseXS no longer uses global state (if using OO
92 - New "real" OO interface.
94 3.18_01 - Thu Apr 11 19:17:00 CET 2013
95 - ExtUtils::Typemaps gains a clone method.
97 3.18 - Mon Nov 19 07:35:00 CET 2012
98 - Restore portability to Perl 5.6, which was lost at EU-PXS 3.00.
99 - [perl #112776] avoid warning on an initialized non-parameter
100 - Only increment PL_amagic_generation before 5.9
102 3.15 - Thu Feb 2 08:12:00 CET 2012
103 - Fix version for PAUSE indexer.
105 3.14 - Wed Feb 1 18:22:00 CET 2012
106 - Promote to stable release.
107 - Proper repository and bugtracker info in META.json.
109 3.13_01 - Sat Jan 29 12:45:00 CET 2012
110 - ExtUtils::Typemaps:
111 => Embedded typemap dumping: A method which will produce the
112 verbatim string for inclusion in XS.
113 => Introducing ExtUtils::Typemaps::Cmd, a helper module which
114 can produce embedded typemap strings via simple one-liners.
115 Useful for including typemaps from other modules in XS code
116 with INCLUDE_COMMAND. See "perldoc ExtUtils::Typemaps::Cmd".
119 => Bugfix: Used to have parsing problems with embedded typemaps
121 => Better error messages on typemap-related issues. If a no
122 typemap was found for a given C type, list all mapped C types
123 so that the user hopefully spots his mistake easily.
125 3.11 - Thu Dec 29 17:55:00 CET 2011
126 - Version/distribution fixes.
128 3.09 - Wed Dec 28 18:48:00 CET 2011
129 - Escape double quotes of file names/commands in #line directives.
131 3.08 - Mon Dec 19 18:03:00 CET 2011
132 - Silence undefined-value-in-addition warning
133 (Nothing serious, just happened sometimes when reporting line numbers for
134 errors. But warning during build process.)
136 3.07 - Wed Dec 7 14:10:00 CET 2011
137 - Fix inconsistent versioning in 3.06.
139 3.06 - Fri Dec 2 08:10:00 CET 2011
141 - Fix Cygwin issues [Tony Cook]
142 avoid conflicting static / dllexport on legacy perls too
143 This probably fixes rt.cpan.org 72313 and 71964.
144 (3928a66ad4bd8aee704eda1942b7877c0ff1ab2c in core)
146 - Convert ` to ' [James Keenan]
147 55bee391aeff3c3b8d22fa4ce5491ee9440028aa and
148 6dfee1ec62c64d7afe8ced4650596dd9e7f71a63 in core
150 - Avoid some test-time warnings [Zefram]
151 97bae9c59cd181b3b54061213ec1fdce0ccb30d4 in core
153 3.05 - Wed Oct 5 08:14:00 CET 2011
155 - No functional changes, promoted to stable release.
157 3.04_04 - Mon Sep 12 08:12:00 CET 2011
159 - Simplify generated XS code by emitting a compatibility version
160 of dVAR. [Nicholas Clark]
162 - Fixed "INCLUDE: $cmd |", CPAN RT #70213
164 3.04_03 - Sun Sep 4 18:49:00 CET 2011
166 - By #defining PERL_EUPXS_ALWAYS_EXPORT or
167 PERL_EUPXS_NEVER_EXPORT early in your XS code, you can
168 force ExtUtils::ParseXS to always or never export
169 XSUB symbols. This has no effect on boot_* symbols since
170 those must be exported.
172 3.04_02 - Sat Sep 3 15:28:00 CET 2011
174 - Don't put null characters into the generated source
175 file when -except is used; write the '\0' escape sequence
176 properly instead. [Stephen Bennett]
178 3.04_01 - Sun Aug 28 17:50:00 CET 2011
180 - The XSUB.h changes to make XS(name) use XS_INTERNAL(name)
181 by default (which were in the 5.15.2 dev release of perl)
182 have been reverted since too many CPAN modules expect to
183 be able to refer to XSUBs declared with XS(name).
184 Instead, ExtUtils::ParseXS will define a copy of the
185 XS_INTERNAL/XS_EXTERNAL macros as necessary going back to
186 perl 5.10.0 (which is the oldest perl I had for testing).
187 By default, ExtUtils::ParseXS will use XS_INTERNAL(name)
190 3.04 - Thu Aug 25 08:20:00 CET 2011
192 - Stable release based on 3.03_03, no functional changes.
194 3.03_03 - Wed Aug 24 19:43:00 CET 2011
196 - Try to fix regression for input-typemap override in XS argument
197 list. (CPAN RT #70448)
199 - Explicit versions in submodules to fail early if something
202 3.03_02 - Sun Aug 21 13:19:00 CET 2011
204 - Properly strip trailing semicolons form inputmaps. These could
205 trigger warnings (errors in strict C89 compilers) due to
206 additional semicolons being interpreted as empty statements.
207 [Torsten Schoenfeld, Jan Dubois, Steffen Mueller]
209 - Now detects and throws a warning if there is a CODE section using
210 RETVAL, but no OUTPUT section. [CPAN RT #69536]
212 - Uses the explicit XS_EXTERNAL macro (from perl 5.15.2 and newer)
213 for XSUBs that need to be exported. Defines XS_EXTERNAL to fall
214 back to XS where that is not available.
216 - Introduces new EXPORT_XSUB_SYMBOLS XS keyword that forces exported
217 XSUB symbols. It's a no-op on perls before 5.15.2.
219 3.03 - Thu Aug 11 08:24:00 CET 2011
221 - Test fix: Try all @INC-derived typemap locations. (CPAN RT #70047)
224 3.02 - Thu Aug 4 18:19:00 CET 2011
226 - Test fix: Use File::Spec->catfile instead of catdir where appropriate.
228 3.01 - Thu Aug 4 17:51:00 CET 2011
230 - No significant changes from 3.00_05.
232 3.00_05 - Wed Jul 27 22:54:00 CET 2011
234 - Define PERL_UNUSED_ARG for pre-3.8.9 perls.
235 This should fix the tests on those perls.
237 3.00_04 - Wed Jul 27 22:22:00 CET 2011
239 - Require perl 5.8.1.
241 - Patches from CPAN RT #53938, #61908
242 Both of these are attempts to fix win32 problems:
243 Bug #61908 for ExtUtils-ParseXS: MSWin compilers and back-slashed paths
244 Bug #53938 for ExtUtils-ParseXS: MinGW Broken after 2.21
246 3.00_03 - Fri Jul 22 20:13:00 CET 2011
248 - Add some diagnostics when xsubpp fails to load a current-enough
249 version of ExtUtils::ParseXS. [Steffen Mueller]
251 - Add a check to Makefile.PL that scans @INC to determine whether
252 the new xsubpp will be shadowed by another, existing xsubpp
253 and warn the user vehemently. [Steffen Mueller]
255 3.00_02 - Thu Jul 14 18:00:00 CET 2011
257 - Move script/xsubpp back to lib/ExtUtils/xsubpp
258 The original move caused old xsubpp's to be used.
260 3.00_01 - Tue Jul 12 22:00:00 CET 2011
262 - Major refactoring of the whole code base.
263 It finally runs under 'use strict' for the first time!
264 [James Keenan, Steffen Mueller]
266 - Typemaps can now be embedded into XS code using a here-doc
267 like syntax and the new "TYPEMAP:" XS keyword.
270 - Move typemap handling code to ExtUtils::Typemaps
271 with full object-oriented goodness. [Steffen Mueller]
273 - Check API compatibility when loading xs modules.
274 If on a new-enough perl, add the XS_APIVERSION_BOOTCHECK macro to
275 the _boot function of every XS module to compare it against the API
276 version the module has been compiled against. If the versions do
277 not match, an exception is thrown. [Florian Ragwitz]
279 - Fixed compiler warnings in XS. [Zefram]
281 - Spell-check [Peter J. Acklam]
283 2.2206 - Sun Jul 4 15:43:21 EDT 2010
287 - Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez]
289 - INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry]
291 - INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873)
294 2.2205 - Wed Mar 10 18:15:36 EST 2010
298 - No longer ships with Build.PL to avoid creating a circular dependency
300 2.2204 - Wed Mar 10 14:23:52 EST 2010
304 - Downgraded warnings on using INCLUDE with a command from "deprecated"
305 to "discouraged" and limited it to the case where the command includes
306 "perl" [Steffen Mueller]
308 2.2203 - Thu Feb 11 14:00:51 EST 2010
312 - Build.PL was not including ExtUtils/xsubpp for installation. Fixed
313 by subclassing M::B::find_pm_files to include it [David Golden]
315 2.2202 - Wed Jan 27 15:04:59 EST 2010
319 - The fix to IN/OUT/OUTLIST was itself broken and is now fixed.
320 [Reported by Serdar Dalgic; fix suggested by Rafael Garcia-Suarez]
322 We apologize for the fault in the regex. Those responsible
325 2.2201 Mon Jan 25 16:12:05 EST 2010
329 - IN/OUT/OUTLIST, etc. were broken due to a bad regexp. [Simon Cozens]
331 2.22 - Mon Jan 11 15:00:07 EST 2010
333 No changes from 2.21_02
335 2.21_02 - Sat Dec 19 10:55:41 EST 2009
339 - fixed bugs and added tests for INCLUDE_COMMAND [Steffen Mueller]
341 2.21_01 - Sat Dec 19 07:22:44 EST 2009
345 - New 'INCLUDE_COMMAND' directive [Steffen Mueller]
349 - Workaround for empty newXS macro found in P5NCI [Goro Fuji]
351 2.21 - Mon Oct 5 11:17:53 EDT 2009
354 - Adds full path in INCLUDE #line directives (RT#50198) [patch by "spb"]
357 - Updated copyright and maintainer list
359 2.20_07 - Sat Oct 3 11:26:55 EDT 2009
362 - Use "char* file" for perl < 5.9, not "char[] file"; fixes mod_perl
363 breakage due to prior attempts to fix RT#48104 [David Golden]
365 2.20_06 - Fri Oct 2 23:45:45 EDT 2009
368 - Added t/typemap to fix broken test on perl 5.6.2 [David Golden]
369 - More prototype fixes for older perls [Goro Fuji]
370 - Avoid "const char *" in test files as it breaks on 5.6.2 [Goro Fuji]
373 - Merged changes from 2.2004 maintenance branch (see 2.200401 to 2.200403)
376 2.20_05 - Sat Aug 22 21:46:56 EDT 2009
379 - Fix prototype related bugs [Goro Fuji]
380 - Fix the SCOPE keyword [Goro Fuji]
382 2.200403 - Fri Oct 2 02:01:58 EDT 2009
385 - Removed PERL_CORE specific @INC manipulation (no longer needed)
387 - Changed hard-coded $^H manipulation in favor of "use re 'eval'"
390 2.200402 - Fri Oct 2 01:26:40 EDT 2009
393 - UNITCHECK subroutines were not being called (detected in ext/XS-APItest
394 in Perl blead) [reported by Jesse Vincent, patched by David Golden]
396 2.200401 - Mon Sep 14 22:26:03 EDT 2009
398 - No changes from 2.20_04.
401 2.20_04 - Mon Aug 10 11:18:47 EDT 2009
404 - Changed install_dirs to 'core' for 5.8.9 as well (RT#48474)
405 - Removed t/bugs.t until there is better C++ support in ExtUtils::CBuilder
408 - Updated repository URL in META file
410 2.20_03 - Thu Jul 23 23:14:50 EDT 2009
413 - Fixed "const char *" errors for 5.8.8 (and older) (RT#48104)
415 - Added newline before a preprocessor directive (RT#30673)
418 2.2002 - Sat Jul 18 17:22:27 EDT 2009
421 - Fix Makefile.PL installdirs for older perls
423 2.20_01 - Wed Jul 8 12:12:47 EDT 2009
425 - Fix XSUsage prototypes for testing [Jan Dubois]
427 2.20 - Wed Jul 1 13:42:11 EDT 2009
429 - No changes from 2.19_04
431 2.19_04 - Mon Jun 29 11:49:12 EDT 2009
433 - Changed tests to use Test::More and added it to prereqs
435 - Some tests skip if no compiler or if no dynamic loading
437 - INTERFACE keyword tests skipped for perl < 5.8
439 2.19_03 - Sat Jun 27 22:51:18 EDT 2009
441 - Released to see updated results from smoke testers
443 - Fix minor doc typo pulled from blead
445 2.19_02 - Wed Aug 6 22:18:33 2008
447 - Fix the usage reports to consistently report package name as well
448 as sub name across ALIAS, INTERFACE and regular XSUBS. [Robert May]
450 - Cleaned up a warning with -Wwrite-strings that gets passed into
451 every parsed XS file. [Steve Peters]
453 - Allow (pedantically correct) C pre-processor comments in the code
454 snippets of typemap files. [Nicholas Clark]
456 2.19 - Sun Feb 17 14:27:40 2008
458 - Fixed the treatment of the OVERLOAD: keyword, which was causing a C
459 compile error. [Toshiyuki Yamato]
461 2.18 - Mon Jan 29 20:56:36 2007
463 - Added some UNITCHECK stuff, which (I think) makes XS code able to
464 do UNITCHECK blocks. [Nicholas Clark]
466 - Changed 'use re "eval";' to 'BEGIN { $^H |= 0x00200000 };' so we
467 can compile re.xs in bleadperl. [Yves Orton]
469 - Fix an undefined-variable warning related to 'inout' parameter
472 2.17 - Mon Nov 20 17:07:27 2006
474 - Stacked $filepathname to make #line directives in #INCLUDEs work.
477 - Sprinked dVAR in with dXSARGS, for God-(Jarkko)-knows-what
478 reason. [Jarkko Hietaniemi]
480 - Use printf-style formats in Perl_croak() for some significant
481 savings in number of distinct constant strings in the linked
482 binaries we create. [Alexey Tourbin]
484 - Don't use 'class' as a variable name in the t/XSTest.xs module,
485 since that's a keyword in C++. [Jarkko Hietaniemi]
487 2.16 Fri Sep 15 22:33:24 CDT 2006
489 - Fix a problem with PREFIX not working inside INTERFACE
490 sections. [Salvador Fandin~o]
492 2.15 Mon Oct 10 11:02:13 EDT 2005
494 - I accidentally left out a README from the distribution. Now it's
495 auto-created from the main documentation in ExtUtils/ParseXS.pm.
497 2.14 Sat Oct 8 21:49:15 EDT 2005
499 - The filehandle for the .xs file was never being properly closed,
500 and now it is. This was causing some Win32 problems with
501 Module::Build's tests, which create a .xs file, process it with
502 ParseXS, and then try to remove it. [Spotted by Randy Sims]
504 2.13 Mon Oct 3 21:59:06 CDT 2005
506 - Integrate a cleanup-related change from bleadperl that somehow
507 never got into this copy. [Steve Hay]
509 2.12 Wed Aug 24 20:03:09 CDT 2005
511 - On Win32, there was a DLL file we create during testing that we
512 couldn't delete unless we closed it first, so testing failed when
513 the deletion was attempted. This should now work (provided the
514 version of perl is high enough to have DynaLoader::dl_unload_file()
515 - I'm not sure what will happen otherwise). [Steve Hay]
517 - Fix a spurious warning during testing about a variable that's used
518 before it's initialized. [Steve Hay]
520 2.11 Mon Jun 13 23:00:23 CDT 2005
522 - Make some variables global, to avoid some "will not stay shared"
523 warnings at compile time. [Rafael Garcia-Suarez]
525 2.10 Mon May 30 21:29:44 CDT 2005
527 - This module is being integrated into the perl core; the regression
528 tests will now work properly when run as part of the core build.
529 [Yitzchak Scott-Thoennes]
531 - Added the ability to create output files with a suffix other than
532 ".c", via the new "csuffix" option. This gets the module working
533 on Symbian. [Jarkko Hietaniemi]
535 - Added the ability to put 'extern "C"' declarations in front of
536 prototypes. [Jarkko Hietaniemi]
538 2.09 Sun Mar 27 11:11:49 CST 2005
540 - Integrated change #18270 from the perl core, which fixed a problem
541 in which xsubpp can make nested comments in C code (which is
542 bad). [Nicholas Clark]
544 - When no "MODULE ... PACKAGE ... PREFIX" line is found, it's now
545 still a fatal error for ParseXS, but we exit with status 0, which
546 is what the old xsubpp did and seems to work best with some modules
547 like Win32::NetAdmin. See RT ticket 11472. [Steve Hay]
549 2.08 Fri Feb 20 21:41:22 CST 2004
551 - Fixed a problem with backslashes in file paths (e.g. C:\Foo\Bar.xs)
552 disappearing in error messages. [Randy Sims, Steve Hay]
554 - Did a little minor internal code cleanup in the
555 ExtUtils::ParseXS::CountLines class, now other classes don't poke
556 around in its package variables.
558 2.07 Sun Jan 25 17:01:52 CST 2004
560 - We now use ExtUtils::CBuilder for testing the compile/build phase
561 in the regression tests. It's not necessary to have it for runtime
564 - Fixed a minor documentation error (look in 'Changes' for revision
565 history, not 'changes.pod'). [Scott R. Godin]
567 2.06 Fri Dec 26 09:00:47 CST 2003
569 - Some fixes in the regression tests for the AIX platform.
571 2.05 Mon Sep 29 10:33:39 CDT 2003
573 - We no longer trim the directory portions from the "#line " comments
574 in the generated C code. This helps cooperation with many editors'
575 auto-jump-to-error stuff. [Ross McFarland]
577 - In some cases the PERL_UNUSED_VAR macro is needed to get rid of C
578 compile-time warnings in generated code. Since this eliminates so
579 many warnings, turning on "-Wall -W" (or your platform's
580 equivalent) can once again be helpful. [Ross McFarland]
582 - Did a huge amount of variable-scoping cleanup, and it *still*
583 doesn't compile under 'use strict;'. Much progress was made
584 though, and many scoping issues were fixed.
586 2.04 Thu Sep 4 13:10:59 CDT 2003
588 - Added a COPYRIGHT section to the documentation. [Spotted by Ville
591 2.03 Sat Aug 16 17:49:03 CST 2003
593 - Fixed a warning that occurs if a regular expression (buried deep
594 within the bowels of the code here) fails. [Spotted by Michael
597 - Fixed a testing error on Cygwin. [Reini Urban]
599 2.02 Sun Mar 30 18:20:12 CST 2003
601 - Now that we know this module doesn't work (yet?) with perl 5.005,
602 put a couple 'use 5.006' statements in the module & Makefile.PL so
603 we're explicit about the dependency. [Richard Clamp]
605 2.01 Thu Mar 20 08:22:36 CST 2003
607 - Allow -C++ flag for backward compatibility. It's a no-op, and has
608 been since perl5.003_07. [PodMaster]
610 2.00 Sun Feb 23 16:40:17 CST 2003
612 - Tests now function under all three of the supported compilers on
613 Windows environments. [Randy W. Sims]
615 - Will now install to the 'core' perl module directory instead of to
616 'site_perl' or the like, because this is the only place MakeMaker
617 will look for the xsubpp script.
619 - Explicitly untie and close the output file handle because ParseXS was
620 holding the file handle open, preventing the compiler from opening
621 it on Win32. [Randy W. Sims]
623 - Added an '--output FILENAME' flag to xsubpp and changed ParseXS to use
624 the named file in the #line directives when the output file has an
625 extension other than '.c' (i.e. '.cpp'). [Randy W. Sims]
627 - Added conditional definition of the PERL_UNUSED_VAR macro to the
628 output file in case it's not already defined for backwards
629 compatibility with pre-5.8 versions of perl. (Not sure if this is the
630 best solution.) [Randy W. Sims]
633 1.99 Wed Feb 5 10:07:47 PST 2003
635 - Version bump to 1.99 so it doesn't look like a 'beta release' to
636 CPAN.pm. No code changes, since I haven't had any bug reports.
638 - Fixed a minor problem in the regression tests that was creating an
639 XSTest..o file instead of XSTest.o
642 1.98_01 Mon Dec 9 11:50:41 EST 2002
644 - Converted from ExtUtils::xsubpp in bleadperl
646 - Basic set of regression tests written