LOGONLY mark ALREADY the last package block commit
[p5sagit/p5-mst-13.2.git] / pod / perl5132delta.pod
CommitLineData
f83c51e5 1=encoding utf8
2
3=head1 NAME
4
5perldelta - what is new for perl v5.13.2
6
7=head1 DESCRIPTION
8
9This document describes differences between the 5.13.2 release and
10the 5.13.1 release.
11
12If you are upgrading from an earlier release such as 5.10, first read
13L<perl5120delta>, which describes differences between 5.10 and
145.12.
15
16=head1 Notice
17
18XXX Any important notices here
19
20=head1 Incompatible Changes
21
5f3e44b6 22=head2 localised tied scalars are tied again.
f83c51e5 23
5f3e44b6 24The change in behaviour in 5.13.1 of localising tied scalar values has
25been reverted to the existing 5.12.0 and earlier behaviour (the change for
26arrays and hashes remains).
f83c51e5 27
28=head1 Core Enhancements
29
30XXX New core language features go here. Summarise user-visible core language
31enhancements. Particularly prominent performance optimisations could go
32here, but most should go in the L</Performance Enhancements> section.
33
c4a65341 34=head2 Non-destructive substitution
35
36The substitution operator now supports a C</r> option that
37copies the input variable, carries out the substitution on
38the copy and returns the result. The original remains unmodified.
39
40 my $old = 'cat';
41 my $new = $old =~ s/cat/dog/r;
42 # $old is 'cat' and $new is 'dog'
43
44This is particularly useful with C<map>. See L<perlop> for more examples.
45
f5d8aca1 46=head2 package block syntax
47
48A package declaration can now contain a code block, in which case the
49declaration is in scope only inside that block. So C<package Foo { ... }>
50is precisely equivalent to C<{ package Foo; ... }>. It also works with
51a version number in the declaration, as in C<package Foo 1.2 { ... }>.
4baddafe 52See L<perlfunc> (434da3..36f77d, 702646).
f5d8aca1 53
f83c51e5 54=head1 New Platforms
55
56XXX List any platforms that this version of perl compiles on, that previous
57versions did not. These will either be enabled by new files in the F<hints/>
58directories, or new subdirectories and F<README> files at the top level of the
59source tree.
60
61=head1 Modules and Pragmata
62
63XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
64go here. If Module::CoreList is updated, generate an initial draft of the
65following sections using F<Porting/corelist-perldelta.pl>, which prints stub
66entries to STDOUT. Results can be pasted in place of the '=head2' entries
67below. A paragraph summary for important changes should then be added by hand.
68In an ideal world, dual-life modules would have a F<Changes> file that could be
69cribbed.
70
71=head2 New Modules and Pragmata
72
73=head2 Pragmata Changes
74
75=head2 Updated Modules
76
77=head2 Removed Modules and Pragmata
78
79=head1 Utility Changes
80
81XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
82here. Most of these are built within the directories F<utils> and F<x2p>.
83
84=over 4
85
86=item F<XXX>
87
88XXX
89
90=back
91
92=head1 New Documentation
93
94XXX Changes which create B<new> files in F<pod/> go here.
95
96=over 4
97
98=item L<XXX>
99
100XXX
101
102=back
103
104=head1 Changes to Existing Documentation
105
106XXX Changes which significantly change existing files in F<pod/> go here.
107Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
108
109
110=head1 Performance Enhancements
111
bd0a6a63 112Multiple small improvements to threads:
113
114Change the internal structured of thread->params from an SV (RV) to an AV
115- so we now pass around and store the array directly, rather than creating,
116holding and dereferencing a reference to it (78b7eff).
117
118Change S_ithread_create() params from a single AV* to a pair of SV** pointers.
119This saves creating, duplicating and freeing and AV, which is only ever used for
120an internal calling convention (4cf5ea).
121
122Remove redundant hv_exists() calls from ithread_create()'s spec parser (b1faab).
123
124Skip unnecessary newAV() in ithread_create() (39f3f7).
f83c51e5 125
126=over 4
127
128=item *
129
130XXX
131
132=back
133
134=head1 Installation and Configuration Improvements
135
136XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
137go here.
138
139=head2 Configuration improvements
140
141XXX
142
143=head2 Compilation improvements
144
145XXX
146
147=head2 Platform Specific Changes
148
149=over 4
150
151=item XXX-some-platform
152
153XXX
154
155=back
156
157=head1 Selected Bug Fixes
158
159XXX Important bug fixes in the core language are summarised here.
160Bug fixes in files in F<ext/> and F<lib/> are best summarised in
161L</Modules and Pragmata>.
162
76125158 163Avoid loading feature.pm when 'no 5.13.2;' or similar is encountered (faee19).
164
5266dd11 165Trap invalid use of SvIVX on SVt_REGEXP when assertions are on (e77da3)
166
f83c51e5 167=over 4
168
169=item *
170
ebe8e111 171Overloading now works properly in conjunction with tied variables. What
172formerly happened was that most ops checked their arguments for overloading
173I<before> checking for magic, so for example an overloaded object returned
174by a tied array access would usually be treated as not overloaded
175(RT #57012).
f83c51e5 176
177=back
178
179=head1 New or Changed Diagnostics
180
181XXX New or changed warnings emitted by the core's C<C> code go here.
182
183=over 4
184
185=item C<XXX>
186
187XXX
188
189=back
190
191=head1 Changed Internals
192
193XXX Changes which affect the interface available to C<XS> code go here.
194
195=over 4
196
197=item *
198
03d5bcf8 199The C<fund_rundefsvoffset> function has been deprecated. It appeared that
200its design was insufficient to reliably get the lexical C<$_> at run-time.
201
202Use the new C<find_rundefsv> function or the C<UNDERBAR> macro instead.
203They directly return the right SV representing C<$_>, whether it's lexical
204or dynamic.
205
206=item *
207
ebe8e111 208The following new functions or macros have been added to the public API:
789bd863 209C<SvNV_nomg>, C<sv_2nv_flags>, C<find_rundefsv>.
f83c51e5 210
483ce06a 211=item *
212
213The C<UNDERBAR> macro now calls C<find_rundefsv>. C<dUNDERBAR> is now a
214noop but should still be used to ensure past and future compatibility.
215
f83c51e5 216=back
217
218=head1 New Tests
219
220XXX Changes which create B<new> files in F<t/> go here. Changes to
221existing files in F<t/> aren't worth summarising, although the bugs that
222they represent may be.
223
224=over 4
225
226=item F<XXX>
227
228XXX
229
230=back
231
232=head1 Known Problems
233
234XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
235tests that had to be C<TODO>ed for the release would be noted here, unless
236they were specific to a particular platform (see below).
237
238This is a list of some significant unfixed bugs, which are regressions
239from either 5.XXX.XXX or 5.XXX.XXX.
240
241=over 4
242
243=item *
244
245XXX
246
247=back
248
249=head1 Deprecations
250
251XXX Add any new known deprecations here.
252
253The following items are now deprecated.
254
255=over 4
256
257=item *
258
7c8a36d1 259Omitting a space between a regex pattern or pattern modifiers and the following
260word is deprecated. For example, C<< m/foo/sand $bar >> will still be parsed
261as C<< m/foo/s and $bar >> but will issue a warning.
f83c51e5 262
263=back
264
265=head1 Platform Specific Notes
266
267XXX Any changes specific to a particular platform. VMS and Win32 are the usual
268stars here. It's probably best to group changes under the same section layout
269as the main perldelta
270
271=head1 Obituary
272
273XXX If any significant core contributor has died, we've added a short obituary
274here.
275
276=head1 Acknowledgements
277
278XXX The list of people to thank goes here.
279
280
281=head1 Reporting Bugs
282
283If you find what you think is a bug, you might check the articles
284recently posted to the comp.lang.perl.misc newsgroup and the perl
285bug database at http://rt.perl.org/perlbug/ . There may also be
286information at http://www.perl.org/ , the Perl Home Page.
287
288If you believe you have an unreported bug, please run the B<perlbug>
289program included with your release. Be sure to trim your bug down
290to a tiny but sufficient test case. Your bug report, along with the
291output of C<perl -V>, will be sent off to perlbug@perl.org to be
292analysed by the Perl porting team.
293
294If the bug you are reporting has security implications, which make it
295inappropriate to send to a publicly archived mailing list, then please send
296it to perl5-security-report@perl.org. This points to a closed subscription
297unarchived mailing list, which includes all the core committers, who be able
298to help assess the impact of issues, figure out a resolution, and help
299co-ordinate the release of patches to mitigate or fix the problem across all
300platforms on which Perl is supported. Please only use this address for
301security issues in the Perl core, not for modules independently
302distributed on CPAN.
303
304=head1 SEE ALSO
305
306The F<Changes> file for an explanation of how to view exhaustive details
307on what changed.
308
309The F<INSTALL> file for how to build Perl.
310
311The F<README> file for general stuff.
312
313The F<Artistic> and F<Copying> files for copyright information.
314
315=cut