[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 =head1 NAME 2 3 perl588delta - what is new for perl v5.8.8 4 5 =head1 DESCRIPTION 6 7 This document describes differences between the 5.8.7 release and 8 the 5.8.8 release. 9 10 =head1 Incompatible Changes 11 12 There are no changes intentionally incompatible with 5.8.7. If any exist, 13 they are bugs and reports are welcome. 14 15 =head1 Core Enhancements 16 17 =over 18 19 =item * 20 21 C<chdir>, C<chmod> and C<chown> can now work on filehandles as well as 22 filenames, if the system supports respectively C<fchdir>, C<fchmod> and 23 C<fchown>, thanks to a patch provided by Gisle Aas. 24 25 =back 26 27 =head1 Modules and Pragmata 28 29 =over 30 31 =item * 32 33 C<Attribute::Handlers> upgraded to version 0.78_02 34 35 =over 36 37 =item * 38 39 Documentation typo fix 40 41 =back 42 43 =item * 44 45 C<attrs> upgraded to version 1.02 46 47 =over 48 49 =item * 50 51 Internal cleanup only 52 53 =back 54 55 =item * 56 57 C<autouse> upgraded to version 1.05 58 59 =over 60 61 =item * 62 63 Simplified implementation 64 65 =back 66 67 =item * 68 69 C<B> upgraded to version 1.09_01 70 71 =over 72 73 =item * 74 75 The inheritance hierarchy of the C<B::> modules has been corrected; 76 C<B::NV> now inherits from C<B::SV> (instead of C<B::IV>). 77 78 =back 79 80 =item * 81 82 C<blib> upgraded to version 1.03 83 84 =over 85 86 =item * 87 88 Documentation typo fix 89 90 =back 91 92 =item * 93 94 C<ByteLoader> upgraded to version 0.06 95 96 =over 97 98 =item * 99 100 Internal cleanup 101 102 =back 103 104 =item * 105 106 C<CGI> upgraded to version 3.15 107 108 =over 109 110 =item * 111 112 Extraneous "?" from C<self_url()> removed 113 114 =item * 115 116 C<scrolling_list()> select attribute fixed 117 118 =item * 119 120 C<virtual_port> now works properly with the https protocol 121 122 =item * 123 124 C<upload_hook()> and C<append()> now works in function-oriented mode 125 126 =item * 127 128 C<POST_MAX> doesn't cause the client to hang any more 129 130 =item * 131 132 Automatic tab indexes are now disabled and new C<-tabindex> pragma has 133 been added to turn automatic indexes back on 134 135 =item * 136 137 C<end_form()> doesn't emit empty (and non-validating) C<< <div> >> 138 139 =item * 140 141 C<CGI::Carp> works better in certain mod_perl configurations 142 143 =item * 144 145 Setting C<$CGI::TMPDIRECTORY> is now effective 146 147 =item * 148 149 Enhanced documentation 150 151 =back 152 153 =item * 154 155 C<charnames> upgraded to version 1.05 156 157 =over 158 159 =item * 160 161 C<viacode()> now accept hex strings and has been optimized. 162 163 =back 164 165 =item * 166 167 C<CPAN> upgraded to version 1.76_02 168 169 =over 170 171 =item * 172 173 1 minor bug fix for Win32 174 175 =back 176 177 =item * 178 179 C<Cwd> upgraded to version 3.12 180 181 =over 182 183 =item * 184 185 C<canonpath()> on Win32 now collapses F<foo\..> sections correctly. 186 187 =item * 188 189 Improved behaviour on Symbian OS. 190 191 =item * 192 193 Enhanced documentation and typo fixes 194 195 =item * 196 197 Internal cleanup 198 199 =back 200 201 =item * 202 203 C<Data::Dumper> upgraded to version 2.121_08 204 205 =over 206 207 =item * 208 209 A problem where C<Data::Dumper> would sometimes update the iterator state 210 of hashes has been fixed 211 212 =item * 213 214 Numeric labels now work 215 216 =item * 217 218 Internal cleanup 219 220 =back 221 222 =item * 223 224 C<DB> upgraded to version 1.01 225 226 =over 227 228 =item * 229 230 A problem where the state of the regexp engine would sometimes get clobbered when running 231 under the debugger has been fixed. 232 233 =back 234 235 =item * 236 237 C<DB_File> upgraded to version 1.814 238 239 =over 240 241 =item * 242 243 Adds support for Berkeley DB 4.4. 244 245 =back 246 247 =item * 248 249 C<Devel::DProf> upgraded to version 20050603.00 250 251 =over 252 253 =item * 254 255 Internal cleanup 256 257 =back 258 259 =item * 260 261 C<Devel::Peek> upgraded to version 1.03 262 263 =over 264 265 =item * 266 267 Internal cleanup 268 269 =back 270 271 =item * 272 273 C<Devel::PPPort> upgraded to version 3.06_01 274 275 =over 276 277 =item * 278 279 C<--compat-version> argument checking has been improved 280 281 =item * 282 283 Files passed on the command line are filtered by default 284 285 =item * 286 287 C<--nofilter> option to override the filtering has been added 288 289 =item * 290 291 Enhanced documentation 292 293 =back 294 295 =item * 296 297 C<diagnostics> upgraded to version 1.15 298 299 =over 300 301 =item * 302 303 Documentation typo fix 304 305 =back 306 307 =item * 308 309 C<Digest> upgraded to version 1.14 310 311 =over 312 313 =item * 314 315 The constructor now knows which module implements SHA-224 316 317 =item * 318 319 Documentation tweaks and typo fixes 320 321 =back 322 323 =item * 324 325 C<Digest::MD5> upgraded to version 2.36 326 327 =over 328 329 =item * 330 331 C<XSLoader> is now used for faster loading 332 333 =item * 334 335 Enhanced documentation including MD5 weaknesses discovered lately 336 337 =back 338 339 =item * 340 341 C<Dumpvalue> upgraded to version 1.12 342 343 =over 344 345 =item * 346 347 Documentation fix 348 349 =back 350 351 =item * 352 353 C<DynaLoader> upgraded but unfortunately we're not able to increment its version number :-( 354 355 =over 356 357 =item * 358 359 Implements C<dl_unload_file> on Win32 360 361 =item * 362 363 Internal cleanup 364 365 =item * 366 367 C<XSLoader> 0.06 incorporated; small optimisation for calling 368 C<bootstrap_inherit()> and documentation enhancements. 369 370 =back 371 372 =item * 373 374 C<Encode> upgraded to version 2.12 375 376 =over 377 378 =item * 379 380 A coderef is now acceptable for C<CHECK>! 381 382 =item * 383 384 3 new characters added to the ISO-8859-7 encoding 385 386 =item * 387 388 New encoding C<MIME-Header-ISO_2022_JP> added 389 390 =item * 391 392 Problem with partial characters and C<< encoding(utf-8-strict) >> fixed. 393 394 =item * 395 396 Documentation enhancements and typo fixes 397 398 =back 399 400 =item * 401 402 C<English> upgraded to version 1.02 403 404 =over 405 406 =item * 407 408 the C<< $COMPILING >> variable has been added 409 410 =back 411 412 =item * 413 414 C<ExtUtils::Constant> upgraded to version 0.17 415 416 =over 417 418 =item * 419 420 Improved compatibility with older versions of perl 421 422 =back 423 424 =item * 425 426 C<ExtUtils::MakeMaker> upgraded to version 6.30 (was 6.17) 427 428 =over 429 430 =item * 431 432 Too much to list here; see L<http://search.cpan.org/src/MSCHWERN/ExtUtils-MakeMaker-6.30/Changes> 433 434 =back 435 436 =item * 437 438 C<File::Basename> upgraded to version 2.74, with changes contributed by Michael Schwern. 439 440 =over 441 442 =item * 443 444 Documentation clarified and errors corrected. 445 446 =item * 447 448 C<basename> now strips trailing path separators before processing the name. 449 450 =item * 451 452 C<basename> now returns C</> for parameter C</>, to make C<basename> 453 consistent with the shell utility of the same name. 454 455 =item * 456 457 The suffix is no longer stripped if it is identical to the remaining characters 458 in the name, again for consistency with the shell utility. 459 460 =item * 461 462 Some internal code cleanup. 463 464 =back 465 466 =item * 467 468 C<File::Copy> upgraded to version 2.09 469 470 =over 471 472 =item * 473 474 Copying a file onto itself used to fail. 475 476 =item * 477 478 Moving a file between file systems now preserves the access and 479 modification time stamps 480 481 =back 482 483 =item * 484 485 C<File::Find> upgraded to version 1.10 486 487 =over 488 489 =item * 490 491 Win32 portability fixes 492 493 =item * 494 495 Enhanced documentation 496 497 =back 498 499 =item * 500 501 C<File::Glob> upgraded to version 1.05 502 503 =over 504 505 =item * 506 507 Internal cleanup 508 509 =back 510 511 =item * 512 513 C<File::Path> upgraded to version 1.08 514 515 =over 516 517 =item * 518 519 C<mkpath> now preserves C<errno> when C<mkdir> fails 520 521 =back 522 523 =item * 524 525 C<File::Spec> upgraded to version 3.12 526 527 =over 528 529 =item * 530 531 C<File::Spec->rootdir()> now returns C<\> on Win32, instead of C</> 532 533 =item * 534 535 C<$^O> could sometimes become tainted. This has been fixed. 536 537 =item * 538 539 C<canonpath> on Win32 now collapses C<foo/..> (or C<foo\..>) sections 540 correctly, rather than doing the "misguided" work it was previously doing. 541 Note that C<canonpath> on Unix still does B<not> collapse these sections, as 542 doing so would be incorrect. 543 544 =item * 545 546 Some documentation improvements 547 548 =item * 549 550 Some internal code cleanup 551 552 =back 553 554 =item * 555 556 C<FileCache> upgraded to version 1.06 557 558 =over 559 560 =item * 561 562 POD formatting errors in the documentation fixed 563 564 =back 565 566 =item * 567 568 C<Filter::Simple> upgraded to version 0.82 569 570 =item * 571 572 C<FindBin> upgraded to version 1.47 573 574 =over 575 576 =item * 577 578 Now works better with directories where access rights are more 579 restrictive than usual. 580 581 =back 582 583 =item * 584 585 C<GDBM_File> upgraded to version 1.08 586 587 =over 588 589 =item * 590 591 Internal cleanup 592 593 =back 594 595 =item * 596 597 C<Getopt::Long> upgraded to version 2.35 598 599 =over 600 601 =item * 602 603 C<prefix_pattern> has now been complemented by a new configuration 604 option C<long_prefix_pattern> that allows the user to specify what 605 prefix patterns should have long option style semantics applied. 606 607 =item * 608 609 Options can now take multiple values at once (experimental) 610 611 =item * 612 613 Various bug fixes 614 615 =back 616 617 =item * 618 619 C<if> upgraded to version 0.05 620 621 =over 622 623 =item * 624 625 Give more meaningful error messages from C<if> when invoked with a 626 condition in list context. 627 628 =item * 629 630 Restore backwards compatibility with earlier versions of perl 631 632 =back 633 634 =item * 635 636 C<IO> upgraded to version 1.22 637 638 =over 639 640 =item * 641 642 Enhanced documentation 643 644 =item * 645 646 Internal cleanup 647 648 =back 649 650 =item * 651 652 C<IPC::Open2> upgraded to version 1.02 653 654 =over 655 656 =item * 657 658 Enhanced documentation 659 660 =back 661 662 =item * 663 664 C<IPC::Open3> upgraded to version 1.02 665 666 =over 667 668 =item * 669 670 Enhanced documentation 671 672 =back 673 674 =item * 675 676 C<List::Util> upgraded to version 1.18 (was 1.14) 677 678 =over 679 680 =item * 681 682 Fix pure-perl version of C<refaddr> to avoid blessing an un-blessed reference 683 684 =item * 685 686 Use C<XSLoader> for faster loading 687 688 =item * 689 690 Fixed various memory leaks 691 692 =item * 693 694 Internal cleanup and portability fixes 695 696 =back 697 698 =item * 699 700 C<Math::Complex> upgraded to version 1.35 701 702 =over 703 704 =item * 705 706 C<atan2(0, i)> now works, as do all the (computable) complex argument cases 707 708 =item * 709 710 Fixes for certain bugs in C<make> and C<emake> 711 712 =item * 713 714 Support returning the I<k>th root directly 715 716 =item * 717 718 Support C<[2,-3pi/8]> in C<emake> 719 720 =item * 721 722 Support C<inf> for C<make>/C<emake> 723 724 =item * 725 726 Document C<make>/C<emake> more visibly 727 728 =back 729 730 =item * 731 732 C<Math::Trig> upgraded to version 1.03 733 734 =over 735 736 =item * 737 738 Add more great circle routines: C<great_circle_waypoint> and 739 C<great_circle_destination> 740 741 =back 742 743 =item * 744 745 C<MIME::Base64> upgraded to version 3.07 746 747 =over 748 749 =item * 750 751 Use C<XSLoader> for faster loading 752 753 =item * 754 755 Enhanced documentation 756 757 =item * 758 759 Internal cleanup 760 761 =back 762 763 =item * 764 765 C<NDBM_File> upgraded to version 1.06 766 767 =over 768 769 =item * 770 771 Enhanced documentation 772 773 =back 774 775 =item * 776 777 C<ODBM_File> upgraded to version 1.06 778 779 =over 780 781 =item * 782 783 Documentation typo fixed 784 785 =item * 786 787 Internal cleanup 788 789 =back 790 791 =item * 792 793 C<Opcode> upgraded to version 1.06 794 795 =over 796 797 =item * 798 799 Enhanced documentation 800 801 =item * 802 803 Internal cleanup 804 805 =back 806 807 =item * 808 809 C<open> upgraded to version 1.05 810 811 =over 812 813 =item * 814 815 Enhanced documentation 816 817 =back 818 819 =item * 820 821 C<overload> upgraded to version 1.04 822 823 =over 824 825 =item * 826 827 Enhanced documentation 828 829 =back 830 831 =item * 832 833 C<PerlIO> upgraded to version 1.04 834 835 =over 836 837 =item * 838 839 C<PerlIO::via> iterate over layers properly now 840 841 =item * 842 843 C<PerlIO::scalar> understands C<< $/ = "" >> now 844 845 =item * 846 847 C<encoding(utf-8-strict)> with partial characters now works 848 849 =item * 850 851 Enhanced documentation 852 853 =item * 854 855 Internal cleanup 856 857 =back 858 859 =item * 860 861 C<Pod::Functions> upgraded to version 1.03 862 863 =over 864 865 =item * 866 867 Documentation typos fixed 868 869 =back 870 871 =item * 872 873 C<Pod::Html> upgraded to version 1.0504 874 875 =over 876 877 =item * 878 879 HTML output will now correctly link 880 to C<=item>s on the same page, and should be valid XHTML. 881 882 =item * 883 884 Variable names are recognized as intended 885 886 =item * 887 888 Documentation typos fixed 889 890 =back 891 892 =item * 893 894 C<Pod::Parser> upgraded to version 1.32 895 896 =over 897 898 =item * 899 900 Allow files that start with C<=head> on the first line 901 902 =item * 903 904 Win32 portability fix 905 906 =item * 907 908 Exit status of C<pod2usage> fixed 909 910 =item * 911 912 New C<-noperldoc> switch for C<pod2usage> 913 914 =item * 915 916 Arbitrary URL schemes now allowed 917 918 =item * 919 920 Documentation typos fixed 921 922 =back 923 924 =item * 925 926 C<POSIX> upgraded to version 1.09 927 928 =over 929 930 =item * 931 932 Documentation typos fixed 933 934 =item * 935 936 Internal cleanup 937 938 =back 939 940 =item * 941 942 C<re> upgraded to version 0.05 943 944 =over 945 946 =item * 947 948 Documentation typo fixed 949 950 =back 951 952 =item * 953 954 C<Safe> upgraded to version 2.12 955 956 =over 957 958 =item * 959 960 Minor documentation enhancement 961 962 =back 963 964 =item * 965 966 C<SDBM_File> upgraded to version 1.05 967 968 =over 969 970 =item * 971 972 Documentation typo fixed 973 974 =item * 975 976 Internal cleanup 977 978 =back 979 980 =item * 981 982 C<Socket> upgraded to version 1.78 983 984 =over 985 986 =item * 987 988 Internal cleanup 989 990 =back 991 992 =item * 993 994 C<Storable> upgraded to version 2.15 995 996 =over 997 998 =item * 999 1000 This includes the C<STORABLE_attach> hook functionality added by 1001 Adam Kennedy, and more frugal memory requirements when storing under C<ithreads>, by 1002 using the C<ithreads> cloning tracking code. 1003 1004 =back 1005 1006 =item * 1007 1008 C<Switch> upgraded to version 2.10_01 1009 1010 =over 1011 1012 =item * 1013 1014 Documentation typos fixed 1015 1016 =back 1017 1018 =item * 1019 1020 C<Sys::Syslog> upgraded to version 0.13 1021 1022 =over 1023 1024 =item * 1025 1026 Now provides numeric macros and meaningful C<Exporter> tags. 1027 1028 =item * 1029 1030 No longer uses C<Sys::Hostname> as it may provide useless values in 1031 unconfigured network environments, so instead uses C<INADDR_LOOPBACK> directly. 1032 1033 =item * 1034 1035 C<syslog()> now uses local timestamp. 1036 1037 =item * 1038 1039 C<setlogmask()> now behaves like its C counterpart. 1040 1041 =item * 1042 1043 C<setlogsock()> will now C<croak()> as documented. 1044 1045 =item * 1046 1047 Improved error and warnings messages. 1048 1049 =item * 1050 1051 Improved documentation. 1052 1053 =back 1054 1055 =item * 1056 1057 C<Term::ANSIColor> upgraded to version 1.10 1058 1059 =over 1060 1061 =item * 1062 1063 Fixes a bug in C<colored> when C<$EACHLINE> is set that caused it to not color 1064 lines consisting solely of 0 (literal zero). 1065 1066 =item * 1067 1068 Improved tests. 1069 1070 =back 1071 1072 =item * 1073 1074 C<Term::ReadLine> upgraded to version 1.02 1075 1076 =over 1077 1078 =item * 1079 1080 Documentation tweaks 1081 1082 =back 1083 1084 =item * 1085 1086 C<Test::Harness> upgraded to version 2.56 (was 2.48) 1087 1088 =over 1089 1090 =item * 1091 1092 The C<Test::Harness> timer is now off by default. 1093 1094 =item * 1095 1096 Now shows elapsed time in milliseconds. 1097 1098 =item * 1099 1100 Various bug fixes 1101 1102 =back 1103 1104 =item * 1105 1106 C<Test::Simple> upgraded to version 0.62 (was 0.54) 1107 1108 =over 1109 1110 =item * 1111 1112 C<is_deeply()> no longer fails to work for many cases 1113 1114 =item * 1115 1116 Various minor bug fixes 1117 1118 =item * 1119 1120 Documentation enhancements 1121 1122 =back 1123 1124 =item * 1125 1126 C<Text::Tabs> upgraded to version 2005.0824 1127 1128 =over 1129 1130 =item * 1131 1132 Provides a faster implementation of C<expand> 1133 1134 =back 1135 1136 =item * 1137 1138 C<Text::Wrap> upgraded to version 2005.082401 1139 1140 =over 1141 1142 =item * 1143 1144 Adds C<$Text::Wrap::separator2>, which allows you to preserve existing newlines 1145 but add line-breaks with some other string. 1146 1147 =back 1148 1149 =item * 1150 1151 C<threads> upgraded to version 1.07 1152 1153 =over 1154 1155 =item * 1156 1157 C<threads> will now honour C<no warnings 'threads'> 1158 1159 =item * 1160 1161 A thread's interpreter is now freed after C<< $t->join() >> rather than after 1162 C<undef $t>, which should fix some C<ithreads> memory leaks. (Fixed by Dave 1163 Mitchell) 1164 1165 =item * 1166 1167 Some documentation typo fixes. 1168 1169 =back 1170 1171 =item * 1172 1173 C<threads::shared> upgraded to version 0.94 1174 1175 =over 1176 1177 =item * 1178 1179 Documentation changes only 1180 1181 =item * 1182 1183 Note: An improved implementation of C<threads::shared> is available on 1184 CPAN - this will be merged into 5.8.9 if it proves stable. 1185 1186 =back 1187 1188 =item * 1189 1190 C<Tie::Hash> upgraded to version 1.02 1191 1192 =over 1193 1194 =item * 1195 1196 Documentation typo fixed 1197 1198 =back 1199 1200 =item * 1201 1202 C<Time::HiRes> upgraded to version 1.86 (was 1.66) 1203 1204 =over 1205 1206 =item * 1207 1208 C<clock_nanosleep()> and C<clock()> functions added 1209 1210 =item * 1211 1212 Support for the POSIX C<clock_gettime()> and C<clock_getres()> has been added 1213 1214 =item * 1215 1216 Return C<undef> or an empty list if the C C<gettimeofday()> function fails 1217 1218 =item * 1219 1220 Improved C<nanosleep> detection 1221 1222 =item * 1223 1224 Internal cleanup 1225 1226 =item * 1227 1228 Enhanced documentation 1229 1230 =back 1231 1232 =item * 1233 1234 C<Unicode::Collate> upgraded to version 0.52 1235 1236 =over 1237 1238 =item * 1239 1240 Now implements UCA Revision 14 (based on Unicode 4.1.0). 1241 1242 =item * 1243 1244 C<Unicode::Collate->new> method no longer overwrites user's C<$_> 1245 1246 =item * 1247 1248 Enhanced documentation 1249 1250 =back 1251 1252 =item * 1253 1254 C<Unicode::UCD> upgraded to version 0.24 1255 1256 =over 1257 1258 =item * 1259 1260 Documentation typos fixed 1261 1262 =back 1263 1264 =item * 1265 1266 C<User::grent> upgraded to version 1.01 1267 1268 =over 1269 1270 =item * 1271 1272 Documentation typo fixed 1273 1274 =back 1275 1276 =item * 1277 1278 C<utf8> upgraded to version 1.06 1279 1280 =over 1281 1282 =item * 1283 1284 Documentation typos fixed 1285 1286 =back 1287 1288 =item * 1289 1290 C<vmsish> upgraded to version 1.02 1291 1292 =over 1293 1294 =item * 1295 1296 Documentation typos fixed 1297 1298 =back 1299 1300 =item * 1301 1302 C<warnings> upgraded to version 1.05 1303 1304 =over 1305 1306 =item * 1307 1308 Gentler messing with C<Carp::> internals 1309 1310 =item * 1311 1312 Internal cleanup 1313 1314 =item * 1315 1316 Documentation update 1317 1318 =back 1319 1320 =item * 1321 1322 C<Win32> upgraded to version 0.2601 1323 1324 =for cynics And how many perl 5.8.x versions can I release ahead of Vista? 1325 1326 =over 1327 1328 =item * 1329 1330 Provides Windows Vista support to C<Win32::GetOSName> 1331 1332 =item * 1333 1334 Documentation enhancements 1335 1336 =back 1337 1338 =item * 1339 1340 C<XS::Typemap> upgraded to version 0.02 1341 1342 =over 1343 1344 =item * 1345 1346 Internal cleanup 1347 1348 =back 1349 1350 =back 1351 1352 =head1 Utility Changes 1353 1354 =head2 C<h2xs> enhancements 1355 1356 C<h2xs> implements new option C<--use-xsloader> to force use of 1357 C<XSLoader> even in backwards compatible modules. 1358 1359 The handling of authors' names that had apostrophes has been fixed. 1360 1361 Any enums with negative values are now skipped. 1362 1363 =head2 C<perlivp> enhancements 1364 1365 C<perlivp> implements new option C<-a> and will not check for F<*.ph> 1366 files by default any more. Use the C<-a> option to run I<all> tests. 1367 1368 =head1 New Documentation 1369 1370 The L<perlglossary> manpage is a glossary of terms used in the Perl 1371 documentation, technical and otherwise, kindly provided by O'Reilly Media, 1372 inc. 1373 1374 =head1 Performance Enhancements 1375 1376 =over 4 1377 1378 =item * 1379 1380 Weak reference creation is now I<O(1)> rather than I<O(n)>, courtesy of 1381 Nicholas Clark. Weak reference deletion remains I<O(n)>, but if deletion only 1382 happens at program exit, it may be skipped completely. 1383 1384 =item * 1385 1386 Salvador Fandiņo provided improvements to reduce the memory usage of C<sort> 1387 and to speed up some cases. 1388 1389 =item * 1390 1391 Jarkko Hietaniemi and Andy Lester worked to mark as much data as possible in 1392 the C source files as C<static>, to increase the proportion of the executable 1393 file that the operating system can share between process, and thus reduce 1394 real memory usage on multi-user systems. 1395 1396 =back 1397 1398 =head1 Installation and Configuration Improvements 1399 1400 Parallel makes should work properly now, although there may still be problems 1401 if C<make test> is instructed to run in parallel. 1402 1403 Building with Borland's compilers on Win32 should work more smoothly. In 1404 particular Steve Hay has worked to side step many warnings emitted by their 1405 compilers and at least one C compiler internal error. 1406 1407 C<Configure> will now detect C<clearenv> and C<unsetenv>, thanks to a patch 1408 from Alan Burlison. It will also probe for C<futimes> and whether C<sprintf> 1409 correctly returns the length of the formatted string, which will both be used 1410 in perl 5.8.9. 1411 1412 There are improved hints for next-3.0, vmesa, IX, Darwin, Solaris, Linux, 1413 DEC/OSF, HP-UX and MPE/iX 1414 1415 Perl extensions on Windows now can be statically built into the Perl DLL, 1416 thanks to a work by Vadim Konovalov. (This improvement was actually in 5.8.7, 1417 but was accidentally omitted from L<perl587delta>). 1418 1419 =head1 Selected Bug Fixes 1420 1421 =head2 no warnings 'category' works correctly with -w 1422 1423 Previously when running with warnings enabled globally via C<-w>, selective 1424 disabling of specific warning categories would actually turn off all warnings. 1425 This is now fixed; now C<no warnings 'io';> will only turn off warnings in the 1426 C<io> class. Previously it would erroneously turn off all warnings. 1427 1428 This bug fix may cause some programs to start correctly issuing warnings. 1429 1430 =head2 Remove over-optimisation 1431 1432 Perl 5.8.4 introduced a change so that assignments of C<undef> to a 1433 scalar, or of an empty list to an array or a hash, were optimised away. As 1434 this could cause problems when C<goto> jumps were involved, this change 1435 has been backed out. 1436 1437 =head2 sprintf() fixes 1438 1439 Using the sprintf() function with some formats could lead to a buffer 1440 overflow in some specific cases. This has been fixed, along with several 1441 other bugs, notably in bounds checking. 1442 1443 In related fixes, it was possible for badly written code that did not follow 1444 the documentation of C<Sys::Syslog> to have formatting vulnerabilities. 1445 C<Sys::Syslog> has been changed to protect people from poor quality third 1446 party code. 1447 1448 =head2 Debugger and Unicode slowdown 1449 1450 It had been reported that running under perl's debugger when processing 1451 Unicode data could cause unexpectedly large slowdowns. The most likely cause 1452 of this was identified and fixed by Nicholas Clark. 1453 1454 =head2 Smaller fixes 1455 1456 =over 4 1457 1458 =item * 1459 1460 C<FindBin> now works better with directories where access rights are more 1461 restrictive than usual. 1462 1463 =item * 1464 1465 Several memory leaks in ithreads were closed. An improved implementation of 1466 C<threads::shared> is available on CPAN - this will be merged into 5.8.9 if 1467 it proves stable. 1468 1469 =item * 1470 1471 Trailing spaces are now trimmed from C<$!> and C<$^E>. 1472 1473 =item * 1474 1475 Operations that require perl to read a process' list of groups, such as reads 1476 of C<$(> and C<$)>, now dynamically allocate memory rather than using a 1477 fixed sized array. The fixed size array could cause C stack exhaustion on 1478 systems configured to use large numbers of groups. 1479 1480 =item * 1481 1482 C<PerlIO::scalar> now works better with non-default C<$/> settings. 1483 1484 =item * 1485 1486 You can now use the C<x> operator to repeat a C<qw//> list. This used 1487 to raise a syntax error. 1488 1489 =item * 1490 1491 The debugger now traces correctly execution in eval("")uated code that 1492 contains #line directives. 1493 1494 =item * 1495 1496 The value of the C<open> pragma is no longer ignored for three-argument 1497 opens. 1498 1499 =item * 1500 1501 The optimisation of C<for (reverse @a)> introduced in perl 5.8.6 could 1502 misbehave when the array had undefined elements and was used in LVALUE 1503 context. Dave Mitchell provided a fix. 1504 1505 =item * 1506 1507 Some case insensitive matches between UTF-8 encoded data and 8 bit regexps, 1508 and vice versa, could give malformed character warnings. These have been 1509 fixed by Dave Mitchell and Yves Orton. 1510 1511 =item * 1512 1513 C<lcfirst> and C<ucfirst> could corrupt the string for certain cases where 1514 the length UTF-8 encoding of the string in lower case, upper case or title 1515 case differed. This was fixed by Nicholas Clark. 1516 1517 =item * 1518 1519 Perl will now use the C library calls C<unsetenv> and C<clearenv> if present 1520 to delete keys from C<%ENV> and delete C<%ENV> entirely, thanks to a patch 1521 from Alan Burlison. 1522 1523 =back 1524 1525 =head1 New or Changed Diagnostics 1526 1527 =head2 Attempt to set length of freed array 1528 1529 This is a new warning, produced in situations such as this: 1530 1531 $r = do {my @a; \$#a}; 1532 $$r = 503; 1533 1534 =head2 Non-string passed as bitmask 1535 1536 This is a new warning, produced when number has been passed as a argument to 1537 select(), instead of a bitmask. 1538 1539 # Wrong, will now warn 1540 $rin = fileno(STDIN); 1541 ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout); 1542 1543 # Should be 1544 $rin = ''; 1545 vec($rin,fileno(STDIN),1) = 1; 1546 ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout); 1547 1548 =head2 Search pattern not terminated or ternary operator parsed as search pattern 1549 1550 This syntax error indicates that the lexer couldn't find the final 1551 delimiter of a C<?PATTERN?> construct. Mentioning the ternary operator in 1552 this error message makes it easier to diagnose syntax errors. 1553 1554 =head1 Changed Internals 1555 1556 There has been a fair amount of refactoring of the C<C> source code, partly to 1557 make it tidier and more maintainable. The resulting object code and the 1558 C<perl> binary may well be smaller than 5.8.7, in particular due to a change 1559 contributed by Dave Mitchell which reworked the warnings code to be 1560 significantly smaller. Apart from being smaller and possibly faster, there 1561 should be no user-detectable changes. 1562 1563 Andy Lester supplied many improvements to determine which function 1564 parameters and local variables could actually be declared C<const> to the C 1565 compiler. Steve Peters provided new C<*_set> macros and reworked the core to 1566 use these rather than assigning to macros in LVALUE context. 1567 1568 Dave Mitchell improved the lexer debugging output under C<-DT> 1569 1570 Nicholas Clark changed the string buffer allocation so that it is now rounded 1571 up to the next multiple of 4 (or 8 on platforms with 64 bit pointers). This 1572 should reduce the number of calls to C<realloc> without actually using any 1573 extra memory. 1574 1575 The C<HV>'s array of C<HE*>s is now allocated at the correct (minimal) size, 1576 thanks to another change by Nicholas Clark. Compile with 1577 C<-DPERL_USE_LARGE_HV_ALLOC> to use the old, sloppier, default. 1578 1579 For XS or embedding debugging purposes, if perl is compiled with 1580 C<-DDEBUG_LEAKING_SCALARS_FORK_DUMP> in addition to 1581 C<-DDEBUG_LEAKING_SCALARS> then a child process is C<fork>ed just before 1582 global destruction, which is used to display the values of any scalars 1583 found to have leaked at the end of global destruction. Without this, the 1584 scalars have already been freed sufficiently at the point of detection that 1585 it is impossible to produce any meaningful dump of their contents. This 1586 feature was implemented by the indefatigable Nicholas Clark, based on an idea 1587 by Mike Giroux. 1588 1589 =head1 Platform Specific Problems 1590 1591 The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled 1592 down to +O1) when using HP C-ANSI-C; the cause of problems at higher 1593 optimisation levels is still unclear. 1594 1595 There are a handful of remaining test failures on VMS, mostly due to 1596 test fixes and minor module tweaks with too many dependencies to 1597 integrate into this release from the development stream, where they have 1598 all been corrected. The following is a list of expected failures with 1599 the patch number of the fix where that is known: 1600 1601 ext/Devel/PPPort/t/ppphtest.t #26913 1602 ext/List/Util/t/p_tainted.t #26912 1603 lib/ExtUtils/t/PL_FILES.t #26813 1604 lib/ExtUtils/t/basic.t #26813 1605 t/io/fs.t 1606 t/op/cmp.t 1607 1608 =head1 Reporting Bugs 1609 1610 If you find what you think is a bug, you might check the articles 1611 recently posted to the comp.lang.perl.misc newsgroup and the perl 1612 bug database at http://bugs.perl.org. There may also be 1613 information at http://www.perl.org, the Perl Home Page. 1614 1615 If you believe you have an unreported bug, please run the B<perlbug> 1616 program included with your release. Be sure to trim your bug down 1617 to a tiny but sufficient test case. Your bug report, along with the 1618 output of C<perl -V>, will be sent off to perlbug@perl.org to be 1619 analysed by the Perl porting team. You can browse and search 1620 the Perl 5 bugs at http://bugs.perl.org/ 1621 1622 =head1 SEE ALSO 1623 1624 The F<Changes> file for exhaustive details on what changed. 1625 1626 The F<INSTALL> file for how to build Perl. 1627 1628 The F<README> file for general stuff. 1629 1630 The F<Artistic> and F<Copying> files for copyright information. 1631 1632 =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 |