This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove my todo commits from perldelta template
[perl5.git] / pod / perldelta.pod
index 77df186..f56777d 100644 (file)
@@ -9,8 +9,6 @@ d9018cbe5b480ba29cc6151aba8f5102a7e009c4 (Eric Brine)
 a04eb69c733e84250299f12df200f10b76b0a45c (David Golden)
 7a799f6bb3cac2e1bf9bede83579324cffa59c16 (David Golden)
 be48bbe8d671b6841c3ec7cb734b98071afe3cd9 (Chip)
-b64f48ffd8bf2c857b777e167188f0434333cc7b (Steffen Müller)
-1d2615b4c7e80af2a76441add35092ec4d81724f (Steffen Müller)
 
 =head1 NAME
 
@@ -174,13 +172,28 @@ methods, etc.
 One side effect of these changes is that blessing into "\0" no longer
 causes C<ref()> to return false.
 
-=head2 Autoloaded sort subroutines
+=head2 Autoloaded sort Subroutines
 
 Custom sort subroutines can now be autoloaded [perl #30661]:
 
     sub AUTOLOAD { ... }
     @sorted = sort foo @list; # uses AUTOLOAD
 
+=head2 Improved typemaps for Some Builtin Types
+
+Most XS authors will be aware that there is a longstanding bug
+in the OUTPUT typemap for T_AVREF (C<AV*>), T_HVREF (C<HV*>),
+T_CVREF (C<CV*>), and T_SVREF (C<SVREF> or C<\$foo>) that requires
+manually decrementing the reference count of the return value
+instead of the typemap taking care of this. For
+backwards-compatibility, this cannot be changed in the default
+typemaps. But we now provide additional typemaps
+C<T_AVREF_REFCOUNT_FIXED>, etc. that do not exhibit this bug.
+Using them in your extension is as simple as having one line
+in your C<TYPEMAP> section:
+
+  HV*  T_HVREF_REFCOUNT_FIXED
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -254,6 +267,19 @@ L<Archive::Tar> has been upgraded from version 1.78 to version 1.80.
 
 =item *
 
+L<base> has been upgraded from version 2.17 to version 2.18.
+
+C<base> no longer sets a module's C<$VERSION> to "-1" when a module it loads
+does not define a C<$VERSION>.  This change has been made because "-1" is not
+a valid version number under the new "lax" criteria used internally by
+C<UNIVERSAL::VERSION>.  (See L<version> for more on "lax" version criteria.)
+
+C<base> no longer internally skips loading modules it has already loaded and
+instead relies on C<require> to inspect C<%INC>.  This fixes a bug when C<base>
+is used with code that clear C<%INC> to force a module to be reloaded.
+
+=item *
+
 L<Digest> has been upgraded from version 1.16 to version 1.17.
 
 =item *