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