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