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