Document the changes with regards to running of END blocks.
[p5sagit/p5-mst-13.2.git] / pod / perl572delta.pod
CommitLineData
43d4bbc8 1=head1 NAME
2
d5f2cb03 3perl572delta - what's new for perl v5.7.2
43d4bbc8 4
5=head1 DESCRIPTION
6
7This document describes differences between the 5.7.1 release and the
85.7.2 release.
9
10(To view the differences between the 5.6.0 release and the 5.7.0
11release, see L<perl570delta>. To view the differences between the
125.7.0 release and the 5.7.1 release, see L<perl571delta>.)
13
14=head1 Security Vulnerability Closed
15
16(This change was already made in 5.7.0 but bears repeating here.)
17
18A security vulnerability affecting all Perl versions prior to 5.6.1
19was found in August 2000. The vulnerability does not affect default
20installations and as far as is known affects only the Linux platform.
21
22You should upgrade your Perl to 5.6.1 as soon as possible. Patches
267a12e6 23for earlier releases exist but using the patches require full
24recompilation from the source code anyway, so 5.6.1 is your best
25choice.
26
43d4bbc8 27See http://www.cpan.org/src/5.0/sperl-2000-08-05/sperl-2000-08-05.txt
28for more information.
29
30=head1 Incompatible Changes
31
699e893f 32=head2 64-bit platforms and malloc
33
267a12e6 34If your pointers are 64 bits wide, the Perl malloc is no more being
35used because it simply does not work with 8-byte pointers. Also,
36usually the system malloc on such platforms are much better optimized
37for such large memory models than the Perl malloc.
38
d7b629d9 39=head2 AIX Dynaloading
40
12f54d27 41The AIX dynaloading now uses in AIX releases 4.3 and newer the native
42dlopen interface of AIX instead of the old emulated interface. This
43change will probably break backward compatibility with compiled
44modules. The change was made to make Perl more compliant with other
45applications like modperl which are using the AIX native interface.
d7b629d9 46
47=head2 Socket Extension Dynamic in VMS
48
49The Socket extension is now dynamically loaded instead of being
50statically built in. This may or may not be a problem with ancient
51TCP/IP stacks of VMS: we do not know since we weren't able to test
52Perl in such configurations.
53
2796c109 54=head2 Different Definition of the Unicode Character Classes \p{In...}
55
56As suggested by the Unicode consortium, the Unicode character classes
57now prefer I<scripts> as opposed to I<blocks> (as defined by Unicode);
58in Perl, when the C<\p{In....}> and the C<\p{In....}> regular expression
59constructs are used. This has changed the definition of some of those
60character classes.
61
62The difference between scripts and blocks is that scripts are the
63glyphs used by a language or a group of languages, while the blocks
64are more artificial groupings of 256 characters based on the Unicode
65numbering.
66
67In general this change results in more inclusive Unicode character
68classes, but changes to the other direction also do take place:
69for example while the script C<Latin> includes all the Latin
70characters and their various diacritic-adorned versions, it
71does not include the various punctuation or digits (since they
72are not solely C<Latin>).
73
74Changes in the character class semantics may have happened if a script
75and a block happen to have the same name, for example C<Hebrew>.
76In such cases the script wins and C<\p{InHebrew}> now means the script
77definition of Hebrew. The block definition in still available,
78though, by appending C<Block> to the name: C<\p{InHebrewBlock}> means
79what C<\p{InHebrew}> meant in perl 5.6.0. For the full list
80of affected character classes, see L<perlunicode/Blocks>.
81
d7b629d9 82=head2 Deprecations
cbb3fa72 83
84The current user-visible implementation of pseudo-hashes (the weird
85use of the first array element) is deprecated starting from Perl 5.8.0
d7b629d9 86and will be removed in Perl 5.10.0, and the feature will be
87implemented differently. Not only is the current interface rather
88ugly, but the current implementation slows down normal array and hash
d0c93ae9 89use quite noticeably. The C<fields> pragma interface will remain
d7b629d9 90available.
91
92The syntaxes C<@a->[...]> and C<@h->{...}> have now been deprecated.
cbb3fa72 93
267a12e6 94The suidperl is also considered to be too much a risk to continue
95maintaining and the suidperl code is likely to be removed in a future
96release.
97
d0c93ae9 98The C<package;> syntax (C<package> without an argument has been
99deprecated. Its semantics were never that clear and its
100implementation even less so. If you have used that feature to
101disallow all but fully qualified variables, C<use strict;> instead.
102
43d4bbc8 103=head1 Core Enhancements
104
d7b629d9 105In general a lot of fixing has happened in the area of Perl's
106understanding of numbers, both integer and floating point. Since in
107many systems the standard number parsing functions like C<strtoul()>
108and C<atof()> seem to have bugs, Perl tries to work around their
109deficiencies. This results hopefully in more accurate numbers.
267a12e6 110
111=over 4
112
113=item *
114
115The rules for allowing underscores (underbars) in numeric constants
116have been relaxed and simplified: now you can have an underscore
117B<between digits>.
118
119=item *
120
9108dd47 121GMAGIC (right-hand side magic) could in many cases such as string
122concatenation be invoked too many times.
267a12e6 123
124=item *
125
d7b629d9 126Lexicals I: lexicals outside an eval "" weren't resolved
127correctly inside a subroutine definition inside the eval "" if they
128were not already referenced in the top level of the eval""ed code.
129
130=item *
131
132Lexicals II: lexicals leaked at file scope into subroutines that
133were declared before the lexicals.
134
135=item *
136
137Lvalue subroutines can now return C<undef> in list context.
267a12e6 138
139=item *
140
9108dd47 141The C<op_clear> and C<op_null> are now exported.
267a12e6 142
143=item *
144
9108dd47 145A new special regular expression variable has been introduced:
146C<$^N>, which contains the most-recently closed group (submatch).
267a12e6 147
148=item *
149
699e893f 150L<utime> now supports C<utime undef, undef, @files> to change the
d7b629d9 151file timestamps to the current time.
699e893f 152
153=item *
154
267a12e6 155The Perl parser has been stress tested using both random input and
156Markov chain input.
157
d7b629d9 158=item *
159
160C<eval "v200"> now works.
161
162=item *
163
164VMS now works under PerlIO.
165
d95b23b2 166=item *
167
168END blocks are now run even if you exit/die in a BEGIN block.
169The execution of END blocks is now controlled by
170PL_exit_flags & PERL_EXIT_DESTRUCT_END. This enables the new
171behaviour for perl embedders. This will default in 5.10. See
172L<perlembed>.
173
267a12e6 174=back
175
43d4bbc8 176=head1 Modules and Pragmata
177
b4d12dfd 178=head2 New Modules and Distributions
43d4bbc8 179
267a12e6 180=over 4
181
182=item *
183
699e893f 184L<Attribute::Handlers> - Simpler definition of attribute handlers
185
186=item *
187
188L<ExtUtils::Constant> - generate XS code to import C header constants
189
190=item *
191
4bbcc6e8 192L<I18N::Langinfo> - query locale information
193
194=item *
195
699e893f 196L<I18N::LangTags> - functions for dealing with RFC3066-style language tags
197
198=item *
199
200L<libnet> - a collection of perl5 modules related to network programming
267a12e6 201
d7b629d9 202Perl installation leaves libnet unconfigured, use F<libnetcfg> to configure.
203
267a12e6 204=item *
205
699e893f 206L<List::Util> - selection of general-utility list subroutines
267a12e6 207
208=item *
209
699e893f 210L<Locale::Maketext> - framework for localization
267a12e6 211
212=item *
213
699e893f 214L<Memoize> - Make your functions faster by trading space for time
267a12e6 215
216=item *
217
699e893f 218L<NEXT> - pseudo-class for method redispatch
267a12e6 219
220=item *
221
699e893f 222L<Scalar::Util> - selection of general-utility scalar subroutines
267a12e6 223
224=item *
225
7117b917 226L<Test::More> - yet another framework for writing test scripts
227
228=item *
229
230L<Test::Simple> - Basic utilities for writing tests
231
232=item *
233
699e893f 234L<Time::HiRes> - high resolution ualarm, usleep, and gettimeofday
267a12e6 235
236=item *
237
699e893f 238L<Time::Piece> - Object Oriented time objects
267a12e6 239
d7b629d9 240(Previously known as L<Time::Object>.)
241
b4d12dfd 242=item *
243
244L<Time::Seconds> - a simple API to convert seconds to other date values
245
246=item *
247
1189d1e4 248L<UnicodeCD> - Unicode Character Database
b4d12dfd 249
267a12e6 250=back
251
43d4bbc8 252=head2 Updated And Improved Modules and Pragmata
253
267a12e6 254=over 4
255
256=item *
257
258L<B::Deparse> module has been significantly enhanced. It now
259can deparse almost all of the standard test suite (so that the
7ebe6671 260tests still succeed). There is a make target "test.deparse"
261for trying this out.
267a12e6 262
263=item *
264
265L<Class::Struct> now assigns the array/hash element if the accessor
266is called with an array/hash element as the B<sole> argument.
267
268=item *
269
270L<Cwd> extension is now (even) faster.
271
272=item *
273
274L<DB_File> extension has been updated to version 1.77.
275
276=item *
277
278L<Fcntl>, L<Socket>, and L<Sys::Syslog> have been rewritten to use the
279new-style constant dispatch section (see L<ExtUtils::Constant>).
280
281=item *
282
699e893f 283L<File::Find> is now (again) reentrant. It also has been made
284more portable.
285
286=item *
287
267a12e6 288L<File::Glob> now supports C<GLOB_LIMIT> constant to limit the
289size of the returned list of filenames.
290
699e893f 291=item *
267a12e6 292
d7b629d9 293L<IO::Socket::INET> now supports C<LocalPort> of zero (usually meaning
294that the operating system will make one up.)
295
296=item *
297
298The L<vars> pragma now supports declaring fully qualified variables.
299(Something that C<our()> does not and will not support.)
699e893f 300
301=back
43d4bbc8 302
303=head1 Utility Changes
304
267a12e6 305=over 4
306
307=item *
308
699e893f 309The F<emacs/e2ctags.pl> is now much faster.
310
311=item *
312
d7b629d9 313L<h2ph> now supports C trigraphs.
314
315=item *
316
267a12e6 317L<h2xs> uses the new L<ExtUtils::Constant> module which will affect
318newly created extensions that define constants. Since the new code is
319more correct (if you have two constants where the first one is a
320prefix of the second one, the first constant B<never> gets defined),
321less lossy (it uses integers for integer constant, as opposed to the
322old code that used floating point numbers even for integer constants),
323and slightly faster, you might want to consider regenerating your
324extension code (the new scheme makes regenerating easy).
d5f2cb03 325L<h2xs> now also supports C trigraphs.
267a12e6 326
327=item *
328
699e893f 329L<libnetcfg> has been added to configure the libnet.
267a12e6 330
331=item *
332
333The F<Pod::Html> (and thusly L<pod2html>) now allows specifying
334a cache directory.
335
336=back
337
43d4bbc8 338=head1 New Documentation
339
267a12e6 340=over 4
341
342=item *
343
344L<Locale::Maketext::TPJ13> is an article about software localization,
345originally published in The Perl Journal #13, republished here with
346kind permission.
347
348=item *
349
350More README.$PLATFORM files have been converted into pod, which also
351means that they also be installed as perl$PLATFORM documentation
352files. The new files are L<perlapollo>, L<perlbeos>, L<perldgux>,
699e893f 353L<perlhurd>, L<perlmint>, L<perlnetware>, L<perlplan9>, L<perlqnx>,
354and L<perltru64>.
267a12e6 355
356=item *
357
358The F<Todo> and F<Todo-5.6> files have been merged into L<perltodo>.
359
360=item *
361
7ebe6671 362Use of the F<gprof> tool to profile Perl has been documented in
363L<perlhack>. There is a make target "perl.gprof" for generating a
364gprofiled Perl executable.
267a12e6 365
366=back
367
43d4bbc8 368=head1 Installation and Configuration Improvements
369
370=head2 New Or Improved Platforms
371
267a12e6 372=over 4
373
374=item *
375
c033f808 376AIX should now work better with gcc, threads, and 64-bitness. Also the
12f54d27 377long doubles support in AIX should be better now. See L<perlaix>.
267a12e6 378
379=item *
380
381AtheOS (http://www.atheos.cx/) is a new platform.
382
383=item *
384
7ebe6671 385DG/UX platform now supports the 5.005-style threads. See L<perldgux>.
267a12e6 386
387=item *
388
d5f2cb03 389DYNIX/ptx platform (a.k.a. dynixptx) is supported at or near osvers 4.5.2.
390
391=item *
392
7ebe6671 393Several MacOS (Classic) portability patches have been applied. We
394hope to get a fully working port by 5.8.0. (The remaining problems
395relate to the changed IO model of Perl.) See L<perlmacos>.
267a12e6 396
397=item *
398
699e893f 399MacOS X (or Darwin) should now be able to build Perl even on HFS+
400filesystems. (The case-insensitivity confused the Perl build process.)
267a12e6 401
402=item *
403
7ebe6671 404NetWare from Novell is now supported. See L<perlnetware>.
267a12e6 405
406=item *
407
408The Amdahl UTS UNIX mainframe platform is now supported.
409
410=back
411
43d4bbc8 412=head2 Generic Improvements
413
267a12e6 414=over 4
415
416=item *
417
267a12e6 418In AFS installations one can configure the root of the AFS to be
419somewhere else than the default F</afs> by using the Configure
420parameter C<-Dafsroot=/some/where/else>.
421
422=item *
423
424The version of Berkeley DB used when the Perl (and, presumably, the
425DB_File extension) was built is now available as
426C<@Config{qw(db_version_major db_version_minor db_version_patch)}>
427from Perl and as C<DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
428DB_VERSION_PATCH_CFG> from C.
429
430=item *
431
699e893f 432The Thread extension is now not built at all under ithreads
433(C<Configure -Duseithreads>) because it wouldn't work anyway (the
434Thread extension requires being Configured with C<-Duse5005threads>).
267a12e6 435
436=item *
437
438The C<B::Deparse> compiler backend has been so significantly improved
439that almost the whole Perl test suite passes after being deparsed. A
440make target has been added to help in further testing: C<make test.deparse>.
441
442=back
443
43d4bbc8 444=head1 Selected Bug Fixes
445
699e893f 446=over 5
447
448=item *
449
450The autouse pragma didn't work for Multi::Part::Function::Names.
451
452=item *
453
454The behaviour of non-decimal but numeric string constants such as
455"0x23" was platform-dependent: in some platforms that was seen as 35,
456in some as 0, in some as a floating point number (don't ask). This
457was caused by Perl using the operating system libraries in a situation
458where the result of the string to number conversion is undefined: now
459Perl consistently handles such strings as zero in numeric contexts.
460
461=item *
462
463L<dprofpp> -R didn't work.
464
465=item *
466
467PERL5OPT with embedded spaces didn't work.
468
469=item *
470
471L<Sys::Syslog> ignored the C<LOG_AUTH> constant.
472
473=back
474
43d4bbc8 475=head2 Platform Specific Changes and Fixes
476
267a12e6 477=over 4
478
479=item *
480
481Some versions of glibc have a broken modfl(). This affects builds
482with C<-Duselongdouble>. This version of Perl detects this brokenness
483and has a workaround for it. The glibc release 2.2.2 is known to have
484fixed the modfl() bug.
485
486=back
487
43d4bbc8 488=head1 New or Changed Diagnostics
489
267a12e6 490=over 4
491
492=item *
493
494In the regular expression diagnostics the C<E<lt>E<lt> HERE> marker
495introduced in 5.7.0 has been changed to be C<E<lt>-- HERE> since too
496many people found the C<E<lt>E<lt>> to be too similar to here-document
497starters.
498
499=item *
500
501If you try to L<perlfunc/pack> a number less than 0 or larger than 255
502using the C<"C"> format you will get an optional warning. Similarly
503for the C<"c"> format and a number less than -128 or more than 127.
504
505=item *
506
507Certain regex modifiers such as C<(?o)> make sense only if applied to
508the entire regex. You will an optional warning if you try to do otherwise.
509
510=item *
511
512Using arrays or hashes as references (e.g. C<%foo->{bar}> has been
513deprecated for a while. Now you will get an optional warning.
514
515=back
516
9108dd47 517=head1 Source Code Enhancements
518
519=head2 MAGIC constants
520
521The MAGIC constants (e.g. C<'P'>) have been macrofied
522(e.g. C<PERL_MAGIC_TIED>) for better source code readability
523and maintainability.
524
525=head2 Better commented code
526
527F<perly.c>, F<sv.c>, and F<sv.h> have now been extensively commented.
43d4bbc8 528
529=head2 Regex pre-/post-compilation items matched up
530
531The regex compiler now maintains a structure that identifies nodes in
532the compiled bytecode with the corresponding syntactic features of the
533original regex expression. The information is attached to the new
534C<offsets> member of the C<struct regexp>. See L<perldebguts> for more
535complete information.
536
9108dd47 537=head2 gcc -Wall
538
539The C code has been made much more C<gcc -Wall> clean. Some warning
540messages still remain, though, so if you are compiling with gcc you
541will see some warnings about dubious practices. The warnings are
542being worked on.
543
43d4bbc8 544=head1 New Tests
545
267a12e6 546Several new tests have been added, especially for the F<lib> subsection.
547
699e893f 548The tests are now reported in a different order than in earlier Perls.
549(This happens because the test scripts from under t/lib have been moved
550to be closer to the library/extension they are testing.)
267a12e6 551
43d4bbc8 552=head1 Known Problems
553
554Note that unlike other sections in this document (which describe
555changes since 5.7.0) this section is cumulative containing known
556problems for all the 5.7 releases.
557
81633404 558=head2 AIX
559
560=over 4
561
562=item *
563
d7d85e39 564In AIX 4.2 Perl extensions that use C++ functions that use statics
565may have problems in that the statics are not getting initialized.
566In newer AIX releases this has been solved by linking Perl with
567the libC_r library, but unfortunately in AIX 4.2 the said library
568has an obscure bug where the various functions related to time
569(such as time() and gettimeofday()) return broken values, and
570therefore in AIX 4.2 Perl is not linked against the libC_r.
81633404 571
572=item *
573
574vac 5.0.0.0 May Produce Buggy Code For Perl
43d4bbc8 575
576The AIX C compiler vac version 5.0.0.0 may produce buggy code,
577resulting in few random tests failing, but when the failing tests
578are run by hand, they succeed. We suggest upgrading to at least
579vac version 5.0.1.0, that has been known to compile Perl correctly.
580"lslpp -L|grep vac.C" will tell you the vac version.
581
81633404 582=back
583
d7b629d9 584=head2 Amiga Perl Invoking Mystery
585
586One cannot call Perl using the C<volume:> syntax, that is, C<perl -v>
587works, but for example C<bin:perl -v> doesn't. The exact reason is
588known but the current suspect is the F<ixemul> library.
589
43d4bbc8 590=head2 lib/ftmp-security tests warn 'system possibly insecure'
591
592Don't panic. Read INSTALL 'make test' section instead.
593
19d94770 594=head2 Cygwin intermittent failures of lib/Memoize/t/expire_file 11 and 12
81633404 595
596The subtests 11 and 12 sometimes fail and sometimes work.
597
598=head2 HP-UX lib/io_multihomed Fails When LP64-Configur
43d4bbc8 599
600The lib/io_multihomed test may hang in HP-UX if Perl has been
601configured to be 64-bit. Because other 64-bit platforms do not hang in
602this test, HP-UX is suspect. All other tests pass in 64-bit HP-UX. The
603test attempts to create and connect to "multihomed" sockets (sockets
604which have multiple IP addresses).
605
81633404 606=head2 HP-UX lib/posix Subtest 9 Fails When LP64-Configured
43d4bbc8 607
608If perl is configured with -Duse64bitall, the successful result of the
609subtest 10 of lib/posix may arrive before the successful result of the
610subtest 9, which confuses the test harness so much that it thinks the
611subtest 9 failed.
612
43d4bbc8 613=head2 Linux With Sfio Fails op/misc Test 48
614
615No known fix.
616
ee9f9f3a 617=head2 OS/390
618
619OS/390 has rather many test failures but the situation is actually
620better than it was in 5.6.0, it's just that so many new modules and
621tests have been added.
622
623 Failed Test Stat Wstat Total Fail Failed List of Failed
624 -----------------------------------------------------------------------------
625 ../ext/B/Deparse.t 14 1 7.14% 14
626 ../ext/B/Showlex.t 1 1 100.00% 1
627 ../ext/Encode/Encode/Tcl.t 610 13 2.13% 592 594 596 598
628 600 602 604-610
629 ../ext/IO/lib/IO/t/io_unix.t 113 28928 5 3 60.00% 3-5
630 ../ext/POSIX/POSIX.t 29 1 3.45% 14
631 ../ext/Storable/t/lock.t 255 65280 5 3 60.00% 3-5
632 ../lib/locale.t 129 33024 117 19 16.24% 99-117
633 ../lib/warnings.t 434 1 0.23% 75
634 ../lib/ExtUtils.t 27 1 3.70% 25
635 ../lib/Math/BigInt/t/bigintpm.t 1190 1 0.08% 1145
636 ../lib/Unicode/UCD.t 81 48 59.26% 1-16 49-64 66-81
637 ../lib/User/pwent.t 9 1 11.11% 4
638 op/pat.t 660 6 0.91% 242-243 424-425
639 626-627
640 op/split.t 0 9 ?? ?? % ??
641 op/taint.t 174 3 1.72% 156 162 168
642 op/tr.t 70 3 4.29% 50 58-59
643 Failed 16/422 test scripts, 96.21% okay. 105/23251 subtests failed, 99.55% okay.
644
c4b279ff 645=head2 op/sprintf tests 129 and 130
43d4bbc8 646
647The op/sprintf tests 129 and 130 are known to fail on some platforms.
648Examples include any platform using sfio, and Compaq/Tandem's NonStop-UX.
649The failing platforms do not comply with the ANSI C Standard, line
65019ff on page 134 of ANSI X3.159 1989 to be exact. (They produce
d5f2cb03 651something other than "1" and "-1" when formatting 0.6 and -0.6 using
43d4bbc8 652the printf format "%.0f", most often they produce "0" and "-0".)
653
654=head2 Failure of Thread tests
655
45215428 656B<Note that support for 5.005-style threading remains experimental.>
657
658The following tests are known to fail due to fundamental problems in
659the 5.005 threading implementation. These are not new failures--Perl
6605.005_0x has the same bugs, but didn't have these tests.
661
c4b279ff 662 lib/autouse.t 4
663 t/lib/thr5005.t 19-20
664
81633404 665=head2 UNICOS
666
667=over 4
668
669=item *
670
671ext/POSIX/sigaction subtests 6 and 13 may fail.
672
673=item *
674
675lib/ExtUtils may spuriously claim that subtest 28 failed,
676which is interesting since the test only has 27 tests.
677
678=item *
679
680Numerous numerical test failures
c4b279ff 681
682 op/numconvert 209,210,217,218
81633404 683 op/override 7
c4b279ff 684 ext/Time/HiRes/HiRes 9
685 lib/Math/BigInt/t/bigintpm 1145
686 lib/Math/Trig 25
687
688These tests fail because of yet unresolved floating point inaccuracies.
689
81633404 690=back
691
81633404 692=head2 UTS
693
91144103 694There are a few known test failures, see L<perluts>.
0aa7ccc3 695
696=head2 VMS
697
ee9f9f3a 698Rather many tests are failing in VMS but that actually more tests
699succeed in VMS than they used to, it's just that there are many,
700many more tests than there used to be.
701
702Here are the known failures from some compiler/platform combinations.
703
0aa7ccc3 704DEC C V5.3-006 on OpenVMS VAX V6.2
705
706 [-.ext.list.util.t]tainted..............FAILED on test 3
707 [-.ext.posix]sigaction..................FAILED on test 7
50bd9457 708 [-.ext.time.hires]hires.................FAILED on test 14
0aa7ccc3 709 [-.lib.file.find]taint..................FAILED on test 17
710 [-.lib.math.bigint.t]bigintpm...........FAILED on test 1183
711 [-.lib.test.simple.t]exit...............FAILED on test 1
712 [.lib]vmsish............................FAILED on test 13
713 [.op]sprintf............................FAILED on test 12
714 Failed 8/399 tests, 91.23% okay.
715
d5f2cb03 716DEC C V6.0-001 on OpenVMS Alpha V7.2-1 and
717Compaq C V6.2-008 on OpenVMS Alpha V7.1
0aa7ccc3 718
719 [-.ext.list.util.t]tainted..............FAILED on test 3
720 [-.lib.file.find]taint..................FAILED on test 17
721 [-.lib.test.simple.t]exit...............FAILED on test 1
722 [.lib]vmsish............................FAILED on test 13
723 Failed 4/399 tests, 92.48% okay.
81633404 724
20a07785 725Compac C V6.4-005 on OpenVMS Alpha 7.2.1
726
727 [-.ext.b]showlex........................FAILED on test 1
728 [-.ext.list.util.t]tainted..............FAILED on test 3
729 [-.lib.file.find]taint..................FAILED on test 17
730 [-.lib.test.simple.t]exit...............FAILED on test 1
731 [.lib]vmsish............................FAILED on test 13
732 [.op]misc...............................FAILED on test 49
733 Failed 6/401 tests, 92.77% okay.
734
d0c93ae9 735=head2 Win32
736
737In multi-CPU boxes there are some problems with the I/O buffering:
738some output may appear twice.
739
43d4bbc8 740=head2 Localising a Tied Variable Leaks Memory
741
742 use Tie::Hash;
743 tie my %tie_hash => 'Tie::StdHash';
744
745 ...
746
747 local($tie_hash{Foo}) = 1; # leaks
748
749Code like the above is known to leak memory every time the local()
750is executed.
751
752=head2 Self-tying of Arrays and Hashes Is Forbidden
753
754Self-tying of arrays and hashes is broken in rather deep and
755hard-to-fix ways. As a stop-gap measure to avoid people from getting
756frustrated at the mysterious results (core dumps, most often) it is
757for now forbidden (you will get a fatal error even from an attempt).
758
699e893f 759=head2 Variable Attributes are not Currently Usable for Tieing
760
761This limitation will hopefully be fixed in future. (Subroutine
762attributes work fine for tieing, see L<Attribute::Handlers>).
763
43d4bbc8 764=head2 Building Extensions Can Fail Because Of Largefiles
765
766Some extensions like mod_perl are known to have issues with
767`largefiles', a change brought by Perl 5.6.0 in which file offsets
768default to 64 bits wide, where supported. Modules may fail to compile
769at all or compile and work incorrectly. Currently there is no good
770solution for the problem, but Configure now provides appropriate
771non-largefile ccflags, ldflags, libswanted, and libs in the %Config
772hash (e.g., $Config{ccflags_nolargefiles}) so the extensions that are
773having problems can try configuring themselves without the
774largefileness. This is admittedly not a clean solution, and the
775solution may not even work at all. One potential failure is whether
776one can (or, if one can, whether it's a good idea) link together at
777all binaries with different ideas about file offsets, all this is
778platform-dependent.
779
780=head2 The Compiler Suite Is Still Experimental
781
782The compiler suite is slowly getting better but is nowhere near
783working order yet.
784
81633404 785=head2 The Long Double Support is Still Experimental
786
787The ability to configure Perl's numbers to use "long doubles",
788floating point numbers of hopefully better accuracy, is still
789experimental. The implementations of long doubles are not yet
790widespread and the existing implementations are not quite mature
791or standardised, therefore trying to support them is a rare
792and moving target. The gain of more precision may also be offset
793by slowdown in computations (more bits to move around, and the
794operations are more likely to be executed by less optimised
795libraries).
796
43d4bbc8 797=head1 Reporting Bugs
798
799If you find what you think is a bug, you might check the articles
800recently posted to the comp.lang.perl.misc newsgroup and the perl
801bug database at http://bugs.perl.org. There may also be
802information at http://www.perl.com/perl/, the Perl Home Page.
803
804If you believe you have an unreported bug, please run the B<perlbug>
805program included with your release. Be sure to trim your bug down
806to a tiny but sufficient test case. Your bug report, along with the
807output of C<perl -V>, will be sent off to perlbug@perl.org to be
808analysed by the Perl porting team.
809
810=head1 SEE ALSO
811
812The F<Changes> file for exhaustive details on what changed.
813
814The F<INSTALL> file for how to build Perl.
815
816The F<README> file for general stuff.
817
818The F<Artistic> and F<Copying> files for copyright information.
819
820=head1 HISTORY
821
822Written by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributions
823from The Perl Porters and Perl Users submitting feedback and patches.
824
825Send omissions or corrections to <F<perlbug@perl.org>>.
826
827=cut