perldelta updates.
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
CommitLineData
ba8251e8 1=head1 NAME
2
e02fdbd2 3perldelta - what's new for perl5.006 (as of 5.005_54)
ba8251e8 4
5=head1 DESCRIPTION
6
7This document describes differences between the 5.005 release and this one.
8
9=head1 Incompatible Changes
10
e02fdbd2 11=head2 Perl Source Incompatibilities
12
13None known at this time.
14
15=head2 C Source Incompatibilities
16
17=over 4
18
19=item C<PERL_POLLUTE>
20
21Release 5.005 grandfathered old global symbol names by providing preprocessor
22macros for extension source compatibility. As of release 5.006, these
23preprocessor definitions are not available by default. You need to explicitly
24compile perl with C<-DPERL_POLLUTE> in order to get these definitions.
25
26=item C<PL_na> and C<dTHR> Issues
27
28The C<PL_na> global is now thread local, so a C<dTHR> declaration is needed
29in the scope in which it appears. XSUBs should handle this automatically,
30but if you have used C<PL_na> in support functions, you either need to
31change the C<PL_na> to a local variable (which is recommended), or put in
32a C<dTHR>.
33
34=back
35
36=head2 Binary Incompatibilities
37
38This release is not binary compatible with the 5.005 release and its
39maintenance versions.
40
ba8251e8 41=head1 Core Changes
42
5fdc711f 43=head2 Binary numbers supported
44
4f19785b 45Binary numbers are now supported as literals, in s?printf formats, and
46C<oct()>:
47
48 $answer = 0b101010;
49 printf "The answer is: %b\n", oct("0b101010");
50
5fdc711f 51=head2 syswrite() ease-of-use
52
6c67e1bb 53The length argument of C<syswrite()> is now optional.
54
5fdc711f 55=head2 64-bit support
56
6c67e1bb 57Better 64-bit support -- but full support still a distant goal. One
58must Configure with -Duse64bits to get Configure to probe for the
59extent of 64-bit support. Depending on the platform (hints file) more
60or less 64-awareness becomes available. As of 5.005_54 at least
61somewhat 64-bit aware platforms are HP-UX 11 or better, Solaris 2.6 or
62better, IRIX 6.2 or better. Naturally 64-bit platforms like Digital
63UNIX and UNICOS also have 64-bit support.
e02fdbd2 64
ba8251e8 65=head1 Supported Platforms
66
5fdc711f 67=over 4
68
69=item *
70
6c67e1bb 71VM/ESA is now supported.
72
5fdc711f 73=item *
74
6c67e1bb 75Siemens BS200 is now supported.
76
5fdc711f 77=item *
78
6c67e1bb 79The Mach CThreads (NeXTstep) are now supported by the Thread extension.
80
5fdc711f 81=back
82
6c67e1bb 83=head1 New tests
84
85=over 4
86
87=item op/io_const
88
89IO constants (SEEK_*, _IO*).
90
91=item op/io_dir
92
93Directory-related IO methods (new, read, close, rewind, tied delete).
94
95=item op/io_multihomed
96
97INET sockets with multi-homed hosts.
98
99=item op/io_poll
100
101IO poll().
102
103=item op/io_unix
104
105UNIX sockets.
106
107=item op/filetest
108
109File test operators.
110
111=item op/lex_assign
112
5fdc711f 113Verify operations that access pad objects (lexicals and temporaries).
6c67e1bb 114
115=back
e02fdbd2 116
ba8251e8 117=head1 Modules and Pragmata
118
3e8c4fa0 119=head2 Modules
120
b7d8191e 121=over 4
122
123=item Dumpvalue
124
125Added Dumpvalue module provides screen dumps of Perl data.
126
127=item Benchmark
128
129You can now run tests for I<x> seconds instead of guessing the right
130number of tests to run.
131
132=item Fcntl
133
134More Fcntl constants added: F_SETLK64, F_SETLKW64, O_LARGEFILE for
135large (more than 4G) file access (the 64-bit support is not yet
136working, though, so no need to get overly excited), Free/Net/OpenBSD
137locking behaviour flags F_FLOCK, F_POSIX, Linux F_SHLCK, and
138O_ACCMODE: the mask of O_RDONLY, O_WRONLY, and O_RDWR.
139
140=item Math::Complex
141
142The accessors methods Re, Im, arg, abs, rho, theta, methods can
143($z->Re()) now also act as mutators ($z->Re(3)).
144
145=item Math::Trig
146
147A little bit of radial trigonometry (cylindrical and spherical) added,
148for example the great circle distance.
149
150=back
3e8c4fa0 151
152=head2 Pragmata
153
6c67e1bb 154Lexical warnings pragma, "use warning;", to control optional warnings.
155
156Filetest pragma, to control the behaviour of filetests (C<-r> C<-w> ...).
157Currently only one subpragma implemented, "use filetest 'access';",
158that enables the use of access(2) or equivalent to check the
159permissions instead of using stat(2) as usual. This matters
160in filesystems where there are ACLs (access control lists), the
161stat(2) might lie, while access(2) knows better.
162
ba8251e8 163=head1 Utility Changes
164
e02fdbd2 165Todo.
166
ba8251e8 167=head1 Documentation Changes
168
5fdc711f 169=over 4
170
171=item perlopentut.pod
f8284313 172
5fdc711f 173A tutorial on using open() effectively.
f8284313 174
5fdc711f 175=item perlreftut.pod
176
177A tutorial that introduces the essentials of references.
178
179=back
e02fdbd2 180
ba8251e8 181=head1 New Diagnostics
182
6b121555 183=item /%s/: Unrecognized escape \\%c passed through
184
185(W) You used a backslash-character combination which is not recognized
186by Perl. This combination appears in an interpolated variable or a
187C<'>-delimited regular expression.
188
189=item Unrecognized escape \\%c passed through
190
191(W) You used a backslash-character combination which is not recognized
192by Perl.
e02fdbd2 193
06eaf0bc 194=item Missing command in piped open
195
196(W) You used the C<open(FH, "| command")> or C<open(FH, "command |")>
197construction, but the command was missing or blank.
198
ba8251e8 199=head1 Obsolete Diagnostics
200
e02fdbd2 201Todo.
202
04d420f9 203=head1 Configuration Changes
204
205You can use "Configure -Uinstallusrbinperl" which causes installperl
206to skip installing perl also as /usr/bin/perl. This is useful if you
207prefer not to modify /usr/bin for some reason or another but harmful
555834d1 208because many scripts assume to find Perl in /usr/bin/perl.
209
210=head1 Configuration Changes
211
212You can use "Configure -Uinstallusrbinperl" which causes installperl
213to skip installing perl also as /usr/bin/perl. This is useful if you
214prefer not to modify /usr/bin for some reason or another but harmful
04d420f9 215because many scripts assume to find Perl in /usr/bin/perl.
216
ba8251e8 217=head1 BUGS
218
219If you find what you think is a bug, you might check the headers of
220recently posted articles in the comp.lang.perl.misc newsgroup.
221There may also be information at http://www.perl.com/perl/, the Perl
222Home Page.
223
224If you believe you have an unreported bug, please run the B<perlbug>
225program included with your release. Make sure you trim your bug down
226to a tiny but sufficient test case. Your bug report, along with the
227output of C<perl -V>, will be sent off to <F<perlbug@perl.com>> to be
228analysed by the Perl porting team.
229
230=head1 SEE ALSO
231
232The F<Changes> file for exhaustive details on what changed.
233
234The F<INSTALL> file for how to build Perl.
235
236The F<README> file for general stuff.
237
238The F<Artistic> and F<Copying> files for copyright information.
239
240=head1 HISTORY
241
242Written by Gurusamy Sarathy <F<gsar@umich.edu>>, with many contributions
243from The Perl Porters.
244
245Send omissions or corrections to <F<perlbug@perl.com>>.
246
247=cut