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