diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-11-17 21:44:55 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-11-17 21:44:55 +0000 |
commit | 639ec4c3fd05f123a8a5f9afd0a1cd496fd6bfa3 (patch) | |
tree | ea099969d19c68996fa4e91c3cda50eade15c4c7 | |
parent | 8f6eaa144d3c1422e8cb5e98c041e8e5ddc566d3 (diff) | |
download | perl-639ec4c3fd05f123a8a5f9afd0a1cd496fd6bfa3.tar.gz |
Note the change to XS(), and the addition of XSPROTO(), as something
incompatible. Note also that it's been around in 5.10.0 for nearly a
year, so one would expect any affected C++ modules to have adapted by
now.
p4raw-id: //depot/maint-5.8/perl@34871
-rw-r--r-- | pod/perl589delta.pod | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/pod/perl589delta.pod b/pod/perl589delta.pod index 9c176ce333..e51f8c01b3 100644 --- a/pod/perl589delta.pod +++ b/pod/perl589delta.pod @@ -9,8 +9,13 @@ the 5.8.9 release. =head1 Incompatible Changes -There are no changes intentionally incompatible with 5.8.8. If any exist, -they are bugs and reports are welcome. +A particular construction in the source code of extensions written in C++ +may need changing. See L</"Changed Internals"> for more details. All +extensions written in C, most written in C++, and all existing compiled +extensions are unaffected. This was necessary to improve C++ support. + +Other than this, there are no changes intentionally incompatible with 5.8.8. +If any exist, they are bugs and reports are welcome. =head1 Core Enhancements @@ -1925,6 +1930,23 @@ silently exiting.) =head1 Changed Internals +The perl sources can now be compiled with a C++ compiler instead of a C +compiler. A necessary implementation details is that under C++, the macro +C<XS> used to define XSUBs now includes an C<extern "C"> definition. A side +effect of this is that B<C++> code that used the construction + + typedef XS(SwigPerlWrapper); + +now needs to be written + + typedef XSPROTO(SwigPerlWrapper); + +using the new C<XSPROTO> macro, in order to compile. C extensions are +unaffected, although C extensions are encouraged to use C<XSPROTO> too. +This change was present in the 5.10.0 release of perl, so any actively +maintained code that happened to use this construction should already have +been adapted. Code that needs changing will fail with a compilation error. + C<set> magic on localizing/assigning to a magic variable will now only trigger for I<container magics>, i.e. it will for C<%ENV> or C<%SIG> but not for C<$#array>. |