1Revision history for Perl extension ExtUtils::ParseXS. 2 33.36 4 - Make generated code avoid warnings about the "items" variable 5 being unused 6 - Avoid some unused-variable warnings generated by XS code in the 7 test suite 8 93.35 - Mon Jul 31 17:50:00 CET 2017 10 - Fix ExtUtils-ParseXS/t/*.t that needed '.' in @INC (David Mitchell) 11 - Remove impediment to compiling under C++11 (Karl Williamson) 12 - Make build reproducinle (Chris Lamb) 13 - (perl #127834) remove . from the end of @INC if complex modules 14 are loaded (Tony Cook) 15 - Replace :: with __ in THIS like it's done for parameters/return 16 values (Mattia Barbon) 17 183.30 - Mon Aug 31 10:35:00 CET 2015 19 - Promote to stable CPAN release. 20 213.29_01 - Mon Aug 10 10:45:00 CET 2015 22 - Support added for XS handshake API introduced in 5.21.6. 23 - Backported S_croak_xs_usage optimized on threaded builds 24 - Fix INCLUDE_COMMAND $^X for Perl In Space 25 - Remove 'use lib' left over from refactoring 26 - Document + improve ancient optimization in ParseXS 27 - Improve RETVAL code gen 28 293.24 - Wed Mar 5 18:20:00 CET 2014 30 - Native Android build fixes 31 - More lenient syntax for embedded TYPEMAP blocks in XS: 32 a trailing semicolon will not be required for the block 33 terminator. 34 - Code cleanup. 35 363.22 - Thu Aug 29 19:30:00 CET 2013 37 - Fix parallel testing crashes. 38 - Explicitly require new-enough Exporter. 39 403.21 - Fri Aug 9 19:08:00 CET 2013 41 - stop "sv_2mortal(&PL_sv_yes)" and "(void)sv_newmortal()" for immortal 42 typemap entries [perl #116152] 43 - Deterministic C output (fix for hash randomization in 5.18). 44 453.18_04 - Fri Jun 20 17:47:00 CET 2013 46 - Fix targetable size detection (& better tests) 47 - Assorted cleanup and refactoring. 48 493.18_03 - Fri Apr 19 18:40:00 CET 2013 50 - Heuristic (and flawed) type canonicalization for templated 51 C++ types. 52 - More tests ported from core. 53 543.18_02 - Mon Apr 15 07:30:00 CET 2013 55 - ExtUtils::ParseXS no longer uses global state (if using OO 56 interface). 57 - New "real" OO interface. 58 593.18_01 - Thu Apr 11 19:17:00 CET 2013 60 - ExtUtils::Typemaps gains a clone method. 61 623.18 - Mon Nov 19 07:35:00 CET 2012 63 - Restore portability to Perl 5.6, which was lost at EU-PXS 3.00. 64 - [perl #112776] avoid warning on an initialized non-parameter 65 - Only increment PL_amagic_generation before 5.9 66 673.15 - Thu Feb 2 08:12:00 CET 2012 68 - Fix version for PAUSE indexer. 69 703.14 - Wed Feb 1 18:22:00 CET 2012 71 - Promote to stable release. 72 - Proper repository and bugtracker info in META.json. 73 743.13_01 - Sat Jan 29 12:45:00 CET 2012 75 - ExtUtils::Typemaps: 76 => Embedded typemap dumping: A method which will produce the 77 verbatim string for inclusion in XS. 78 => Introducing ExtUtils::Typemaps::Cmd, a helper module which 79 can produce embedded typemap strings via simple one-liners. 80 Useful for including typemaps from other modules in XS code 81 with INCLUDE_COMMAND. See "perldoc ExtUtils::Typemaps::Cmd". 82 83 - ExtUtils::ParseXS: 84 => Bugfix: Used to have parsing problems with embedded typemaps 85 occasionally. 86 => Better error messages on typemap-related issues. If a no 87 typemap was found for a given C type, list all mapped C types 88 so that the user hopefully spots his mistake easily. 89 903.11 - Thu Dec 29 17:55:00 CET 2011 91 - Version/distribution fixes. 92 933.09 - Wed Dec 28 18:48:00 CET 2011 94 - Escape double quotes of file names/commands in #line directives. 95 963.08 - Mon Dec 19 18:03:00 CET 2011 97 - Silence undefined-value-in-addition warning 98 (Nothing serious, just happened sometimes when reporting line numbers for 99 errors. But warning during build process.) 100 1013.07 - Wed Dec 7 14:10:00 CET 2011 102 - Fix inconsistent versioning in 3.06. 103 1043.06 - Fri Dec 2 08:10:00 CET 2011 105 106 - Fix Cygwin issues [Tony Cook] 107 avoid conflicting static / dllexport on legacy perls too 108 This probably fixes rt.cpan.org 72313 and 71964. 109 (3928a66ad4bd8aee704eda1942b7877c0ff1ab2c in core) 110 111 - Convert ` to ' [James Keenan] 112 55bee391aeff3c3b8d22fa4ce5491ee9440028aa and 113 6dfee1ec62c64d7afe8ced4650596dd9e7f71a63 in core 114 115 - Avoid some test-time warnings [Zefram] 116 97bae9c59cd181b3b54061213ec1fdce0ccb30d4 in core 117 1183.05 - Wed Oct 5 08:14:00 CET 2011 119 120 - No functional changes, promoted to stable release. 121 1223.04_04 - Mon Sep 12 08:12:00 CET 2011 123 124 - Simplify generated XS code by emitting a compatibility version 125 of dVAR. [Nicholas Clark] 126 127 - Fixed "INCLUDE: $cmd |", CPAN RT #70213 128 1293.04_03 - Sun Sep 4 18:49:00 CET 2011 130 131 - By #defining PERL_EUPXS_ALWAYS_EXPORT or 132 PERL_EUPXS_NEVER_EXPORT early in your XS code, you can 133 force ExtUtils::ParseXS to always or never export 134 XSUB symbols. This has no effect on boot_* symbols since 135 those must be exported. 136 1373.04_02 - Sat Sep 3 15:28:00 CET 2011 138 139 - Don't put null characters into the generated source 140 file when -except is used; write the '\0' escape sequence 141 properly instead. [Stephen Bennett] 142 1433.04_01 - Sun Aug 28 17:50:00 CET 2011 144 145 - The XSUB.h changes to make XS(name) use XS_INTERNAL(name) 146 by default (which were in the 5.15.2 dev release of perl) 147 have been reverted since too many CPAN modules expect to 148 be able to refer to XSUBs declared with XS(name). 149 Instead, ExtUtils::ParseXS will define a copy of the 150 XS_INTERNAL/XS_EXTERNAL macros as necessary going back to 151 perl 5.10.0 (which is the oldest perl I had for testing). 152 By default, ExtUtils::ParseXS will use XS_INTERNAL(name) 153 instead of XS(name). 154 1553.04 - Thu Aug 25 08:20:00 CET 2011 156 157 - Stable release based on 3.03_03, no functional changes. 158 1593.03_03 - Wed Aug 24 19:43:00 CET 2011 160 161 - Try to fix regression for input-typemap override in XS argument 162 list. (CPAN RT #70448) 163 164 - Explicit versions in submodules to fail early if something 165 goes wrong. 166 1673.03_02 - Sun Aug 21 13:19:00 CET 2011 168 169 - Properly strip trailing semicolons form inputmaps. These could 170 trigger warnings (errors in strict C89 compilers) due to 171 additional semicolons being interpreted as empty statements. 172 [Torsten Schoenfeld, Jan Dubois, Steffen Mueller] 173 174 - Now detects and throws a warning if there is a CODE section using 175 RETVAL, but no OUTPUT section. [CPAN RT #69536] 176 177 - Uses the explicit XS_EXTERNAL macro (from perl 5.15.2 and newer) 178 for XSUBs that need to be exported. Defines XS_EXTERNAL to fall 179 back to XS where that is not available. 180 181 - Introduces new EXPORT_XSUB_SYMBOLS XS keyword that forces exported 182 XSUB symbols. It's a no-op on perls before 5.15.2. 183 1843.03 - Thu Aug 11 08:24:00 CET 2011 185 186 - Test fix: Try all @INC-derived typemap locations. (CPAN RT #70047) 187 [Mike Sheldrake] 188 1893.02 - Thu Aug 4 18:19:00 CET 2011 190 191 - Test fix: Use File::Spec->catfile instead of catdir where appropriate. 192 1933.01 - Thu Aug 4 17:51:00 CET 2011 194 195 - No significant changes from 3.00_05. 196 1973.00_05 - Wed Jul 27 22:54:00 CET 2011 198 199 - Define PERL_UNUSED_ARG for pre-3.8.9 perls. 200 This should fix the tests on those perls. 201 2023.00_04 - Wed Jul 27 22:22:00 CET 2011 203 204 - Require perl 5.8.1. 205 206 - Patches from CPAN RT #53938, #61908 207 Both of these are attempts to fix win32 problems: 208 Bug #61908 for ExtUtils-ParseXS: MSWin compilers and back-slashed paths 209 Bug #53938 for ExtUtils-ParseXS: MinGW Broken after 2.21 210 2113.00_03 - Fri Jul 22 20:13:00 CET 2011 212 213 - Add some diagnostics when xsubpp fails to load a current-enough 214 version of ExtUtils::ParseXS. [Steffen Mueller] 215 216 - Add a check to Makefile.PL that scans @INC to determine whether 217 the new xsubpp will be shadowed by another, existing xsubpp 218 and warn the user vehemently. [Steffen Mueller] 219 2203.00_02 - Thu Jul 14 18:00:00 CET 2011 221 222 - Move script/xsubpp back to lib/ExtUtils/xsubpp 223 The original move caused old xsubpp's to be used. 224 2253.00_01 - Tue Jul 12 22:00:00 CET 2011 226 227 - Major refactoring of the whole code base. 228 It finally runs under 'use strict' for the first time! 229 [James Keenan, Steffen Mueller] 230 231 - Typemaps can now be embedded into XS code using a here-doc 232 like syntax and the new "TYPEMAP:" XS keyword. 233 [Steffen Mueller] 234 235 - Move typemap handling code to ExtUtils::Typemaps 236 with full object-oriented goodness. [Steffen Mueller] 237 238 - Check API compatibility when loading xs modules. 239 If on a new-enough perl, add the XS_APIVERSION_BOOTCHECK macro to 240 the _boot function of every XS module to compare it against the API 241 version the module has been compiled against. If the versions do 242 not match, an exception is thrown. [Florian Ragwitz] 243 244 - Fixed compiler warnings in XS. [Zefram] 245 246 - Spell-check [Peter J. Acklam] 247 2482.2206 - Sun Jul 4 15:43:21 EDT 2010 249 250 Bug fixes: 251 252 - Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez] 253 254 - INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry] 255 256 - INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873) 257 [Steffen Mueller] 258 2592.2205 - Wed Mar 10 18:15:36 EST 2010 260 261 Other: 262 263 - No longer ships with Build.PL to avoid creating a circular dependency 264 2652.2204 - Wed Mar 10 14:23:52 EST 2010 266 267 Other: 268 269 - Downgraded warnings on using INCLUDE with a command from "deprecated" 270 to "discouraged" and limited it to the case where the command includes 271 "perl" [Steffen Mueller] 272 2732.2203 - Thu Feb 11 14:00:51 EST 2010 274 275 Bug fixes: 276 277 - Build.PL was not including ExtUtils/xsubpp for installation. Fixed 278 by subclassing M::B::find_pm_files to include it [David Golden] 279 2802.2202 - Wed Jan 27 15:04:59 EST 2010 281 282 Bug fixes: 283 284 - The fix to IN/OUT/OUTLIST was itself broken and is now fixed. 285 [Reported by Serdar Dalgic; fix suggested by Rafael Garcia-Suarez] 286 287 We apologize for the fault in the regex. Those responsible 288 have been sacked. 289 2902.2201 Mon Jan 25 16:12:05 EST 2010 291 292 Bug fixes: 293 294 - IN/OUT/OUTLIST, etc. were broken due to a bad regexp. [Simon Cozens] 295 2962.22 - Mon Jan 11 15:00:07 EST 2010 297 298 No changes from 2.21_02 299 3002.21_02 - Sat Dec 19 10:55:41 EST 2009 301 302 Bug fixes: 303 304 - fixed bugs and added tests for INCLUDE_COMMAND [Steffen Mueller] 305 3062.21_01 - Sat Dec 19 07:22:44 EST 2009 307 308 Enhancements: 309 310 - New 'INCLUDE_COMMAND' directive [Steffen Mueller] 311 312 Bug fixes: 313 314 - Workaround for empty newXS macro found in P5NCI [Goro Fuji] 315 3162.21 - Mon Oct 5 11:17:53 EDT 2009 317 318 Bug fixes: 319 - Adds full path in INCLUDE #line directives (RT#50198) [patch by "spb"] 320 321 Other: 322 - Updated copyright and maintainer list 323 3242.20_07 - Sat Oct 3 11:26:55 EDT 2009 325 326 Bug fixes: 327 - Use "char* file" for perl < 5.9, not "char[] file"; fixes mod_perl 328 breakage due to prior attempts to fix RT#48104 [David Golden] 329 3302.20_06 - Fri Oct 2 23:45:45 EDT 2009 331 332 Bug fixes: 333 - Added t/typemap to fix broken test on perl 5.6.2 [David Golden] 334 - More prototype fixes for older perls [Goro Fuji] 335 - Avoid "const char *" in test files as it breaks on 5.6.2 [Goro Fuji] 336 337 Other: 338 - Merged changes from 2.2004 maintenance branch (see 2.200401 to 2.200403) 339 [David Golden] 340 3412.20_05 - Sat Aug 22 21:46:56 EDT 2009 342 343 Bug fixes: 344 - Fix prototype related bugs [Goro Fuji] 345 - Fix the SCOPE keyword [Goro Fuji] 346 3472.200403 - Fri Oct 2 02:01:58 EDT 2009 348 349 Other: 350 - Removed PERL_CORE specific @INC manipulation (no longer needed) 351 [Nicholas Clark] 352 - Changed hard-coded $^H manipulation in favor of "use re 'eval'" 353 [Nicholas Clark] 354 3552.200402 - Fri Oct 2 01:26:40 EDT 2009 356 357 Bug fixes: 358 - UNITCHECK subroutines were not being called (detected in ext/XS-APItest 359 in Perl blead) [reported by Jesse Vincent, patched by David Golden] 360 3612.200401 - Mon Sep 14 22:26:03 EDT 2009 362 363 - No changes from 2.20_04. 364 365 3662.20_04 - Mon Aug 10 11:18:47 EDT 2009 367 368 Bug fixes: 369 - Changed install_dirs to 'core' for 5.8.9 as well (RT#48474) 370 - Removed t/bugs.t until there is better C++ support in ExtUtils::CBuilder 371 372 Other: 373 - Updated repository URL in META file 374 3752.20_03 - Thu Jul 23 23:14:50 EDT 2009 376 377 Bug fixes: 378 - Fixed "const char *" errors for 5.8.8 (and older) (RT#48104) 379 [Vincent Pit] 380 - Added newline before a preprocessor directive (RT#30673) 381 [patch by hjp] 382 3832.2002 - Sat Jul 18 17:22:27 EDT 2009 384 385 Bug fixes: 386 - Fix Makefile.PL installdirs for older perls 387 3882.20_01 - Wed Jul 8 12:12:47 EDT 2009 389 390 - Fix XSUsage prototypes for testing [Jan Dubois] 391 3922.20 - Wed Jul 1 13:42:11 EDT 2009 393 394 - No changes from 2.19_04 395 3962.19_04 - Mon Jun 29 11:49:12 EDT 2009 397 398 - Changed tests to use Test::More and added it to prereqs 399 400 - Some tests skip if no compiler or if no dynamic loading 401 402 - INTERFACE keyword tests skipped for perl < 5.8 403 4042.19_03 - Sat Jun 27 22:51:18 EDT 2009 405 406 - Released to see updated results from smoke testers 407 408 - Fix minor doc typo pulled from blead 409 4102.19_02 - Wed Aug 6 22:18:33 2008 411 412 - Fix the usage reports to consistently report package name as well 413 as sub name across ALIAS, INTERFACE and regular XSUBS. [Robert May] 414 415 - Cleaned up a warning with -Wwrite-strings that gets passed into 416 every parsed XS file. [Steve Peters] 417 418 - Allow (pedantically correct) C pre-processor comments in the code 419 snippets of typemap files. [Nicholas Clark] 420 4212.19 - Sun Feb 17 14:27:40 2008 422 423 - Fixed the treatment of the OVERLOAD: keyword, which was causing a C 424 compile error. [Toshiyuki Yamato] 425 4262.18 - Mon Jan 29 20:56:36 2007 427 428 - Added some UNITCHECK stuff, which (I think) makes XS code able to 429 do UNITCHECK blocks. [Nicholas Clark] 430 431 - Changed 'use re "eval";' to 'BEGIN { $^H |= 0x00200000 };' so we 432 can compile re.xs in bleadperl. [Yves Orton] 433 434 - Fix an undefined-variable warning related to 'inout' parameter 435 processing. 436 4372.17 - Mon Nov 20 17:07:27 2006 438 439 - Stacked $filepathname to make #line directives in #INCLUDEs work. 440 [Nicholas Clark] 441 442 - Sprinked dVAR in with dXSARGS, for God-(Jarkko)-knows-what 443 reason. [Jarkko Hietaniemi] 444 445 - Use printf-style formats in Perl_croak() for some significant 446 savings in number of distinct constant strings in the linked 447 binaries we create. [Alexey Tourbin] 448 449 - Don't use 'class' as a variable name in the t/XSTest.xs module, 450 since that's a keyword in C++. [Jarkko Hietaniemi] 451 4522.16 Fri Sep 15 22:33:24 CDT 2006 453 454 - Fix a problem with PREFIX not working inside INTERFACE 455 sections. [Salvador Fandin~o] 456 4572.15 Mon Oct 10 11:02:13 EDT 2005 458 459 - I accidentally left out a README from the distribution. Now it's 460 auto-created from the main documentation in ExtUtils/ParseXS.pm. 461 4622.14 Sat Oct 8 21:49:15 EDT 2005 463 464 - The filehandle for the .xs file was never being properly closed, 465 and now it is. This was causing some Win32 problems with 466 Module::Build's tests, which create a .xs file, process it with 467 ParseXS, and then try to remove it. [Spotted by Randy Sims] 468 4692.13 Mon Oct 3 21:59:06 CDT 2005 470 471 - Integrate a cleanup-related change from bleadperl that somehow 472 never got into this copy. [Steve Hay] 473 4742.12 Wed Aug 24 20:03:09 CDT 2005 475 476 - On Win32, there was a DLL file we create during testing that we 477 couldn't delete unless we closed it first, so testing failed when 478 the deletion was attempted. This should now work (provided the 479 version of perl is high enough to have DynaLoader::dl_unload_file() 480 - I'm not sure what will happen otherwise). [Steve Hay] 481 482 - Fix a spurious warning during testing about a variable that's used 483 before it's initialized. [Steve Hay] 484 4852.11 Mon Jun 13 23:00:23 CDT 2005 486 487 - Make some variables global, to avoid some "will not stay shared" 488 warnings at compile time. [Rafael Garcia-Suarez] 489 4902.10 Mon May 30 21:29:44 CDT 2005 491 492 - This module is being integrated into the perl core; the regression 493 tests will now work properly when run as part of the core build. 494 [Yitzchak Scott-Thoennes] 495 496 - Added the ability to create output files with a suffix other than 497 ".c", via the new "csuffix" option. This gets the module working 498 on Symbian. [Jarkko Hietaniemi] 499 500 - Added the ability to put 'extern "C"' declarations in front of 501 prototypes. [Jarkko Hietaniemi] 502 5032.09 Sun Mar 27 11:11:49 CST 2005 504 505 - Integrated change #18270 from the perl core, which fixed a problem 506 in which xsubpp can make nested comments in C code (which is 507 bad). [Nicholas Clark] 508 509 - When no "MODULE ... PACKAGE ... PREFIX" line is found, it's now 510 still a fatal error for ParseXS, but we exit with status 0, which 511 is what the old xsubpp did and seems to work best with some modules 512 like Win32::NetAdmin. See RT ticket 11472. [Steve Hay] 513 5142.08 Fri Feb 20 21:41:22 CST 2004 515 516 - Fixed a problem with backslashes in file paths (e.g. C:\Foo\Bar.xs) 517 disappearing in error messages. [Randy Sims, Steve Hay] 518 519 - Did a little minor internal code cleanup in the 520 ExtUtils::ParseXS::CountLines class, now other classes don't poke 521 around in its package variables. 522 5232.07 Sun Jan 25 17:01:52 CST 2004 524 525 - We now use ExtUtils::CBuilder for testing the compile/build phase 526 in the regression tests. It's not necessary to have it for runtime 527 usage, though. 528 529 - Fixed a minor documentation error (look in 'Changes' for revision 530 history, not 'changes.pod'). [Scott R. Godin] 531 5322.06 Fri Dec 26 09:00:47 CST 2003 533 534 - Some fixes in the regression tests for the AIX platform. 535 5362.05 Mon Sep 29 10:33:39 CDT 2003 537 538 - We no longer trim the directory portions from the "#line " comments 539 in the generated C code. This helps cooperation with many editors' 540 auto-jump-to-error stuff. [Ross McFarland] 541 542 - In some cases the PERL_UNUSED_VAR macro is needed to get rid of C 543 compile-time warnings in generated code. Since this eliminates so 544 many warnings, turning on "-Wall -W" (or your platform's 545 equivalent) can once again be helpful. [Ross McFarland] 546 547 - Did a huge amount of variable-scoping cleanup, and it *still* 548 doesn't compile under 'use strict;'. Much progress was made 549 though, and many scoping issues were fixed. 550 5512.04 Thu Sep 4 13:10:59 CDT 2003 552 553 - Added a COPYRIGHT section to the documentation. [Spotted by Ville 554 Skytta] 555 5562.03 Sat Aug 16 17:49:03 CST 2003 557 558 - Fixed a warning that occurs if a regular expression (buried deep 559 within the bowels of the code here) fails. [Spotted by Michael 560 Schwern] 561 562 - Fixed a testing error on Cygwin. [Reini Urban] 563 5642.02 Sun Mar 30 18:20:12 CST 2003 565 566 - Now that we know this module doesn't work (yet?) with perl 5.005, 567 put a couple 'use 5.006' statements in the module & Makefile.PL so 568 we're explicit about the dependency. [Richard Clamp] 569 5702.01 Thu Mar 20 08:22:36 CST 2003 571 572 - Allow -C++ flag for backward compatibility. It's a no-op, and has 573 been since perl5.003_07. [PodMaster] 574 5752.00 Sun Feb 23 16:40:17 CST 2003 576 577 - Tests now function under all three of the supported compilers on 578 Windows environments. [Randy W. Sims] 579 580 - Will now install to the 'core' perl module directory instead of to 581 'site_perl' or the like, because this is the only place MakeMaker 582 will look for the xsubpp script. 583 584 - Explicitly untie and close the output file handle because ParseXS was 585 holding the file handle open, preventing the compiler from opening 586 it on Win32. [Randy W. Sims] 587 588 - Added an '--output FILENAME' flag to xsubpp and changed ParseXS to use 589 the named file in the #line directives when the output file has an 590 extension other than '.c' (i.e. '.cpp'). [Randy W. Sims] 591 592 - Added conditional definition of the PERL_UNUSED_VAR macro to the 593 output file in case it's not already defined for backwards 594 compatibility with pre-5.8 versions of perl. (Not sure if this is the 595 best solution.) [Randy W. Sims] 596 597 5981.99 Wed Feb 5 10:07:47 PST 2003 599 600 - Version bump to 1.99 so it doesn't look like a 'beta release' to 601 CPAN.pm. No code changes, since I haven't had any bug reports. 602 603 - Fixed a minor problem in the regression tests that was creating an 604 XSTest..o file instead of XSTest.o 605 606 6071.98_01 Mon Dec 9 11:50:41 EST 2002 608 609 - Converted from ExtUtils::xsubpp in bleadperl 610 611 - Basic set of regression tests written 612