make Dump() call the XSUB implementation transparently (modified
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index a443ff4..8e62de0 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perldelta - what's new for perl v5.6 (as of v5.005_64)
+perldelta - what's new for perl v5.6.0
 
 =head1 DESCRIPTION
 
@@ -60,14 +60,14 @@ See L<perldata>.
 
 =head2 Perl's version numbering has changed
 
-Beginning with Perl version 5.6, the version number convention has been
+Beginning with Perl version 5.6.0, the version number convention has been
 changed to a "dotted integer" scheme that is more commonly found in open
 source projects.
 
 Maintenance versions of v5.6.0 will be released as v5.6.1, v5.6.2 etc.
-The next development series following v5.6 will be numbered v5.7.x,
+The next development series following v5.6.0 will be numbered v5.7.x,
 beginning with v5.7.0, and the next major production release following
-v5.6 will be v5.8.
+v5.6.0 will be v5.8.0.
 
 The English module now sets $PERL_VERSION to $^V (a string value) rather
 than C<$]> (a numeric value).  (This is a potential incompatibility.
@@ -79,11 +79,12 @@ See L<Support for strings represented as a vector of ordinals> for more on that.
 To cope with the new versioning system's use of at least three significant
 digits for each version component, the method used for incrementing the
 subversion number has also changed slightly.  We assume that versions older
-than v5.6 have been incrementing the subversion component in multiples of
+than v5.6.0 have been incrementing the subversion component in multiples of
 10.  Versions after v5.6.0 will increment them by 1.  Thus, using the new
-notation, 5.005_03 is the same as v5.5.30, and the first maintenance
-version following v5.6.0 will be v5.6.1, which amounts to a floating point
-value of 5.006_001).
+notation, 5.005_03 is the "same" as v5.5.30, and the first maintenance
+version following v5.6.0 will be v5.6.1 (which should be read as being
+equivalent to a floating point value of 5.006_001 in the older format,
+stored in C<$]>).
 
 =item Literals of the form C<1.2.3> parse differently
 
@@ -295,11 +296,6 @@ the old names are still supported when F<patchlevel.h> is explicitly
 included (as required before), so there is no source incompatibility
 from the change.
 
-=item Support for C++ exceptions
-
-change#3386, also needs perlguts documentation
-[TODO - Chip Salzenberg <chip@perlsupport.com>]
-
 =back
 
 =head2 Binary Incompatibilities
@@ -471,9 +467,6 @@ concurrently in different threads.  -Dusethreads only provides the
 additional functionality of the perl_clone() API call and other
 support for running B<cloned> interpreters concurrently.
 
-[XXX TODO - the Compiler backends may be broken when USE_ITHREADS is
-enabled.]
-
 =head2 Lexically scoped warning categories
 
 You can now control the granularity of warnings emitted by perl at a finer
@@ -589,10 +582,10 @@ C<oct()>:
 
 Perl now allows the arrow to be omitted in many constructs
 involving subroutine calls through references.  For example,
-C<$foo[10]-E<gt>('foo')> may now be written C<$foo[10]('foo')>.
+C<< $foo[10]->('foo') >> may now be written C<$foo[10]('foo')>.
 This is rather similar to how the arrow may be omitted from
-C<$foo[10]-E<gt>{'foo'}>.  Note however, that the arrow is still
-required for C<foo(10)-E<gt>('bar')>.
+C<< $foo[10]->{'foo'} >>.  Note however, that the arrow is still
+required for C<< foo(10)->('bar') >>.
 
 =head2 exists() is supported on subroutine names
 
@@ -626,7 +619,7 @@ The length argument of C<syswrite()> has become optional.
 
 =head2 File and directory handles can be autovivified
 
-Similar to how constructs such as C<$x-E<gt>[0]> autovivify a reference,
+Similar to how constructs such as C<< $x->[0] >> autovivify a reference,
 handle constructors (open(), opendir(), pipe(), socketpair(), sysopen(),
 socket(), and accept()) now autovivify a file or directory handle
 if the handle passed to them is an uninitialized scalar variable.  This
@@ -648,7 +641,6 @@ filehandles that must be passed around, as in the following example:
        # $f implicitly closed here
     }
 
-[TODO - this idiom needs more pod penetration]
 
 =head2 64-bit support
 
@@ -901,10 +893,6 @@ change#2150
 change#4052
 [TODO - Ilya Zakharevich <ilya@math.ohio-state.edu>]
 
-=head2 Experimental support for user-hooks in @INC
-
-[TODO - Ken Fox <kfox@ford.com>]
-
 =head2 C<require> and C<do> may be overridden
 
 C<require> and C<do 'file'> operations may be overridden locally
@@ -922,11 +910,11 @@ BEGIN blocks are executed under such conditions, this variable
 enables perl code to determine whether actions that make sense
 only during normal running are warranted.  See L<perlvar>.
 
-=head2 New variable $^V contains Perl version in v5.6.0 format
+=head2 New variable $^V contains Perl version as a string
 
 C<$^V> contains the Perl version number as a string composed of
-characters whose ordinals match the version numbers, so that it may
-be used in string comparisons.
+characters whose ordinals match the version numbers, e.g., v5.6.0.
+This may be used in string comparisons.
 
 See C<Support for strings represented as a vector of ordinals> for an
 example.
@@ -942,7 +930,7 @@ See F<INSTALL> and F<README.Y2K>.
 
 =head1 Significant bug fixes
 
-=head2 E<lt>HANDLEE<gt> on empty files
+=head2 <HANDLE> on empty files
 
 With C<$/> set to C<undef>, "slurping" an empty file returns a string of
 zero length (instead of C<undef>, as it used to) the first time the
@@ -1000,14 +988,14 @@ handles I/O.
 
 =head2 Better diagnostics on meaningless filehandle operations
 
-Constructs such as C<open(E<lt>FHE<gt>)> and C<close(E<lt>FHE<gt>)>
+Constructs such as C<< open(<FH>) >> and C<< close(<FH>) >>
 are compile time errors.  Attempting to read from filehandles that
 were opened only for writing will now produce warnings (just as
 writing to read-only filehandles does).
 
 =head2 Where possible, buffered data discarded from duped input filehandle
 
-C<open(NEW, "E<lt>&OLD")> now attempts to discard any data that
+C<< open(NEW, "<&OLD") >> now attempts to discard any data that
 was previously read and buffered in C<OLD> before duping the handle.
 On platforms where doing this is allowed, the next read operation
 on C<NEW> will return the same data as the corresponding operation
@@ -1016,9 +1004,9 @@ of the following disk block instead.
 
 =head2 eof() has the same old magic as <>
 
-C<eof()> would return true if no attempt to read from C<E<lt>E<gt>> had
+C<eof()> would return true if no attempt to read from C<< <> >> had
 yet been made.  C<eof()> has been changed to have a little magic of its
-own, it now opens the C<E<lt>E<gt>> files.
+own, it now opens the C<< <> >> files.
 
 =head2 system(), backticks and pipe open now reflect exec() failure
 
@@ -1045,7 +1033,7 @@ array element in that slot.
 =head2 Pseudo-hashes work better
 
 Dereferencing some types of reference values in a pseudo-hash,
-such as C<$ph-E<gt>{foo}[1]>, was accidentally disallowed.  This has
+such as C<< $ph->{foo}[1] >>, was accidentally disallowed.  This has
 been corrected.
 
 When applied to a pseudo-hash element, exists() now reports whether
@@ -1182,10 +1170,6 @@ Certain operations in the RHS of assignment statements have been
 optimized to directly set the lexical variable on the LHS,
 eliminating redundant copying overheads.
 
-=head2 Method lookups optimized
-
-[TODO - Chip Salzenberg <chip@perlsupport.com>]
-
 =head2 Faster mechanism to invoke XSUBs
 
 change#4044,4125
@@ -1203,7 +1187,7 @@ provide marginal improvements in performance.
 
 =head1 Platform specific changes
 
-=head2 Additional supported platforms
+=head2 Supported platforms
 
 =over 4
 
@@ -1226,7 +1210,7 @@ GNU/Hurd is now supported.
 
 =item *
 
-Rhapsody is now supported.
+Rhapsody/Darwin is now supported.
 
 =item *
 
@@ -1260,9 +1244,42 @@ This port is still using its own builtin globbing.
 
 [TODO - Ilya Zakharevich <ilya@math.ohio-state.edu>]
 
+=head2 OS390 (OpenEdition MVS)
+
+Support for this EBCDIC platform has not been renewed in this release.
+There are difficulties in reconciling Perl's standardization on UTF-8
+as its internal representation for characters with the EBCDIC character
+set, because the two are incompatible.
+
+It is unclear whether future versions will renew support for this
+platform, but the possibility exists.
+
 =head2 VMS
 
-[TODO - Charles Bailey <bailey@newman.upenn.edu>]
+Numerous revisions and extensions to configuration, build, testing, and
+installation process to accomodate core changes and VMS-specific options
+
+Expand %ENV-handling code to allow runtime mapping to logical names,
+CLI symbols, and CRTL environ array
+
+Extension of subprocess invocation code to accept filespecs as command "verbs"
+
+Add to Perl command line processing the ability to use default file types and
+to recognize Unix-style C<2E<gt>&1>. 
+
+Expansion of File::Spec::VMS routines, and integration into ExtUtils::MM_VMS
+
+Extension of ExtUtils::MM_VMS to handle complex extensions more flexibly
+
+Barewords at start of Unix-syntax paths may be treated as text rather than
+only as logical names
+
+Optional secure translation of several logical names used internally by Perl
+
+Miscellaneous bugfixing and porting of new core code to VMS
+
+Thanks are gladly extended to the many people who have contributed VMS
+patches, testing, and ideas.
 
 =head2 Win32
 
@@ -1380,11 +1397,14 @@ See L<attributes>.
 
 =item B
 
-The Perl Compiler suite has been extensively reworked for this
-release.
+WARNING: The Compiler suite is still highly experimental.  The
+generated code may not be correct, even it manages to execute
+without errors.
 
-[TODO - Vishal Bhatia <vishal@gol.com>,
-Nick Ing-Simmons <nick@ni-s.u-net.com>]
+The Perl Compiler suite has been extensively reworked for this
+release.  More of the standard Perl testsuite passes when run
+under the Compiler, but there is still a significant way to
+go to achieve production quality compiled executables.
 
 =item ByteLoader
 
@@ -1415,6 +1435,9 @@ change#4052
 A C<Maxdepth> setting can be specified to avoid venturing
 too deeply into deep data structures.  See L<Data::Dumper>.
 
+The XSUB implementation of Dump() is now automatically called if the
+C<Useqq> setting is not in use.
+
 Dumping C<qr//> objects works correctly.
 
 =item DB
@@ -1611,12 +1634,11 @@ messages. For example:
 
 See L<Pod::Usage> for details.
 
-A bug that prevented the non-option call-back E<lt>E<gt> from being
+A bug that prevented the non-option call-back <> from being
 specified as the first argument has been fixed.
 
-To specify the characters E<lt> and E<gt> as option starters, use
-E<gt>E<lt>. Note, however, that changing option starters is strongly
-deprecated. 
+To specify the characters < and > as option starters, use ><. Note,
+however, that changing option starters is strongly deprecated. 
 
 =item IO
 
@@ -1651,7 +1673,7 @@ C<no lib> removes all named entries.
 
 =item Math::BigInt
 
-The bitwise operations C<E<lt>E<lt>>, C<E<gt>E<gt>>, C<&>, C<|>,
+The bitwise operations C<<< << >>>, C<<< >> >>>, C<&>, C<|>,
 and C<~> are now supported on bigints.
 
 =item Math::Complex
@@ -1659,6 +1681,22 @@ and C<~> are now supported on bigints.
 The accessor methods Re, Im, arg, abs, rho, and theta can now also
 act as mutators (accessor $z->Re(), mutator $z->Re(3)).
 
+The class method C<display_format> and the corresponding object method
+C<display_format>, in addition to accepting just one argument, now can
+also accept a parameter hash.  Recognized keys of a parameter hash are
+C<"style">, which corresponds to the old one parameter case, and two
+new parameters: C<"format">, which is a printf()-style format string
+(defaults usually to C<"%.15g">, you can revert to the default by
+setting the format string to C<undef>) used for both parts of a
+complex number, and C<"polar_pretty_print"> (defaults to true),
+which controls whether an attempt is made to try to recognize small
+multiples and rationals of pi (2pi, pi/2) at the argument (angle) of a
+polar complex number.
+
+The potentially disruptive change is that in list context both methods
+now I<return the parameter hash>, instead of only the value of the
+C<"style"> parameter.
+
 =item Math::Trig
 
 A little bit of radial trigonometry (cylindrical and spherical),
@@ -1699,7 +1737,7 @@ translators.  L<Pod::Find|Pod::Find> traverses directory structures and
 returns found pod files, along with their canonical names (like
 C<File::Spec::Unix>).  L<Pod::ParseUtils|Pod::ParseUtils> contains
 B<Pod::List> (useful for storing pod list information), B<Pod::Hyperlink>
-(for parsing the contents of C<LE<gt>E<lt>> sequences) and B<Pod::Cache>
+(for parsing the contents of C<LE<lt>E<gt>> sequences) and B<Pod::Cache>
 (for caching information about pod files, e.g. link nodes).
 
 =item Pod::Select, podselect
@@ -1727,7 +1765,18 @@ For details and examples, please see L<Pod::Usage>.
 
 =item Pod::Text and Pod::Man
 
-[TODO - Russ Allbery <rra@stanford.edu>]
+Pod::Text has been rewritten to use Pod::Parser.  While pod2text() is
+still available for backwards compatibility, the module now has a new
+preferred interface.  See L<Pod::Text> for the details.  The new Pod::Text
+module is easily subclassed for tweaks to the output, and two such
+subclasses (Pod::Text::Termcap for man-page-style bold and underlining
+using termcap information, and Pod::Text::Color for markup with ANSI color
+sequences) are now standard.
+
+pod2man has been turned into a module, Pod::Man, which also uses
+Pod::Parser.  In the process, several outstanding bugs related to quotes
+in section headers, quoting of code escapes, and nested lists have been
+fixed.  pod2man is now a wrapper script around this module.
 
 =item SDBM_File
 
@@ -1750,6 +1799,12 @@ no longer requires syslog.ph to exist.
 Sys::Hostname now uses XSUBs to call the C library's gethostname() or
 uname() if they exist.
 
+=item Term::ANSIColor
+
+Term::ANSIColor is a very simple module to provide easy and readable
+access to the ANSI color and highlighting escape sequences, supported by
+most ANSI terminal emulators.  It is now included standard.
+
 =item Time::Local
 
 The timelocal() and timegm() functions used to silently return bogus
@@ -2004,7 +2059,7 @@ could also result in this warning.  See L<perlcall/G_KEEPERR>.
 
 =item <> should be quotes
 
-(F) You wrote C<require E<lt>fileE<gt>> when you should have written
+(F) You wrote C<< require <file> >> when you should have written
 C<require 'file'>.
 
 =item Attempt to join self
@@ -2182,8 +2237,8 @@ See L<perlre>.
 
 (W) You tried to read from a filehandle opened only for writing.  If you
 intended it to be a read/write filehandle, you needed to open it with
-"+E<lt>" or "+E<gt>" or "+E<gt>E<gt>" instead of with "E<lt>" or nothing.  If
-you intended only to read from the file, use "E<lt>".  See
+"+<" or "+>" or "+>>" instead of with "<" or nothing.  If
+you intended only to read from the file, use "<".  See
 L<perlfunc/open>.
 
 =item flock() on closed filehandle %s
@@ -2421,8 +2476,8 @@ L<perlvms>) so that the environ array isn't the target of the change to
 =item Unknown open() mode '%s'
 
 (F) The second argument of 3-argument open() is not among the list
-of valid modes: C<E<lt>>, C<E<gt>>, C<E<gt>E<gt>>, C<+E<lt>>,
-C<+E<gt>>, C<+E<gt>E<gt>>, C<-|>, C<|E<45>>.
+of valid modes: C<< < >>, C<< > >>, C<<< >> >>>, C<< +< >>,
+C<< +> >>, C<<< +>> >>>, C<-|>, C<|->.
 
 =item Unknown process %x sent message to prime_env_iter: %s