Commit | Line | Data |
07e9b5fe |
1 | =head1 NAME |
2 | |
3 | perl585delta - what is new for perl v5.8.5 |
4 | |
5 | =head1 DESCRIPTION |
6 | |
7 | This document describes differences between the 5.8.4 release and |
8 | the 5.8.5 release. |
9 | |
10 | =head1 Incompatible Changes |
11 | |
12 | There are no changes incompatible with 5.8.4. |
13 | |
14 | =head1 Core Enhancements |
15 | |
16 | Perl's regular expression engine now contains support for matching on the |
17 | intersection of two Unicode character classes. You can also now refer to |
18 | user-defined character classes from within other user defined character |
19 | classes. |
20 | |
21 | =head1 Modules and Pragmata |
22 | |
23 | =over 4 |
24 | |
25 | =item * |
26 | |
27 | Carp improved to work nicely with Safe. Carp's message reporting should now |
28 | be anomaly free - it will always print out line number information. |
29 | |
30 | =item * |
31 | |
32 | CGI upgraded to version 3.05 |
33 | |
34 | =item * |
35 | |
36 | charnames now avoids clobbering $_ |
37 | |
38 | =item * |
39 | |
40 | Digest upgraded to version 1.08 |
41 | |
42 | =item * |
43 | |
44 | Encode upgraded to version 2.01 |
45 | |
46 | =item * |
47 | |
48 | FileCache upgraded to version 1.04 |
49 | |
50 | =item * |
51 | |
52 | libnet upgraded to version 1.19 |
53 | |
54 | =item * |
55 | |
56 | Pod::Parser upgraded to version 1.28 |
57 | |
58 | =item * |
59 | |
60 | Pod::Perldoc upgraded to version 3.13 |
61 | |
62 | =item * |
63 | |
64 | Pod::LaTeX upgraded to version 0.57 |
65 | |
66 | =item * |
67 | |
68 | Safe now works properly with Carp |
69 | |
70 | =item * |
71 | |
72 | Scalar-List-Utils upgraded to version 1.14 |
73 | |
74 | =item * |
75 | |
76 | Shell's documentation has been re-written, and its historical partial |
77 | auto-quoting of command arguments can now be disabled. |
78 | |
79 | =item * |
80 | |
81 | Test upgraded to version 1.25 |
82 | |
83 | =item * |
84 | |
85 | Test::Harness upgraded to version 2.42 |
86 | |
87 | =item * |
88 | |
89 | Time::Local upgraded to version 1.10 |
90 | |
91 | =item * |
92 | |
93 | Unicode::Collate upgraded to version 0.40 |
94 | |
95 | =item * |
96 | |
97 | Unicode::Normalize upgraded to version 0.30 |
98 | |
99 | =back |
100 | |
101 | =head1 Utility Changes |
102 | |
103 | =head2 Perl's debugger |
104 | |
105 | The debugger can now emulate stepping backwards, by restarting and rerunning |
106 | all bar the last command from a saved command history. |
107 | |
108 | =head2 h2ph |
109 | |
110 | F<h2ph> is now able to understand a very limited set of C inline functions |
111 | -- basically, the inline functions that look like CPP macros. This has |
112 | been introduced to deal with some of the headers of the newest versions of |
113 | the glibc. The standard warning still applies; to quote F<h2ph>'s |
114 | documentation, I<you may need to dicker with the files produced>. |
115 | |
116 | =head1 Installation and Configuration Improvements |
117 | |
118 | Perl 5.8.5 should build cleanly from source on LynxOS. |
119 | |
120 | =head1 Selected Bug Fixes |
121 | |
122 | =over 4 |
123 | |
124 | =item * |
125 | |
126 | The in-place sort optimisation introduced in 5.8.4 had a bug. For example, |
127 | in code such as |
128 | |
129 | @a = sort ($b, @a) |
130 | |
131 | the result would omit the value $b. This is now fixed. |
132 | |
133 | =item * |
134 | |
135 | The optimisation for unnecessary assignments introduced in 5.8.4 could give |
136 | spurious warnings. This has been fixed. |
137 | |
138 | =item * |
139 | |
140 | Perl should now correctly detect and read BOM-marked and (BOMless) UTF-16 |
141 | scripts of either endianness. |
142 | |
143 | =item * |
144 | |
145 | Creating a new thread when weak references exist was buggy, and would often |
146 | cause warnings at interpreter destruction time. The known bug is now fixed. |
147 | |
148 | =item * |
149 | |
150 | Several obscure bugs involving manipulating Unicode strings with C<substr> have |
151 | been fixed. |
152 | |
153 | =item * |
154 | |
155 | Previously if Perl's file globbing function encountered a directory that it |
156 | did not have permission to open it would return immediately, leading to |
157 | unexpected truncation of the list of results. This has been fixed, to be |
158 | consistent with Unix shells' globbing behaviour. |
159 | |
160 | =item * |
161 | |
162 | Thread creation time could vary wildly between identical runs. This was caused |
163 | by a poor hashing algorithm in the thread cloning routines, which has now |
164 | been fixed. |
165 | |
166 | =item * |
167 | |
168 | The internals of the ithreads implementation were not checking if OS-level |
169 | thread creation had failed. threads->create() now returns C<undef> in if |
170 | thread creation fails instead of crashing perl. |
171 | |
172 | =back |
173 | |
174 | =head1 New or Changed Diagnostics |
175 | |
176 | =over 4 |
177 | |
178 | =item * |
179 | |
180 | Perl -V has several improvements |
181 | |
182 | =over 4 |
183 | |
184 | =item * |
185 | |
186 | correctly outputs local patch names that contain embedded code snippets |
187 | or other characters that used to confuse it. |
188 | |
189 | =item * |
190 | |
191 | arguments to -V that look like regexps will give multiple lines of output. |
192 | |
193 | =item * |
194 | |
195 | a trailing colon suppresses the linefeed and ';' terminator, allowing |
196 | embedding of queries into shell commands. |
197 | |
198 | =item * |
199 | |
200 | a leading colon removes the 'name=' part of the response, allowing mapping to |
201 | any name. |
202 | |
203 | =back |
204 | |
205 | =item * |
206 | |
207 | When perl fails to find the specified script, it now outputs a second line |
208 | suggesting that the user use the C<-S> flag: |
209 | |
210 | $ perl5.8.5 missing.pl |
211 | Can't open perl script "missing.pl": No such file or directory. |
212 | Use -S to search $PATH for it. |
213 | |
214 | =back |
215 | |
216 | =head1 Changed Internals |
217 | |
218 | The Unicode character class files used by the regular expression engine are |
219 | now built at build time from the supplied Unicode consortium data files, |
220 | instead of being shipped prebuilt. This makes the compressed Perl source |
221 | tarball about 200K smaller. A side effect is that the layout of files inside |
222 | lib/unicore has changed. |
223 | |
224 | =head1 Known Problems |
225 | |
226 | The regression test F<t/uni/class.t> is now performing considerably more |
227 | tests, and can take several minutes to run even on a fast machine. |
228 | |
229 | =head1 Platform Specific Problems |
230 | |
231 | This release is known not to build on Windows 95. |
232 | |
233 | =head1 Reporting Bugs |
234 | |
235 | If you find what you think is a bug, you might check the articles |
236 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
237 | bug database at http://bugs.perl.org. There may also be |
238 | information at http://www.perl.org, the Perl Home Page. |
239 | |
240 | If you believe you have an unreported bug, please run the B<perlbug> |
241 | program included with your release. Be sure to trim your bug down |
242 | to a tiny but sufficient test case. Your bug report, along with the |
243 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
244 | analysed by the Perl porting team. You can browse and search |
245 | the Perl 5 bugs at http://bugs.perl.org/ |
246 | |
247 | =head1 SEE ALSO |
248 | |
249 | The F<Changes> file for exhaustive details on what changed. |
250 | |
251 | The F<INSTALL> file for how to build Perl. |
252 | |
253 | The F<README> file for general stuff. |
254 | |
255 | The F<Artistic> and F<Copying> files for copyright information. |
256 | |
257 | =cut |