[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/pod/ -> perl572delta.pod (source)

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


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1