This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix URL to Unicode 5.1.0 notable changes
[perl5.git] / pod / perl593delta.pod
index d29b928..80f8cb9 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perldelta - what is new for perl v5.9.3
+perl593delta - what is new for perl v5.9.3
 
 =head1 DESCRIPTION
 
@@ -117,7 +117,7 @@ been updated to 4.1.0.
 =head2 C<no VERSION>
 
 You can now use C<no> followed by a version number to specify that you
-want to use a version of perl inferior to the specified one.
+want to use a version of perl older than the specified one.
 
 =head2 Recursive sort subs
 
@@ -189,6 +189,10 @@ C<Archive::Tar> is a module to manipulate C<tar> archives.
 C<Digest::SHA> is a module used to calculate many types of SHA digests,
 has been included for SHA support in the CPAN module.
 
+=item *
+
+C<ExtUtils::CBuilder> and C<ExtUtils::ParseXS> have been added.
+
 =back
 
 =head1 Utility Changes
@@ -198,6 +202,12 @@ has been included for SHA support in the CPAN module.
 C<ptar> is a pure perl implementation of C<tar>, that comes with
 C<Archive::Tar>.
 
+=head2 C<ptardiff>
+
+C<ptardiff> is a small script used to generate a diff between the contents
+of a tar archive and a directory tree. Like C<ptar>, it comes with
+C<Archive::Tar>.
+
 =head2 C<shasum>
 
 This command-line utility, used to print or to check SHA digests, comes
@@ -225,6 +235,8 @@ The L<perlglossary> manpage is a glossary of terms used in the Perl
 documentation, technical and otherwise, kindly provided by O'Reilly Media,
 Inc.
 
+L<perltodo> now lists a rough roadmap to Perl 5.10.
+
 =head1 Performance Enhancements
 
 =head2 XS-assisted SWASHGET
@@ -234,13 +246,24 @@ transliteration mappings has been reimplemented in XS.
 
 =head2 Constant subroutines
 
-XXX
+The interpreter internals now support a far more memory efficient form of
+inlineable constants. Storing a reference to a constant value in a symbol
+table is equivalent to a full typeglob referencing a constant subroutine,
+but using about 400 bytes less memory. This proxy constant subroutine is
+automatically upgraded to a real typeglob with subroutine if necessary.
+The approach taken is analogous to the existing space optimisation for
+subroutine stub declarations, which are stored as plain scalars in place
+of the full typeglob.
+
+Several of the core modules have been converted to use this feature for
+their system dependent constants - as a result C<use POSIX;> now takes about
+200K less memory.
 
 =head2 C<PERL_DONT_CREATE_GVSV>
 
 The new compilation flag C<PERL_DONT_CREATE_GVSV>, introduced as an option
 in perl 5.8.8, is turned on by default in perl 5.9.3. It prevents perl
-from creating an empty scalar with every new typeglob. See L<perl588delta>
+from creating an empty scalar with every new typeglob. See L<perl589delta>
 for details.
 
 =head2 Weak references are cheaper
@@ -333,7 +356,7 @@ was backed out.
 
 Using the sprintf() function with some formats could lead to a buffer
 overflow in some specific cases. This has been fixed, along with several
-other bugs, notably in bound checking.
+other bugs, notably in bounds checking.
 
 In related fixes, it was possible for badly written code that did not follow
 the documentation of C<Sys::Syslog> to have formatting vulnerabilities.
@@ -378,8 +401,8 @@ C<PerlIO::scalar> now works better with non-default C<$/> settings.
 
 =item *
 
-You can now use the C<x> operator to repeat a C<qw//> list. This used
-to raise a syntax error. For example: C<qw(foo bar) x 3>.
+The C<x> repetition operator is now able to operate on C<qw//> lists. This
+used to raise a syntax error.
 
 =item *
 
@@ -500,10 +523,6 @@ C<AV*> parameters.
 The inheritance hierarchy of C<B::> modules has changed; C<B::NV> now
 inherits from C<B::SV> (it used to inherit from C<B::IV>).
 
-=head1 Known Problems
-
-=head2 Platform Specific Problems
-
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles