[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 =head1 NAME 2 3 perl571delta - what's new for perl v5.7.1 4 5 =head1 DESCRIPTION 6 7 This document describes differences between the 5.7.0 release and the 8 5.7.1 release. 9 10 (To view the differences between the 5.6.0 release and the 5.7.0 11 release, see L<perl570delta>.) 12 13 =head1 Security Vulnerability Closed 14 15 (This change was already made in 5.7.0 but bears repeating here.) 16 17 A potential security vulnerability in the optional suidperl component 18 of Perl was identified in August 2000. suidperl is neither built nor 19 installed by default. As of April 2001 the only known vulnerable 20 platform is Linux, most likely all Linux distributions. CERT and 21 various vendors and distributors have been alerted about the vulnerability. 22 See http://www.cpan.org/src/5.0/sperl-2000-08-05/sperl-2000-08-05.txt 23 for more information. 24 25 The problem was caused by Perl trying to report a suspected security 26 exploit attempt using an external program, /bin/mail. On Linux 27 platforms the /bin/mail program had an undocumented feature which 28 when combined with suidperl gave access to a root shell, resulting in 29 a serious compromise instead of reporting the exploit attempt. If you 30 don't have /bin/mail, or if you have 'safe setuid scripts', or if 31 suidperl is not installed, you are safe. 32 33 The exploit attempt reporting feature has been completely removed from 34 all the Perl 5.7 releases (and will be gone also from the maintenance 35 release 5.6.1), so that particular vulnerability isn't there anymore. 36 However, further security vulnerabilities are, unfortunately, always 37 possible. The suidperl code is being reviewed and if deemed too risky 38 to continue to be supported, it may be completely removed from future 39 releases. In any case, suidperl should only be used by security 40 experts who know exactly what they are doing and why they are using 41 suidperl instead of some other solution such as sudo 42 ( see http://www.courtesan.com/sudo/ ). 43 44 =head1 Incompatible Changes 45 46 =over 4 47 48 =item * 49 50 Although "you shouldn't do that", it was possible to write code that 51 depends on Perl's hashed key order (Data::Dumper does this). The new 52 algorithm "One-at-a-Time" produces a different hashed key order. 53 More details are in L</"Performance Enhancements">. 54 55 =item * 56 57 The list of filenames from glob() (or <...>) is now by default sorted 58 alphabetically to be csh-compliant. (bsd_glob() does still sort platform 59 natively, ASCII or EBCDIC, unless GLOB_ALPHASORT is specified.) 60 61 =back 62 63 =head1 Core Enhancements 64 65 =head2 AUTOLOAD Is Now Lvaluable 66 67 AUTOLOAD is now lvaluable, meaning that you can add the :lvalue attribute 68 to AUTOLOAD subroutines and you can assign to the AUTOLOAD return value. 69 70 =head2 PerlIO is Now The Default 71 72 =over 4 73 74 =item * 75 76 IO is now by default done via PerlIO rather than system's "stdio". 77 PerlIO allows "layers" to be "pushed" onto a file handle to alter the 78 handle's behaviour. Layers can be specified at open time via 3-arg 79 form of open: 80 81 open($fh,'>:crlf :utf8', $path) || ... 82 83 or on already opened handles via extended C<binmode>: 84 85 binmode($fh,':encoding(iso-8859-7)'); 86 87 The built-in layers are: unix (low level read/write), stdio (as in 88 previous Perls), perlio (re-implementation of stdio buffering in a 89 portable manner), crlf (does CRLF <=> "\n" translation as on Win32, 90 but available on any platform). A mmap layer may be available if 91 platform supports it (mostly UNIXes). 92 93 Layers to be applied by default may be specified via the 'open' pragma. 94 95 See L</"Installation and Configuration Improvements"> for the effects 96 of PerlIO on your architecture name. 97 98 =item * 99 100 File handles can be marked as accepting Perl's internal encoding of Unicode 101 (UTF-8 or UTF-EBCDIC depending on platform) by a pseudo layer ":utf8" : 102 103 open($fh,">:utf8","Uni.txt"); 104 105 Note for EBCDIC users: the pseudo layer ":utf8" is erroneously named 106 for you since it's not UTF-8 what you will be getting but instead 107 UTF-EBCDIC. See L<perlunicode>, L<utf8>, and 108 http://www.unicode.org/unicode/reports/tr16/ for more information. 109 In future releases this naming may change. 110 111 =item * 112 113 File handles can translate character encodings from/to Perl's internal 114 Unicode form on read/write via the ":encoding()" layer. 115 116 =item * 117 118 File handles can be opened to "in memory" files held in Perl scalars via: 119 120 open($fh,'>', \$variable) || ... 121 122 =item * 123 124 Anonymous temporary files are available without need to 125 'use FileHandle' or other module via 126 127 open($fh,"+>", undef) || ... 128 129 That is a literal undef, not an undefined value. 130 131 =item * 132 133 The list form of C<open> is now implemented for pipes (at least on UNIX): 134 135 open($fh,"-|", 'cat', '/etc/motd') 136 137 creates a pipe, and runs the equivalent of exec('cat', '/etc/motd') in 138 the child process. 139 140 =item * 141 142 The following builtin functions are now overridable: chop(), chomp(), 143 each(), keys(), pop(), push(), shift(), splice(), unshift(). 144 145 =item * 146 147 Formats now support zero-padded decimal fields. 148 149 =item * 150 151 Perl now tries internally to use integer values in numeric conversions 152 and basic arithmetics (+ - * /) if the arguments are integers, and 153 tries also to keep the results stored internally as integers. 154 This change leads into often slightly faster and always less lossy 155 arithmetics. (Previously Perl always preferred floating point numbers 156 in its math.) 157 158 =item * 159 160 The printf() and sprintf() now support parameter reordering using the 161 C<%\d+\$> and C<*\d+\$> syntaxes. For example 162 163 print "%2\$s %1\$s\n", "foo", "bar"; 164 165 will print "bar foo\n"; This feature helps in writing 166 internationalised software. 167 168 =item * 169 170 Unicode in general should be now much more usable. Unicode can be 171 used in hash keys, Unicode in regular expressions should work now, 172 Unicode in tr/// should work now (though tr/// seems to be a 173 particularly tricky to get right, so you have been warned) 174 175 =item * 176 177 The Unicode Character Database coming with Perl has been upgraded 178 to Unicode 3.1. For more information, see http://www.unicode.org/ , 179 and http://www.unicode.org/unicode/reports/tr27/ 180 181 For developers interested in enhancing Perl's Unicode capabilities: 182 almost all the UCD files are included with the Perl distribution in 183 the lib/unicode subdirectory. The most notable omission, for space 184 considerations, is the Unihan database. 185 186 =item * 187 188 The Unicode character classes \p{Blank} and \p{SpacePerl} have been 189 added. "Blank" is like C isblank(), that is, it contains only 190 "horizontal whitespace" (the space character is, the newline isn't), 191 and the "SpacePerl" is the Unicode equivalent of C<\s> (\p{Space} 192 isn't, since that includes the vertical tabulator character, whereas 193 C<\s> doesn't.) 194 195 =back 196 197 =head2 Signals Are Now Safe 198 199 Perl used to be fragile in that signals arriving at inopportune moments 200 could corrupt Perl's internal state. 201 202 =head1 Modules and Pragmata 203 204 =head2 New Modules 205 206 =over 4 207 208 =item * 209 210 B::Concise, by Stephen McCamant, is a new compiler backend for 211 walking the Perl syntax tree, printing concise info about ops. 212 The output is highly customisable. 213 214 See L<B::Concise> for more information. 215 216 =item * 217 218 Class::ISA, by Sean Burke, for reporting the search path for a 219 class's ISA tree, has been added. 220 221 See L<Class::ISA> for more information. 222 223 =item * 224 225 Cwd has now a split personality: if possible, an extension is used, 226 (this will hopefully be both faster and more secure and robust) but 227 if not possible, the familiar Perl library implementation is used. 228 229 =item * 230 231 Digest, a frontend module for calculating digests (checksums), 232 from Gisle Aas, has been added. 233 234 See L<Digest> for more information. 235 236 =item * 237 238 Digest::MD5 for calculating MD5 digests (checksums), by Gisle Aas, 239 has been added. 240 241 use Digest::MD5 'md5_hex'; 242 243 $digest = md5_hex("Thirsty Camel"); 244 245 print $digest, "\n"; # 01d19d9d2045e005c3f1b80e8b164de1 246 247 NOTE: the MD5 backward compatibility module is deliberately not 248 included since its use is discouraged. 249 250 See L<Digest::MD5> for more information. 251 252 =item * 253 254 Encode, by Nick Ing-Simmons, provides a mechanism to translate 255 between different character encodings. Support for Unicode, 256 ISO-8859-*, ASCII, CP*, KOI8-R, and three variants of EBCDIC are 257 compiled in to the module. Several other encodings (like Japanese, 258 Chinese, and MacIntosh encodings) are included and will be loaded at 259 runtime. 260 261 Any encoding supported by Encode module is also available to the 262 ":encoding()" layer if PerlIO is used. 263 264 See L<Encode> for more information. 265 266 =item * 267 268 Filter::Simple is an easy-to-use frontend to Filter::Util::Call, 269 from Damian Conway. 270 271 # in MyFilter.pm: 272 273 package MyFilter; 274 275 use Filter::Simple sub { 276 while (my ($from, $to) = splice @_, 0, 2) { 277 s/$from/$to/g; 278 } 279 }; 280 281 1; 282 283 # in user's code: 284 285 use MyFilter qr/red/ => 'green'; 286 287 print "red\n"; # this code is filtered, will print "green\n" 288 print "bored\n"; # this code is filtered, will print "bogreen\n" 289 290 no MyFilter; 291 292 print "red\n"; # this code is not filtered, will print "red\n" 293 294 See L<Filter::Simple> for more information. 295 296 =item * 297 298 Filter::Util::Call, by Paul Marquess, provides you with the 299 framework to write I<Source Filters> in Perl. For most uses 300 the frontend Filter::Simple is to be preferred. 301 See L<Filter::Util::Call> for more information. 302 303 =item * 304 305 Locale::Constants, Locale::Country, Locale::Currency, and Locale::Language, 306 from Neil Bowers, have been added. They provide the codes for various 307 locale standards, such as "fr" for France, "usd" for US Dollar, and 308 "jp" for Japanese. 309 310 use Locale::Country; 311 312 $country = code2country('jp'); # $country gets 'Japan' 313 $code = country2code('Norway'); # $code gets 'no' 314 315 See L<Locale::Constants>, L<Locale::Country>, L<Locale::Currency>, 316 and L<Locale::Language> for more information. 317 318 =item * 319 320 MIME::Base64, by Gisle Aas, allows you to encode data in base64. 321 322 use MIME::Base64; 323 324 $encoded = encode_base64('Aladdin:open sesame'); 325 $decoded = decode_base64($encoded); 326 327 print $encoded, "\n"; # "QWxhZGRpbjpvcGVuIHNlc2FtZQ==" 328 329 See L<MIME::Base64> for more information. 330 331 =item * 332 333 MIME::QuotedPrint, by Gisle Aas, allows you to encode data in 334 quoted-printable encoding. 335 336 use MIME::QuotedPrint; 337 338 $encoded = encode_qp("Smiley in Unicode: \x{263a}"); 339 $decoded = decode_qp($encoded); 340 341 print $encoded, "\n"; # "Smiley in Unicode: =263A" 342 343 MIME::QuotedPrint has been enhanced to provide the basic methods 344 necessary to use it with PerlIO::Via as in : 345 346 use MIME::QuotedPrint; 347 open($fh,">Via(MIME::QuotedPrint)",$path) 348 349 See L<MIME::QuotedPrint> for more information. 350 351 =item * 352 353 PerlIO::Scalar, by Nick Ing-Simmons, provides the implementation of 354 IO to "in memory" Perl scalars as discussed above. It also serves as 355 an example of a loadable layer. Other future possibilities include 356 PerlIO::Array and PerlIO::Code. See L<PerlIO::Scalar> for more 357 information. 358 359 =item * 360 361 PerlIO::Via, by Nick Ing-Simmons, acts as a PerlIO layer and wraps 362 PerlIO layer functionality provided by a class (typically implemented 363 in perl code). 364 365 use MIME::QuotedPrint; 366 open($fh,">Via(MIME::QuotedPrint)",$path) 367 368 This will automatically convert everything output to C<$fh> 369 to Quoted-Printable. See L<PerlIO::Via> for more information. 370 371 =item * 372 373 Pod::Text::Overstrike, by Joe Smith, has been added. 374 It converts POD data to formatted overstrike text. 375 See L<Pod::Text::Overstrike> for more information. 376 377 =item * 378 379 Switch from Damian Conway has been added. Just by saying 380 381 use Switch; 382 383 you have C<switch> and C<case> available in Perl. 384 385 use Switch; 386 387 switch ($val) { 388 389 case 1 { print "number 1" } 390 case "a" { print "string a" } 391 case [1..10,42] { print "number in list" } 392 case (@array) { print "number in list" } 393 case /\w+/ { print "pattern" } 394 case qr/\w+/ { print "pattern" } 395 case (%hash) { print "entry in hash" } 396 case (\%hash) { print "entry in hash" } 397 case (\&sub) { print "arg to subroutine" } 398 else { print "previous case not true" } 399 } 400 401 See L<Switch> for more information. 402 403 =item * 404 405 Text::Balanced from Damian Conway has been added, for 406 extracting delimited text sequences from strings. 407 408 use Text::Balanced 'extract_delimited'; 409 410 ($a, $b) = extract_delimited("'never say never', he never said", "'", ''); 411 412 $a will be "'never say never'", $b will be ', he never said'. 413 414 In addition to extract_delimited() there are also extract_bracketed(), 415 extract_quotelike(), extract_codeblock(), extract_variable(), 416 extract_tagged(), extract_multiple(), gen_delimited_pat(), and 417 gen_extract_tagged(). With these you can implement rather advanced 418 parsing algorithms. See L<Text::Balanced> for more information. 419 420 =item * 421 422 Tie::RefHash::Nestable, by Edward Avis, allows storing hash references 423 (unlike the standard Tie::RefHash) The module is contained within 424 Tie::RefHash. 425 426 =item * 427 428 XS::Typemap, by Tim Jenness, is a test extension that exercises XS 429 typemaps. Nothing gets installed but for extension writers the code 430 is worth studying. 431 432 =back 433 434 =head2 Updated And Improved Modules and Pragmata 435 436 =over 4 437 438 =item * 439 440 B::Deparse should be now more robust. It still far from providing a full 441 round trip for any random piece of Perl code, though, and is under active 442 development: expect more robustness in 5.7.2. 443 444 =item * 445 446 Class::Struct can now define the classes in compile time. 447 448 =item * 449 450 Math::BigFloat has undergone much fixing, and in addition the fmod() 451 function now supports modulus operations. 452 453 ( The fixed Math::BigFloat module is also available in CPAN for those 454 who can't upgrade their Perl: http://www.cpan.org/authors/id/J/JP/JPEACOCK/ ) 455 456 =item * 457 458 Devel::Peek now has an interface for the Perl memory statistics 459 (this works only if you are using perl's malloc, and if you have 460 compiled with debugging). 461 462 =item * 463 464 IO::Socket has now atmark() method, which returns true if the socket 465 is positioned at the out-of-band mark. The method is also exportable 466 as a sockatmark() function. 467 468 =item * 469 470 IO::Socket::INET has support for ReusePort option (if your platform 471 supports it). The Reuse option now has an alias, ReuseAddr. For clarity 472 you may want to prefer ReuseAddr. 473 474 =item * 475 476 Net::Ping has been enhanced. There is now "external" protocol which 477 uses Net::Ping::External module which runs external ping(1) and parses 478 the output. An alpha version of Net::Ping::External is available in 479 CPAN and in 5.7.2 the Net::Ping::External may be integrated to Perl. 480 481 =item * 482 483 The C<open> pragma allows layers other than ":raw" and ":crlf" when 484 using PerlIO. 485 486 =item * 487 488 POSIX::sigaction() is now much more flexible and robust. 489 You can now install coderef handlers, 'DEFAULT', and 'IGNORE' 490 handlers, installing new handlers was not atomic. 491 492 =item * 493 494 The Test module has been significantly enhanced. Its use is 495 greatly recommended for module writers. 496 497 =item * 498 499 The utf8:: name space (as in the pragma) provides various 500 Perl-callable functions to provide low level access to Perl's 501 internal Unicode representation. At the moment only length() 502 has been implemented. 503 504 =back 505 506 The following modules have been upgraded from the versions at CPAN: 507 CPAN, CGI, DB_File, File::Temp, Getopt::Long, Pod::Man, Pod::Text, 508 Storable, Text-Tabs+Wrap. 509 510 =head1 Performance Enhancements 511 512 =over 4 513 514 =item * 515 516 Hashes now use Bob Jenkins "One-at-a-Time" hashing key algorithm 517 ( http://burtleburtle.net/bob/hash/doobs.html ). This algorithm is 518 reasonably fast while producing a much better spread of values than 519 the old hashing algorithm (originally by Chris Torek, later tweaked by 520 Ilya Zakharevich). Hash values output from the algorithm on a hash of 521 all 3-char printable ASCII keys comes much closer to passing the 522 DIEHARD random number generation tests. According to perlbench, this 523 change has not affected the overall speed of Perl. 524 525 =item * 526 527 unshift() should now be noticeably faster. 528 529 =back 530 531 =head1 Utility Changes 532 533 =over 4 534 535 =item * 536 537 h2xs now produces template README. 538 539 =item * 540 541 s2p has been completely rewritten in Perl. (It is in fact a full 542 implementation of sed in Perl.) 543 544 =item * 545 546 xsubpp now supports OUT keyword. 547 548 =back 549 550 =head1 New Documentation 551 552 =head2 perlclib 553 554 Internal replacements for standard C library functions. 555 (Interesting only for extension writers and Perl core hackers.) 556 557 =head2 perliol 558 559 Internals of PerlIO with layers. 560 561 =head2 README.aix 562 563 Documentation on compiling Perl on AIX has been added. AIX has 564 several different C compilers and getting the right patch level 565 is essential. On install README.aix will be installed as L<perlaix>. 566 567 =head2 README.bs2000 568 569 Documentation on compiling Perl on the POSIX-BC platform (an EBCDIC 570 mainframe environment) has been added. 571 572 This was formerly known as README.posix-bc but the name was considered 573 to be too confusing (it has nothing to do with the POSIX module or the 574 POSIX standard). On install README.bs2000 will be installed as L<perlbs2000>. 575 576 =head2 README.macos 577 578 In perl 5.7.1 (and in the 5.6.1) the MacPerl sources have been 579 synchronised with the standard Perl sources. To compile MacPerl 580 some additional steps are required, and this file documents those 581 steps. On install README.macos will be installed as L<perlmacos>. 582 583 =head2 README.mpeix 584 585 The README.mpeix has been podified, which means that this information 586 about compiling and using Perl on the MPE/iX miniframe platform will 587 be installed as L<perlmpeix>. 588 589 =head2 README.solaris 590 591 README.solaris has been created and Solaris wisdom from elsewhere 592 in the Perl documentation has been collected there. On install 593 README.solaris will be installed as L<perlsolaris>. 594 595 =head2 README.vos 596 597 The README.vos has been podified, which means that this information 598 about compiling and using Perl on the Stratus VOS miniframe platform 599 will be installed as L<perlvos>. 600 601 =head2 Porting/repository.pod 602 603 Documentation on how to use the Perl source repository has been added. 604 605 =head1 Installation and Configuration Improvements 606 607 =over 4 608 609 =item * 610 611 Because PerlIO is now the default on most platforms, "-perlio" doesn't 612 get appended to the $Config{archname} (also known as $^O) anymore. 613 Instead, if you explicitly choose not to use perlio (Configure command 614 line option -Uuseperlio), you will get "-stdio" appended. 615 616 =item * 617 618 Another change related to the architecture name is that "-64all" 619 (-Duse64bitall, or "maximally 64-bit") is appended only if your 620 pointers are 64 bits wide. (To be exact, the use64bitall is ignored.) 621 622 =item * 623 624 APPLLIB_EXP, a less-know configuration-time definition, has been 625 documented. It can be used to prepend site-specific directories 626 to Perl's default search path (@INC), see INSTALL for information. 627 628 =item * 629 630 Building Berkeley DB3 for compatibility modes for DB, NDBM, and ODBM 631 has been documented in INSTALL. 632 633 =item * 634 635 If you are on IRIX or Tru64 platforms, new profiling/debugging options 636 have been added, see L<perlhack> for more information about pixie and 637 Third Degree. 638 639 =back 640 641 =head2 New Or Improved Platforms 642 643 For the list of platforms known to support Perl, 644 see L<perlport/"Supported Platforms">. 645 646 =over 4 647 648 =item * 649 650 AIX dynamic loading should be now better supported. 651 652 =item * 653 654 After a long pause, AmigaOS has been verified to be happy with Perl. 655 656 =item * 657 658 EBCDIC platforms (z/OS, also known as OS/390, POSIX-BC, and VM/ESA) 659 have been regained. Many test suite tests still fail and the 660 co-existence of Unicode and EBCDIC isn't quite settled, but the 661 situation is much better than with Perl 5.6. See L<perlos390>, 662 L<perlbs2000> (for POSIX-BC), and L<perlvmesa> for more information. 663 664 =item * 665 666 Building perl with -Duseithreads or -Duse5005threads now works under 667 HP-UX 10.20 (previously it only worked under 10.30 or later). You will 668 need a thread library package installed. See README.hpux. 669 670 =item * 671 672 Mac OS Classic (MacPerl has of course been available since 673 perl 5.004 but now the source code bases of standard Perl 674 and MacPerl have been synchronised) 675 676 =item * 677 678 NCR MP-RAS is now supported. 679 680 =item * 681 682 NonStop-UX is now supported. 683 684 =item * 685 686 Amdahl UTS is now supported. 687 688 =item * 689 690 z/OS (formerly known as OS/390, formerly known as MVS OE) has now 691 support for dynamic loading. This is not selected by default, 692 however, you must specify -Dusedl in the arguments of Configure. 693 694 =back 695 696 =head2 Generic Improvements 697 698 =over 4 699 700 =item * 701 702 Configure no longer includes the DBM libraries (dbm, gdbm, db, ndbm) 703 when building the Perl binary. The only exception to this is SunOS 4.x, 704 which needs them. 705 706 =item * 707 708 Some new Configure symbols, useful for extension writers: 709 710 =over 8 711 712 =item d_cmsghdr 713 714 For struct cmsghdr. 715 716 =item d_fcntl_can_lock 717 718 Whether fcntl() can be used for file locking. 719 720 =item d_fsync 721 722 =item d_getitimer 723 724 =item d_getpagsz 725 726 For getpagesize(), though you should prefer POSIX::sysconf(_SC_PAGE_SIZE)) 727 728 =item d_msghdr_s 729 730 For struct msghdr. 731 732 =item need_va_copy 733 734 Whether one needs to use Perl_va_copy() to copy varargs. 735 736 =item d_readv 737 738 =item d_recvmsg 739 740 =item d_sendmsg 741 742 =item sig_size 743 744 The number of elements in an array needed to hold all the available signals. 745 746 =item d_sockatmark 747 748 =item d_strtoq 749 750 =item d_u32align 751 752 Whether one needs to access character data aligned by U32 sized pointers. 753 754 =item d_ualarm 755 756 =item d_usleep 757 758 =back 759 760 =item * 761 762 Removed Configure symbols: the PDP-11 memory model settings: huge, 763 large, medium, models. 764 765 =item * 766 767 SOCKS support is now much more robust. 768 769 =item * 770 771 If your file system supports symbolic links you can build Perl outside 772 of the source directory by 773 774 mkdir perl/build/directory 775 cd perl/build/directory 776 sh /path/to/perl/source/Configure -Dmksymlinks ... 777 778 This will create in perl/build/directory a tree of symbolic links 779 pointing to files in /path/to/perl/source. The original files are left 780 unaffected. After Configure has finished you can just say 781 782 make all test 783 784 and Perl will be built and tested, all in perl/build/directory. 785 786 =back 787 788 =head1 Selected Bug Fixes 789 790 Numerous memory leaks and uninitialized memory accesses have been hunted down. 791 Most importantly anonymous subs used to leak quite a bit. 792 793 =over 4 794 795 =item * 796 797 chop(@list) in list context returned the characters chopped in 798 reverse order. This has been reversed to be in the right order. 799 800 =item * 801 802 The order of DESTROYs has been made more predictable. 803 804 =item * 805 806 mkdir() now ignores trailing slashes in the directory name, 807 as mandated by POSIX. 808 809 =item * 810 811 Attributes (like :shared) didn't work with our(). 812 813 =item * 814 815 The PERL5OPT environment variable (for passing command line arguments 816 to Perl) didn't work for more than a single group of options. 817 818 =item * 819 820 The tainting behaviour of sprintf() has been rationalized. It does 821 not taint the result of floating point formats anymore, making the 822 behaviour consistent with that of string interpolation. 823 824 =item * 825 826 All but the first argument of the IO syswrite() method are now optional. 827 828 =item * 829 830 Tie::ARRAY SPLICE method was broken. 831 832 =item * 833 834 vec() now tries to work with characters <= 255 when possible, but it leaves 835 higher character values in place. In that case, if vec() was used to modify 836 the string, it is no longer considered to be utf8-encoded. 837 838 =back 839 840 =head2 Platform Specific Changes and Fixes 841 842 =over 4 843 844 =item * 845 846 Linux previously had problems related to sockaddrlen when using 847 accept(), revcfrom() (in Perl: recv()), getpeername(), and getsockname(). 848 849 =item * 850 851 Previously DYNIX/ptx had problems in its Configure probe for non-blocking I/O. 852 853 =item * 854 855 Windows 856 857 =over 8 858 859 =item * 860 861 Borland C++ v5.5 is now a supported compiler that can build Perl. 862 However, the generated binaries continue to be incompatible with those 863 generated by the other supported compilers (GCC and Visual C++). 864 865 =item * 866 867 Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root. 868 Other bugs in chdir() and Cwd::cwd() have also been fixed. 869 870 =item * 871 872 Duping socket handles with open(F, ">&MYSOCK") now works under Windows 9x. 873 874 =item * 875 876 HTML files will be installed in c:\perl\html instead of c:\perl\lib\pod\html 877 878 =item * 879 880 The makefiles now provide a single switch to bulk-enable all the features 881 enabled in ActiveState ActivePerl (a popular binary distribution). 882 883 =back 884 885 =back 886 887 =head1 New or Changed Diagnostics 888 889 Two new debugging options have been added: if you have compiled your 890 Perl with debugging, you can use the -DT and -DR options to trace 891 tokenising and to add reference counts to displaying variables, 892 respectively. 893 894 =over 4 895 896 =item * 897 898 If an attempt to use a (non-blessed) reference as an array index 899 is made, a warning is given. 900 901 =item * 902 903 C<push @a;> and C<unshift @a;> (with no values to push or unshift) 904 now give a warning. This may be a problem for generated and eval'ed 905 code. 906 907 =back 908 909 =head1 Changed Internals 910 911 =over 4 912 913 =item * 914 915 Some new APIs: ptr_table_clear(), ptr_table_free(), sv_setref_uv(). 916 For the full list of the available APIs see L<perlapi>. 917 918 =item * 919 920 dTHR and djSP have been obsoleted; the former removed (because it's 921 a no-op) and the latter replaced with dSP. 922 923 =item * 924 925 Perl now uses system malloc instead of Perl malloc on all 64-bit 926 platforms, and even in some not-always-64-bit platforms like AIX, 927 IRIX, and Solaris. This change breaks backward compatibility but 928 Perl's malloc has problems with large address spaces and also the 929 speed of vendors' malloc is generally better in large address space 930 machines (Perl's malloc is mostly tuned for space). 931 932 =back 933 934 =head1 New Tests 935 936 Many new tests have been added. The most notable is probably the 937 lib/1_compile: it is very notable because running it takes quite a 938 long time -- it test compiles all the Perl modules in the distribution. 939 Please be patient. 940 941 =head1 Known Problems 942 943 Note that unlike other sections in this document (which describe 944 changes since 5.7.0) this section is cumulative containing known 945 problems for all the 5.7 releases. 946 947 =head2 AIX vac 5.0.0.0 May Produce Buggy Code For Perl 948 949 The AIX C compiler vac version 5.0.0.0 may produce buggy code, 950 resulting in few random tests failing, but when the failing tests 951 are run by hand, they succeed. We suggest upgrading to at least 952 vac version 5.0.1.0, that has been known to compile Perl correctly. 953 "lslpp -L|grep vac.C" will tell you the vac version. 954 955 =head2 lib/ftmp-security tests warn 'system possibly insecure' 956 957 Don't panic. Read INSTALL 'make test' section instead. 958 959 =head2 lib/io_multihomed Fails In LP64-Configured HP-UX 960 961 The lib/io_multihomed test may hang in HP-UX if Perl has been 962 configured to be 64-bit. Because other 64-bit platforms do not hang in 963 this test, HP-UX is suspect. All other tests pass in 64-bit HP-UX. The 964 test attempts to create and connect to "multihomed" sockets (sockets 965 which have multiple IP addresses). 966 967 =head2 Test lib/posix Subtest 9 Fails In LP64-Configured HP-UX 968 969 If perl is configured with -Duse64bitall, the successful result of the 970 subtest 10 of lib/posix may arrive before the successful result of the 971 subtest 9, which confuses the test harness so much that it thinks the 972 subtest 9 failed. 973 974 =head2 lib/b test 19 975 976 The test fails on various platforms (PA64 and IA64 are known), but the 977 exact cause is still being investigated. 978 979 =head2 Linux With Sfio Fails op/misc Test 48 980 981 No known fix. 982 983 =head2 sigaction test 13 in VMS 984 985 The test is known to fail; whether it's because of VMS of because 986 of faulty test is not known. 987 988 =head2 sprintf tests 129 and 130 989 990 The op/sprintf tests 129 and 130 are known to fail on some platforms. 991 Examples include any platform using sfio, and Compaq/Tandem's NonStop-UX. 992 The failing platforms do not comply with the ANSI C Standard, line 993 19ff on page 134 of ANSI X3.159 1989 to be exact. (They produce 994 something else than "1" and "-1" when formatting 0.6 and -0.6 using 995 the printf format "%.0f", most often they produce "0" and "-0".) 996 997 =head2 Failure of Thread tests 998 999 The subtests 19 and 20 of lib/thr5005.t test are known to fail due to 1000 fundamental problems in the 5.005 threading implementation. These are 1001 not new failures--Perl 5.005_0x has the same bugs, but didn't have 1002 these tests. (Note that support for 5.005-style threading remains 1003 experimental.) 1004 1005 =head2 Localising a Tied Variable Leaks Memory 1006 1007 use Tie::Hash; 1008 tie my %tie_hash => 'Tie::StdHash'; 1009 1010 ... 1011 1012 local($tie_hash{Foo}) = 1; # leaks 1013 1014 Code like the above is known to leak memory every time the local() 1015 is executed. 1016 1017 =head2 Self-tying of Arrays and Hashes Is Forbidden 1018 1019 Self-tying of arrays and hashes is broken in rather deep and 1020 hard-to-fix ways. As a stop-gap measure to avoid people from getting 1021 frustrated at the mysterious results (core dumps, most often) it is 1022 for now forbidden (you will get a fatal error even from an attempt). 1023 1024 =head2 Building Extensions Can Fail Because Of Largefiles 1025 1026 Some extensions like mod_perl are known to have issues with 1027 `largefiles', a change brought by Perl 5.6.0 in which file offsets 1028 default to 64 bits wide, where supported. Modules may fail to compile 1029 at all or compile and work incorrectly. Currently there is no good 1030 solution for the problem, but Configure now provides appropriate 1031 non-largefile ccflags, ldflags, libswanted, and libs in the %Config 1032 hash (e.g., $Config{ccflags_nolargefiles}) so the extensions that are 1033 having problems can try configuring themselves without the 1034 largefileness. This is admittedly not a clean solution, and the 1035 solution may not even work at all. One potential failure is whether 1036 one can (or, if one can, whether it's a good idea) link together at 1037 all binaries with different ideas about file offsets, all this is 1038 platform-dependent. 1039 1040 =head2 The Compiler Suite Is Still Experimental 1041 1042 The compiler suite is slowly getting better but is nowhere near 1043 working order yet. 1044 1045 =head1 Reporting Bugs 1046 1047 If you find what you think is a bug, you might check the articles 1048 recently posted to the comp.lang.perl.misc newsgroup and the perl 1049 bug database at http://bugs.perl.org/ There may also be 1050 information at http://www.perl.com/perl/ , the Perl Home Page. 1051 1052 If you believe you have an unreported bug, please run the B<perlbug> 1053 program included with your release. Be sure to trim your bug down 1054 to a tiny but sufficient test case. Your bug report, along with the 1055 output of C<perl -V>, will be sent off to perlbug@perl.org to be 1056 analysed by the Perl porting team. 1057 1058 =head1 SEE ALSO 1059 1060 The F<Changes> file for exhaustive details on what changed. 1061 1062 The F<INSTALL> file for how to build Perl. 1063 1064 The F<README> file for general stuff. 1065 1066 The F<Artistic> and F<Copying> files for copyright information. 1067 1068 =head1 HISTORY 1069 1070 Written by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributions 1071 from The Perl Porters and Perl Users submitting feedback and patches. 1072 1073 Send omissions or corrections to <F<perlbug@perl.org>>. 1074 1075 =cut
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |