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