X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/35cdf2f9effb7b7d5ac9c4a22f487d86f223a45e..d4f686ebcef0088965d36d72f49b680287c377a2:/pod/perl593delta.pod diff --git a/pod/perl593delta.pod b/pod/perl593delta.pod index 2af1af6..11f53ab 100644 --- a/pod/perl593delta.pod +++ b/pod/perl593delta.pod @@ -1,6 +1,8 @@ +=encoding utf8 + =head1 NAME -perldelta - what is new for perl v5.9.3 +perl593delta - what is new for perl v5.9.3 =head1 DESCRIPTION @@ -64,7 +66,7 @@ Robin Houston. Perl 5 now has a switch statement. It's available when C is in effect. This feature introduces three new keywords, -C, C, and C : +C, C, and C: given ($foo) { when (/^abc/) { $abc = 1; } @@ -83,7 +85,7 @@ detail">. =head2 C -say() is a new built-in, only avaiable when C is in +say() is a new built-in, only available when C is in effect, that is similar to print(), but that implicitly appends a newline to the printed string. See L. @@ -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. See -L and L. (Contributed by Salvador Fandiño García.) +L and L. (Contributed by Salvador Fandiño García.) =head2 Unicode Character Database 4.1.0 @@ -117,7 +119,7 @@ been updated to 4.1.0. =head2 C You can now use C 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 @@ -161,7 +163,7 @@ Enhancements">. =item * -C, also available on CPAN, allows to use assertions on +C, 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). @@ -189,6 +191,10 @@ C is a module to manipulate C archives. C is a module used to calculate many types of SHA digests, has been included for SHA support in the CPAN module. +=item * + +C and C have been added. + =back =head1 Utility Changes @@ -198,6 +204,12 @@ has been included for SHA support in the CPAN module. C is a pure perl implementation of C, that comes with C. +=head2 C + +C is a small script used to generate a diff between the contents +of a tar archive and a directory tree. Like C, it comes with +C. + =head2 C This command-line utility, used to print or to check SHA digests, comes @@ -205,7 +217,7 @@ with the new C module. =head2 C enhancements -C implements new option C<--use-xsloader> to force use of +C implements a new option C<--use-xsloader> to force use of C 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 enhancements -C 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 tests. +C no longer checks for F<*.ph> files by default. Use the new C<-a> +option to run I tests. =head1 Documentation @@ -223,7 +235,9 @@ files by default any more. Use the C<-a> option to run I tests. The L manpage is a glossary of terms used in the Perl documentation, technical and otherwise, kindly provided by O'Reilly Media, -inc. +Inc. + +L now lists a rough roadmap to Perl 5.10. =head1 Performance Enhancements @@ -234,13 +248,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 now takes about +200K less memory. =head2 C The new compilation flag C, 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 +from creating an empty scalar with every new typeglob. See L for details. =head2 Weak references are cheaper @@ -251,7 +276,7 @@ happens at program exit, it may be skipped completely. =head2 sort() enhancements -Salvador Fandiño provided improvements to reduce the memory usage of C +Salvador Fandiño provided improvements to reduce the memory usage of C 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() -when they were overriden. This is now fixed. +when they were overridden. This is now fixed. =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 -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 to have formatting vulnerabilities. @@ -367,7 +392,7 @@ Trailing spaces are now trimmed from C<$!> and C<$^E>. =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. @@ -378,8 +403,8 @@ C now works better with non-default C<$/> settings. =item * -You can now use the C operator to repeat a C list. This used -to raise a syntax error. For example: C. +The C repetition operator is now able to operate on C lists. This +used to raise a syntax error. =item * @@ -461,7 +486,7 @@ of the declarations involved is a C variable: 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; @@ -500,10 +525,6 @@ C parameters. The inheritance hierarchy of C modules has changed; C now inherits from C (it used to inherit from C). -=head1 Known Problems - -=head2 Platform Specific Problems - =head1 Reporting Bugs If you find what you think is a bug, you might check the articles