xref: /openbsd-src/gnu/usr.bin/perl/pod/perl5141delta.pod (revision 898184e3e61f9129feb5978fad5a8c6865f00b92)
1*898184e3Ssthen=encoding utf8
2*898184e3Ssthen
3*898184e3Ssthen=head1 NAME
4*898184e3Ssthen
5*898184e3Ssthenperl5141delta - what is new for perl v5.14.1
6*898184e3Ssthen
7*898184e3Ssthen=head1 DESCRIPTION
8*898184e3Ssthen
9*898184e3SsthenThis document describes differences between the 5.14.0 release and
10*898184e3Ssthenthe 5.14.1 release.
11*898184e3Ssthen
12*898184e3SsthenIf you are upgrading from an earlier release such as 5.12.0, first read
13*898184e3SsthenL<perl5140delta>, which describes differences between 5.12.0 and
14*898184e3Ssthen5.14.0.
15*898184e3Ssthen
16*898184e3Ssthen=head1 Core Enhancements
17*898184e3Ssthen
18*898184e3SsthenNo changes since 5.14.0.
19*898184e3Ssthen
20*898184e3Ssthen=head1 Security
21*898184e3Ssthen
22*898184e3SsthenNo changes since 5.14.0.
23*898184e3Ssthen
24*898184e3Ssthen=head1 Incompatible Changes
25*898184e3Ssthen
26*898184e3SsthenThere are no changes intentionally incompatible with 5.14.0. If any
27*898184e3Ssthenexist, they are bugs and reports are welcome.
28*898184e3Ssthen
29*898184e3Ssthen=head1 Deprecations
30*898184e3Ssthen
31*898184e3SsthenThere have been no deprecations since 5.14.0.
32*898184e3Ssthen
33*898184e3Ssthen=head1 Modules and Pragmata
34*898184e3Ssthen
35*898184e3Ssthen=head2 New Modules and Pragmata
36*898184e3Ssthen
37*898184e3SsthenNone
38*898184e3Ssthen
39*898184e3Ssthen=head2 Updated Modules and Pragmata
40*898184e3Ssthen
41*898184e3Ssthen=over 4
42*898184e3Ssthen
43*898184e3Ssthen=item *
44*898184e3Ssthen
45*898184e3SsthenL<B::Deparse> has been upgraded from version 1.03 to 1.04, to address two
46*898184e3Ssthenregressions in Perl 5.14.0:
47*898184e3Ssthen
48*898184e3SsthenDeparsing of the C<glob> operator and its diamond (C<< <> >>) form now
49*898184e3Ssthenworks again. [perl #90898]
50*898184e3Ssthen
51*898184e3SsthenThe presence of subroutines named C<::::> or C<::::::> no longer causes
52*898184e3SsthenB::Deparse to hang.
53*898184e3Ssthen
54*898184e3Ssthen=item *
55*898184e3Ssthen
56*898184e3SsthenL<Pod::Perldoc> has been upgraded from version 3.15_03 to 3.15_04.
57*898184e3Ssthen
58*898184e3SsthenIt corrects the search paths on VMS. [perl #90640]
59*898184e3Ssthen
60*898184e3Ssthen=back
61*898184e3Ssthen
62*898184e3Ssthen=head2 Removed Modules and Pragmata
63*898184e3Ssthen
64*898184e3SsthenNone
65*898184e3Ssthen
66*898184e3Ssthen=head1 Documentation
67*898184e3Ssthen
68*898184e3Ssthen=head2 New Documentation
69*898184e3Ssthen
70*898184e3SsthenNone
71*898184e3Ssthen
72*898184e3Ssthen=head2 Changes to Existing Documentation
73*898184e3Ssthen
74*898184e3Ssthen=head3 L<perlfunc>
75*898184e3Ssthen
76*898184e3Ssthen=over
77*898184e3Ssthen
78*898184e3Ssthen=item *
79*898184e3Ssthen
80*898184e3SsthenC<given>, C<when> and C<default> are now listed in L<perlfunc>.
81*898184e3Ssthen
82*898184e3Ssthen=item *
83*898184e3Ssthen
84*898184e3SsthenDocumentation for C<use> now includes a pointer to F<if.pm>.
85*898184e3Ssthen
86*898184e3Ssthen=back
87*898184e3Ssthen
88*898184e3Ssthen=head3 L<perllol>
89*898184e3Ssthen
90*898184e3Ssthen=over
91*898184e3Ssthen
92*898184e3Ssthen=item *
93*898184e3Ssthen
94*898184e3SsthenL<perllol> has been expanded with examples using the new C<push $scalar>
95*898184e3Ssthensyntax introduced in Perl 5.14.0.
96*898184e3Ssthen
97*898184e3Ssthen=back
98*898184e3Ssthen
99*898184e3Ssthen=head3 L<perlop>
100*898184e3Ssthen
101*898184e3Ssthen=over 4
102*898184e3Ssthen
103*898184e3Ssthen=item *
104*898184e3Ssthen
105*898184e3SsthenThe explanation of bitwise operators has been expanded to explain how they
106*898184e3Ssthenwork on Unicode strings.
107*898184e3Ssthen
108*898184e3Ssthen=item *
109*898184e3Ssthen
110*898184e3SsthenThe section on the triple-dot or yada-yada operator has been moved up, as
111*898184e3Ssthenit used to separate two closely related sections about the comma operator.
112*898184e3Ssthen
113*898184e3Ssthen=item *
114*898184e3Ssthen
115*898184e3SsthenMore examples for C<m//g> have been added.
116*898184e3Ssthen
117*898184e3Ssthen=item *
118*898184e3Ssthen
119*898184e3SsthenThe C<<< <<\FOO >>> here-doc syntax has been documented.
120*898184e3Ssthen
121*898184e3Ssthen=back
122*898184e3Ssthen
123*898184e3Ssthen=head3 L<perlrun>
124*898184e3Ssthen
125*898184e3Ssthen=over
126*898184e3Ssthen
127*898184e3Ssthen=item *
128*898184e3Ssthen
129*898184e3SsthenL<perlrun> has undergone a significant clean-up.  Most notably, the
130*898184e3SsthenB<-0x...> form of the B<-0> flag has been clarified, and the final section
131*898184e3Ssthenon environment variables has been corrected and expanded.
132*898184e3Ssthen
133*898184e3Ssthen=back
134*898184e3Ssthen
135*898184e3Ssthen=head3 L<POSIX>
136*898184e3Ssthen
137*898184e3Ssthen=over
138*898184e3Ssthen
139*898184e3Ssthen=item *
140*898184e3Ssthen
141*898184e3SsthenThe invocation documentation for C<WIFEXITED>, C<WEXITSTATUS>,
142*898184e3SsthenC<WIFSIGNALED>, C<WTERMSIG>, C<WIFSTOPPED>, and C<WSTOPSIG> was corrected.
143*898184e3Ssthen
144*898184e3Ssthen=back
145*898184e3Ssthen
146*898184e3Ssthen
147*898184e3Ssthen=head1 Diagnostics
148*898184e3Ssthen
149*898184e3SsthenThe following additions or changes have been made to diagnostic output,
150*898184e3Ssthenincluding warnings and fatal error messages.  For the complete list of
151*898184e3Ssthendiagnostic messages, see L<perldiag>.
152*898184e3Ssthen
153*898184e3Ssthen=head2 New Diagnostics
154*898184e3Ssthen
155*898184e3SsthenNone
156*898184e3Ssthen
157*898184e3Ssthen=head2 Changes to Existing Diagnostics
158*898184e3Ssthen
159*898184e3SsthenNone
160*898184e3Ssthen
161*898184e3Ssthen=head1 Utility Changes
162*898184e3Ssthen
163*898184e3SsthenNone
164*898184e3Ssthen
165*898184e3Ssthen=head1 Configuration and Compilation
166*898184e3Ssthen
167*898184e3Ssthen=over 4
168*898184e3Ssthen
169*898184e3Ssthen=item *
170*898184e3Ssthen
171*898184e3SsthenF<regexp.h> has been modified for compatibility with GCC's C<-Werror>
172*898184e3Ssthenoption, as used by some projects that include perl's header files.
173*898184e3Ssthen
174*898184e3Ssthen=back
175*898184e3Ssthen
176*898184e3Ssthen=head1 Testing
177*898184e3Ssthen
178*898184e3Ssthen=over 4
179*898184e3Ssthen
180*898184e3Ssthen=item *
181*898184e3Ssthen
182*898184e3SsthenSome test failures in F<dist/Locale-Maketext/t/09_compile.t> that could
183*898184e3Ssthenoccur depending on the environment have been fixed. [perl #89896]
184*898184e3Ssthen
185*898184e3Ssthen=item *
186*898184e3Ssthen
187*898184e3SsthenA watchdog timer for F<t/re/re.t> was lengthened to accommodate SH-4 systems
188*898184e3Ssthenwhich were unable to complete the tests before the previous timer ran out.
189*898184e3Ssthen
190*898184e3Ssthen
191*898184e3Ssthen=back
192*898184e3Ssthen
193*898184e3Ssthen=head1 Platform Support
194*898184e3Ssthen
195*898184e3Ssthen=head2 New Platforms
196*898184e3Ssthen
197*898184e3SsthenNone
198*898184e3Ssthen
199*898184e3Ssthen=head2 Discontinued Platforms
200*898184e3Ssthen
201*898184e3SsthenNone
202*898184e3Ssthen
203*898184e3Ssthen=head2 Platform-Specific Notes
204*898184e3Ssthen
205*898184e3Ssthen=head3 Solaris
206*898184e3Ssthen
207*898184e3Ssthen=over
208*898184e3Ssthen
209*898184e3Ssthen=item *
210*898184e3Ssthen
211*898184e3SsthenDocumentation listing the Solaris packages required to build Perl on
212*898184e3SsthenSolaris 9 and Solaris 10 has been corrected.
213*898184e3Ssthen
214*898184e3Ssthen=back
215*898184e3Ssthen
216*898184e3Ssthen=head3 Mac OS X
217*898184e3Ssthen
218*898184e3Ssthen=over
219*898184e3Ssthen
220*898184e3Ssthen=item *
221*898184e3Ssthen
222*898184e3SsthenThe F<lib/locale.t> test script has been updated to work on the upcoming
223*898184e3SsthenLion release.
224*898184e3Ssthen
225*898184e3Ssthen=item *
226*898184e3Ssthen
227*898184e3SsthenMac OS X specific compilation instructions have been clarified.
228*898184e3Ssthen
229*898184e3Ssthen=back
230*898184e3Ssthen
231*898184e3Ssthen=head3 Ubuntu Linux
232*898184e3Ssthen
233*898184e3Ssthen=over
234*898184e3Ssthen
235*898184e3Ssthen=item *
236*898184e3Ssthen
237*898184e3SsthenThe L<ODBM_File> installation process has been updated with the new library
238*898184e3Ssthenpaths on Ubuntu natty.
239*898184e3Ssthen
240*898184e3Ssthen=back
241*898184e3Ssthen
242*898184e3Ssthen=head1 Internal Changes
243*898184e3Ssthen
244*898184e3Ssthen=over
245*898184e3Ssthen
246*898184e3Ssthen=item *
247*898184e3Ssthen
248*898184e3SsthenThe compiled representation of formats is now stored via the mg_ptr of
249*898184e3Ssthentheir PERL_MAGIC_fm. Previously it was stored in the string buffer,
250*898184e3Ssthenbeyond SvLEN(), the regular end of the string. SvCOMPILED() and
251*898184e3SsthenSvCOMPILED_{on,off}() now exist solely for compatibility for XS code.
252*898184e3SsthenThe first is always 0, the other two now no-ops.
253*898184e3Ssthen
254*898184e3Ssthen=back
255*898184e3Ssthen
256*898184e3Ssthen=head1 Bug Fixes
257*898184e3Ssthen
258*898184e3Ssthen=over 4
259*898184e3Ssthen
260*898184e3Ssthen=item *
261*898184e3Ssthen
262*898184e3SsthenA bug has been fixed that would cause a "Use of freed value in iteration"
263*898184e3Ssthenerror if the next two hash elements that would be iterated over are
264*898184e3Ssthendeleted. [perl #85026]
265*898184e3Ssthen
266*898184e3Ssthen=item *
267*898184e3Ssthen
268*898184e3SsthenPassing the same constant subroutine to both C<index> and C<formline> no
269*898184e3Ssthenlonger causes one or the other to fail. [perl #89218]
270*898184e3Ssthen
271*898184e3Ssthen=item *
272*898184e3Ssthen
273*898184e3Ssthen5.14.0 introduced some memory leaks in regular expression character
274*898184e3Ssthenclasses such as C<[\w\s]>, which have now been fixed.
275*898184e3Ssthen
276*898184e3Ssthen=item *
277*898184e3Ssthen
278*898184e3SsthenAn edge case in regular expression matching could potentially loop.
279*898184e3SsthenThis happened only under C</i> in bracketed character classes that have
280*898184e3Ssthencharacters with multi-character folds, and the target string to match
281*898184e3Ssthenagainst includes the first portion of the fold, followed by another
282*898184e3Ssthencharacter that has a multi-character fold that begins with the remaining
283*898184e3Ssthenportion of the fold, plus some more.
284*898184e3Ssthen
285*898184e3Ssthen "s\N{U+DF}" =~ /[\x{DF}foo]/i
286*898184e3Ssthen
287*898184e3Ssthenis one such case.  C<\xDF> folds to C<"ss">.
288*898184e3Ssthen
289*898184e3Ssthen=item *
290*898184e3Ssthen
291*898184e3SsthenSeveral Unicode case-folding bugs have been fixed.
292*898184e3Ssthen
293*898184e3Ssthen=item *
294*898184e3Ssthen
295*898184e3SsthenThe new (in 5.14.0) regular expression modifier C</a> when repeated like
296*898184e3SsthenC</aa> forbids the characters outside the ASCII range that match
297*898184e3Ssthencharacters inside that range from matching under C</i>.  This did not
298*898184e3Ssthenwork under some circumstances, all involving alternation, such as:
299*898184e3Ssthen
300*898184e3Ssthen "\N{KELVIN SIGN}" =~ /k|foo/iaa;
301*898184e3Ssthen
302*898184e3Ssthensucceeded inappropriately.  This is now fixed.
303*898184e3Ssthen
304*898184e3Ssthen=item *
305*898184e3Ssthen
306*898184e3SsthenFixed a case where it was possible that a freed buffer may have been read
307*898184e3Ssthenfrom when parsing a here document.
308*898184e3Ssthen
309*898184e3Ssthen=back
310*898184e3Ssthen
311*898184e3Ssthen=head1 Acknowledgements
312*898184e3Ssthen
313*898184e3SsthenPerl 5.14.1 represents approximately four weeks of development since
314*898184e3SsthenPerl 5.14.0 and contains approximately 3500 lines of changes
315*898184e3Ssthenacross 38 files from 17 authors.
316*898184e3Ssthen
317*898184e3SsthenPerl continues to flourish into its third decade thanks to a vibrant
318*898184e3Ssthencommunity of users and developers.  The following people are known to
319*898184e3Ssthenhave contributed the improvements that became Perl 5.14.1:
320*898184e3Ssthen
321*898184e3SsthenBo Lindbergh, Claudio Ramirez, Craig A. Berry, David Leadbeater, Father
322*898184e3SsthenChrysostomos, Jesse Vincent, Jim Cromie, Justin Case, Karl Williamson,
323*898184e3SsthenLeo Lapworth, Nicholas Clark, Nobuhiro Iwamatsu, smash, Tom Christiansen,
324*898184e3SsthenTon Hospel, Vladimir Timofeev, and Zsbán Ambrus.
325*898184e3Ssthen
326*898184e3Ssthen
327*898184e3Ssthen=head1 Reporting Bugs
328*898184e3Ssthen
329*898184e3SsthenIf you find what you think is a bug, you might check the articles
330*898184e3Ssthenrecently posted to the comp.lang.perl.misc newsgroup and the perl
331*898184e3Ssthenbug database at http://rt.perl.org/perlbug/ .  There may also be
332*898184e3Sstheninformation at http://www.perl.org/ , the Perl Home Page.
333*898184e3Ssthen
334*898184e3SsthenIf you believe you have an unreported bug, please run the L<perlbug>
335*898184e3Ssthenprogram included with your release.  Be sure to trim your bug down
336*898184e3Ssthento a tiny but sufficient test case.  Your bug report, along with the
337*898184e3Ssthenoutput of C<perl -V>, will be sent off to perlbug@perl.org to be
338*898184e3Ssthenanalysed by the Perl porting team.
339*898184e3Ssthen
340*898184e3SsthenIf the bug you are reporting has security implications, which make it
341*898184e3Sstheninappropriate to send to a publicly archived mailing list, then please send
342*898184e3Ssthenit to perl5-security-report@perl.org. This points to a closed subscription
343*898184e3Ssthenunarchived mailing list, which includes all the core committers, who be able
344*898184e3Ssthento help assess the impact of issues, figure out a resolution, and help
345*898184e3Ssthenco-ordinate the release of patches to mitigate or fix the problem across all
346*898184e3Ssthenplatforms on which Perl is supported. Please only use this address for
347*898184e3Ssthensecurity issues in the Perl core, not for modules independently
348*898184e3Ssthendistributed on CPAN.
349*898184e3Ssthen
350*898184e3Ssthen=head1 SEE ALSO
351*898184e3Ssthen
352*898184e3SsthenThe F<Changes> file for an explanation of how to view exhaustive details
353*898184e3Ssthenon what changed.
354*898184e3Ssthen
355*898184e3SsthenThe F<INSTALL> file for how to build Perl.
356*898184e3Ssthen
357*898184e3SsthenThe F<README> file for general stuff.
358*898184e3Ssthen
359*898184e3SsthenThe F<Artistic> and F<Copying> files for copyright information.
360*898184e3Ssthen
361*898184e3Ssthen=cut
362