Commit | Line | Data |
---|---|---|
bab9b098 NC |
1 | =head1 NAME |
2 | ||
3 | perl586delta - what is new for perl v5.8.6 | |
4 | ||
5 | =head1 DESCRIPTION | |
6 | ||
7 | This document describes differences between the 5.8.5 release and | |
8 | the 5.8.6 release. | |
9 | ||
10 | =head1 Incompatible Changes | |
11 | ||
12 | There are no changes incompatible with 5.8.5. | |
13 | ||
14 | =head1 Core Enhancements | |
15 | ||
16 | The perl interpreter is now more tolerant of UTF-16-encoded scripts. | |
17 | ||
18 | On Win32, Perl can now use non-IFS compatible LSPs, which allows Perl to | |
19 | work in conjunction with firewalls such as McAfee Guardian. For full details | |
20 | see the file F<README.win32>, particularly if you're running Win95. | |
21 | ||
22 | =head1 Modules and Pragmata | |
23 | ||
24 | =over 4 | |
25 | ||
26 | =item * | |
27 | ||
28 | With the C<base> pragma, an intermediate class with no fields used to messes | |
29 | up private fields in the base class. This has been fixed. | |
30 | ||
31 | =item * | |
32 | ||
33 | Cwd upgraded to version 3.01 (as part of the new PathTools distribution) | |
34 | ||
35 | =item * | |
36 | ||
37 | Devel::PPPort upgraded to version 3.03 | |
38 | ||
39 | =item * | |
40 | ||
41 | File::Spec upgraded to version 3.01 (as part of the new PathTools distribution) | |
42 | ||
43 | =item * | |
44 | ||
45 | Encode upgraded to version 2.08 | |
46 | ||
47 | =item * | |
48 | ||
49 | ExtUtils::MakeMaker remains at version 6.17, as later stable releases currently | |
50 | available on CPAN have some issues with core modules on some core platforms. | |
51 | ||
52 | =item * | |
53 | ||
54 | I18N::LangTags upgraded to version 0.35 | |
55 | ||
56 | =item * | |
57 | ||
58 | Math::BigInt upgraded to version 1.73 | |
59 | ||
60 | =item * | |
61 | ||
62 | Math::BigRat upgraded to version 0.13 | |
63 | ||
64 | =item * | |
65 | ||
66 | MIME::Base64 upgraded to version 3.05 | |
67 | ||
68 | =item * | |
69 | ||
70 | POSIX::sigprocmask function can now retrieve the current signal mask without | |
71 | also setting it. | |
72 | ||
73 | =item * | |
74 | ||
75 | Time::HiRes upgraded to version 1.65 | |
76 | ||
77 | =back | |
78 | ||
79 | =head1 Utility Changes | |
80 | ||
81 | Perl has a new -dt command-line flag, which enables threads support in the | |
82 | debugger. | |
83 | ||
84 | =head1 Performance Enhancements | |
85 | ||
86 | C<reverse sort ...> is now optimized to sort in reverse, avoiding the | |
87 | generation of a temporary intermediate list. | |
88 | ||
89 | C<for (reverse @foo)> now iterates in reverse, avoiding the generation of a | |
90 | temporary reversed list. | |
91 | ||
92 | =head1 Selected Bug Fixes | |
93 | ||
94 | The regexp engine is now more robust when given invalid utf8 input, as is | |
95 | sometimes generated by buggy XS modules. | |
96 | ||
97 | C<foreach> on threads::shared array used to be able to crash Perl. This bug | |
98 | has now been fixed. | |
99 | ||
100 | A regexp in C<STDOUT>'s destructor used to coredump, because the regexp pad | |
101 | was already freed. This has been fixed. | |
102 | ||
103 | C<goto &> is now more robust - bugs in deep recursion and chained C<goto &> | |
104 | have been fixed. | |
105 | ||
106 | Using C<delete> on an array no longer leaks memory. A C<pop> of an item from a | |
107 | shared array reference no longer causes a leak. | |
108 | ||
109 | C<eval_sv()> failing a taint test could corrupt the stack - this has been | |
110 | fixed. | |
111 | ||
112 | On platforms with 64 bit pointers numeric comparison operators used to | |
113 | erroneously compare the addresses of references that are overloaded, rather | |
114 | than using the overloaded values. This has been fixed. | |
115 | ||
116 | C<read> into a UTF8-encoded buffer with an offset off the end of the buffer | |
117 | no longer mis-calculates buffer lengths. | |
118 | ||
119 | Although Perl has promised since version 5.8 that C<sort()> would be | |
120 | stable, the two cases C<sort {$b cmp $a}> and C<< sort {$b <=> $a} >> could | |
121 | produce non-stable sorts. This is corrected in perl5.8.6. | |
122 | ||
123 | Localising C<$^D> no longer generates a diagnostic message about valid -D | |
124 | flags. | |
125 | ||
126 | =head1 New or Changed Diagnostics | |
127 | ||
128 | For -t and -T, | |
129 | Too late for "-T" option | |
130 | has been changed to the more informative | |
131 | "-T" is on the #! line, it must also be used on the command line | |
132 | ||
133 | =head1 Changed Internals | |
134 | ||
135 | From now on all applications embedding perl will behave as if perl | |
136 | were compiled with -DPERL_USE_SAFE_PUTENV. See "Environment access" in | |
137 | the F<INSTALL> file for details. | |
138 | ||
139 | Most C<C> source files now have comments at the top explaining their purpose, | |
140 | which should help anyone wishing to get an overview of the implementation. | |
141 | ||
142 | =head1 New Tests | |
143 | ||
144 | There are significantly more tests for the C<B> suite of modules. | |
145 | ||
146 | =head1 Reporting Bugs | |
147 | ||
148 | If you find what you think is a bug, you might check the articles | |
149 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
150 | bug database at http://bugs.perl.org. There may also be | |
151 | information at http://www.perl.org, the Perl Home Page. | |
152 | ||
153 | If you believe you have an unreported bug, please run the B<perlbug> | |
154 | program included with your release. Be sure to trim your bug down | |
155 | to a tiny but sufficient test case. Your bug report, along with the | |
156 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
157 | analysed by the Perl porting team. You can browse and search | |
158 | the Perl 5 bugs at http://bugs.perl.org/ | |
159 | ||
160 | =head1 SEE ALSO | |
161 | ||
162 | The F<Changes> file for exhaustive details on what changed. | |
163 | ||
164 | The F<INSTALL> file for how to build Perl. | |
165 | ||
166 | The F<README> file for general stuff. | |
167 | ||
168 | The F<Artistic> and F<Copying> files for copyright information. | |
169 | ||
170 | =cut |