=head1 NAME
-perldelta - what's new for perl v5.6 (as of v5.005_58)
+perldelta - what's new for perl v5.6 (as of v5.005_61)
=head1 DESCRIPTION
Perl, whose interfaces continue to match those of prior versions
(but subject to the other options described here).
-For testing purposes, the 5.005_58 release automatically enables
-PERL_IMPLICIT_CONTEXT whenever Perl is built with -Dusethreads or
--Dusemultiplicity.
+PERL_IMPLICIT_CONTEXT is automatically enabled whenever Perl is built
+with one of -Dusethreads, -Dusemultiplicity, or both.
See L<perlguts/"The Perl API"> for detailed information on the
ramifications of building Perl using this option.
=head2 Binary Incompatibilities
-The default build of this release can be made binary compatible with the
-5.005 release or its maintenance versions. Add -DPERL_BINCOMPAT_5005
-to ccflags in config.sh to achieve this. See INSTALL for further
-information about adding build flags to config.sh.
+The default build of this release is binary compatible with the 5.005
+release or its maintenance versions.
The usethreads or usemultiplicity builds are B<not> binary compatible
with the corresponding builds in 5.005.
=head2 Lexically scoped warning categories
You can now control the granularity of warnings emitted by perl at a finer
-level using the C<use warning> pragma. See L<warning> and L<perllexwarn>
+level using the C<use warnings> pragma. See L<warnings> and L<perllexwarn>
for details.
=head2 Binary numbers supported
=head2 64-bit support
-Better 64-bit support -- but full support still a distant goal. One
-must Configure with -Duse64bits to get Configure to probe for the
-extent of 64-bit support. Depending on the platform (hints file) more
-or less 64-awareness becomes available. As of 5.005_54 at least
-somewhat 64-bit aware platforms are HP-UX 11 or better, Solaris 2.6 or
-better, IRIX 6.2 or better. Naturally 64-bit platforms like Digital
-Unix and UNICOS also have 64-bit support.
+All platforms that have 64-bit integers either (a) natively as longs
+or ints (b) via special compiler flags (c) using long long are able to
+use "quads" (64-integers) as follows:
+=over 4
+
+=item constants in the code
+
+=item arguments to oct() and hex()
+
+=item arguments to print(), printf() and sprintf()
+
+=item pack() and unpack() "q" format
+
+=item in basic arithmetics
+
+=item vec() (but see the below note about bit arithmetics)
+
+=back
+
+Note that unless you have the case (a) you will have to configure
+and compile Perl using the -Duse64bits Configure flag.
+
+Unfortunately bit arithmetics (&, |, ^, ~, <<, >>) are not 64-bit clean.
+
+Last but not least: note that due to Perl's habit of always using
+floating point numbers the quads are still not true integers.
+When quads overflow their limits (0...18_446_744_073_709_551_615 unsigned,
+-9_223_372_036_854_775_808...9_223_372_036_854_775_807 signed), they
+are silently promoted to floating point numbers, after which they will
+start losing precision (their lower digits).
+
+=head2 Large file support
+
+If you have filesystems that support "large files" (files larger than
+2 gigabytes), you may now also be able to create and access them from Perl.
+
+Note that in addition to requiring a proper file system to do this you
+may also need to adjust your per-process (or even your per-system)
+maximum filesize limits before running Perl scripts that try to handle
+large files, especially if you intend to write such files.
+
+Adjusting your file system/system limits is outside the scope of Perl.
+For process limits, you may try to increase the limits using your
+shell's limit/ulimit command before running Perl. The BSD::Resource
+extension (not included with the standard Perl distribution) may also
+be of use.
+
+(Large file support is also related to 64-bit support, for obvious reasons)
+
=head2 Better syntax checks on parenthesized unary operators
Expressions such as:
were opened only for writing will now produce warnings (just as
writing to read-only filehandles does).
+=head2 Buffered data discarded from input filehandle when dup'ed.
+
+C<open(NEW, "E<lt>&OLD")> now discards any data that was previously
+read and buffered in C<OLD>. The next read operation on C<NEW> will
+return the same data as the corresponding operation on C<OLD>.
+Formerly, it would have returned the data from the start of the
+following disk block instead.
+
=head1 Supported Platforms
=over 4
from the caller's context. C<encoding> is currently the only supported
attribute.
-Lexical warnings pragma, C<use warning;>, to control optional warnings.
+Lexical warnings pragma, C<use warnings;>, to control optional warnings.
C<use filetest> to control the behaviour of filetests (C<-r> C<-w> ...).
Currently only one subpragma implemented, "use filetest 'access';",