This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Maintainers.pl to point to Dave Golden's guide to updating Module-Build in...
[perl5.git] / pod / perl593delta.pod
index 2af1af6..11f53ab 100644 (file)
@@ -1,6 +1,8 @@
+=encoding utf8
+
 =head1 NAME
 
 =head1 NAME
 
-perldelta - what is new for perl v5.9.3
+perl593delta - what is new for perl v5.9.3
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
@@ -64,7 +66,7 @@ Robin Houston.
 
 Perl 5 now has a switch statement. It's available when C<use feature
 'switch'> is in effect. This feature introduces three new keywords,
 
 Perl 5 now has a switch statement. It's available when C<use feature
 'switch'> is in effect. This feature introduces three new keywords,
-C<given>, C<when>, and C<default> :
+C<given>, C<when>, and C<default>:
 
     given ($foo) {
        when (/^abc/) { $abc = 1; }
 
     given ($foo) {
        when (/^abc/) { $abc = 1; }
@@ -83,7 +85,7 @@ detail">.
 
 =head2 C<say()>
 
 
 =head2 C<say()>
 
-say() is a new built-in, only avaiable when C<use feature 'say'> is in
+say() is a new built-in, only available when C<use feature 'say'> is in
 effect, that is similar to print(), but that implicitly appends a newline
 to the printed string. See L<perlfunc/say>.
 
 effect, that is similar to print(), but that implicitly appends a newline
 to the printed string. See L<perlfunc/say>.
 
@@ -107,7 +109,7 @@ details. (Contributed by Gisle Aas.)
 The support for assertions, introduced in perl 5.9.0, has been improved.
 The syntax for the C<-A> command-line switch has changed; it now accepts
 an optional module name, defaulting to C<assertions::activate>. See
 The support for assertions, introduced in perl 5.9.0, has been improved.
 The syntax for the C<-A> command-line switch has changed; it now accepts
 an optional module name, defaulting to C<assertions::activate>. See
-L<assertions> and L<perlrun>. (Contributed by Salvador Fandiño García.)
+L<assertions> and L<perlrun>. (Contributed by Salvador Fandiño García.)
 
 =head2 Unicode Character Database 4.1.0
 
 
 =head2 Unicode Character Database 4.1.0
 
@@ -117,7 +119,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
 =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
 
 
 =head2 Recursive sort subs
 
@@ -161,7 +163,7 @@ Enhancements">.
 
 =item *
 
 
 =item *
 
-C<assertions::compat>, also available on CPAN, allows to use assertions on
+C<assertions::compat>, also available on CPAN, allows the use of assertions on
 perl versions prior to 5.9.0 (that is the first one to natively support
 them).
 
 perl versions prior to 5.9.0 (that is the first one to natively support
 them).
 
@@ -189,6 +191,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.
 
 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
 =back
 
 =head1 Utility Changes
@@ -198,6 +204,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>.
 
 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
 =head2 C<shasum>
 
 This command-line utility, used to print or to check SHA digests, comes
@@ -205,7 +217,7 @@ with the new C<Digest::SHA> module.
 
 =head2 C<h2xs> enhancements
 
 
 =head2 C<h2xs> enhancements
 
-C<h2xs> implements new option C<--use-xsloader> to force use of
+C<h2xs> implements new option C<--use-xsloader> to force use of
 C<XSLoader> even in backwards compatible modules.
 
 The handling of authors' names that had apostrophes has been fixed.
 C<XSLoader> even in backwards compatible modules.
 
 The handling of authors' names that had apostrophes has been fixed.
@@ -214,8 +226,8 @@ Any enums with negative values are now skipped.
 
 =head2 C<perlivp> enhancements
 
 
 =head2 C<perlivp> enhancements
 
-C<perlivp> implements new option C<-a> and will not check for F<*.ph>
-files by default any more.  Use the C<-a> option to run I<all> tests.
+C<perlivp> no longer checks for F<*.ph> files by default.  Use the new C<-a>
+option to run I<all> tests.
 
 =head1 Documentation
 
 
 =head1 Documentation
 
@@ -223,7 +235,9 @@ files by default any more.  Use the C<-a> option to run I<all> tests.
 
 The L<perlglossary> manpage is a glossary of terms used in the Perl
 documentation, technical and otherwise, kindly provided by O'Reilly Media,
 
 The L<perlglossary> manpage is a glossary of terms used in the Perl
 documentation, technical and otherwise, kindly provided by O'Reilly Media,
-inc.
+Inc.
+
+L<perltodo> now lists a rough roadmap to Perl 5.10.
 
 =head1 Performance Enhancements
 
 
 =head1 Performance Enhancements
 
@@ -234,13 +248,24 @@ transliteration mappings has been reimplemented in XS.
 
 =head2 Constant subroutines
 
 
 =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
 
 =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
 for details.
 
 =head2 Weak references are cheaper
@@ -251,7 +276,7 @@ happens at program exit, it may be skipped completely.
 
 =head2 sort() enhancements
 
 
 =head2 sort() enhancements
 
-Salvador Fandiño provided improvements to reduce the memory usage of C<sort>
+Salvador Fandiño provided improvements to reduce the memory usage of C<sort>
 and to speed up some cases.
 
 =head1 Installation and Configuration Improvements
 and to speed up some cases.
 
 =head1 Installation and Configuration Improvements
@@ -311,7 +336,7 @@ anyway.)
 =head2 Calling CORE::require()
 
 CORE::require() and CORE::do() were always parsed as require() and do()
 =head2 Calling CORE::require()
 
 CORE::require() and CORE::do() were always parsed as require() and do()
-when they were overriden. This is now fixed.
+when they were overridden. This is now fixed.
 
 =head2 Subscripts of slices
 
 
 =head2 Subscripts of slices
 
@@ -333,7 +358,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
 
 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.
 
 In related fixes, it was possible for badly written code that did not follow
 the documentation of C<Sys::Syslog> to have formatting vulnerabilities.
@@ -367,7 +392,7 @@ Trailing spaces are now trimmed from C<$!> and C<$^E>.
 
 =item *
 
 
 =item *
 
-Operations that require perl to read a process' list of groups, such as reads
+Operations that require perl to read a process's list of groups, such as reads
 of C<$(> and C<$)>, now dynamically allocate memory rather than using a
 fixed sized array. The fixed size array could cause C stack exhaustion on
 systems configured to use large numbers of groups.
 of C<$(> and C<$)>, now dynamically allocate memory rather than using a
 fixed sized array. The fixed size array could cause C stack exhaustion on
 systems configured to use large numbers of groups.
@@ -378,8 +403,8 @@ C<PerlIO::scalar> now works better with non-default C<$/> settings.
 
 =item *
 
 
 =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 *
 
 
 =item *
 
@@ -461,7 +486,7 @@ of the declarations involved is a C<my> variable:
     my $x;  our $x;    # warns
     our $x;  my $x;    # warns
 
     my $x;  our $x;    # warns
     our $x;  my $x;    # warns
 
-On the other hand, the following :
+On the other hand, the following:
 
     our $x; our $x;
 
 
     our $x; our $x;
 
@@ -500,10 +525,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>).
 
 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
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles