summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-11-17 21:44:55 +0000
committerNicholas Clark <nick@ccl4.org>2008-11-17 21:44:55 +0000
commit639ec4c3fd05f123a8a5f9afd0a1cd496fd6bfa3 (patch)
treeea099969d19c68996fa4e91c3cda50eade15c4c7
parent8f6eaa144d3c1422e8cb5e98c041e8e5ddc566d3 (diff)
downloadperl-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.pod26
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>.