📄 perl571delta.pod
字号:
=item *s2p has been completely rewritten in Perl. (It is in fact a fullimplementation of sed in Perl.)=item *xsubpp now supports OUT keyword.=back=head1 New Documentation=head2 perlclibInternal replacements for standard C library functions.(Interesting only for extension writers and Perl core hackers.)=head2 perliolInternals of PerlIO with layers.=head2 README.aixDocumentation on compiling Perl on AIX has been added. AIX hasseveral different C compilers and getting the right patch levelis essential. On install README.aix will be installed as L<perlaix>.=head2 README.bs2000Documentation on compiling Perl on the POSIX-BC platform (an EBCDICmainframe environment) has been added.This was formerly known as README.posix-bc but the name was consideredto be too confusing (it has nothing to do with the POSIX module or thePOSIX standard). On install README.bs2000 will be installed as L<perlbs2000>.=head2 README.macosIn perl 5.7.1 (and in the 5.6.1) the MacPerl sources have beensynchronised with the standard Perl sources. To compile MacPerlsome additional steps are required, and this file documents thosesteps. On install README.macos will be installed as L<perlmacos>.=head2 README.mpeixThe README.mpeix has been podified, which means that this informationabout compiling and using Perl on the MPE/iX miniframe platform willbe installed as L<perlmpeix>.=head2 README.solarisREADME.solaris has been created and Solaris wisdom from elsewherein the Perl documentation has been collected there. On installREADME.solaris will be installed as L<perlsolaris>.=head2 README.vosThe README.vos has been podified, which means that this informationabout compiling and using Perl on the Stratus VOS miniframe platformwill be installed as L<perlvos>.=head2 Porting/repository.podDocumentation on how to use the Perl source repository has been added.=head1 Installation and Configuration Improvements=over 4=item *Because PerlIO is now the default on most platforms, "-perlio" doesn'tget appended to the $Config{archname} (also known as $^O) anymore.Instead, if you explicitly choose not to use perlio (Configure commandline option -Uuseperlio), you will get "-stdio" appended.=item *Another change related to the architecture name is that "-64all"(-Duse64bitall, or "maximally 64-bit") is appended only if yourpointers are 64 bits wide. (To be exact, the use64bitall is ignored.)=item *APPLLIB_EXP, a less-know configuration-time definition, has beendocumented. It can be used to prepend site-specific directoriesto Perl's default search path (@INC), see INSTALL for information.=item *Building Berkeley DB3 for compatibility modes for DB, NDBM, and ODBMhas been documented in INSTALL.=item *If you are on IRIX or Tru64 platforms, new profiling/debugging optionshave been added, see L<perlhack> for more information about pixie andThird Degree.=back=head2 New Or Improved PlatformsFor the list of platforms known to support Perl,see L<perlport/"Supported Platforms">.=over 4=item *AIX dynamic loading should be now better supported.=item *After a long pause, AmigaOS has been verified to be happy with Perl.=item *EBCDIC platforms (z/OS, also known as OS/390, POSIX-BC, and VM/ESA)have been regained. Many test suite tests still fail and theco-existence of Unicode and EBCDIC isn't quite settled, but thesituation is much better than with Perl 5.6. See L<perlos390>,L<perlbs2000> (for POSIX-BC), and L<perlvmesa> for more information.=item *Building perl with -Duseithreads or -Duse5005threads now works underHP-UX 10.20 (previously it only worked under 10.30 or later). You willneed a thread library package installed. See README.hpux.=item *Mac OS Classic (MacPerl has of course been available sinceperl 5.004 but now the source code bases of standard Perland MacPerl have been synchronised)=item *NCR MP-RAS is now supported.=item *NonStop-UX is now supported.=item *Amdahl UTS is now supported.=item *z/OS (formerly known as OS/390, formerly known as MVS OE) has nowsupport for dynamic loading. This is not selected by default,however, you must specify -Dusedl in the arguments of Configure.=back=head2 Generic Improvements=over 4=item *Configure no longer includes the DBM libraries (dbm, gdbm, db, ndbm)when building the Perl binary. The only exception to this is SunOS 4.x,which needs them.=item *Some new Configure symbols, useful for extension writers:=over 8=item d_cmsghdrFor struct cmsghdr.=item d_fcntl_can_lockWhether fcntl() can be used for file locking.=item d_fsync=item d_getitimer=item d_getpagszFor getpagesize(), though you should prefer POSIX::sysconf(_SC_PAGE_SIZE))=item d_msghdr_sFor struct msghdr.=item need_va_copyWhether one needs to use Perl_va_copy() to copy varargs.=item d_readv=item d_recvmsg=item d_sendmsg=item sig_sizeThe number of elements in an array needed to hold all the available signals.=item d_sockatmark=item d_strtoq=item d_u32alignWhether one needs to access character data aligned by U32 sized pointers.=item d_ualarm=item d_usleep=back=item *Removed Configure symbols: the PDP-11 memory model settings: huge,large, medium, models.=item *SOCKS support is now much more robust.=item *If your file system supports symbolic links you can build Perl outsideof the source directory by mkdir perl/build/directory cd perl/build/directory sh /path/to/perl/source/Configure -Dmksymlinks ...This will create in perl/build/directory a tree of symbolic linkspointing to files in /path/to/perl/source. The original files are leftunaffected. After Configure has finished you can just say make all testand Perl will be built and tested, all in perl/build/directory.=back=head1 Selected Bug FixesNumerous memory leaks and uninitialized memory accesses have been hunted down.Most importantly anonymous subs used to leak quite a bit.=over 4=item *chop(@list) in list context returned the characters chopped inreverse order. This has been reversed to be in the right order.=item *The order of DESTROYs has been made more predictable.=item *mkdir() now ignores trailing slashes in the directory name,as mandated by POSIX.=item *Attributes (like :shared) didn't work with our().=item *The PERL5OPT environment variable (for passing command line argumentsto Perl) didn't work for more than a single group of options.=item *The tainting behaviour of sprintf() has been rationalized. It doesnot taint the result of floating point formats anymore, making thebehaviour consistent with that of string interpolation.=item *All but the first argument of the IO syswrite() method are now optional.=item *Tie::ARRAY SPLICE method was broken.=item *vec() now tries to work with characters <= 255 when possible, but it leaveshigher character values in place. In that case, if vec() was used to modifythe string, it is no longer considered to be utf8-encoded.=back=head2 Platform Specific Changes and Fixes=over 4=item *Linux previously had problems related to sockaddrlen when usingaccept(), revcfrom() (in Perl: recv()), getpeername(), and getsockname().=item *Previously DYNIX/ptx had problems in its Configure probe for non-blocking I/O.=item *Windows=over 8=item *Borland C++ v5.5 is now a supported compiler that can build Perl.However, the generated binaries continue to be incompatible with thosegenerated by the other supported compilers (GCC and Visual C++).=item *Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root.Other bugs in chdir() and Cwd::cwd() have also been fixed.=item *Duping socket handles with open(F, ">&MYSOCK") now works under Windows 9x.=item *HTML files will be installed in c:\perl\html instead of c:\perl\lib\pod\html=item *The makefiles now provide a single switch to bulk-enable all the featuresenabled in ActiveState ActivePerl (a popular binary distribution).=back=back=head1 New or Changed DiagnosticsTwo new debugging options have been added: if you have compiled yourPerl with debugging, you can use the -DT and -DR options to tracetokenising and to add reference counts to displaying variables,respectively.=over 4=item *If an attempt to use a (non-blessed) reference as an array indexis made, a warning is given.=item *C<push @a;> and C<unshift @a;> (with no values to push or unshift)now give a warning. This may be a problem for generated and eval'edcode.=back=head1 Changed Internals=over 4=item *Some new APIs: ptr_table_clear(), ptr_table_free(), sv_setref_uv().For the full list of the available APIs see L<perlapi>.=item *dTHR and djSP have been obsoleted; the former removed (because it'sa no-op) and the latter replaced with dSP.=item *Perl now uses system malloc instead of Perl malloc on all 64-bitplatforms, and even in some not-always-64-bit platforms like AIX,IRIX, and Solaris. This change breaks backward compatibility butPerl's malloc has problems with large address spaces and also thespeed of vendors' malloc is generally better in large address spacemachines (Perl's malloc is mostly tuned for space).=back=head1 New TestsMany new tests have been added. The most notable is probably thelib/1_compile: it is very notable because running it takes quite along time -- it test compiles all the Perl modules in the distribution.Please be patient.=head1 Known ProblemsNote that unlike other sections in this document (which describechanges since 5.7.0) this section is cumulative containing knownproblems for all the 5.7 releases.=head2 AIX vac 5.0.0.0 May Produce Buggy Code For PerlThe AIX C compiler vac version 5.0.0.0 may produce buggy code,resulting in few random tests failing, but when the failing testsare run by hand, they succeed. We suggest upgrading to at leastvac version 5.0.1.0, that has been known to compile Perl correctly."lslpp -L|grep vac.C" will tell you the vac version.=head2 lib/ftmp-security tests warn 'system possibly insecure'Don't panic. Read INSTALL 'make test' section instead.=head2 lib/io_multihomed Fails In LP64-Configured HP-UXThe lib/io_multihomed test may hang in HP-UX if Perl has beenconfigured to be 64-bit. Because other 64-bit platforms do not hang inthis test, HP-UX is suspect. All other tests pass in 64-bit HP-UX. Thetest attempts to create and connect to "multihomed" sockets (socketswhich have multiple IP addresses).=head2 Test lib/posix Subtest 9 Fails In LP64-Configured HP-UXIf perl is configured with -Duse64bitall, the successful result of thesubtest 10 of lib/posix may arrive before the successful result of thesubtest 9, which confuses the test harness so much that it thinks thesubtest 9 failed.=head2 lib/b test 19The test fails on various platforms (PA64 and IA64 are known), but theexact cause is still being investigated.=head2 Linux With Sfio Fails op/misc Test 48No known fix.=head2 sigaction test 13 in VMSThe test is known to fail; whether it's because of VMS of becauseof faulty test is not known.=head2 sprintf tests 129 and 130The op/sprintf tests 129 and 130 are known to fail on some platforms.Examples include any platform using sfio, and Compaq/Tandem's NonStop-UX.The failing platforms do not comply with the ANSI C Standard, line19ff on page 134 of ANSI X3.159 1989 to be exact. (They producesomething else than "1" and "-1" when formatting 0.6 and -0.6 usingthe printf format "%.0f", most often they produce "0" and "-0".)=head2 Failure of Thread testsThe subtests 19 and 20 of lib/thr5005.t test are known to fail due tofundamental problems in the 5.005 threading implementation. These arenot new failures--Perl 5.005_0x has the same bugs, but didn't havethese tests. (Note that support for 5.005-style threading remainsexperimental.)=head2 Localising a Tied Variable Leaks Memory use Tie::Hash; tie my %tie_hash => 'Tie::StdHash'; ... local($tie_hash{Foo}) = 1; # leaksCode like the above is known to leak memory every time the local()is executed.=head2 Self-tying of Arrays and Hashes Is ForbiddenSelf-tying of arrays and hashes is broken in rather deep andhard-to-fix ways. As a stop-gap measure to avoid people from gettingfrustrated at the mysterious results (core dumps, most often) it isfor now forbidden (you will get a fatal error even from an attempt).=head2 Building Extensions Can Fail Because Of LargefilesSome extensions like mod_perl are known to have issues with`largefiles', a change brought by Perl 5.6.0 in which file offsetsdefault to 64 bits wide, where supported. Modules may fail to compileat all or compile and work incorrectly. Currently there is no goodsolution for the problem, but Configure now provides appropriatenon-largefile ccflags, ldflags, libswanted, and libs in the %Confighash (e.g., $Config{ccflags_nolargefiles}) so the extensions that arehaving problems can try configuring themselves without thelargefileness. This is admittedly not a clean solution, and thesolution may not even work at all. One potential failure is whetherone can (or, if one can, whether it's a good idea) link together atall binaries with different ideas about file offsets, all this isplatform-dependent.=head2 The Compiler Suite Is Still ExperimentalThe compiler suite is slowly getting better but is nowhere nearworking order yet.=head1 Reporting BugsIf you find what you think is a bug, you might check the articlesrecently posted to the comp.lang.perl.misc newsgroup and the perlbug database at http://bugs.perl.org/ There may also beinformation at http://www.perl.com/perl/ , the Perl Home Page.If you believe you have an unreported bug, please run the B<perlbug>program included with your release. Be sure to trim your bug downto a tiny but sufficient test case. Your bug report, along with theoutput of C<perl -V>, will be sent off to perlbug@perl.org to beanalysed by the Perl porting team.=head1 SEE ALSOThe F<Changes> file for exhaustive details on what changed.The F<INSTALL> file for how to build Perl.The F<README> file for general stuff.The F<Artistic> and F<Copying> files for copyright information.=head1 HISTORYWritten by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributionsfrom The Perl Porters and Perl Users submitting feedback and patches.Send omissions or corrections to <F<perlbug@perl.org>>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -