Document the new ref() semantics.
[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
bc723577 518vec() now refuses to deal with characters >255.
519
520=item *
521
ce72e97c 522Zero entries were missing from the Unicode classes like C<IsDigit>.
53080bb1 523
524=back
525
ce72e97c 526=item *
53080bb1 527
ce72e97c 528UNIVERSAL::isa no longer caches methods incorrectly. (This broke
529the Tk extension with 5.6.0.)
53080bb1 530
ce72e97c 531=back
53080bb1 532
ce72e97c 533=head2 Platform Specific Changes and Fixes
53080bb1 534
535=over 4
536
537=item *
538
ce72e97c 539BSDI 4.*
53080bb1 540
ce72e97c 541Perl now works on post-4.0 BSD/OSes.
53080bb1 542
ce72e97c 543=item *
53080bb1 544
ce72e97c 545All BSDs
53080bb1 546
ce72e97c 547Setting C<$0> now works (as much as possible; see perlvar for details).
53080bb1 548
ce72e97c 549=item *
53080bb1 550
ce72e97c 551Cygwin
53080bb1 552
ce72e97c 553Numerous updates; currently synchronised with Cygwin 1.1.4.
53080bb1 554
555=item *
556
ce72e97c 557EPOC
53080bb1 558
ce72e97c 559EPOC update after Perl 5.6.0. See README.epoc.
53080bb1 560
ce72e97c 561=item *
53080bb1 562
ce72e97c 563FreeBSD 3.*
53080bb1 564
ce72e97c 565Perl now works on post-3.0 FreeBSDs.
53080bb1 566
567=item *
568
ce72e97c 569HP-UX
53080bb1 570
ce72e97c 571README.hpux updated; C<Configure -Duse64bitall> now almost works.
53080bb1 572
ce72e97c 573=item *
53080bb1 574
ce72e97c 575IRIX
53080bb1 576
ce72e97c 577Numerous compilation flag and hint enhancements; accidental mixing
578of 32-bit and 64-bit libraries (a doomed attempt) made much harder.
53080bb1 579
580=item *
581
ce72e97c 582Linux
53080bb1 583
ce72e97c 584Long doubles should now work (see INSTALL).
53080bb1 585
586=item *
587
ce72e97c 588MacOS Classic
589
53080bb1 590Compilation of the standard Perl distribution in MacOS Classic should
ce72e97c 591now work if you have the Metrowerks development environment and
592the missing Mac-specific toolkit bits. Contact the macperl mailing
53080bb1 593list for details.
594
ce72e97c 595=item *
53080bb1 596
ce72e97c 597MPE/iX
53080bb1 598
ce72e97c 599MPE/iX update after Perl 5.6.0. See README.mpeix.
53080bb1 600
ce72e97c 601=item *
53080bb1 602
ce72e97c 603NetBSD/sparc
53080bb1 604
ce72e97c 605Perl now works on NetBSD/sparc.
53080bb1 606
607=item *
608
ce72e97c 609OS/2
53080bb1 610
ce72e97c 611Now works with usethreads (see INSTALL).
53080bb1 612
613=item *
614
ce72e97c 615Solaris
53080bb1 616
ce72e97c 61764-bitness using the Sun Workshop compiler now works.
53080bb1 618
619=item *
620
ce72e97c 621Tru64 (aka Digital UNIX, aka DEC OSF/1)
622
623The operating system version letter now recorded in $Config{osvers}.
53080bb1 624Allow compiling with gcc (previously explicitly forbidden). Compiling
625with gcc still not recommended because buggy code results, even with
626gcc 2.95.2.
627
628=item *
629
ce72e97c 630Unicos
53080bb1 631
632Fixed various alignment problems that lead into core dumps either
ce72e97c 633during build or later; no longer dies on math errors at runtime;
634now using full quad integers (64 bits), previously was using
b84d4f81 635only 46 bit integers for speed.
53080bb1 636
53080bb1 637=item *
638
ce72e97c 639VMS
53080bb1 640
ce72e97c 641chdir() now works better despite a CRT bug; now works with MULTIPLICITY
642(see INSTALL); now works with Perl's malloc.
53080bb1 643
644=item *
645
ce72e97c 646Windows
53080bb1 647
ce72e97c 648=over 8
53080bb1 649
650=item *
651
d4ad863d 652accept() no longer leaks memory.
53080bb1 653
654=item *
655
656Better chdir() return value for a non-existent directory.
657
658=item *
659
660New %ENV entries now propagate to subprocesses.
661
662=item *
663
664$ENV{LIB} now used to search for libs under Visual C.
665
666=item *
667
668A failed (pseudo)fork now returns undef and sets errno to EAGAIN.
669
670=item *
671
672Allow REG_EXPAND_SZ keys in the registry.
673
674=item *
675
676Can now send() from all threads, not just the first one.
677
678=item *
679
680Fake signal handling reenabled, bugs and all.
681
682=item *
683
684Less stack reserved per thread so that more threads can run
0aa7271f 685concurrently. (Still 16M per thread.)
53080bb1 686
687=item *
688
689C<File::Spec->tmpdir()> now prefers C:/temp over /tmp
0aa7271f 690(works better when perl is running as service).
53080bb1 691
692=item *
693
694Better UNC path handling under ithreads.
695
696=item *
697
698wait() and waitpid() now work much better.
699
700=item *
701
702winsock handle leak fixed.
703
704=back
705
cc0fca54 706=head1 New or Changed Diagnostics
707
53080bb1 708All regular expression compilation error messages are now hopefully
709easier to understand both because the error message now comes before
710the failed regex and because the point of failure is now clearly
711marked.
712
713The various "opened only for", "on closed", "never opened" warnings
714drop the C<main::> prefix for filehandles in the C<main> package,
562628a3 715for example C<STDIN> instead of <main::STDIN>.
53080bb1 716
d4ad863d 717The "Unrecognized escape" warning has been extended to include C<\8>,
718C<\9>, and C<\_>. There is no need to escape any of the C<\w> characters.
53080bb1 719
53080bb1 720=head1 Changed Internals
721
ce72e97c 722=over 4
723
724=item *
53080bb1 725
d4ad863d 726perlapi.pod (a companion to perlguts) now attempts to document the
727internal API.
53080bb1 728
ce72e97c 729=item *
53080bb1 730
ce72e97c 731You can now build a really minimal perl called microperl.
d4ad863d 732Building microperl does not require even running Configure;
733C<make -f Makefile.micro> should be enough. Beware: microperl makes
734many assumptions, some of which may be too bold; the resulting
0aa7271f 735executable may crash or otherwise misbehave in wondrous ways.
736For careful hackers only.
53080bb1 737
ce72e97c 738=item *
53080bb1 739
43b92eec 740Added rsignal(), whichsig(), do_join() to the publicised API.
53080bb1 741
ce72e97c 742=item *
53080bb1 743
43b92eec 744Made possible to propagate customised exceptions via croak()ing.
53080bb1 745
ce72e97c 746=item *
53080bb1 747
748Added is_utf8_char(), is_utf8_string(), bytes_to_utf8(), and utf8_to_bytes().
749
ce72e97c 750=item *
53080bb1 751
752Now xsubs can have attributes just like subs.
753
ce72e97c 754=back
755
cc0fca54 756=head1 Known Problems
757
53080bb1 758=head2 Unicode Support Still Far From Perfect
759
760We're working on it. Stay tuned.
761
762=head2 EBCDIC Still A Lost Platform
763
764The plan is to bring them back.
765
766=head2 Building Extensions Can Fail Because Of Largefiles
767
768Certain extensions like mod_perl and BSD::Resource are known to have
ce72e97c 769issues with `largefiles', a change brought by Perl 5.6.0 in which file
4b2ec495 770offsets default to 64 bits wide, where supported. Modules may fail to
ce72e97c 771compile at all or compile and work incorrectly. Currently there is no
4b2ec495 772good solution for the problem, but Configure now provides appropriate
773non-largefile ccflags, ldflags, libswanted, and libs in the %Config
774hash (e.g., $Config{ccflags_nolargefiles}) so the extensions that are
775having problems can try configuring themselves without the
776largefileness. This is admittedly not a clean solution, and the
777solution may not even work at all. One potential failure is whether
778one can (or, if one can, whether it's a good idea) link together at
779all binaries with different ideas about file offsets, all this is
780platform-dependent.
53080bb1 781
9dc46381 782=head2 ftmp-security tests warn 'system possibly insecure'
783
784Don't panic. Read INSTALL 'make test' section instead.
785
446288b8 786=head2 Test lib/posix Subtest 9 Fails In LP64-Configured HP-UX
787
788If perl is configured with -Duse64bitall, the successful result of the
789subtest 10 of lib/posix may arrive before the successful result of the
790subtest 9, which confuses the test harness so much that it thinks the
791subtest 9 failed.
792
9dc46381 793=head2 Long Doubles Still Don't Work In Solaris
794
795The experimental long double support is still very much so in Solaris.
2ff7ee21 796(Other platforms like Linux and Tru64 are beginning to solidify in
797this area.)
d184b07b 798
1047c2b3 799=head2 Linux With Sfio Fails op/misc Test 48
800
801No known fix.
802
d184b07b 803=head2 Storable tests fail in some platforms
804
2ff7ee21 805If any Storable tests fail the use of Storable is not advisable.
806
d184b07b 807=over 4
808
809=item *
810
811Many Storable tests fail on AIX configured with 64 bit integers.
812
813So far unidentified problems break Storable in AIX if Perl is
814configured to use 64 bit integers. AIX in 32-bit mode works and
815other 64-bit platforms work with Storable.
816
817=item *
818
819DOS DJGPP may hang when testing Storable.
820
821=item *
822
823st-06compat fails in UNICOS and UNICOS/mk.
24e657a8 824
825This means that you cannot read old (pre-Storable-0.7) Storable images
826made in other platforms.
827
2ff7ee21 828=item *
829
830st-store.t and st-retrieve may fail with Compaq C 6.2 on OpenVMS Alpha 7.2.
831
33a87e58 832=head2 Threads Are Still Experimental
833
834Multithreading is still an experimental feature. Some platforms
835emit the following message for lib/thr5005
836
837 #
838 # This is a KNOWN FAILURE, and one of the reasons why threading
839 # is still an experimental feature. It is here to stop people
840 # from deploying threads in production. ;-)
841 #
842
0aa7271f 843and another known thread-related warning is
33a87e58 844
845 pragma/overload......Unbalanced saves: 3 more saves than restores
846 panic: magic_mutexfree during global destruction.
847 ok
848 lib/selfloader.......Unbalanced saves: 3 more saves than restores
849 panic: magic_mutexfree during global destruction.
850 ok
851 lib/st-dclone........Unbalanced saves: 3 more saves than restores
852 panic: magic_mutexfree during global destruction.
853 ok
854
855=head2 The Compiler Suite Is Still Experimental
856
0aa7271f 857The compiler suite is slowly getting better but is nowhere near
858working order yet. The backend part that has seen perhaps the most
859progress is the bytecode compiler.
33a87e58 860
d184b07b 861=back
862
cc0fca54 863=head1 Reporting Bugs
864
d4ad863d 865If you find what you think is a bug, you might check the articles
866recently posted to the comp.lang.perl.misc newsgroup and the perl
867bug database at http://bugs.perl.org. There may also be
868information at http://www.perl.com/perl/, the Perl Home Page.
cc0fca54 869
870If you believe you have an unreported bug, please run the B<perlbug>
871program included with your release. Be sure to trim your bug down
872to a tiny but sufficient test case. Your bug report, along with the
d4ad863d 873output of C<perl -V>, will be sent off to perlbug@perl.org to be
cc0fca54 874analysed by the Perl porting team.
875
876=head1 SEE ALSO
877
878The F<Changes> file for exhaustive details on what changed.
879
880The F<INSTALL> file for how to build Perl.
881
882The F<README> file for general stuff.
883
884The F<Artistic> and F<Copying> files for copyright information.
885
886=head1 HISTORY
887
53080bb1 888Written by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributions
889from The Perl Porters and Perl Users submitting feedback and patches.
cc0fca54 890
d4ad863d 891Send omissions or corrections to <F<perlbug@perl.org>>.
cc0fca54 892
893=cut