Browse files

Revert back to making XS(name) expose XSUB symbols

Instead, as Zefram recommended, ExtUtils::ParseXS will be patched
to not export XSUB symbols by default that are generated through
the module itself. As Zefram said, this has the advantage of
allowing older perls to benefit from the non-exporting of symbols.
  • Loading branch information...
1 parent 7bc95ae commit 0cb93b3a42a2d489a092d17005fb2b4dcbf74d95 @tsee tsee committed Aug 28, 2011
Showing with 5 additions and 5 deletions.
  1. +5 −5 XSUB.h
@@ -48,16 +48,15 @@ Used to access elements on the XSUB's stack.
=for apidoc AmU||XS
Macro to declare an XSUB and its C parameter list. This is handled by
+C<xsubpp>. It is the same as using the more explicit XS_EXTERNAL macro.
=for apidoc AmU||XS_INTERNAL
Macro to declare an XSUB and its C parameter list without exporting the symbols.
This is handled by C<xsubpp> and generally preferable over exporting the XSUB
-symbols unnecessarily. This is handled by C<xsubpp>.
+symbols unnecessarily.
=for apidoc AmU||XS_EXTERNAL
Macro to declare an XSUB and its C parameter list explicitly exporting the symbols.
-This is handled by C<xsubpp>.
=for apidoc Ams||dAX
Sets up the C<ax> variable.
@@ -152,8 +151,9 @@ is a lexical $_ in scope.
# endif
-/* We do not export xsub symbols any more by default */
-#define XS(name) XS_INTERNAL(name)
+/* We do export xsub symbols by default for the public XS macro.
+ * Try explicitly using XS_INTERNAL/XS_EXTERNAL instead, please. */
+#define XS(name) XS_EXTERNAL(name)
#define dAX const I32 ax = (I32)(MARK - PL_stack_base + 1)

0 comments on commit 0cb93b3

Please sign in to comment.