xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/pod/perl570delta.pod (revision 0:68f95e015346)
1*0Sstevel@tonic-gate=head1 NAME
2*0Sstevel@tonic-gate
3*0Sstevel@tonic-gateperl570delta - what's new for perl v5.7.0
4*0Sstevel@tonic-gate
5*0Sstevel@tonic-gate=head1 DESCRIPTION
6*0Sstevel@tonic-gate
7*0Sstevel@tonic-gateThis document describes differences between the 5.6.0 release and
8*0Sstevel@tonic-gatethe 5.7.0 release.
9*0Sstevel@tonic-gate
10*0Sstevel@tonic-gate=head1 Security Vulnerability Closed
11*0Sstevel@tonic-gate
12*0Sstevel@tonic-gateA potential security vulnerability in the optional suidperl component
13*0Sstevel@tonic-gateof Perl has been identified.  suidperl is neither built nor installed
14*0Sstevel@tonic-gateby default.  As of September the 2nd, 2000, the only known vulnerable
15*0Sstevel@tonic-gateplatform is Linux, most likely all Linux distributions.  CERT and
16*0Sstevel@tonic-gatevarious vendors have been alerted about the vulnerability.
17*0Sstevel@tonic-gate
18*0Sstevel@tonic-gateThe problem was caused by Perl trying to report a suspected security
19*0Sstevel@tonic-gateexploit attempt using an external program, /bin/mail.  On Linux
20*0Sstevel@tonic-gateplatforms the /bin/mail program had an undocumented feature which
21*0Sstevel@tonic-gatewhen combined with suidperl gave access to a root shell, resulting in
22*0Sstevel@tonic-gatea serious compromise instead of reporting the exploit attempt.  If you
23*0Sstevel@tonic-gatedon't have /bin/mail, or if you have 'safe setuid scripts', or if
24*0Sstevel@tonic-gatesuidperl is not installed, you are safe.
25*0Sstevel@tonic-gate
26*0Sstevel@tonic-gateThe exploit attempt reporting feature has been completely removed from
27*0Sstevel@tonic-gatethe Perl 5.7.0 release, so that particular vulnerability isn't there
28*0Sstevel@tonic-gateanymore.  However, further security vulnerabilities are,
29*0Sstevel@tonic-gateunfortunately, always possible.  The suidperl code is being reviewed
30*0Sstevel@tonic-gateand if deemed too risky to continue to be supported, it may be
31*0Sstevel@tonic-gatecompletely removed from future releases.  In any case, suidperl should
32*0Sstevel@tonic-gateonly be used by security experts who know exactly what they are doing
33*0Sstevel@tonic-gateand why they are using suidperl instead of some other solution such as
34*0Sstevel@tonic-gatesudo ( see http://www.courtesan.com/sudo/ ).
35*0Sstevel@tonic-gate
36*0Sstevel@tonic-gate=head1 Incompatible Changes
37*0Sstevel@tonic-gate
38*0Sstevel@tonic-gate=over 4
39*0Sstevel@tonic-gate
40*0Sstevel@tonic-gate=item *
41*0Sstevel@tonic-gate
42*0Sstevel@tonic-gateArrays now always interpolate into double-quoted strings:
43*0Sstevel@tonic-gateconstructs like "foo@bar" now always assume C<@bar> is an array,
44*0Sstevel@tonic-gatewhether or not the compiler has seen use of C<@bar>.
45*0Sstevel@tonic-gate
46*0Sstevel@tonic-gate=item *
47*0Sstevel@tonic-gate
48*0Sstevel@tonic-gateThe semantics of bless(REF, REF) were unclear and until someone proves
49*0Sstevel@tonic-gateit to make some sense, it is forbidden.
50*0Sstevel@tonic-gate
51*0Sstevel@tonic-gate=item *
52*0Sstevel@tonic-gate
53*0Sstevel@tonic-gateA reference to a reference now stringify as "REF(0x81485ec)" instead
54*0Sstevel@tonic-gateof "SCALAR(0x81485ec)" in order to be more consistent with the return
55*0Sstevel@tonic-gatevalue of ref().
56*0Sstevel@tonic-gate
57*0Sstevel@tonic-gate=item *
58*0Sstevel@tonic-gate
59*0Sstevel@tonic-gateThe very dusty examples in the eg/ directory have been removed.
60*0Sstevel@tonic-gateSuggestions for new shiny examples welcome but the main issue is that
61*0Sstevel@tonic-gatethe examples need to be documented, tested and (most importantly)
62*0Sstevel@tonic-gatemaintained.
63*0Sstevel@tonic-gate
64*0Sstevel@tonic-gate=item *
65*0Sstevel@tonic-gate
66*0Sstevel@tonic-gateThe obsolete chat2 library that should never have been allowed
67*0Sstevel@tonic-gateto escape the laboratory has been decommissioned.
68*0Sstevel@tonic-gate
69*0Sstevel@tonic-gate=item *
70*0Sstevel@tonic-gate
71*0Sstevel@tonic-gateThe unimplemented POSIX regex features [[.cc.]] and [[=c=]] are still
72*0Sstevel@tonic-gaterecognised but now cause fatal errors.  The previous behaviour of
73*0Sstevel@tonic-gateignoring them by default and warning if requested was unacceptable
74*0Sstevel@tonic-gatesince it, in a way, falsely promised that the features could be used.
75*0Sstevel@tonic-gate
76*0Sstevel@tonic-gate=item *
77*0Sstevel@tonic-gate
78*0Sstevel@tonic-gateThe (bogus) escape sequences \8 and \9 now give an optional warning
79*0Sstevel@tonic-gate("Unrecognized escape passed through").  There is no need to \-escape
80*0Sstevel@tonic-gateany C<\w> character.
81*0Sstevel@tonic-gate
82*0Sstevel@tonic-gate=item *
83*0Sstevel@tonic-gate
84*0Sstevel@tonic-gatelstat(FILEHANDLE) now gives a warning because the operation makes no sense.
85*0Sstevel@tonic-gateIn future releases this may become a fatal error.
86*0Sstevel@tonic-gate
87*0Sstevel@tonic-gate=item *
88*0Sstevel@tonic-gate
89*0Sstevel@tonic-gateThe long deprecated uppercase aliases for the string comparison
90*0Sstevel@tonic-gateoperators (EQ, NE, LT, LE, GE, GT) have now been removed.
91*0Sstevel@tonic-gate
92*0Sstevel@tonic-gate=item *
93*0Sstevel@tonic-gate
94*0Sstevel@tonic-gateThe regular expression captured submatches ($1, $2, ...) are now
95*0Sstevel@tonic-gatemore consistently unset if the match fails, instead of leaving false
96*0Sstevel@tonic-gatedata lying around in them.
97*0Sstevel@tonic-gate
98*0Sstevel@tonic-gate=item *
99*0Sstevel@tonic-gate
100*0Sstevel@tonic-gateThe tr///C and tr///U features have been removed and will not return;
101*0Sstevel@tonic-gatethe interface was a mistake.  Sorry about that.  For similar
102*0Sstevel@tonic-gatefunctionality, see pack('U0', ...) and pack('C0', ...).
103*0Sstevel@tonic-gate
104*0Sstevel@tonic-gate=back
105*0Sstevel@tonic-gate
106*0Sstevel@tonic-gate=head1 Core Enhancements
107*0Sstevel@tonic-gate
108*0Sstevel@tonic-gate=over 4
109*0Sstevel@tonic-gate
110*0Sstevel@tonic-gate=item *
111*0Sstevel@tonic-gate
112*0Sstevel@tonic-gateC<perl -d:Module=arg,arg,arg> now works (previously one couldn't pass
113*0Sstevel@tonic-gatein multiple arguments.)
114*0Sstevel@tonic-gate
115*0Sstevel@tonic-gate=item *
116*0Sstevel@tonic-gate
117*0Sstevel@tonic-gatemy __PACKAGE__ $obj now works.
118*0Sstevel@tonic-gate
119*0Sstevel@tonic-gate=item *
120*0Sstevel@tonic-gate
121*0Sstevel@tonic-gateC<no Module;> now works even if there is no "sub unimport" in the Module.
122*0Sstevel@tonic-gate
123*0Sstevel@tonic-gate=item *
124*0Sstevel@tonic-gate
125*0Sstevel@tonic-gateThe numerical comparison operators return C<undef> if either operand
126*0Sstevel@tonic-gateis a NaN.  Previously the behaviour was unspecified.
127*0Sstevel@tonic-gate
128*0Sstevel@tonic-gate=item *
129*0Sstevel@tonic-gate
130*0Sstevel@tonic-gateC<pack('U0a*', ...)> can now be used to force a string to UTF-8.
131*0Sstevel@tonic-gate
132*0Sstevel@tonic-gate=item *
133*0Sstevel@tonic-gate
134*0Sstevel@tonic-gateprototype(\&) is now available.
135*0Sstevel@tonic-gate
136*0Sstevel@tonic-gate=item *
137*0Sstevel@tonic-gate
138*0Sstevel@tonic-gateThere is now an UNTIE method.
139*0Sstevel@tonic-gate
140*0Sstevel@tonic-gate=back
141*0Sstevel@tonic-gate
142*0Sstevel@tonic-gate=head1 Modules and Pragmata
143*0Sstevel@tonic-gate
144*0Sstevel@tonic-gate=head2 New Modules
145*0Sstevel@tonic-gate
146*0Sstevel@tonic-gate=over 4
147*0Sstevel@tonic-gate
148*0Sstevel@tonic-gate=item *
149*0Sstevel@tonic-gate
150*0Sstevel@tonic-gateFile::Temp allows one to create temporary files and directories in an
151*0Sstevel@tonic-gateeasy, portable, and secure way.
152*0Sstevel@tonic-gate
153*0Sstevel@tonic-gate=item *
154*0Sstevel@tonic-gate
155*0Sstevel@tonic-gateStorable gives persistence to Perl data structures by allowing the
156*0Sstevel@tonic-gatestorage and retrieval of Perl data to and from files in a fast and
157*0Sstevel@tonic-gatecompact binary format.
158*0Sstevel@tonic-gate
159*0Sstevel@tonic-gate=back
160*0Sstevel@tonic-gate
161*0Sstevel@tonic-gate=head2 Updated And Improved Modules and Pragmata
162*0Sstevel@tonic-gate
163*0Sstevel@tonic-gate=over 4
164*0Sstevel@tonic-gate
165*0Sstevel@tonic-gate=item *
166*0Sstevel@tonic-gate
167*0Sstevel@tonic-gateThe following independently supported modules have been updated to
168*0Sstevel@tonic-gatenewer versions from CPAN: CGI, CPAN, DB_File, File::Spec, Getopt::Long,
169*0Sstevel@tonic-gatethe podlators bundle, Pod::LaTeX, Pod::Parser, Term::ANSIColor, Test.
170*0Sstevel@tonic-gate
171*0Sstevel@tonic-gate=item *
172*0Sstevel@tonic-gate
173*0Sstevel@tonic-gateBug fixes and minor enhancements have been applied to B::Deparse,
174*0Sstevel@tonic-gateData::Dumper, IO::Poll, IO::Socket::INET, Math::BigFloat,
175*0Sstevel@tonic-gateMath::Complex, Math::Trig, Net::protoent, the re pragma, SelfLoader,
176*0Sstevel@tonic-gateSys::SysLog, Test::Harness, Text::Wrap, UNIVERSAL, and the warnings
177*0Sstevel@tonic-gatepragma.
178*0Sstevel@tonic-gate
179*0Sstevel@tonic-gate=item *
180*0Sstevel@tonic-gate
181*0Sstevel@tonic-gateThe attributes::reftype() now works on tied arguments.
182*0Sstevel@tonic-gate
183*0Sstevel@tonic-gate=item *
184*0Sstevel@tonic-gate
185*0Sstevel@tonic-gateAutoLoader can now be disabled with C<no AutoLoader;>,
186*0Sstevel@tonic-gate
187*0Sstevel@tonic-gate=item *
188*0Sstevel@tonic-gate
189*0Sstevel@tonic-gateThe English module can now be used without the infamous performance
190*0Sstevel@tonic-gatehit by saying
191*0Sstevel@tonic-gate
192*0Sstevel@tonic-gate	use English '-no_performance_hit';
193*0Sstevel@tonic-gate
194*0Sstevel@tonic-gate(Assuming, of course, that one doesn't need the troublesome variables
195*0Sstevel@tonic-gateC<$`>, C<$&>, or C<$'>.)  Also, introduced C<@LAST_MATCH_START> and
196*0Sstevel@tonic-gateC<@LAST_MATCH_END> English aliases for C<@-> and C<@+>.
197*0Sstevel@tonic-gate
198*0Sstevel@tonic-gate=item *
199*0Sstevel@tonic-gate
200*0Sstevel@tonic-gateFile::Find now has pre- and post-processing callbacks.  It also
201*0Sstevel@tonic-gatecorrectly changes directories when chasing symbolic links.  Callbacks
202*0Sstevel@tonic-gate(naughtily) exiting with "next;" instead of "return;" now work.
203*0Sstevel@tonic-gate
204*0Sstevel@tonic-gate=item *
205*0Sstevel@tonic-gate
206*0Sstevel@tonic-gateFile::Glob::glob() renamed to File::Glob::bsd_glob() to avoid
207*0Sstevel@tonic-gateprototype mismatch with CORE::glob().
208*0Sstevel@tonic-gate
209*0Sstevel@tonic-gate=item *
210*0Sstevel@tonic-gate
211*0Sstevel@tonic-gateIPC::Open3 now allows the use of numeric file descriptors.
212*0Sstevel@tonic-gate
213*0Sstevel@tonic-gate=item *
214*0Sstevel@tonic-gate
215*0Sstevel@tonic-gateuse lib now works identically to @INC.  Removing directories
216*0Sstevel@tonic-gatewith 'no lib' now works.
217*0Sstevel@tonic-gate
218*0Sstevel@tonic-gate=item *
219*0Sstevel@tonic-gate
220*0Sstevel@tonic-gateC<%INC> now localised in a Safe compartment so that use/require work.
221*0Sstevel@tonic-gate
222*0Sstevel@tonic-gate=item *
223*0Sstevel@tonic-gate
224*0Sstevel@tonic-gateThe Shell module now has an OO interface.
225*0Sstevel@tonic-gate
226*0Sstevel@tonic-gate=back
227*0Sstevel@tonic-gate
228*0Sstevel@tonic-gate=head1 Utility Changes
229*0Sstevel@tonic-gate
230*0Sstevel@tonic-gate=over 4
231*0Sstevel@tonic-gate
232*0Sstevel@tonic-gate=item *
233*0Sstevel@tonic-gate
234*0Sstevel@tonic-gateThe Emacs perl mode (emacs/cperl-mode.el) has been updated to version
235*0Sstevel@tonic-gate4.31.
236*0Sstevel@tonic-gate
237*0Sstevel@tonic-gate=item *
238*0Sstevel@tonic-gate
239*0Sstevel@tonic-gatePerlbug is now much more robust.  It also sends the bug report to
240*0Sstevel@tonic-gateperl.org, not perl.com.
241*0Sstevel@tonic-gate
242*0Sstevel@tonic-gate=item *
243*0Sstevel@tonic-gate
244*0Sstevel@tonic-gateThe perlcc utility has been rewritten and its user interface (that is,
245*0Sstevel@tonic-gatecommand line) is much more like that of the UNIX C compiler, cc.
246*0Sstevel@tonic-gate
247*0Sstevel@tonic-gate=item *
248*0Sstevel@tonic-gate
249*0Sstevel@tonic-gateThe xsubpp utility for extension writers now understands POD
250*0Sstevel@tonic-gatedocumentation embedded in the *.xs files.
251*0Sstevel@tonic-gate
252*0Sstevel@tonic-gate=back
253*0Sstevel@tonic-gate
254*0Sstevel@tonic-gate=head1 New Documentation
255*0Sstevel@tonic-gate
256*0Sstevel@tonic-gate=over 4
257*0Sstevel@tonic-gate
258*0Sstevel@tonic-gate=item *
259*0Sstevel@tonic-gate
260*0Sstevel@tonic-gateperl56delta details the changes between the 5.005 release and the
261*0Sstevel@tonic-gate5.6.0 release.
262*0Sstevel@tonic-gate
263*0Sstevel@tonic-gate=item *
264*0Sstevel@tonic-gate
265*0Sstevel@tonic-gateperldebtut is a Perl debugging tutorial.
266*0Sstevel@tonic-gate
267*0Sstevel@tonic-gate=item *
268*0Sstevel@tonic-gate
269*0Sstevel@tonic-gateperlebcdic contains considerations for running Perl on EBCDIC platforms.
270*0Sstevel@tonic-gateNote that unfortunately EBCDIC platforms that used to supported back in
271*0Sstevel@tonic-gatePerl 5.005 are still unsupported by Perl 5.7.0; the plan, however, is to
272*0Sstevel@tonic-gatebring them back to the fold.
273*0Sstevel@tonic-gate
274*0Sstevel@tonic-gate=item *
275*0Sstevel@tonic-gate
276*0Sstevel@tonic-gateperlnewmod tells about writing and submitting a new module.
277*0Sstevel@tonic-gate
278*0Sstevel@tonic-gate=item *
279*0Sstevel@tonic-gate
280*0Sstevel@tonic-gateperlposix-bc explains using Perl on the POSIX-BC platform
281*0Sstevel@tonic-gate(an EBCDIC mainframe platform).
282*0Sstevel@tonic-gate
283*0Sstevel@tonic-gate=item *
284*0Sstevel@tonic-gate
285*0Sstevel@tonic-gateperlretut is a regular expression tutorial.
286*0Sstevel@tonic-gate
287*0Sstevel@tonic-gate=item *
288*0Sstevel@tonic-gate
289*0Sstevel@tonic-gateperlrequick is a regular expressions quick-start guide.
290*0Sstevel@tonic-gateYes, much quicker than perlretut.
291*0Sstevel@tonic-gate
292*0Sstevel@tonic-gate=item *
293*0Sstevel@tonic-gate
294*0Sstevel@tonic-gateperlutil explains the command line utilities packaged with the Perl
295*0Sstevel@tonic-gatedistribution.
296*0Sstevel@tonic-gate
297*0Sstevel@tonic-gate=back
298*0Sstevel@tonic-gate
299*0Sstevel@tonic-gate=head1 Performance Enhancements
300*0Sstevel@tonic-gate
301*0Sstevel@tonic-gate=over 4
302*0Sstevel@tonic-gate
303*0Sstevel@tonic-gate=item *
304*0Sstevel@tonic-gate
305*0Sstevel@tonic-gatemap() that changes the size of the list should now work faster.
306*0Sstevel@tonic-gate
307*0Sstevel@tonic-gate=item *
308*0Sstevel@tonic-gate
309*0Sstevel@tonic-gatesort() has been changed to use mergesort internally as opposed to the
310*0Sstevel@tonic-gateearlier quicksort.  For very small lists this may result in slightly
311*0Sstevel@tonic-gateslower sorting times, but in general the speedup should be at least
312*0Sstevel@tonic-gate20%.  Additional bonuses are that the worst case behaviour of sort()
313*0Sstevel@tonic-gateis now better (in computer science terms it now runs in time O(N log N),
314*0Sstevel@tonic-gateas opposed to quicksort's Theta(N**2) worst-case run time behaviour),
315*0Sstevel@tonic-gateand that sort() is now stable (meaning that elements with identical
316*0Sstevel@tonic-gatekeys will stay ordered as they were before the sort).
317*0Sstevel@tonic-gate
318*0Sstevel@tonic-gate=back
319*0Sstevel@tonic-gate
320*0Sstevel@tonic-gate=head1 Installation and Configuration Improvements
321*0Sstevel@tonic-gate
322*0Sstevel@tonic-gate=head2 Generic Improvements
323*0Sstevel@tonic-gate
324*0Sstevel@tonic-gate=over 4
325*0Sstevel@tonic-gate
326*0Sstevel@tonic-gate=item *
327*0Sstevel@tonic-gate
328*0Sstevel@tonic-gateINSTALL now explains how you can configure Perl to use 64-bit
329*0Sstevel@tonic-gateintegers even on non-64-bit platforms.
330*0Sstevel@tonic-gate
331*0Sstevel@tonic-gate=item *
332*0Sstevel@tonic-gate
333*0Sstevel@tonic-gatePolicy.sh policy change: if you are reusing a Policy.sh file
334*0Sstevel@tonic-gate(see INSTALL) and you use Configure -Dprefix=/foo/bar and in the old
335*0Sstevel@tonic-gatePolicy $prefix eq $siteprefix and $prefix eq $vendorprefix, all of
336*0Sstevel@tonic-gatethem will now be changed to the new prefix, /foo/bar.  (Previously
337*0Sstevel@tonic-gateonly $prefix changed.)  If you do not like this new behaviour,
338*0Sstevel@tonic-gatespecify prefix, siteprefix, and vendorprefix explicitly.
339*0Sstevel@tonic-gate
340*0Sstevel@tonic-gate=item *
341*0Sstevel@tonic-gate
342*0Sstevel@tonic-gateA new optional location for Perl libraries, otherlibdirs, is available.
343*0Sstevel@tonic-gateIt can be used for example for vendor add-ons without disturbing Perl's
344*0Sstevel@tonic-gateown library directories.
345*0Sstevel@tonic-gate
346*0Sstevel@tonic-gate=item *
347*0Sstevel@tonic-gate
348*0Sstevel@tonic-gateIn many platforms the vendor-supplied 'cc' is too stripped-down to
349*0Sstevel@tonic-gatebuild Perl (basically, 'cc' doesn't do ANSI C).  If this seems
350*0Sstevel@tonic-gateto be the case and 'cc' does not seem to be the GNU C compiler
351*0Sstevel@tonic-gate'gcc', an automatic attempt is made to find and use 'gcc' instead.
352*0Sstevel@tonic-gate
353*0Sstevel@tonic-gate=item *
354*0Sstevel@tonic-gate
355*0Sstevel@tonic-gategcc needs to closely track the operating system release to avoid
356*0Sstevel@tonic-gatebuild problems. If Configure finds that gcc was built for a different
357*0Sstevel@tonic-gateoperating system release than is running, it now gives a clearly visible
358*0Sstevel@tonic-gatewarning that there may be trouble ahead.
359*0Sstevel@tonic-gate
360*0Sstevel@tonic-gate=item *
361*0Sstevel@tonic-gate
362*0Sstevel@tonic-gateIf binary compatibility with the 5.005 release is not wanted, Configure
363*0Sstevel@tonic-gateno longer suggests including the 5.005 modules in @INC.
364*0Sstevel@tonic-gate
365*0Sstevel@tonic-gate=item *
366*0Sstevel@tonic-gate
367*0Sstevel@tonic-gateConfigure C<-S> can now run non-interactively.
368*0Sstevel@tonic-gate
369*0Sstevel@tonic-gate=item *
370*0Sstevel@tonic-gate
371*0Sstevel@tonic-gateconfigure.gnu now works with options with whitespace in them.
372*0Sstevel@tonic-gate
373*0Sstevel@tonic-gate=item *
374*0Sstevel@tonic-gate
375*0Sstevel@tonic-gateinstallperl now outputs everything to STDERR.
376*0Sstevel@tonic-gate
377*0Sstevel@tonic-gate=item *
378*0Sstevel@tonic-gate
379*0Sstevel@tonic-gate$Config{byteorder} is now computed dynamically (this is more robust
380*0Sstevel@tonic-gatewith "fat binaries" where an executable image contains binaries for
381*0Sstevel@tonic-gatemore than one binary platform.)
382*0Sstevel@tonic-gate
383*0Sstevel@tonic-gate=back
384*0Sstevel@tonic-gate
385*0Sstevel@tonic-gate=head1 Selected Bug Fixes
386*0Sstevel@tonic-gate
387*0Sstevel@tonic-gate=over 4
388*0Sstevel@tonic-gate
389*0Sstevel@tonic-gate=item *
390*0Sstevel@tonic-gate
391*0Sstevel@tonic-gateSeveral debugger fixes: exit code now reflects the script exit code,
392*0Sstevel@tonic-gatecondition C<"0"> now treated correctly, the C<d> command now checks
393*0Sstevel@tonic-gateline number, the C<$.> no longer gets corrupted, all debugger output now
394*0Sstevel@tonic-gategoes correctly to the socket if RemotePort is set.
395*0Sstevel@tonic-gate
396*0Sstevel@tonic-gate=item *
397*0Sstevel@tonic-gate
398*0Sstevel@tonic-gateC<*foo{FORMAT}> now works.
399*0Sstevel@tonic-gate
400*0Sstevel@tonic-gate=item *
401*0Sstevel@tonic-gate
402*0Sstevel@tonic-gateLexical warnings now propagating correctly between scopes.
403*0Sstevel@tonic-gate
404*0Sstevel@tonic-gate=item *
405*0Sstevel@tonic-gate
406*0Sstevel@tonic-gateLine renumbering with eval and C<#line> now works.
407*0Sstevel@tonic-gate
408*0Sstevel@tonic-gate=item *
409*0Sstevel@tonic-gate
410*0Sstevel@tonic-gateFixed numerous memory leaks, especially in eval "".
411*0Sstevel@tonic-gate
412*0Sstevel@tonic-gate=item *
413*0Sstevel@tonic-gate
414*0Sstevel@tonic-gateModulus of unsigned numbers now works (4063328477 % 65535 used to
415*0Sstevel@tonic-gatereturn 27406, instead of 27047).
416*0Sstevel@tonic-gate
417*0Sstevel@tonic-gate=item *
418*0Sstevel@tonic-gate
419*0Sstevel@tonic-gateSome "not a number" warnings introduced in 5.6.0 eliminated to be
420*0Sstevel@tonic-gatemore compatible with 5.005.  Infinity is now recognised as a number.
421*0Sstevel@tonic-gate
422*0Sstevel@tonic-gate=item *
423*0Sstevel@tonic-gate
424*0Sstevel@tonic-gateour() variables will not cause "will not stay shared" warnings.
425*0Sstevel@tonic-gate
426*0Sstevel@tonic-gate=item *
427*0Sstevel@tonic-gate
428*0Sstevel@tonic-gatepack "Z" now correctly terminates the string with "\0".
429*0Sstevel@tonic-gate
430*0Sstevel@tonic-gate=item *
431*0Sstevel@tonic-gate
432*0Sstevel@tonic-gateFix password routines which in some shadow password platforms
433*0Sstevel@tonic-gate(e.g. HP-UX) caused getpwent() to return every other entry.
434*0Sstevel@tonic-gate
435*0Sstevel@tonic-gate=item *
436*0Sstevel@tonic-gate
437*0Sstevel@tonic-gateprintf() no longer resets the numeric locale to "C".
438*0Sstevel@tonic-gate
439*0Sstevel@tonic-gate=item *
440*0Sstevel@tonic-gate
441*0Sstevel@tonic-gateC<q(a\\b)> now parses correctly as C<'a\\b'>.
442*0Sstevel@tonic-gate
443*0Sstevel@tonic-gate=item *
444*0Sstevel@tonic-gate
445*0Sstevel@tonic-gatePrinting quads (64-bit integers) with printf/sprintf now works
446*0Sstevel@tonic-gatewithout the q L ll prefixes (assuming you are on a quad-capable platform).
447*0Sstevel@tonic-gate
448*0Sstevel@tonic-gate=item *
449*0Sstevel@tonic-gate
450*0Sstevel@tonic-gateRegular expressions on references and overloaded scalars now work.
451*0Sstevel@tonic-gate
452*0Sstevel@tonic-gate=item *
453*0Sstevel@tonic-gate
454*0Sstevel@tonic-gatescalar() now forces scalar context even when used in void context.
455*0Sstevel@tonic-gate
456*0Sstevel@tonic-gate=item *
457*0Sstevel@tonic-gate
458*0Sstevel@tonic-gatesort() arguments are now compiled in the right wantarray context
459*0Sstevel@tonic-gate(they were accidentally using the context of the sort() itself).
460*0Sstevel@tonic-gate
461*0Sstevel@tonic-gate=item *
462*0Sstevel@tonic-gate
463*0Sstevel@tonic-gateChanged the POSIX character class C<[[:space:]]> to include the (very
464*0Sstevel@tonic-gaterare) vertical tab character.  Added a new POSIX-ish character class
465*0Sstevel@tonic-gateC<[[:blank:]]> which stands for horizontal whitespace (currently,
466*0Sstevel@tonic-gatethe space and the tab).
467*0Sstevel@tonic-gate
468*0Sstevel@tonic-gate=item *
469*0Sstevel@tonic-gate
470*0Sstevel@tonic-gate$AUTOLOAD, sort(), lock(), and spawning subprocesses
471*0Sstevel@tonic-gatein multiple threads simultaneously are now thread-safe.
472*0Sstevel@tonic-gate
473*0Sstevel@tonic-gate=item *
474*0Sstevel@tonic-gate
475*0Sstevel@tonic-gateAllow read-only string on left hand side of non-modifying tr///.
476*0Sstevel@tonic-gate
477*0Sstevel@tonic-gate=item *
478*0Sstevel@tonic-gate
479*0Sstevel@tonic-gateSeveral Unicode fixes (but still not perfect).
480*0Sstevel@tonic-gate
481*0Sstevel@tonic-gate=over 8
482*0Sstevel@tonic-gate
483*0Sstevel@tonic-gate=item *
484*0Sstevel@tonic-gate
485*0Sstevel@tonic-gateBOMs (byte order marks) in the beginning of Perl files
486*0Sstevel@tonic-gate(scripts, modules) should now be transparently skipped.
487*0Sstevel@tonic-gateUTF-16 (UCS-2) encoded Perl files should now be read correctly.
488*0Sstevel@tonic-gate
489*0Sstevel@tonic-gate=item *
490*0Sstevel@tonic-gate
491*0Sstevel@tonic-gateThe character tables have been updated to Unicode 3.0.1.
492*0Sstevel@tonic-gate
493*0Sstevel@tonic-gate=item *
494*0Sstevel@tonic-gate
495*0Sstevel@tonic-gatechr() for values greater than 127 now create utf8 when under use
496*0Sstevel@tonic-gateutf8.
497*0Sstevel@tonic-gate
498*0Sstevel@tonic-gate=item *
499*0Sstevel@tonic-gate
500*0Sstevel@tonic-gateComparing with utf8 data does not magically upgrade non-utf8 data into
501*0Sstevel@tonic-gateutf8.
502*0Sstevel@tonic-gate
503*0Sstevel@tonic-gate=item *
504*0Sstevel@tonic-gate
505*0Sstevel@tonic-gateC<IsAlnum>, C<IsAlpha>, and C<IsWord> now match titlecase.
506*0Sstevel@tonic-gate
507*0Sstevel@tonic-gate=item *
508*0Sstevel@tonic-gate
509*0Sstevel@tonic-gateConcatenation with the C<.> operator or via variable interpolation,
510*0Sstevel@tonic-gateC<eq>, C<substr>, C<reverse>, C<quotemeta>, the C<x> operator,
511*0Sstevel@tonic-gatesubstitution with C<s///>, single-quoted UTF-8, should now work--in
512*0Sstevel@tonic-gatetheory.
513*0Sstevel@tonic-gate
514*0Sstevel@tonic-gate=item *
515*0Sstevel@tonic-gate
516*0Sstevel@tonic-gateThe C<tr///> operator now works I<slightly> better but is still rather
517*0Sstevel@tonic-gatebroken.  Note that the C<tr///CU> functionality has been removed (but
518*0Sstevel@tonic-gatesee pack('U0', ...)).
519*0Sstevel@tonic-gate
520*0Sstevel@tonic-gate=item *
521*0Sstevel@tonic-gate
522*0Sstevel@tonic-gatevec() now refuses to deal with characters >255.
523*0Sstevel@tonic-gate
524*0Sstevel@tonic-gate=item *
525*0Sstevel@tonic-gate
526*0Sstevel@tonic-gateZero entries were missing from the Unicode classes like C<IsDigit>.
527*0Sstevel@tonic-gate
528*0Sstevel@tonic-gate=back
529*0Sstevel@tonic-gate
530*0Sstevel@tonic-gate=item *
531*0Sstevel@tonic-gate
532*0Sstevel@tonic-gateUNIVERSAL::isa no longer caches methods incorrectly.  (This broke
533*0Sstevel@tonic-gatethe Tk extension with 5.6.0.)
534*0Sstevel@tonic-gate
535*0Sstevel@tonic-gate=back
536*0Sstevel@tonic-gate
537*0Sstevel@tonic-gate=head2 Platform Specific Changes and Fixes
538*0Sstevel@tonic-gate
539*0Sstevel@tonic-gate=over 4
540*0Sstevel@tonic-gate
541*0Sstevel@tonic-gate=item *
542*0Sstevel@tonic-gate
543*0Sstevel@tonic-gateBSDI 4.*
544*0Sstevel@tonic-gate
545*0Sstevel@tonic-gatePerl now works on post-4.0 BSD/OSes.
546*0Sstevel@tonic-gate
547*0Sstevel@tonic-gate=item *
548*0Sstevel@tonic-gate
549*0Sstevel@tonic-gateAll BSDs
550*0Sstevel@tonic-gate
551*0Sstevel@tonic-gateSetting C<$0> now works (as much as possible; see perlvar for details).
552*0Sstevel@tonic-gate
553*0Sstevel@tonic-gate=item *
554*0Sstevel@tonic-gate
555*0Sstevel@tonic-gateCygwin
556*0Sstevel@tonic-gate
557*0Sstevel@tonic-gateNumerous updates; currently synchronised with Cygwin 1.1.4.
558*0Sstevel@tonic-gate
559*0Sstevel@tonic-gate=item *
560*0Sstevel@tonic-gate
561*0Sstevel@tonic-gateEPOC
562*0Sstevel@tonic-gate
563*0Sstevel@tonic-gateEPOC update after Perl 5.6.0.  See README.epoc.
564*0Sstevel@tonic-gate
565*0Sstevel@tonic-gate=item *
566*0Sstevel@tonic-gate
567*0Sstevel@tonic-gateFreeBSD 3.*
568*0Sstevel@tonic-gate
569*0Sstevel@tonic-gatePerl now works on post-3.0 FreeBSDs.
570*0Sstevel@tonic-gate
571*0Sstevel@tonic-gate=item *
572*0Sstevel@tonic-gate
573*0Sstevel@tonic-gateHP-UX
574*0Sstevel@tonic-gate
575*0Sstevel@tonic-gateREADME.hpux updated; C<Configure -Duse64bitall> now almost works.
576*0Sstevel@tonic-gate
577*0Sstevel@tonic-gate=item *
578*0Sstevel@tonic-gate
579*0Sstevel@tonic-gateIRIX
580*0Sstevel@tonic-gate
581*0Sstevel@tonic-gateNumerous compilation flag and hint enhancements; accidental mixing
582*0Sstevel@tonic-gateof 32-bit and 64-bit libraries (a doomed attempt) made much harder.
583*0Sstevel@tonic-gate
584*0Sstevel@tonic-gate=item *
585*0Sstevel@tonic-gate
586*0Sstevel@tonic-gateLinux
587*0Sstevel@tonic-gate
588*0Sstevel@tonic-gateLong doubles should now work (see INSTALL).
589*0Sstevel@tonic-gate
590*0Sstevel@tonic-gate=item *
591*0Sstevel@tonic-gate
592*0Sstevel@tonic-gateMac OS Classic
593*0Sstevel@tonic-gate
594*0Sstevel@tonic-gateCompilation of the standard Perl distribution in Mac OS Classic should
595*0Sstevel@tonic-gatenow work if you have the Metrowerks development environment and the
596*0Sstevel@tonic-gatemissing Mac-specific toolkit bits.  Contact the macperl mailing list
597*0Sstevel@tonic-gatefor details.
598*0Sstevel@tonic-gate
599*0Sstevel@tonic-gate=item *
600*0Sstevel@tonic-gate
601*0Sstevel@tonic-gateMPE/iX
602*0Sstevel@tonic-gate
603*0Sstevel@tonic-gateMPE/iX update after Perl 5.6.0.  See README.mpeix.
604*0Sstevel@tonic-gate
605*0Sstevel@tonic-gate=item *
606*0Sstevel@tonic-gate
607*0Sstevel@tonic-gateNetBSD/sparc
608*0Sstevel@tonic-gate
609*0Sstevel@tonic-gatePerl now works on NetBSD/sparc.
610*0Sstevel@tonic-gate
611*0Sstevel@tonic-gate=item *
612*0Sstevel@tonic-gate
613*0Sstevel@tonic-gateOS/2
614*0Sstevel@tonic-gate
615*0Sstevel@tonic-gateNow works with usethreads (see INSTALL).
616*0Sstevel@tonic-gate
617*0Sstevel@tonic-gate=item *
618*0Sstevel@tonic-gate
619*0Sstevel@tonic-gateSolaris
620*0Sstevel@tonic-gate
621*0Sstevel@tonic-gate64-bitness using the Sun Workshop compiler now works.
622*0Sstevel@tonic-gate
623*0Sstevel@tonic-gate=item *
624*0Sstevel@tonic-gate
625*0Sstevel@tonic-gateTru64 (aka Digital UNIX, aka DEC OSF/1)
626*0Sstevel@tonic-gate
627*0Sstevel@tonic-gateThe operating system version letter now recorded in $Config{osvers}.
628*0Sstevel@tonic-gateAllow compiling with gcc (previously explicitly forbidden).  Compiling
629*0Sstevel@tonic-gatewith gcc still not recommended because buggy code results, even with
630*0Sstevel@tonic-gategcc 2.95.2.
631*0Sstevel@tonic-gate
632*0Sstevel@tonic-gate=item *
633*0Sstevel@tonic-gate
634*0Sstevel@tonic-gateUnicos
635*0Sstevel@tonic-gate
636*0Sstevel@tonic-gateFixed various alignment problems that lead into core dumps either
637*0Sstevel@tonic-gateduring build or later; no longer dies on math errors at runtime;
638*0Sstevel@tonic-gatenow using full quad integers (64 bits), previously was using
639*0Sstevel@tonic-gateonly 46 bit integers for speed.
640*0Sstevel@tonic-gate
641*0Sstevel@tonic-gate=item *
642*0Sstevel@tonic-gate
643*0Sstevel@tonic-gateVMS
644*0Sstevel@tonic-gate
645*0Sstevel@tonic-gatechdir() now works better despite a CRT bug; now works with MULTIPLICITY
646*0Sstevel@tonic-gate(see INSTALL); now works with Perl's malloc.
647*0Sstevel@tonic-gate
648*0Sstevel@tonic-gate=item *
649*0Sstevel@tonic-gate
650*0Sstevel@tonic-gateWindows
651*0Sstevel@tonic-gate
652*0Sstevel@tonic-gate=over 8
653*0Sstevel@tonic-gate
654*0Sstevel@tonic-gate=item *
655*0Sstevel@tonic-gate
656*0Sstevel@tonic-gateaccept() no longer leaks memory.
657*0Sstevel@tonic-gate
658*0Sstevel@tonic-gate=item *
659*0Sstevel@tonic-gate
660*0Sstevel@tonic-gateBetter chdir() return value for a non-existent directory.
661*0Sstevel@tonic-gate
662*0Sstevel@tonic-gate=item *
663*0Sstevel@tonic-gate
664*0Sstevel@tonic-gateNew %ENV entries now propagate to subprocesses.
665*0Sstevel@tonic-gate
666*0Sstevel@tonic-gate=item *
667*0Sstevel@tonic-gate
668*0Sstevel@tonic-gate$ENV{LIB} now used to search for libs under Visual C.
669*0Sstevel@tonic-gate
670*0Sstevel@tonic-gate=item *
671*0Sstevel@tonic-gate
672*0Sstevel@tonic-gateA failed (pseudo)fork now returns undef and sets errno to EAGAIN.
673*0Sstevel@tonic-gate
674*0Sstevel@tonic-gate=item *
675*0Sstevel@tonic-gate
676*0Sstevel@tonic-gateAllow REG_EXPAND_SZ keys in the registry.
677*0Sstevel@tonic-gate
678*0Sstevel@tonic-gate=item *
679*0Sstevel@tonic-gate
680*0Sstevel@tonic-gateCan now send() from all threads, not just the first one.
681*0Sstevel@tonic-gate
682*0Sstevel@tonic-gate=item *
683*0Sstevel@tonic-gate
684*0Sstevel@tonic-gateFake signal handling reenabled, bugs and all.
685*0Sstevel@tonic-gate
686*0Sstevel@tonic-gate=item *
687*0Sstevel@tonic-gate
688*0Sstevel@tonic-gateLess stack reserved per thread so that more threads can run
689*0Sstevel@tonic-gateconcurrently. (Still 16M per thread.)
690*0Sstevel@tonic-gate
691*0Sstevel@tonic-gate=item *
692*0Sstevel@tonic-gate
693*0Sstevel@tonic-gateC<< File::Spec->tmpdir() >> now prefers C:/temp over /tmp
694*0Sstevel@tonic-gate(works better when perl is running as service).
695*0Sstevel@tonic-gate
696*0Sstevel@tonic-gate=item *
697*0Sstevel@tonic-gate
698*0Sstevel@tonic-gateBetter UNC path handling under ithreads.
699*0Sstevel@tonic-gate
700*0Sstevel@tonic-gate=item *
701*0Sstevel@tonic-gate
702*0Sstevel@tonic-gatewait() and waitpid() now work much better.
703*0Sstevel@tonic-gate
704*0Sstevel@tonic-gate=item *
705*0Sstevel@tonic-gate
706*0Sstevel@tonic-gatewinsock handle leak fixed.
707*0Sstevel@tonic-gate
708*0Sstevel@tonic-gate=back
709*0Sstevel@tonic-gate
710*0Sstevel@tonic-gate=back
711*0Sstevel@tonic-gate
712*0Sstevel@tonic-gate=head1 New or Changed Diagnostics
713*0Sstevel@tonic-gate
714*0Sstevel@tonic-gateAll regular expression compilation error messages are now hopefully
715*0Sstevel@tonic-gateeasier to understand both because the error message now comes before
716*0Sstevel@tonic-gatethe failed regex and because the point of failure is now clearly
717*0Sstevel@tonic-gatemarked.
718*0Sstevel@tonic-gate
719*0Sstevel@tonic-gateThe various "opened only for", "on closed", "never opened" warnings
720*0Sstevel@tonic-gatedrop the C<main::> prefix for filehandles in the C<main> package,
721*0Sstevel@tonic-gatefor example C<STDIN> instead of <main::STDIN>.
722*0Sstevel@tonic-gate
723*0Sstevel@tonic-gateThe "Unrecognized escape" warning has been extended to include C<\8>,
724*0Sstevel@tonic-gateC<\9>, and C<\_>.  There is no need to escape any of the C<\w> characters.
725*0Sstevel@tonic-gate
726*0Sstevel@tonic-gate=head1 Changed Internals
727*0Sstevel@tonic-gate
728*0Sstevel@tonic-gate=over 4
729*0Sstevel@tonic-gate
730*0Sstevel@tonic-gate=item *
731*0Sstevel@tonic-gate
732*0Sstevel@tonic-gateperlapi.pod (a companion to perlguts) now attempts to document the
733*0Sstevel@tonic-gateinternal API.
734*0Sstevel@tonic-gate
735*0Sstevel@tonic-gate=item *
736*0Sstevel@tonic-gate
737*0Sstevel@tonic-gateYou can now build a really minimal perl called microperl.
738*0Sstevel@tonic-gateBuilding microperl does not require even running Configure;
739*0Sstevel@tonic-gateC<make -f Makefile.micro> should be enough.  Beware: microperl makes
740*0Sstevel@tonic-gatemany assumptions, some of which may be too bold; the resulting
741*0Sstevel@tonic-gateexecutable may crash or otherwise misbehave in wondrous ways.
742*0Sstevel@tonic-gateFor careful hackers only.
743*0Sstevel@tonic-gate
744*0Sstevel@tonic-gate=item *
745*0Sstevel@tonic-gate
746*0Sstevel@tonic-gateAdded rsignal(), whichsig(), do_join() to the publicised API.
747*0Sstevel@tonic-gate
748*0Sstevel@tonic-gate=item *
749*0Sstevel@tonic-gate
750*0Sstevel@tonic-gateMade possible to propagate customised exceptions via croak()ing.
751*0Sstevel@tonic-gate
752*0Sstevel@tonic-gate=item *
753*0Sstevel@tonic-gate
754*0Sstevel@tonic-gateAdded is_utf8_char(), is_utf8_string(), bytes_to_utf8(), and utf8_to_bytes().
755*0Sstevel@tonic-gate
756*0Sstevel@tonic-gate=item *
757*0Sstevel@tonic-gate
758*0Sstevel@tonic-gateNow xsubs can have attributes just like subs.
759*0Sstevel@tonic-gate
760*0Sstevel@tonic-gate=back
761*0Sstevel@tonic-gate
762*0Sstevel@tonic-gate=head1 Known Problems
763*0Sstevel@tonic-gate
764*0Sstevel@tonic-gate=head2 Unicode Support Still Far From Perfect
765*0Sstevel@tonic-gate
766*0Sstevel@tonic-gateWe're working on it.  Stay tuned.
767*0Sstevel@tonic-gate
768*0Sstevel@tonic-gate=head2 EBCDIC Still A Lost Platform
769*0Sstevel@tonic-gate
770*0Sstevel@tonic-gateThe plan is to bring them back.
771*0Sstevel@tonic-gate
772*0Sstevel@tonic-gate=head2 Building Extensions Can Fail Because Of Largefiles
773*0Sstevel@tonic-gate
774*0Sstevel@tonic-gateCertain extensions like mod_perl and BSD::Resource are known to have
775*0Sstevel@tonic-gateissues with `largefiles', a change brought by Perl 5.6.0 in which file
776*0Sstevel@tonic-gateoffsets default to 64 bits wide, where supported.  Modules may fail to
777*0Sstevel@tonic-gatecompile at all or compile and work incorrectly.  Currently there is no
778*0Sstevel@tonic-gategood solution for the problem, but Configure now provides appropriate
779*0Sstevel@tonic-gatenon-largefile ccflags, ldflags, libswanted, and libs in the %Config
780*0Sstevel@tonic-gatehash (e.g., $Config{ccflags_nolargefiles}) so the extensions that are
781*0Sstevel@tonic-gatehaving problems can try configuring themselves without the
782*0Sstevel@tonic-gatelargefileness.  This is admittedly not a clean solution, and the
783*0Sstevel@tonic-gatesolution may not even work at all.  One potential failure is whether
784*0Sstevel@tonic-gateone can (or, if one can, whether it's a good idea) link together at
785*0Sstevel@tonic-gateall binaries with different ideas about file offsets, all this is
786*0Sstevel@tonic-gateplatform-dependent.
787*0Sstevel@tonic-gate
788*0Sstevel@tonic-gate=head2 ftmp-security tests warn 'system possibly insecure'
789*0Sstevel@tonic-gate
790*0Sstevel@tonic-gateDon't panic.  Read INSTALL 'make test' section instead.
791*0Sstevel@tonic-gate
792*0Sstevel@tonic-gate=head2 Test lib/posix Subtest 9 Fails In LP64-Configured HP-UX
793*0Sstevel@tonic-gate
794*0Sstevel@tonic-gateIf perl is configured with -Duse64bitall, the successful result of the
795*0Sstevel@tonic-gatesubtest 10 of lib/posix may arrive before the successful result of the
796*0Sstevel@tonic-gatesubtest 9, which confuses the test harness so much that it thinks the
797*0Sstevel@tonic-gatesubtest 9 failed.
798*0Sstevel@tonic-gate
799*0Sstevel@tonic-gate=head2 Long Doubles Still Don't Work In Solaris
800*0Sstevel@tonic-gate
801*0Sstevel@tonic-gateThe experimental long double support is still very much so in Solaris.
802*0Sstevel@tonic-gate(Other platforms like Linux and Tru64 are beginning to solidify in
803*0Sstevel@tonic-gatethis area.)
804*0Sstevel@tonic-gate
805*0Sstevel@tonic-gate=head2 Linux With Sfio Fails op/misc Test 48
806*0Sstevel@tonic-gate
807*0Sstevel@tonic-gateNo known fix.
808*0Sstevel@tonic-gate
809*0Sstevel@tonic-gate=head2 Storable tests fail in some platforms
810*0Sstevel@tonic-gate
811*0Sstevel@tonic-gateIf any Storable tests fail the use of Storable is not advisable.
812*0Sstevel@tonic-gate
813*0Sstevel@tonic-gate=over 4
814*0Sstevel@tonic-gate
815*0Sstevel@tonic-gate=item *
816*0Sstevel@tonic-gate
817*0Sstevel@tonic-gateMany Storable tests fail on AIX configured with 64 bit integers.
818*0Sstevel@tonic-gate
819*0Sstevel@tonic-gateSo far unidentified problems break Storable in AIX if Perl is
820*0Sstevel@tonic-gateconfigured to use 64 bit integers.  AIX in 32-bit mode works and
821*0Sstevel@tonic-gateother 64-bit platforms work with Storable.
822*0Sstevel@tonic-gate
823*0Sstevel@tonic-gate=item *
824*0Sstevel@tonic-gate
825*0Sstevel@tonic-gateDOS DJGPP may hang when testing Storable.
826*0Sstevel@tonic-gate
827*0Sstevel@tonic-gate=item *
828*0Sstevel@tonic-gate
829*0Sstevel@tonic-gatest-06compat fails in UNICOS and UNICOS/mk.
830*0Sstevel@tonic-gate
831*0Sstevel@tonic-gateThis means that you cannot read old (pre-Storable-0.7) Storable images
832*0Sstevel@tonic-gatemade in other platforms.
833*0Sstevel@tonic-gate
834*0Sstevel@tonic-gate=item *
835*0Sstevel@tonic-gate
836*0Sstevel@tonic-gatest-store.t and st-retrieve may fail with Compaq C 6.2 on OpenVMS Alpha 7.2.
837*0Sstevel@tonic-gate
838*0Sstevel@tonic-gate=back
839*0Sstevel@tonic-gate
840*0Sstevel@tonic-gate=head2 Threads Are Still Experimental
841*0Sstevel@tonic-gate
842*0Sstevel@tonic-gateMultithreading is still an experimental feature.  Some platforms
843*0Sstevel@tonic-gateemit the following message for lib/thr5005
844*0Sstevel@tonic-gate
845*0Sstevel@tonic-gate    #
846*0Sstevel@tonic-gate    # This is a KNOWN FAILURE, and one of the reasons why threading
847*0Sstevel@tonic-gate    # is still an experimental feature.  It is here to stop people
848*0Sstevel@tonic-gate    # from deploying threads in production. ;-)
849*0Sstevel@tonic-gate    #
850*0Sstevel@tonic-gate
851*0Sstevel@tonic-gateand another known thread-related warning is
852*0Sstevel@tonic-gate
853*0Sstevel@tonic-gate   pragma/overload......Unbalanced saves: 3 more saves than restores
854*0Sstevel@tonic-gate   panic: magic_mutexfree during global destruction.
855*0Sstevel@tonic-gate   ok
856*0Sstevel@tonic-gate   lib/selfloader.......Unbalanced saves: 3 more saves than restores
857*0Sstevel@tonic-gate   panic: magic_mutexfree during global destruction.
858*0Sstevel@tonic-gate   ok
859*0Sstevel@tonic-gate   lib/st-dclone........Unbalanced saves: 3 more saves than restores
860*0Sstevel@tonic-gate   panic: magic_mutexfree during global destruction.
861*0Sstevel@tonic-gate   ok
862*0Sstevel@tonic-gate
863*0Sstevel@tonic-gate=head2 The Compiler Suite Is Still Experimental
864*0Sstevel@tonic-gate
865*0Sstevel@tonic-gateThe compiler suite is slowly getting better but is nowhere near
866*0Sstevel@tonic-gateworking order yet.  The backend part that has seen perhaps the most
867*0Sstevel@tonic-gateprogress is the bytecode compiler.
868*0Sstevel@tonic-gate
869*0Sstevel@tonic-gate=head1 Reporting Bugs
870*0Sstevel@tonic-gate
871*0Sstevel@tonic-gateIf you find what you think is a bug, you might check the articles
872*0Sstevel@tonic-gaterecently posted to the comp.lang.perl.misc newsgroup and the perl
873*0Sstevel@tonic-gatebug database at http://bugs.perl.org/  There may also be
874*0Sstevel@tonic-gateinformation at http://www.perl.com/perl/ , the Perl Home Page.
875*0Sstevel@tonic-gate
876*0Sstevel@tonic-gateIf you believe you have an unreported bug, please run the B<perlbug>
877*0Sstevel@tonic-gateprogram included with your release.  Be sure to trim your bug down
878*0Sstevel@tonic-gateto a tiny but sufficient test case.  Your bug report, along with the
879*0Sstevel@tonic-gateoutput of C<perl -V>, will be sent off to perlbug@perl.org to be
880*0Sstevel@tonic-gateanalysed by the Perl porting team.
881*0Sstevel@tonic-gate
882*0Sstevel@tonic-gate=head1 SEE ALSO
883*0Sstevel@tonic-gate
884*0Sstevel@tonic-gateThe F<Changes> file for exhaustive details on what changed.
885*0Sstevel@tonic-gate
886*0Sstevel@tonic-gateThe F<INSTALL> file for how to build Perl.
887*0Sstevel@tonic-gate
888*0Sstevel@tonic-gateThe F<README> file for general stuff.
889*0Sstevel@tonic-gate
890*0Sstevel@tonic-gateThe F<Artistic> and F<Copying> files for copyright information.
891*0Sstevel@tonic-gate
892*0Sstevel@tonic-gate=head1 HISTORY
893*0Sstevel@tonic-gate
894*0Sstevel@tonic-gateWritten by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributions
895*0Sstevel@tonic-gatefrom The Perl Porters and Perl Users submitting feedback and patches.
896*0Sstevel@tonic-gate
897*0Sstevel@tonic-gateSend omissions or corrections to <F<perlbug@perl.org>>.
898*0Sstevel@tonic-gate
899*0Sstevel@tonic-gate=cut
900