This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Minor perldelta fixes
[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
bfdf8026 94We fixed a 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
JV
213
214=item *
d8b64acd 215
7c16146f 216utf8::is_utf8 now respects GMAGIC (e.g. $1)
d8b64acd
JV
217
218
bfdf8026 219=item *
d8b64acd 220
47ad5051
JV
221XS code using C<fputc()> or C<fputs()>: on Windows could cause an error
222due to their arguments being swapped.
d8b64acd 223
47ad5051 224See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704>
d8b64acd 225
47ad5051 226=item *
2c94927e 227
47ad5051 228We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors
191602e1 229in an obscure situation. It happened when stuffing was performed on the
47ad5051
JV
230last line of a file and the line ended with a statement that lacked a
231terminating semicolon.
d8b64acd 232
47ad5051 233See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74006>
d8b64acd 234
47ad5051 235=item *
d8b64acd 236
47ad5051
JV
237We fixed a bug that could cause \N{} constructs followed by a single . to
238be parsed incorrectly.
2c94927e 239
47ad5051 240See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74978>
d8b64acd 241
d8b64acd
JV
242=item *
243
d8b64acd 244
47ad5051
JV
245We fixed a bug that caused when(scalar) without an argument not to be
246treated as a syntax error.
247
248See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74114>
d8b64acd 249
47ad5051
JV
250=item *
251
252We fixed a regression in the handling of labels immediately before string
191602e1 253evals that was introduced in Perl 5.12.0.
47ad5051
JV
254
255See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74290>
256
257=item *
258
259We fixed a regression in case-insensitive matching of folded characters
8c58eb69 260in regular expressions introduced in Perl 5.10.1.
47ad5051
JV
261
262See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72998>
d8b64acd 263
bfdf8026 264=back
d8b64acd 265
bfdf8026 266=head1 Platform Specific Notes
d8b64acd 267
bfdf8026 268=head2 HP-UX
d8b64acd 269
bfdf8026 270=over
d8b64acd
JV
271
272=item *
273
bfdf8026 274Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX
d8b64acd 275
bfdf8026 276=back
d8b64acd 277
bfdf8026 278=head2 AIX
d8b64acd 279
bfdf8026 280=over
d8b64acd 281
d8b64acd 282=item *
d8b64acd 283
bfdf8026 284Perl now builds on AIX 4.2
d8b64acd 285
bfdf8026
JV
286The changes required work around AIX 4.2s' lack of support for IPv6,
287and limited support for POSIX C<sigaction()>.
d8b64acd 288
bfdf8026 289=back
d8b64acd 290
bfdf8026 291=head2 FreeBSD 7
d8b64acd 292
bfdf8026 293=over
d8b64acd
JV
294
295=item *
296
bfdf8026
JV
297FreeBSD 7 no longer contains F</usr/bin/objformat>. At build time,
298Perl now skips the F<objformat> check for versions 7 and higher and
299assumes ELF.
d8b64acd 300
bfdf8026 301=back
d8b64acd 302
bfdf8026 303=head2 VMS
d8b64acd 304
bfdf8026 305=over
d8b64acd
JV
306
307=item *
308
bfdf8026 309It's now possible to build extensions on older (pre 7.3-2) VMS systems.
d8b64acd 310
bfdf8026
JV
311DCL symbol length was limited to 1K up until about seven years or
312so ago, but there was no particularly deep reason to prevent those
313older systems from configuring and building Perl.
d8b64acd
JV
314
315=item *
316
bfdf8026 317We fixed the previously-broken C<-Uuseperlio> build on VMS.
d8b64acd 318
bfdf8026
JV
319We were checking a variable that doesn't exist in the non-default
320case of disabling perlio. Now we only look at it when it exists.
d8b64acd
JV
321
322=item *
323
bfdf8026 324We fixed the -Uuseperlio command-line option in configure.com.
d8b64acd 325
bfdf8026
JV
326Formerly it only worked if you went through all the questions
327interactively and explicitly answered no.
d8b64acd 328
bfdf8026 329=back
d8b64acd 330
2c94927e
JV
331=head1 Known Problems
332
333=over
334
335=item *
336
337C<List::Util::first> misbehaves in the presence of a lexical C<$_>
338(typically introduced by C<my $_> or implicitly by C<given>). The variable
339which gets set for each iteration is the package variable C<$_>, not the
340lexical C<$_>.
341
342A similar issue may occur in other modules that provide functions which
343take a block as their first argument, like
344
345 foo { ... $_ ...} list
346
347See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=67694>
348
349=item *
350
351C<Module::Load::Conditional> and C<version> have an unfortunate
352interaction which can cause C<CPANPLUS> to crash when it encounters
353an unparseable version string. Upgrading to C<CPANPLUS> 0.9004 or
354C<Module::Load::Conditional> 0.38 from CPAN will resolve this issue.
355
356=back
357
358
bfdf8026 359=head1 Acknowledgements
d8b64acd 360
47ad5051 361Perl 5.12.1 represents approximately four weeks of development since
191602e1 362Perl 5.12.0 and contains approximately 4,000 lines of changes
47ad5051
JV
363across 142 files from 28 authors.
364
365Perl continues to flourish into its third decade thanks to a vibrant
366community of users and developers. The following people are known to
367have contributed the improvements that became Perl 5.12.1:
d8b64acd 368
47ad5051
JV
369Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry,
370David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand,
371Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois,
372Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael
373Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat,
374Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo,
375Vincent Pit and Zefram.
d8b64acd 376
bfdf8026 377=head1 Reporting Bugs
d8b64acd 378
bfdf8026
JV
379If you find what you think is a bug, you might check the articles
380recently posted to the comp.lang.perl.misc newsgroup and the perl
381bug database at http://rt.perl.org/perlbug/ . There may also be
382information at http://www.perl.org/ , the Perl Home Page.
d8b64acd 383
bfdf8026
JV
384If you believe you have an unreported bug, please run the B<perlbug>
385program included with your release. Be sure to trim your bug down
386to a tiny but sufficient test case. Your bug report, along with the
387output of C<perl -V>, will be sent off to perlbug@perl.org to be
388analysed by the Perl porting team.
d8b64acd 389
bfdf8026
JV
390If the bug you are reporting has security implications, which make it
391inappropriate to send to a publicly archived mailing list, then please send
392it to perl5-security-report@perl.org. This points to a closed subscription
393unarchived mailing list, which includes all the core committers, who be able
394to help assess the impact of issues, figure out a resolution, and help
395co-ordinate the release of patches to mitigate or fix the problem across all
396platforms on which Perl is supported. Please only use this address for
397security issues in the Perl core, not for modules independently
398distributed on CPAN.
d8b64acd 399
bfdf8026 400=head1 SEE ALSO
d8b64acd 401
bfdf8026
JV
402The F<Changes> file for an explanation of how to view exhaustive details
403on what changed.
d8b64acd 404
bfdf8026 405The F<INSTALL> file for how to build Perl.
d8b64acd 406
bfdf8026 407The F<README> file for general stuff.
d8b64acd 408
bfdf8026 409The F<Artistic> and F<Copying> files for copyright information.
d8b64acd 410
bfdf8026 411=cut
d8b64acd 412