1=head1 NAME 2 3perl587delta - what is new for perl v5.8.7 4 5=head1 DESCRIPTION 6 7This document describes differences between the 5.8.6 release and 8the 5.8.7 release. 9 10=head1 Incompatible Changes 11 12There are no changes incompatible with 5.8.6. 13 14=head1 Core Enhancements 15 16=head2 Unicode Character Database 4.1.0 17 18The copy of the Unicode Character Database included in Perl 5.8 has 19been updated to 4.1.0 from 4.0.1. See 20L<http://www.unicode.org/versions/Unicode4.1.0/#NotableChanges> for the 21notable changes. 22 23=head2 suidperl less insecure 24 25A pair of exploits in C<suidperl> involving debugging code have been closed. 26 27For new projects the core perl team strongly recommends that you use 28dedicated, single purpose security tools such as C<sudo> in preference to 29C<suidperl>. 30 31=head2 Optional site customization script 32 33The perl interpreter can be built to allow the use of a site customization 34script. By default this is not enabled, to be consistent with previous perl 35releases. To use this, add C<-Dusesitecustomize> to the command line flags 36when running the C<Configure> script. See also L<perlrun/-f>. 37 38=head2 C<Config.pm> is now much smaller. 39 40C<Config.pm> is now about 3K rather than 32K, with the infrequently used 41code and C<%Config> values loaded on demand. This is transparent to the 42programmer, but means that most code will save parsing and loading 29K of 43script (for example, code that uses C<File::Find>). 44 45=head1 Modules and Pragmata 46 47=over 4 48 49=item * 50 51B upgraded to version 1.09 52 53=item * 54 55base upgraded to version 2.07 56 57=item * 58 59bignum upgraded to version 0.17 60 61=item * 62 63bytes upgraded to version 1.02 64 65=item * 66 67Carp upgraded to version 1.04 68 69=item * 70 71CGI upgraded to version 3.10 72 73=item * 74 75Class::ISA upgraded to version 0.33 76 77=item * 78 79Data::Dumper upgraded to version 2.121_02 80 81=item * 82 83DB_File upgraded to version 1.811 84 85=item * 86 87Devel::PPPort upgraded to version 3.06 88 89=item * 90 91Digest upgraded to version 1.10 92 93=item * 94 95Encode upgraded to version 2.10 96 97=item * 98 99FileCache upgraded to version 1.05 100 101=item * 102 103File::Path upgraded to version 1.07 104 105=item * 106 107File::Temp upgraded to version 0.16 108 109=item * 110 111IO::File upgraded to version 1.11 112 113=item * 114 115IO::Socket upgraded to version 1.28 116 117=item * 118 119Math::BigInt upgraded to version 1.77 120 121=item * 122 123Math::BigRat upgraded to version 0.15 124 125=item * 126 127overload upgraded to version 1.03 128 129=item * 130 131PathTools upgraded to version 3.05 132 133=item * 134 135Pod::HTML upgraded to version 1.0503 136 137=item * 138 139Pod::Perldoc upgraded to version 3.14 140 141=item * 142 143Pod::LaTeX upgraded to version 0.58 144 145=item * 146 147Pod::Parser upgraded to version 1.30 148 149=item * 150 151Symbol upgraded to version 1.06 152 153=item * 154 155Term::ANSIColor upgraded to version 1.09 156 157=item * 158 159Test::Harness upgraded to version 2.48 160 161=item * 162 163Test::Simple upgraded to version 0.54 164 165=item * 166 167Text::Wrap upgraded to version 2001.09293, to fix a bug when wrap() was 168called with a non-space separator. 169 170=item * 171 172threads::shared upgraded to version 0.93 173 174=item * 175 176Time::HiRes upgraded to version 1.66 177 178=item * 179 180Time::Local upgraded to version 1.11 181 182=item * 183 184Unicode::Normalize upgraded to version 0.32 185 186=item * 187 188utf8 upgraded to version 1.05 189 190=item * 191 192Win32 upgraded to version 0.24, which provides Win32::GetFileVersion 193 194=back 195 196=head1 Utility Changes 197 198=head2 find2perl enhancements 199 200C<find2perl> has new options C<-iname>, C<-path> and C<-ipath>. 201 202=head1 Performance Enhancements 203 204The internal pointer mapping hash used during ithreads cloning now uses an 205arena for memory allocation. In tests this reduced ithreads cloning time by 206about 10%. 207 208=head1 Installation and Configuration Improvements 209 210=over 4 211 212=item * 213 214The Win32 "dmake" makefile.mk has been updated to make it compatible 215with the latest versions of dmake. 216 217=item * 218 219C<PERL_MALLOC>, C<DEBUG_MSTATS>, C<PERL_HASH_SEED_EXPLICIT> and C<NO_HASH_SEED> 220should now work in Win32 makefiles. 221 222=back 223 224=head1 Selected Bug Fixes 225 226=over 4 227 228=item * 229 230The socket() function on Win32 has been fixed so that it is able to use 231transport providers which specify a protocol of 0 (meaning any protocol 232is allowed) once more. (This was broken in 5.8.6, and typically caused 233the use of ICMP sockets to fail.) 234 235=item * 236 237Another obscure bug involving C<substr> and UTF-8 caused by bad internal 238offset caching has been identified and fixed. 239 240=item * 241 242A bug involving the loading of UTF-8 tables by the regexp engine has been 243fixed - code such as C<"\x{100}" =~ /[[:print:]]/> will no longer give 244corrupt results. 245 246=item * 247 248Case conversion operations such as C<uc> on a long Unicode string could 249exhaust memory. This has been fixed. 250 251=item * 252 253C<index>/C<rindex> were buggy for some combinations of Unicode and 254non-Unicode data. This has been fixed. 255 256=item * 257 258C<read> (and presumably C<sysread>) would expose the UTF-8 internals when 259reading from a byte oriented file handle into a UTF-8 scalar. This has 260been fixed. 261 262=item * 263 264Several C<pack>/C<unpack> bug fixes: 265 266=over 4 267 268=item * 269 270Checksums with C<b> or C<B> formats were broken. 271 272=item * 273 274C<unpack> checksums could overflow with the C<C> format. 275 276=item * 277 278C<U0> and C<C0> are now scoped to C<()> C<pack> sub-templates. 279 280=item * 281 282Counted length prefixes now don't change C<C0>/C<U0> mode. 283 284=item * 285 286C<pack> C<Z0> used to destroy the preceding character. 287 288=item * 289 290C<P>/C<p> C<pack> formats used to only recognise literal C<undef> 291 292=back 293 294=item * 295 296Using closures with ithreads could cause perl to crash. This was due to 297failure to correctly lock internal OP structures, and has been fixed. 298 299=item * 300 301The return value of C<close> now correctly reflects any file errors that 302occur while flushing the handle's data, instead of just giving failure if 303the actual underlying file close operation failed. 304 305=item * 306 307C<not() || 1> used to segfault. C<not()> now behaves like C<not(0)>, which was 308the pre 5.6.0 behaviour. 309 310=item * 311 312C<h2ph> has various enhancements to cope with constructs in header files that 313used to result in incorrect or invalid output. 314 315=back 316 317=head1 New or Changed Diagnostics 318 319There is a new taint error, "%ENV is aliased to %s". This error is thrown 320when taint checks are enabled and when C<*ENV> has been aliased, so that 321C<%ENV> has no env-magic anymore and hence the environment cannot be verified 322as taint-free. 323 324The internals of C<pack> and C<unpack> have been updated. All legitimate 325templates should work as before, but there may be some changes in the error 326reported for complex failure cases. Any behaviour changes for non-error cases 327are bugs, and should be reported. 328 329=head1 Changed Internals 330 331There has been a fair amount of refactoring of the C<C> source code, partly to 332make it tidier and more maintainable. The resulting object code and the 333C<perl> binary may well be smaller than 5.8.6, and hopefully faster in some 334cases, but apart from this there should be no user-detectable changes. 335 336C<${^UTF8LOCALE}> has been added to give perl space access to C<PL_utf8locale>. 337 338The size of the arenas used to allocate SV heads and most SV bodies can now 339be changed at compile time. The old size was 1008 bytes, the new default size 340is 4080 bytes. 341 342=head1 Known Problems 343 344Unicode strings returned from overloaded operators can be buggy. This is a 345long standing bug reported since 5.8.6 was released, but we do not yet have 346a suitable fix for it. 347 348=head1 Platform Specific Problems 349 350On UNICOS, lib/Math/BigInt/t/bigintc.t hangs burning CPU. 351ext/B/t/bytecode.t and ext/Socket/t/socketpair.t both fail tests. 352These are unlikely to be resolved, as our valiant UNICOS porter's last 353Cray is being decommissioned. 354 355=head1 Reporting Bugs 356 357If you find what you think is a bug, you might check the articles 358recently posted to the comp.lang.perl.misc newsgroup and the perl 359bug database at http://bugs.perl.org. There may also be 360information at http://www.perl.org, the Perl Home Page. 361 362If you believe you have an unreported bug, please run the B<perlbug> 363program included with your release. Be sure to trim your bug down 364to a tiny but sufficient test case. Your bug report, along with the 365output of C<perl -V>, will be sent off to perlbug@perl.org to be 366analysed by the Perl porting team. You can browse and search 367the Perl 5 bugs at http://bugs.perl.org/ 368 369=head1 SEE ALSO 370 371The F<Changes> file for exhaustive details on what changed. 372 373The F<INSTALL> file for how to build Perl. 374 375The F<README> file for general stuff. 376 377The F<Artistic> and F<Copying> files for copyright information. 378 379=cut 380