X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldelta.pod;h=0cb375a3e751bbf06856dce5a2b0aa08976c5df8;hb=4438c4b75b842b6c829a7da9841e97abb875b1d8;hp=dc697e69292c4ecbe0b22cb48a9ec42cf93d9b17;hpb=87275199ef473a0bd08ce6f46db30d4d432f4876;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldelta.pod b/pod/perldelta.pod index dc697e6..0cb375a 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,16 +1,21 @@ =head1 NAME -perldelta - what's new for perl v5.6 (as of v5.5.58) +perldelta - what's new for perl v5.6 (as of v5.005_61) =head1 DESCRIPTION +This is an unsupported alpha release, meant for intrepid Perl developers +only. The included sources may not even build correctly on some platforms. +Subscribing to perl5-porters is the best way to monitor and contribute +to the progress of development releases (see www.perl.org for info). + This document describes differences between the 5.005 release and this one. =head1 Incompatible Changes =head2 Perl Source Incompatibilities -None known at this time. +TODO =head2 C Source Incompatibilities @@ -27,6 +32,30 @@ specified via MakeMaker: perl Makefile.PL POLLUTE=1 +=item C + +This new build option provides a set of macros for all API functions +such that an implicit interpreter/thread context argument is passed to +every API function. As a result of this, something like C +amounts to a macro invocation that actually translates to something like +C. While this is generally expected +to not have any significant source compatibility issues, the difference +between a macro and a real function call will need to be considered. + +This means that there B a source compatibility issue as a result of +this if your extensions attempt to use pointers to any of the Perl API +functions. + +Note that the above issue is not relevant to the default build of +Perl, whose interfaces continue to match those of prior versions +(but subject to the other options described here). + +PERL_IMPLICIT_CONTEXT is automatically enabled whenever Perl is built +with one of -Dusethreads, -Dusemultiplicity, or both. + +See L for detailed information on the +ramifications of building Perl using this option. + =item C Enabling Perl's malloc in release 5.005 and earlier caused @@ -81,8 +110,11 @@ from the change. =head2 Binary Incompatibilities -This release is not binary compatible with the 5.005 release or its -maintenance versions. +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 binary compatible +with the corresponding builds in 5.005. =head1 Core Changes @@ -95,7 +127,7 @@ scope. See L for more information. =head2 Lexically scoped warning categories You can now control the granularity of warnings emitted by perl at a finer -level using the C pragma. See L and L +level using the C pragma. See L and L for details. =head2 Binary numbers supported @@ -112,14 +144,56 @@ The length argument of C is now optional. =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: @@ -171,6 +245,11 @@ strings. See L. The new format type modifier '!' is useful for packing and unpacking native shorts, ints, and longs. See L. +=head2 pack() and unpack() support counted strings + +The template character '#' can be used to specify a counted string +type to be packed or unpacked. See L. + =head2 $^X variables may now have names longer than one character Formerly, $^X was synonymous with ${"\cX"}, but $^XY was a syntax @@ -242,6 +321,14 @@ 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 Buffered data discarded from input filehandle when dup'ed. + +C&OLD")> now discards any data that was previously +read and buffered in C. The next read operation on C will +return the same data as the corresponding operation on C. +Formerly, it would have returned the data from the start of the +following disk block instead. + =head1 Supported Platforms =over 4 @@ -313,6 +400,20 @@ Verify operations that access pad objects (lexicals and temporaries). =over 4 +=item ByteLoader + +The ByteLoader is a dedication extension to generate and run +Perl bytecode. See L. + +=item B + +The Perl Compiler suite has been extensively reworked for this +release. + +=item Devel::DProf + +Devel::DProf, a Perl source code profiler has been added. + =item Dumpvalue Added Dumpvalue module provides screen dumps of Perl data. @@ -445,7 +546,7 @@ C allows modules to inherit pragmatic attributes from the caller's context. C is currently the only supported attribute. -Lexical warnings pragma, C, to control optional warnings. +Lexical warnings pragma, C, to control optional warnings. C to control the behaviour of filetests (C<-r> C<-w> ...). Currently only one subpragma implemented, "use filetest 'access';",