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