This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 059639d5cdd
[perl5.git] / pod / perl5121delta.pod
CommitLineData
d8b64acd
JV
1=encoding utf8
2
3=head1 NAME
4
e19a038c 5perl5121delta - what is new for perl v5.12.1
d8b64acd
JV
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
d8b64acd
JV
16=head1 Incompatible Changes
17
47ad5051
JV
18There are no changes intentionally incompatible with 5.12.0. If any
19incompatibilities with 5.12.0 exist, they are bugs. Please report them.
d8b64acd
JV
20
21=head1 Core Enhancements
22
23Other than the bug fixes listed below, there should be no user-visible
191602e1 24changes to the core language in this release.
d8b64acd
JV
25
26=head1 Modules and Pragmata
27
d8b64acd
JV
28=head2 Pragmata Changes
29
bfdf8026 30=over
d8b64acd 31
bfdf8026 32=item *
d8b64acd 33
191602e1 34We fixed exporting of C<is_strict> and C<is_lax> from L<version>.
d8b64acd 35
bfdf8026 36These were being exported with a wrapper that treated them as method
191602e1 37calls, which caused them to fail. They are just functions, are
bfdf8026
JV
38documented as such, and should never be subclassed, so this patch
39just exports them directly as functions without the wrapper.
d8b64acd 40
bfdf8026 41=back
d8b64acd 42
bfdf8026 43=head2 Updated Modules
d8b64acd 44
bfdf8026 45=over
d8b64acd
JV
46
47=item *
48
bfdf8026
JV
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.
d8b64acd 51
bfdf8026 52=item *
d8b64acd 53
bfdf8026
JV
54We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\>
55parsing.
d8b64acd 56
47ad5051
JV
57=item *
58
191602e1 59We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure.
47ad5051 60
a5c4fdfb
JV
61=item *
62
c69ca1d4 63We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>.
a5c4fdfb 64
bfdf8026 65=back
d8b64acd 66
bfdf8026 67=head1 Changes to Existing Documentation
d8b64acd 68
bfdf8026 69=over
d8b64acd 70
bfdf8026 71=item *
d8b64acd 72
bfdf8026 73We added the new maintenance release policy to L<perlpolicy.pod>
d8b64acd 74
bfdf8026 75=item *
d8b64acd 76
191602e1
DG
77We've clarified the multiple-angle-bracket construct in the spec for POD
78in L<perlpodspec>
d8b64acd 79
bfdf8026 80=item *
d8b64acd 81
bfdf8026 82We added a missing explanation for a warning about C<:=> to L<perldiag.pod>
d8b64acd 83
bfdf8026 84=item *
d8b64acd 85
191602e1 86We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl.
d8b64acd
JV
87
88=item *
89
191602e1 90We updated the Github mirror link in L<perlrepository> to mirrors/perl, not github/perl
d8b64acd 91
bfdf8026 92=item *
d8b64acd 93
12b4b02f 94We fixed a minor error in L<perl5114delta.pod>.
d8b64acd 95
bfdf8026 96=item *
d8b64acd 97
bfdf8026 98We replaced a mention of the now-obsolete L<Switch.pm> with F<given>/F<when>.
d8b64acd
JV
99
100=item *
101
191602e1 102We improved documentation about F<$sitelibexp/sitecustomize.pl> in L<perlrun>.
d8b64acd 103
bfdf8026 104=item *
d8b64acd 105
191602e1 106We corrected L<perlmodlib.pod> which had unintentionally omitted a number of modules.
d8b64acd 107
bfdf8026 108=item *
d8b64acd 109
bfdf8026 110We updated the documentation for 'require' in L<perlfunc.pod> relating to putting Perl code in @INC.
d8b64acd
JV
111
112=item *
113
191602e1 114We reinstated some erroneously-removed documentation about quotemeta in L<perlfunc>.
d8b64acd 115
bfdf8026 116=item *
d8b64acd 117
bfdf8026 118We fixed an F<a2p> example in L<perlutil.pod>.
d8b64acd 119
bfdf8026 120=item *
d8b64acd 121
bfdf8026 122We filled in a blank in L<perlport.pod> with the release date of Perl 5.12.
d8b64acd 123
bfdf8026 124=item *
d8b64acd 125
bfdf8026 126We fixed broken links in a number of perldelta files.
d8b64acd 127
bfdf8026 128=item *
d8b64acd 129
bfdf8026
JV
130The documentation for L<Carp.pm> incorrectly stated that the $Carp::Verbose
131variable makes cluck generate stack backtraces.
d8b64acd 132
bfdf8026 133=item *
d8b64acd 134
bfdf8026 135We fixed a number of typos in L<Pod::Functions>
d8b64acd 136
47ad5051
JV
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
bfdf8026 148=back
d8b64acd 149
bfdf8026 150=head1 Testing
d8b64acd 151
bfdf8026 152=head2 Testing Improvements
d8b64acd 153
bfdf8026 154=over
d8b64acd 155
bfdf8026 156=item *
d8b64acd 157
bfdf8026
JV
158F<t/op/sselect.t> is now less prone to clock jitter during timing checks
159on Windows.
d8b64acd 160
bfdf8026
JV
161sleep() time on Win32 may be rounded down to multiple of
162the clock tick interval.
d8b64acd
JV
163
164=item *
165
bfdf8026 166F<lib/blib.t> and F<lib/locale.t>: Fixes for test failures on Darwin/PPC
d8b64acd
JV
167
168=item *
169
bfdf8026 170F<perl5db.t>: Fix for test failures when C<Term::ReadLine::Gnu> is installed.
d8b64acd 171
bfdf8026 172=back
d8b64acd 173
bfdf8026 174=head1 Installation and Configuration Improvements
d8b64acd 175
bfdf8026 176=head2 Configuration improvements
d8b64acd 177
bfdf8026 178=over
d8b64acd 179
bfdf8026 180=item *
d8b64acd 181
47ad5051
JV
182We updated F<INSTALL> with notes about how to deal with broken F<dbm.h>
183on OpenSUSE (and possibly other platforms)
d8b64acd 184
bfdf8026 185=back
d8b64acd 186
47ad5051 187=head1 Bug Fixes
d8b64acd 188
bfdf8026 189=over 4
d8b64acd
JV
190
191=item *
192
bfdf8026 193A bug in how we process filetest operations could cause a segfault.
191602e1 194Filetests don't always expect an op on the stack, so we now use
bfdf8026
JV
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
47ad5051 198See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74542>
d8b64acd
JV
199
200=item *
201
bfdf8026
JV
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.
d8b64acd
JV
206
207=item *
208
bfdf8026 209XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS
d8b64acd 210
47ad5051 211See also: L<http://rt.cpan.org/Public/Bug/Display.html?id=55049>
d8b64acd 212
d8b64acd 213=item *
d8b64acd 214
7c16146f 215utf8::is_utf8 now respects GMAGIC (e.g. $1)
d8b64acd 216
bfdf8026 217=item *
d8b64acd 218
47ad5051
JV
219XS code using C<fputc()> or C<fputs()>: on Windows could cause an error
220due to their arguments being swapped.
d8b64acd 221
47ad5051 222See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704>
d8b64acd 223
47ad5051 224=item *
2c94927e 225
47ad5051 226We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors
191602e1 227in an obscure situation. It happened when stuffing was performed on the
47ad5051
JV
228last line of a file and the line ended with a statement that lacked a
229terminating semicolon.
d8b64acd 230
47ad5051 231See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74006>
d8b64acd 232
47ad5051 233=item *
d8b64acd 234
47ad5051
JV
235We fixed a bug that could cause \N{} constructs followed by a single . to
236be parsed incorrectly.
2c94927e 237
47ad5051 238See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74978>
d8b64acd 239
d8b64acd
JV
240=item *
241
d8b64acd 242
47ad5051
JV
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>
d8b64acd 247
47ad5051
JV
248=item *
249
250We fixed a regression in the handling of labels immediately before string
191602e1 251evals that was introduced in Perl 5.12.0.
47ad5051
JV
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
8c58eb69 258in regular expressions introduced in Perl 5.10.1.
47ad5051
JV
259
260See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72998>
d8b64acd 261
bfdf8026 262=back
d8b64acd 263
bfdf8026 264=head1 Platform Specific Notes
d8b64acd 265
bfdf8026 266=head2 HP-UX
d8b64acd 267
bfdf8026 268=over
d8b64acd
JV
269
270=item *
271
bfdf8026 272Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX
d8b64acd 273
bfdf8026 274=back
d8b64acd 275
bfdf8026 276=head2 AIX
d8b64acd 277
bfdf8026 278=over
d8b64acd 279
d8b64acd 280=item *
d8b64acd 281
bfdf8026 282Perl now builds on AIX 4.2
d8b64acd 283
bfdf8026
JV
284The changes required work around AIX 4.2s' lack of support for IPv6,
285and limited support for POSIX C<sigaction()>.
d8b64acd 286
bfdf8026 287=back
d8b64acd 288
bfdf8026 289=head2 FreeBSD 7
d8b64acd 290
bfdf8026 291=over
d8b64acd
JV
292
293=item *
294
bfdf8026
JV
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.
d8b64acd 298
bfdf8026 299=back
d8b64acd 300
bfdf8026 301=head2 VMS
d8b64acd 302
bfdf8026 303=over
d8b64acd
JV
304
305=item *
306
bfdf8026 307It's now possible to build extensions on older (pre 7.3-2) VMS systems.
d8b64acd 308
bfdf8026
JV
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.
d8b64acd
JV
312
313=item *
314
bfdf8026 315We fixed the previously-broken C<-Uuseperlio> build on VMS.
d8b64acd 316
bfdf8026
JV
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.
d8b64acd
JV
319
320=item *
321
bfdf8026 322We fixed the -Uuseperlio command-line option in configure.com.
d8b64acd 323
bfdf8026
JV
324Formerly it only worked if you went through all the questions
325interactively and explicitly answered no.
d8b64acd 326
bfdf8026 327=back
d8b64acd 328
2c94927e
JV
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
bfdf8026 357=head1 Acknowledgements
d8b64acd 358
47ad5051 359Perl 5.12.1 represents approximately four weeks of development since
191602e1 360Perl 5.12.0 and contains approximately 4,000 lines of changes
47ad5051
JV
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:
d8b64acd 366
47ad5051
JV
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.
d8b64acd 374
bfdf8026 375=head1 Reporting Bugs
d8b64acd 376
bfdf8026
JV
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.
d8b64acd 381
bfdf8026
JV
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.
d8b64acd 387
bfdf8026
JV
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
1a1f8781
FC
391unarchived mailing list, which includes
392all the core committers, who will be able
bfdf8026
JV
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.
d8b64acd 398
bfdf8026 399=head1 SEE ALSO
d8b64acd 400
bfdf8026
JV
401The F<Changes> file for an explanation of how to view exhaustive details
402on what changed.
d8b64acd 403
bfdf8026 404The F<INSTALL> file for how to build Perl.
d8b64acd 405
bfdf8026 406The F<README> file for general stuff.
d8b64acd 407
bfdf8026 408The F<Artistic> and F<Copying> files for copyright information.
d8b64acd 409
bfdf8026 410=cut
d8b64acd 411