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