This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldiag: rewording
[perl5.git] / pod / perl5121delta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perl5121delta - what is new for perl v5.12.1
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.12.0 release and
10 the 5.12.1 release.
11
12 If you are upgrading from an earlier release such as 5.10.1, first read
13 L<perl5120delta>, which describes differences between 5.10.1 and
14 5.12.0.
15
16 =head1 Incompatible Changes
17
18 There are no changes intentionally incompatible with 5.12.0. If any
19 incompatibilities with 5.12.0 exist, they are bugs. Please report them.
20
21 =head1 Core Enhancements
22
23 Other than the bug fixes listed below, there should be no user-visible
24 changes to the core language in this release.
25
26 =head1 Modules and Pragmata
27
28 =head2 Pragmata Changes
29
30 =over 
31
32 =item *
33
34 We fixed exporting of C<is_strict> and C<is_lax> from L<version>.
35
36 These were being exported with a wrapper that treated them as method
37 calls, which caused them to fail.  They are just functions, are
38 documented as such, and should never be subclassed, so this patch
39 just exports them directly as functions without the wrapper.
40
41 =back
42
43 =head2 Updated Modules
44
45 =over 
46
47 =item *
48
49 We upgraded L<CGI.pm> to version 3.49 to incorporate fixes for regressions
50 introduced in the release we shipped with Perl 5.12.0.
51
52 =item *
53
54 We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\>
55 parsing.
56
57 =item *
58
59 We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure.
60
61 =item *
62
63 We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>.
64
65 =back
66
67 =head1 Changes to Existing Documentation
68
69 =over
70
71 =item *
72
73 We added the new maintenance release policy to L<perlpolicy.pod>
74
75 =item *
76
77 We've clarified the multiple-angle-bracket construct in the spec for POD
78 in L<perlpodspec>
79
80 =item *
81
82 We added a missing explanation for a warning about C<:=> to L<perldiag.pod>
83
84 =item *
85
86 We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl.
87
88 =item *
89
90 We updated the Github mirror link in L<perlrepository> to mirrors/perl, not github/perl
91
92 =item *
93
94 We fixed a a minor error in L<perl5114delta.pod>.
95
96 =item * 
97
98 We replaced a mention of the now-obsolete L<Switch.pm> with F<given>/F<when>.
99
100 =item *
101
102 We improved documentation about F<$sitelibexp/sitecustomize.pl> in L<perlrun>.
103
104 =item * 
105
106 We corrected L<perlmodlib.pod> which had unintentionally omitted a number of modules.
107
108 =item * 
109
110 We updated the documentation for 'require' in L<perlfunc.pod> relating to putting Perl code in @INC.
111
112 =item *
113
114 We reinstated some erroneously-removed documentation about quotemeta in L<perlfunc>.
115
116 =item *
117
118 We fixed an F<a2p> example in L<perlutil.pod>.
119
120 =item  *
121
122 We filled in a blank in L<perlport.pod> with the release date of Perl 5.12.
123
124 =item  *
125
126 We fixed broken links in a number of perldelta files.
127
128 =item * 
129
130 The documentation for L<Carp.pm> incorrectly stated that the $Carp::Verbose
131 variable makes cluck generate stack backtraces.
132
133 =item *
134
135 We fixed a number of typos in L<Pod::Functions>
136
137 =item *
138
139 We improved documentation of case-changing functions in L<perlfunc.pod>
140
141 =item *
142
143 We corrected L<perlgpl.pod> to contain the correct version of the GNU
144 General Public License.
145
146
147
148 =back
149
150 =head1 Testing
151
152 =head2 Testing Improvements
153
154 =over
155
156 =item *
157
158 F<t/op/sselect.t> is now less prone to clock jitter during timing checks
159 on Windows.
160
161 sleep() time on Win32 may be rounded down to multiple of
162 the clock tick interval.
163
164 =item *
165
166 F<lib/blib.t> and F<lib/locale.t>: Fixes for test failures on Darwin/PPC
167
168 =item *
169
170 F<perl5db.t>: Fix for test failures when C<Term::ReadLine::Gnu> is installed.
171
172 =back
173
174 =head1 Installation and Configuration Improvements
175
176 =head2 Configuration improvements
177
178 =over 
179
180 =item * 
181
182 We updated F<INSTALL> with notes about how to deal with broken F<dbm.h>
183 on OpenSUSE (and possibly other platforms)
184
185 =back
186
187 =head1 Bug Fixes
188
189 =over 4
190
191 =item *
192
193 A bug in how we process filetest operations could cause a segfault.
194 Filetests don't always expect an op on the stack, so we now use
195 TOPs only if we're sure that we're not stat'ing the _ filehandle.
196 This is indicated by OPf_KIDS (as checked in ck_ftst).
197
198 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74542>
199
200 =item *
201
202 When deparsing a nextstate op that has both a change of package (relative
203 to the previous nextstate) and a label, the package declaration is now
204 emitted first, because it is syntactically impermissible for a label to
205 prefix a package declaration.
206
207 =item * 
208
209 XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS
210
211 See also: L<http://rt.cpan.org/Public/Bug/Display.html?id=55049>
212
213
214 =item * 
215
216 utf8::is_utf8 now respects GMAGIC (e.g. $1)
217
218
219 =item * 
220
221 XS code using C<fputc()> or C<fputs()>: on Windows could cause an error
222 due to their arguments being swapped.
223
224 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704>
225
226 =item *
227
228 We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors
229 in an obscure situation.  It happened when stuffing was performed on the
230 last line of a file and the line ended with a statement that lacked a
231 terminating semicolon.  
232
233 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74006>
234
235 =item *
236
237 We fixed a bug that could cause \N{} constructs followed by a single . to
238 be parsed incorrectly.
239
240 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74978>
241
242 =item *
243
244
245 We fixed a bug that caused when(scalar) without an argument not to be
246 treated as a syntax error.
247
248 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74114>
249
250 =item *
251
252 We fixed a regression in the handling of labels immediately before string
253 evals that was introduced in Perl 5.12.0.
254
255 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74290>
256
257 =item *
258
259 We fixed a regression in case-insensitive matching of folded characters
260 in regular expressions introduced in Perl 5.12.0.
261
262 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72998>
263
264 =back
265
266 =head1 Platform Specific Notes
267
268 =head2 HP-UX
269
270 =over 
271
272 =item *
273
274 Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX
275
276 =back
277
278 =head2 AIX
279
280 =over
281
282 =item * 
283
284 Perl now builds on AIX 4.2
285
286 The changes required work around AIX 4.2s' lack of support for IPv6,
287 and limited support for POSIX C<sigaction()>.
288
289 =back
290
291 =head2 FreeBSD 7
292
293 =over
294
295 =item * 
296
297 FreeBSD 7 no longer contains F</usr/bin/objformat>. At build time,
298 Perl now skips the F<objformat> check for versions 7 and higher and
299 assumes ELF.
300
301 =back
302
303 =head2 VMS
304
305 =over
306
307 =item *
308
309 It's now possible to build extensions on older (pre 7.3-2) VMS systems.
310
311 DCL symbol length was limited to 1K up until about seven years or
312 so ago, but there was no particularly deep reason to prevent those
313 older systems from configuring and building Perl.
314
315 =item *
316
317 We fixed the previously-broken C<-Uuseperlio> build on VMS.
318
319 We were checking a variable that doesn't exist in the non-default
320 case of disabling perlio.  Now we only look at it when it exists.
321
322 =item *
323
324 We fixed the -Uuseperlio command-line option in configure.com.
325
326 Formerly it only worked if you went through all the questions
327 interactively and explicitly answered no.
328
329 =back
330
331 =head1 Known Problems
332
333 =over
334
335 =item *
336
337 C<List::Util::first> misbehaves in the presence of a lexical C<$_>
338 (typically introduced by C<my $_> or implicitly by C<given>). The variable
339 which gets set for each iteration is the package variable C<$_>, not the
340 lexical C<$_>.
341
342 A similar issue may occur in other modules that provide functions which
343 take a block as their first argument, like
344
345     foo { ... $_ ...} list
346
347 See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=67694>
348
349 =item *
350
351 C<Module::Load::Conditional> and C<version> have an unfortunate
352 interaction which can cause C<CPANPLUS> to crash when it encounters
353 an unparseable version string.  Upgrading to C<CPANPLUS> 0.9004 or
354 C<Module::Load::Conditional> 0.38 from CPAN will resolve this issue.
355
356 =back
357
358
359 =head1 Acknowledgements
360
361 Perl 5.12.1 represents approximately four weeks of development since
362 Perl 5.12.0 and contains approximately 4,000 lines of changes
363 across 142 files from 28 authors.
364
365 Perl continues to flourish into its third decade thanks to a vibrant
366 community of users and developers.  The following people are known to
367 have contributed the improvements that became Perl 5.12.1:
368
369 Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry,
370 David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand,
371 Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois,
372 Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael
373 Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat,
374 Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo,
375 Vincent Pit and Zefram.
376
377 =head1 Reporting Bugs
378
379 If you find what you think is a bug, you might check the articles
380 recently posted to the comp.lang.perl.misc newsgroup and the perl
381 bug database at http://rt.perl.org/perlbug/ .  There may also be
382 information at http://www.perl.org/ , the Perl Home Page.
383
384 If you believe you have an unreported bug, please run the B<perlbug>
385 program included with your release.  Be sure to trim your bug down
386 to a tiny but sufficient test case.  Your bug report, along with the
387 output of C<perl -V>, will be sent off to perlbug@perl.org to be
388 analysed by the Perl porting team.
389
390 If the bug you are reporting has security implications, which make it
391 inappropriate to send to a publicly archived mailing list, then please send
392 it to perl5-security-report@perl.org. This points to a closed subscription
393 unarchived mailing list, which includes all the core committers, who be able
394 to help assess the impact of issues, figure out a resolution, and help
395 co-ordinate the release of patches to mitigate or fix the problem across all
396 platforms on which Perl is supported. Please only use this address for
397 security issues in the Perl core, not for modules independently
398 distributed on CPAN.
399
400 =head1 SEE ALSO
401
402 The F<Changes> file for an explanation of how to view exhaustive details
403 on what changed.
404
405 The F<INSTALL> file for how to build Perl.
406
407 The F<README> file for general stuff.
408
409 The F<Artistic> and F<Copying> files for copyright information.
410
411 =cut
412