pfenwick / perl589delta
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
6cab43c
- NAME
- DESCRIPTION
- Incompatible Changes
- Core Enhancements
- New Platforms
- Modules and Pragmata
- Utility Changes
- New Documentation
- Changes to Existing Documentation
- Performance Enhancements
- Installation and Configuration Improvements
- Selected Bug Fixes
- New or Changed Diagnostics
- Maximal count of pending signals (%s) exceeded
- Panic: attempt to call %s in %s
- Can't upgrade %s (%d) to %d
- %s argument is not a HASH or ARRAY element or a subroutine
- Cannot make the non-overridable builtin %s fatal
- Offset outside string
- Changed Internals
- New Tests
- Known Problems
- Platform Specific Notes
- Reporting Bugs
- SEE ALSO
NAME
perldelta - what is new for perl v5.8.9
DESCRIPTION
This document describes differences between the 5.8.8 release and the 5.8.9 release.
Incompatible Changes
There are no changes incompatible with 5.8.8.
Core Enhancements
Nicholas Clark allowed symbolic references to have embedded NULs. The new
public function get_cvn_flags can be used in extensions if you have to
handle them.
It's now possible to call stat and the -X filestat operators on
dirhandles. When the situation is ambiguous, it favours the file handle
semantics. They also treat *FILE{IO} filehandles like *FILE filehandles.
Added perlthanks which is just like perlbug but allows the user to
send a note of gratitude to the authors and maintainers of Perl. [33532]
Updated Unicode definitions to 5.1.0.
The Campaign for the Elimination of strlen() has successfully eliminated
many calls to strlen().
A very stubborn compiler warning in S_emulate_eaccess was killed six times.
New Platforms
Compile support added for:
-
RISC OS
Cray XT4/Catamount
Modules and Pragmata
New Modules
-
Module::Pluggableis a simple framework to create modules that accept pluggable sub-modules. The bundled version is 3.7. [33505] -
Module::CoreListis a hash of hashes that is keyed on perl version as indicated in $]. The bundled version is 2.12 (31561) -
CPANPLUSis an API to the CPAN mirrors and a collection of interactive shells, commandline programs, etc, that use this API. The bundled version is 0.78 (30932)
Updated Modules
-
ANSIColorupgraded to version 1.11 -
Archive::Extractupgraded to version 0.26 -
Attribute::Handlersupgraded to version 0.79 -
AutoLoaderupgraded to version 5.66 -
AutoSplitupgraded to 1.06 -
autouseupgraded to version 1.06 -
Bupgraded from 1.09_01 to 1.19-
consting and PMOP handling fixes.
-
export
B_sub_generation(), B::NV::COP_SEQ_RANGE_LOW(), B::NV::COP_SEQ_RANGE_HIGH(), B::NV::PARENT_PAD_INDEX(), B::NV::PARENT_FAKELEX_FLAGS() -
fix B::PV::PVBM. It was missing the last table entry before.
-
B::BM::PREVIOUS returns now U32, not U16.
-
add B::GV::isGV_with_GP() returning always TRUE
-
B::CV::START and B:CV::ROOT return now NULL on an XSUB, B::CV::XSUB and B::CV::XSUBANY return 0 on a non-XSUB.
-
New type B::HE added with methods VAL, HASH, SVKEY_force
-
The B::GVf_IMPORTED_CV flag is now set correctly when a proxy constant subroutine is imported.
-
-
B::Cupgraded to 1.05 -
B::Conciseupgraded to 0.74-
Supports option -src, i.e. the rendering of each statement (starting with the nextstate OP) will be preceded by the 1st line of source code that generates it.
-
Support option -stash="somepackage", i.e. "somepackage" will be required, then the stash is inspected, and each function is rendered.
-
Now has a documentation of detailed hint symbols.
-
-
B::Debugupgraded to version 1.05 -
B::Deparseupgraded to version 0.82 -
B::Lintupgraded to version 1.11 -
B::Terseupgraded to version 1.04 -
baseupgraded to version 2.13 -
Benchmarkupgraded to version 1.10 -
bignumupgraded to 0.20 -
Carpupgraded to version 1.09 -
CGIupgraded to version 3.35 [33568] -
constantupgraded to version 1.15 -
CPANupgraded to version 1.9105 (32280) -
Cwdupgraded to version 3.27 with C const-ing and some platform specific improvements (including for VMS). -
Data::Dumperupgraded to version 2.121_13-
Performance enhancements (28963)
-
Fixes hash iterator current position with the pure Perl version #40668 (29224)
-
-
DBupgraded to version 1.30-
Andreas J. Koenig contributed two functions to save and load the debugger history.
-
-
DB_Fileupgraded to version 1.817 [33583] -
Devel::DProfupgraded to version 20080331.00. -
Devel::Peekupgraded to version 1.04 -
Devel::PPPortupgraded to version 3.14_01 -
diagnosticsupgraded to version 1.16 -
Digestupgraded to version 1.15 -
Digest::SHAupgraded to version 5.46 -
DynaLoaderupgraded to version 1.09 and can now dynamically load a loadable object from a file with a non-default file extension. -
Embedupgraded to version 1.28 -
Encodeupgraded to version 2.24 [33493] -
Encode::Aliasincludes a fix for encoding "646" (aka ASCII) on Solaris. -
File::Basenameupgraded to version 2.76 -
File::Findupgraded to version 1.11 -
File::Globupgraded to version 1.06 -
encodingupgraded to version 0.11 -
Errnoupgraded to version 1.10 -
Exporterupgraded to version 5.60 -
ExtUtils::Commandupgraded to version 1.14 -
ExtUtils::Constantupgraded to version 0.04 -
ExtUtils::Constant::ProxySubsupgraded to version 0.06 -
ExtUtils::Installupgraded to version 1.51 [33567] -
ExtUtils::MakeMakerupgraded to version 6.44 [33396]-
Support for INSTALLSITESCRIPT and INSTALLVENDORSCRIPT configuration. [26536]
-
-
ExtUtils::Manifestupgraded to version 1.51 -
ExtUtils::ParseXSupgraded to version 2.19 [33392] -
Fatalupgraded to version 1.06 -
Time::Localupgraded to version 1.18-
Allows to make fatal built-ins in CORE::GLOBAL.
-
-
fieldsupgraded to version 2.12 -
File::Basenameupgraded to version 2.77 -
File::Copynow uses 3-arg open.File::Copyupgraded to 2.11 -
File::Findupgraded to version 1.13 -
File::Globupgraded to version 1.06-
Fixes spurious results with brackets inside braces.
-
-
File::Pathupgraded to version 2.04 -
File::Spec,File::Spec::Epoc,File::Spec::Mac,File::Spec::FunctionsFile::Spec::Unix,File::Spec::VMS,File::Spec::Win32upgraded to version 3.2701 with improved handling of bad arguments and some platform specific improvements (Including for VMS and Cygwin) including an optimization onabs2rel()when handling both relative arguments. -
File::Spec::Unixupgraded to version 1.5_01 -
File::Tempupgraded to version 0.20 -
FindBinupgraded to version 1.49 -
FileCacheupgraded to version 1.07 -
GDBM_Fileupgraded to version 1.09 -
Getopt::Longupgraded to version 2.37 (32009) -
Hash::Utilupgraded to version 0.07 -
libnetupgraded to version 1.20 -
Locale::Maketextupgraded to 1.12 -
Math::BigFloatupgraded to version 1.54 -
Math::BigIntupgraded to version 1.82 -
Math::BigRatupgraded to version 0.22-
Implements new
as_floatmethod.
-
-
Math::Complex,Math::Trigupgraded to version 1.54. -
Module::Pluggableupgraded to version 3.8 [33552] -
Net::Pingupgraded to version 2.35 [33242] -
NDBM_Fileupgraded to version 1.07-
Improve g++ handling for systems using GDBM compatibility headers.
-
-
Opcode::Safeupgraded to version 2.14 -
openupgraded to 1.06 -
PathToolsupgraded to version 3.2501 -
PerlIO::scalarupgraded to version 0.05-
[perl #40267] PerlIO::scalar doesn't respect readonly-ness
-
-
PerlIO::viaupgraded to version 0.05 -
Pod::Htmlupgraded to version 1.09 [33536] -
Pod::Parserupgraded to version 1.35 -
Pod::Perldocis now maintained by Hakim Cassimally (osfameron). -
Pod::Usageupgraded to version 1.35 [30187] -
POSIX::removecan removes empty directories. -
POSIXimports previously duplicated constants fromFcntl, version bumped from 1.14 to 1.15. -
scalarupgraded to version 0.06 -
SDBM_Fileupgraded to version 1.06-
Improve g++ handling for systems using GDBM compatibility headers.
-
-
SelfLoader upgraded to version 1.15
-
Shell upgraded to version 0.72
-
sigtrap upgraded to version 1.04
-
Socketupgraded to version 1.81-
This fixes an optimistic use of
gethostbyname().
-
-
Storableupgraded to 2.18 -
Switchupgraded to version 2.13 -
Sys-Syslogupraded to version 0.24 -
Term::ANSIColorupgraded to version 1.12 (31036) -
Term::Capupgraded to version 1.11 (32143, 32301) -
Term::ReadLineupgraded to version 1.03 (31862) -
Test::Simpleupgraded to version 0.70 -
Text::Balancedupgraded to version 1.98 (32984) -
Text::ParseWordsupgraded to version 3.26 -
Text::Soundexupgraded to version 3.02 -
Text::Tabsupgraded to version 2007.1117 -
Test::Harnessupgraded version to 2.64-
This made it able to handle newlines.
-
-
Text::Wrapupgraded to version 2006.1117 -
Threadupgraded to version 2.01 [32470] -
Thread::Semaphoreupgraded to version 2.07 [33361] -
Thread::Queueupgraded to version 2.06 [33362] -
Tie::Memoizeupgraded to version 1.1-
Tie::Memoize::EXISTS now correctly caches its results.
Tie::RefHashupgraded to version 1.38 -
-
Time::gmtimeupgraded to version 1.03 -
Time::HiResupgraded to version 1.9715 with various build improvements (including VMS (31752)) and minor platform-specific bug fixes (including for HP-UX 11 ia64) -
threadsupgraded to 1.61 -
threads::sharedupgraded to version 1.21-
User locks are now stored in a safer manner.
-
New function
shared_clonecreates a copy of an object leaving shared elements as-is and deep-cloning non-shared elements.
-
-
Thread::Queueupgraded to version 2.08 -
Thread::Semaphoreupgraded to version 2.08 -
Unicode::Normalizeupgraded to version 1.01 -
Win32upgraded to version 0.34 -
XSLoaderupgraded to version 0.08 -
XS::APItestandXS::Typemapare for internal use only and hence no longer installed.
Utility Changes
-
h2phnow attempts to deal sensibly with the difference in path implications between""and<<>> quoting in#includestatements. -
h2phgenerates correct correct code for#if defined A || defined Bnow (perl #39130) -
h2xswon't define an empty string as a constant (perl #25366) -
h2xshas examples for h2xs -X (31175) -
The Emacs perl mode (emacs/cperl-mode.el) has been updated to version 5.23.
-
Added
uupacktool.pl(handles binary files in source tree).
New Documentation
As usual, the documentation received its share of corrections, clarifications
and other nitfixes. More tags were added for indexing.
CORE documents the pseudo-namespace for Perl's core routines.
perlbot fixed ref returns an empty string (not undef) when used on a
string (#31685)
perlcheat is updated with better details on \w, \d, and \s.
perlcommunity provides an overview of the Perl Community along with further resources.
perldebug is updated with information on how to call the debugger.
perldiag documentation updated with subroutine with an ampersand on the
argument to exists() and delete() and also several terminology updates on
warnings.
perlfork documents the limitation of exec() inside pseudo-processes.
perlfunc:
-
Documentation is fixed in section
callerandpop. -
Added example of
gethostbyname. -
Better wording in
prototypeandsplit. -
Function
alarm()now mentionsTime::HiRes::ualarmin preference toselect(). -
Regarding precedence in
-X, filetest operators are the same as unary operators, but not regarding parsing and parentheses (spotted by Eirik Berg Hanssen).
perlglossary adds deprecated modules and features and to be dropped modules.
perlhack has been updated and added resources on smoke testing.
perllocale documentation is adjusted for the number of localization and
POSIX::setlocale() to fix debian bug in RT ##379463.
perlmodlib is updated with CPAN::API::HOWTO and
Sys::Syslog::win32::Win32
perlop adds /k modifier in section s/PATTERN/REPLACEMENT/egimosxk
perlre documentation updated to reflect the differences between
[[:xxxxx:]] and \p{IsXxxxx} matches. Also added section on /g and
/c modifiers.
perlreguts describe the internals of the regular expressions engine. It has been contributed by Yves Orton.
perlrun is updated to clarify on the hash seed PERL_HASH_SEED. Also more information in option -x and -u.
perlsub example is updated to use lexical variable on opendir syntax.
perltoc the table of content is updated with several new documentation and cleaned up unnecessary noises.
perlunicode is updated in section user defined properties.
perluniintro have been updated in the example of detecting data that's not valid in particular encoding.
perlunitut is a tutorial written by Juerd Waalboer on Unicode-related terminology and how to correctly handle Unicode in Perl scripts.
perlvar and perlre add items ${^PREMATCH}, ${^MATCH}, and
${^`POSTMATCH} and also /k modifier.
perlvar fixes confusion about real GID $( and effective GID $).
Perl thread tutorial example is fixed in section Queues: Passing Data Around both in perlothrtut and perlothrtut.
The Perl FAQs (perlfaq1..perlfaq9) have been updated.
reverse function documentation received scalar context examples.
perltodo is updated with:
-
removed section Ordering of "global" variables.
-
removed section The roadmap to 5.10.
-
added -Duse32bit*.
-
added __FUNCTION__ for MSVC.
-
added more detail about @INC order.
-
added section merge common code in installperl and installman.
-
added section merge checkpods and podchecker.
-
added section Investigate PADTMP hash pessimisation.
-
added
does()built-in and Tied filehandles and write() don't mix. -
added section Unicode and lc/uc operators.
-
added section Optimize away empty destructors.
-
Maybe the default order of directories in
@INCshould be modified to support upgrade core (dual-life) modules without overwriting files. -
Todo for perl 5.12, virtualize operating system access.
perlhack documentation extensively improved by Jarkko Hietaniemi and others.
perltoot provides information on modifying @UNIVERSAL::ISA.
perlport documentation extended to include different kill(-9, ...)
semantics on Windows. It also clearly states dump() is not supported on Win32
and cygwin.
Changes to Existing Documentation
perltodo was, of course, extensively modified; with the notable marking of the srlcpy/strcat to my_strlcpy/my_strcat update as a TODONE.
Performance Enhancements
-
The default since perl 5.000 has been for perl to create an empty scalar with every new typeglob. The increased use of lexical variables means that most are now unused. Thanks to Nicholas Clark's efforts, Perl can now be compiled with
-DPERL_DONT_CREATE_GVSVto avoid creating these empty scalars. This will significantly decrease the number of scalars allocated for all configurations, and the number of scalars that need to be copied for ithread creation. Whilst this option is binary compatible with existing perl installations, it does change a long-standing assumption about the internals, hence it is not enabled by default, as some third party code may rely on the old behaviour.We would recommend testing with this configuration on new deployments of perl, particularly for multi-threaded servers, to see whether all third party code is compatible with it, as this configuration may give useful performance improvements. For existing installations we would not recommend changing to this configuration unless thorough testing is performed before deployment.
-
Reblessing an object from a class that doesn't use overloads to one that does (or vice versa) is now faster. (31996, 32019, 32025).
-
diagnosticsno longer uses$&, which results in large speedups for regexp matching in all code using it. -
Regular expressions classes of a single character are now treated the same as if the character had been used as a literal, meaning that code that uses char-classes as an escaping mechanism will see a speedup. (Yves Orton)
-
Regular expression introduces
/kmodifier for matching along with new perl variables${^PREMATCH},${^MATCH},${^POSTMATCH}which are equivalent to$`,$&and$', except that they are only guaranteed to be defined after a successful match that was executed with the/k(keep-copy) modifier. The use of these variables incurs no global performance penalty, unlike their punctuation char equivalents (#32263). -
Creating anonymous array and hash references (ie.
[]and{}) now incurs no more overhead than creating an anonymous list or hash. Nicholas Clark provid changes with a saving of two ops and one stack push, measured as a 6.4% improve -
Substitutions with repeated right hand expressions (ie.
s///ge) are now more efficient. -
Stopped memory leak on long /etc/groups entries
-
Recursive regexes now possible. Possessive quantifiers and named captures are now possible within the regex engine.
-
The MY_CXT API has been made more efficient (and an explicit interpeter argument variant has been added).
Installation and Configuration Improvements
g++ support was tuned, especially for FreeBSD.
Configure is now better at removing temporary files. Tom Callaway
(from RedHat) also contributed patches that completes the set of flags
passed to the compiler and the linker. Especially, -fPIC is now
enabled on linux. It will also croak when your /dev/null isn't a device.
There are improved hints for DEC/OSF, VOS (33425), Cygwin (33484).
Many compilation warnings were cleaned up (33415, 33417, 33418, 33419, 33420, 33421, 33427, 33428, 33429, 33435, 33436, 33441, 33444, 33479, 33590, 31347, 31073, 31074, 31075)
Added d_pseudofork to Configure which is a new configuration variable,
available as $Config{d_pseudofork} in the Config module, has been added,
to distinguish real fork() support from fake pseudofork used on Windows
platforms.
ptar and ptardiff are no longer installed to $installbin
Config.pod and config.sh are now placed correctly for cross-compilation.
'unexpand -a' spaces converted to tabs to create smaller Changes files.
$Config{useshrplib} is now 'true' rather than 'yes' when using a shared perl library.
Platform Specific Changes
FreeBSD
-
Drop
-std=c89and-ansiif using 'long long' as the main integral type.In FreeBSD 6.2 (and perhaps other releases), headers do not declare a required function if this is not done.
Solaris
-
Starting with Solaris 10, we don't want versioned shared libraries because those often indicate a private use only library. Especially badly that would break things with SUNWbdb (Berkeley DB) being installed.
If Solaris 10 is detected set
ignore_versioned_solibs=y.
VMS
-
Allow IEEE math to be deselected on OpenVMS I64 (but it remains the default).
-
Record IEEE usage in
config.h -
Help older VMS compilers by using
ccflagswhen buildingmunchconfig.exe. -
Don't try to build old Thread extension on VMS when
-Duseithreadshas been chosen. (31104) -
Better suppression logic for not building Thread extension (31226).
-
Fix the case of
$Config{perl_patchlevel}(31544) (but keep setting$Config{PERL_PATCHLEVEL}and grab the value from aMAINTXXXorSMOKEXXXline in patchlevel.h if present. (31597)). -
Passing a raw string of "NaN" to nawk(1) causes a core dump - so the string has been changed to "*NaN*" (31975)
-
Removed vms/genconfig.pl and references to it (obsolete as of change 1084).
Selected Bug Fixes
-
Overloading flags are now stored on the referent instead of the reference. Previously taking a new, unrelated reference to an object could result in the original (blessed) reference being able to access the overload while the new reference could not. (Test added in 32016).
-
encodingpragma now correctly ignores anything following an@character in theLC_ALLandLANGenvironment variables. (RT # 49646) -
Magic is no longer invoked twice by the expression
\&$x -
A segfault observed with some gcc 3.3 optimisations is resolved.
-
A possible segfault when unpack used in scalar context with
()groups is resolved. (RT #50256) -
Resolved issue where
$!could be changed by a signal handler interrupting asystem()call. -
Fixed problems with split, unicode /\s+/ and / \0/.
-
Fixed bug RT #37886, unsafe dereferencations were allowed in the argument of
defined()even under the influence ofuse strict 'refs'. -
Fixed a long-standing bug that caused incorrect line numbers to be reported in error messages about elsif blocks.
-
The tokenizer no longer treats =cute (and other words beginning with =cut) as a synonym for =cut.
-
Fixed bug RT #43207, where lc()/uc() inside sort affected the return value.
-
Fixed bug RT #45337, where using certain UTF-8 patterns in a regex led to a panic.
-
Fixed bug RT #45607, where *{"BONK"} = \&{"BONK"} didn't work correctly.
-
The "Unrecognised character 'x'" error now specifies in which column the unrecognised character actually occurred.
-
Fixed bug on RT #43010, now
B::Deparsehandles ''->(), ::(), sub :: {}, etc correctly (31268). All bugs in parsing these kind of syntax are now fixed:-
perl -MO=Deparse -e '"my %h = "->()'
-
perl -MO=Deparse -e '::->()'
-
perl -MO=Deparse -e 'sub :: {}'
-
perl -MO=Deparse -e 'package a; sub a::b::c {}'
-
perl -MO=Deparse -e 'sub the::main::road {}'
-
-
Fix MRO behaviour when one undefs
@ISA(32542) -
Fixed bug RT #35878, croaking from a XSUB called via goto &xsub corrupts perl internals.
-
Fix descriptor leak caused by change (30633) to
PerlIO_exportFILE(32224) -
Fixed bug RT #32539,
DynaLoader.ois moved intolibperl.soto avoid the need to statically link DynaLoader into the stub perl executable and makelibperl.soprovides all codes needed to get a functional embedded perl interpreter runs. -
Fix bug 36267 so that assigning to a tied hash doesn't change the underlying hash (27636)
-
Fix bug RT #6006, regex replaces using large replacement variables fail some of the time, i.e. when substitution contains something like
${10}(note the bracket) instead of just$10(29616 - 29619).
Platform Specific Fixes
Darwin / MacOS X
-
Various improvements to 64 bit builds.
-
Mutex protection added in PerlIOStdio_close to avoid race conditions. May fix threads free.t and blocks.t failures on OS X on 5.8.x (33502).
-
Added forked terminal support to debugger under MacOSX (29415)
-
perl5db.pl has been updated for Mac OS X 10.5 (as there is now a direct accessor for the tty device name) to update the window title.
Windows
-
File::Findused to fail when the target dir is a bare drive letter andno_chdiris 1 (the default is 0). (RT #41555)Win32API::Fileadded to the core -
A build problem with specifying
USE_MULTIandUSE_ITHREADSbut withoutUSE_IMP_SYShas been fixed. -
The process id is no longer truncated to 16 bits on some Windows platforms ( http://bugs.activestate.com/show_bug.cgi )
-
Various improvements to the win32 build process, includding support for Visual C++ 2005 Express Edition (aka Visual C++ 8.x). Also you should now have an icon for perl.exe if built with MinGW or Borland.
-
Improvements to the perl-static.exe build process.
-
Add Win32 makefile option to link all extensions statically.
-
Merge WinCE into Win32 directory (30281-30284, 20862)
VMS
-
Fixed PerlIO::Scalar in-memory file record-style reads.
-
Make pipe shutdown on VMS care about whether PerlIO has already shut down (33005)
-
Fix VMS exit handling broken in Test::Harness 2.64 (33008)
-
Fix fcntl locking capability test in
configure.com(31756) -
Replaced
shrplib='define'withuseshrplib='true'on VMS. -
Fix missing
PerlIO_releaseFILEinVMS::Stdio::getname(31384)
OS/2
-
A build problem with specifying
USE_MULTIandUSE_ITHREADSbut withoutUSE_IMP_SYShas been fixed. -
OS2::REXXupgraded to version 1.04
Tru64
-
Aligned floating point build policies for cc and gcc.
RedHat Linux
-
Revisited a patch from 5.6.1 for RH7.2 for Intel's icc (RT #7916), added an aditional check for $Config{gccversion}.
Windows and OS/2
-
A build problem with specifying
USE_MULTIandUSE_ITHREADSbut withoutUSE_IMP_SYShas been fixed.
Solaris/i386
-
Use -DPTR_IS_LONG when using 64 bit integers (27001)
Symbian
-
Added support for Symbian series 90.
Smaller fixes
-
It's now possible to overload
eqwhen usingnomethod. -
Various problems using overload with 64-bit ints corrected (identified in new tests).
-
The reference count of PerlIO file descriptors is now correctly handled.
-
On VMS, escaped dots will be preserved when converted to UNIX syntax.
-
the B::Deparse manpage has been instructed on:
-
how to properly deparse
print readpipe $x, $y. -
not to deparse
$^H{v_string}, which is automatically set by the internals.
-
-
keys %+no longer throws an'ambiguous'warning. -
indexworks faster now if the search string is stored in UTF-8 but actually fits into Latin-1. -
Reduced number of calls to
getpeernamein the IO::Socket manpage (29129). -
chr(65535)ought to be allowed in regexes. -
the ExtUtils::MakeMaker manpage now detects DragonFlyBSD as a BSDish operating system (33006)
-
Using
#!perl -dcould trigger an assertion, which has been fixed (30075). -
Don't stringify tied code references in
@INCwhen callingrequire. (30068) -
Code references in
@INCreport the correct file name when__FILE__is used (30068). -
Width and precion in sprintf didn't handle wide characters correctly (30058).
-
List slices with indices out of range now work more consistently (30026).
-
The
-sswitch on the shebang line is again capable of parsing options with arguments of the form-foo=bar(29865). -
tr/// is now threadsafe (29765)
-
De-duplicate
@EXPORT(26459) -
pod2htmlwill label anchors more consistently (32079) and handles nested definition lists better (32727). -
No longer segfaults when your locale charset is not utf8 with
use open ':locale'and printing Unicode characters to STDERR (30213) -
threads cleanup veto has been extended to include
perl_freeandperl_destruct(29827)PL_veto_cleanupnow happens on all platforms, not just UNIX (31971) -
Bnow can compile outside of the perl source tree. -
On some systems, changes to
$ENV{TZ}would not always be respected by the underlying calls tolocaltime_r. Perl now forces the inspection of the environment on these systems. (29213) -
Calling
dump()from Win32 and cygwin now gives a proper fatal error (26947). -
Avoid a segfault for perl built without
PERL_DONT_CREATE_GVSVdefined when writing to$ARGV. (32472, 32473)
New or Changed Diagnostics
Maximal count of pending signals (%s) exceeded
This new fatal error occurs when the perl process has to abort due to too many pending signals, which is bound to prevent perl from being able to handle further incoming signals safely.
Panic: attempt to call %s in %s
This new fatal error occurs when a file test operator is used that is not availble on the current platfom (25987).
Can't upgrade %s (%d) to %d
This error now reports the type of things that made the upgrade fail (27253).
%s argument is not a HASH or ARRAY element or a subroutine
This error, thrown if an invalid argument is provided to exists now
correctly includes "or a subroutine". (RT #38955)
Cannot make the non-overridable builtin %s fatal
This error in Fatal previously did not show the name of the builtin in question (now represented by %s above).
Offset outside string
Changed to add the seek operation and is now included in the default warnings pragma (28903).
Changed Internals
The new API function newSV_type can be used to replace more efficiently the
common idiom
sv = newSV(0);
sv_upgrade(sv, type);
A sigbit public function was added to test the sign of a NV. It maps to the
system one when available.
av_reify, lex_end, mod, op_clear, pop_return,
qerror, setdefout, vivify_defelem and yylex are now
visible to perl core extensions. This was required by the Data::Alias manpage.
find_runcv is now visible to perl core extensions. This was required to
allow the Sub::Current manpage to work on Windows.
set magic on localizing/assigning to a magic variable will now only
trigger for container magics, i.e. it will for %ENV or %SIG
but not for $#array.
Display the process id as part of the trace output if running with -Dv (33039)
A lot of small improvents in the code base were made due to reports from the Coverity static code analyzer.
ptr_table functions are now available in unthreaded perl.
Corrected use and documentation of gv_stashpv, gv_stashpvn, gv_stashsv
functions (last parameter is a bitmask, not boolean).
PERL_SYS_INIT, PERL_SYS_INIT3 and PERL_SYS_TERM macros have been
changed into functions (31970).
Machine generated B::Asmdata via bytecode.pl is now more warnings free and
read @optype and @specialsv_name from ext/B/B.pm (#32264, #32266)
PERLSYS_TERM no longer requires a context (32216). In PerlIO_teardown
is now also called without a context (32215), and debugging output in this
function has been disabled because this requires that an interpreter is present
(32235).
Reorder global variable in intrpvar.h saves another 40 bytes from the
interpreter structure (#31034). Also delete thrdvar.h and move its contents
to intrpvar.h (#31245).
Support for assertions and -A is now removed from XS module and in
ext (#31333).
"Bake" the values of PERL_REVISION, PERL_VERSION and PERL_SUBVERSION
into global variables (and hence a shared perl library). Additionally under
MULTIPLICITY record the size of the interpreter structure (total, and for
this version) and under PERL_GLOBAL_STRUCT the size of the global variables
structure. Coupled with PL_bincompat_options this will allow 5.10.1 (and
later), when compiled with a shared perl library, to perform sanity checks in
main() to verify that the shared library is indeed binary compatible.
All compile time options which affect binary compatability have been grouped
together into a global variable (PL_bincompat_options). This will allow
comparisons to be made in the future.
New Tests
-
Regression tests for anchored regexes using
\sthat failed to set$&(30073). -
Regression tests for sprintf with 64 bit semantics (30058).
-
Tests for overload for 64-bit ints (32141).
-
Tests for tainting and
openwith|-as second argument (30048). -
exitcan now be called in expressions that the optimizer constant-folds (29976). -
Test smallbuf overflow in S_incline (30024)
-
Tests for mathematical functions in POSIX
-
Verify POSIX::AUTOLOAD works (29592)
-
Remove
DynaLoaderfrom1_compile.tas it's now part oflibperl.so(27549, 27566, 28226, 28227, 28228, 28274, 28308). Also skip failure test on these patforms: VMS, darwin, OpenBSD, and cygwin (28333, 28840, 29253, 29707). -
Added bitflip hash tests (31914, 31915)
-
Tests for
hv_delete,hv_exists,hv_fetch,hv_store(31905, 31912) -
Test disabling key conversion in hash lookups (31923)
-
Significantly improved testing for
$/usage with PerlIO::Scalar in-memory files. -
Test both
MY_CXTandMY_CXT_INTERPin the CXT API. -
Added test to run regex substitution
s///under taint mode (29618). -
Tests for Thread.
-
Regression tests for base manipulation of
@ISAunder certain inheritance conditions. (32469) -
Test that base does not mask
SIGDIE. (32469) -
Test that base does not confuse the version. (32469)
-
Test that inheriting from a base with protected fields generates a warning. (32469)
-
Test that base can coexist with a consant called
FIELDS. (31420) -
Test that the Carp::cluck manpage correctly reports undef values. (31858)
-
Test that
$@is correctly localised in the Locale::Maketext manpage. (25547)
Known Problems
Platform Specific Notes
Win32
readdir(), cwd(), $^X and @INC now use the alternate (short)
filename if the long name is outside the current codepage (Jan Dubois).
Updated Modules
-
Win32upgraded to version 0.36. Now has a documented 'WinVista' response from GetOSName and support for Vista's privilege elevation inIsAdminUser. Support for Unicode characters in path names. Improved cygwin and Win64 compatibility. -
Win32APIupdated to 0.1001_01 (30411) -
killpg()support added toMSWin32(Jan Dubois). -
File::Spec::Win32upgraded to version 3.2701 (see above).
OS/2
Updated Modules
-
OS2::Process: Ilya Zakharevich has added and documented severalWindow*andClipbrd*functions. -
OS2::REXX::DLL,OS2::REXXupdated to version 1.03
VMS
Updated Modules
-
File::Spec::VMSupgraded to version 3.2701 (see above). -
VMS::XSSymSetupgraded to 1.1 (31236).
Reporting Bugs
If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://bugs.perl.org. There may also be information at http://www.perl.org, the Perl Home Page.
If you believe you have an unreported bug, please run the perlbug
program included with your release. Be sure to trim your bug down
to a tiny but sufficient test case. Your bug report, along with the
output of perl -V, will be sent off to perlbug@perl.org to be
analysed by the Perl porting team. You can browse and search
the Perl 5 bugs at http://bugs.perl.org/
SEE ALSO
The Changes file for exhaustive details on what changed.
The INSTALL file for how to build Perl.
The README file for general stuff.
The Artistic and Copying files for copyright information.
