Kentaro Shirakata
argra****@users*****
2006年 4月 14日 (金) 04:45:35 JST
Index: docs/perl/5.8.4/perl583delta.pod diff -u /dev/null docs/perl/5.8.4/perl583delta.pod:1.1 --- /dev/null Fri Apr 14 04:45:35 2006 +++ docs/perl/5.8.4/perl583delta.pod Fri Apr 14 04:45:35 2006 @@ -0,0 +1,451 @@ +=encoding euc-jp + +=head1 NAME + +=begin original + +perl583delta - what is new for perl v5.8.3 + +=end original + +perl v5.8.3 での変更点 + +=head1 DESCRIPTION + +=begin original + +This document describes differences between the 5.8.2 release and +the 5.8.3 release. + +=end original + +このドキュメントは 5.8.2 リリースと 5.8.3 リリースの変更点を記述しています。 + +=begin original + +If you are upgrading from an earlier release such as 5.6.1, first read +the L<perl58delta>, which describes differences between 5.6.0 and +5.8.0, and the L<perl581delta> and L<perl582delta>, which describe differences +between 5.8.0, 5.8.1 and 5.8.2 + +=end original + +もしそれよりも前のリリース, 例えば 5.6.1 等からアップデートするのなら、 +5.6.0 と 5.8.0 との違いが書かれている L<perl58delta> および、 +5.8.0, 5.8.1, 5.8.2 との違いが書かれている L<perl581delta>, +L<perl582delta> を読んでおいた方がよいでしょう。 + +=head1 Incompatible Changes + +(互換性のない変更) + +=begin original + +There are no changes incompatible with 5.8.2. + +=end original + +5.8.2 との互換性のない変更はありません。 + +=head1 Core Enhancements + +(Core の拡張) + +=begin original + +A C<SCALAR> method is now available for tied hashes. This is called when +a tied hash is used in scalar context, such as + +=end original + + + if (%tied_hash) { + ... + } + + +=begin original + +The old behaviour was that %tied_hash would return whatever would have been +returned for that hash before the hash was tied (so usually 0). The new +behaviour in the absence of a SCALAR method is to return TRUE if in the +middle of an C<each> iteration, and otherwise call FIRSTKEY to check if the +hash is empty (making sure that a subsequent C<each> will also begin by +calling FIRSTKEY). Please see L<perltie/SCALAR> for the full details and +caveats. + +=end original + + +=head1 Modules and Pragmata + +(モジュールとプラグマ) + +=over 4 + +=item CGI + +=item Cwd + +=item Digest + +=item Digest::MD5 + +=item Encode + +=item File::Spec + +=item FindBin + +=begin original + +A function C<again> is provided to resolve problems where modules in different +directories wish to use FindBin. + +=end original + + +=item List::Util + +=begin original + +You can now weaken references to read only values. + +=end original + + +=item Math::BigInt + +=item PodParser + +=item Pod::Perldoc + +=item POSIX + +=item Unicode::Collate + +=item Unicode::Normalize + +=item Test::Harness + +=item threads::shared + +=begin original + +C<cond_wait> has a new two argument form. C<cond_timedwait> has been added. + +=end original + + +=back + +=head1 Utility Changes + +(ツールの変更) + +=begin original + +C<find2perl> now assumes C<-print> as a default action. Previously, it +needed to be specified explicitly. + +=end original + + +=begin original + +A new utility, C<prove>, makes it easy to run an individual regression test +at the command line. C<prove> is part of Test::Harness, which users of earlier +Perl versions can install from CPAN. + +=end original + + +=head1 New Documentation + +(新しいドキュメント) + +=begin original + +The documentation has been revised in places to produce more standard manpages. + +=end original + + +=begin original + +The documentation for the special code blocks (BEGIN, CHECK, INIT, END) +has been improved. + +=end original + + +=head1 Installation and Configuration Improvements + +=begin original + +Perl now builds on OpenVMS I64 + +=end original + + +=head1 Selected Bug Fixes + +=begin original + +Using substr() on a UTF8 string could cause subsequent accesses on that +string to return garbage. This was due to incorrect UTF8 offsets being +cached, and is now fixed. + +=end original + + +=begin original + +join() could return garbage when the same join() statement was used to +process 8 bit data having earlier processed UTF8 data, due to the flags +on that statement's temporary workspace not being reset correctly. This +is now fixed. + +=end original + + +=begin original + +C<$a .. $b> will now work as expected when either $a or $b is C<undef> + +=end original + + +=begin original + +Using Unicode keys with tied hashes should now work correctly. + +=end original + + +=begin original + +Reading $^E now preserves $!. Previously, the C code implementing $^E +did not preserve C<errno>, so reading $^E could cause C<errno> and therefore +C<$!> to change unexpectedly. + +=end original + + +=begin original + +Reentrant functions will (once more) work with C++. 5.8.2 introduced a bugfix +which accidentally broke the compilation of Perl extensions written in C++ + +=end original + + +=head1 New or Changed Diagnostics + +=begin original + +The fatal error "DESTROY created new reference to dead object" is now +documented in L<perldiag>. + +=end original + + +=head1 Changed Internals + +=begin original + +The hash code has been refactored to reduce source duplication. The +external interface is unchanged, and aside from the bug fixes described +above, there should be no change in behaviour. + +=end original + + +=begin original + +C<hv_clear_placeholders> is now part of the perl API + +=end original + + +=begin original + +Some C macros have been tidied. In particular macros which create temporary +local variables now name these variables more defensively, which should +avoid bugs where names clash. + +=end original + + +=begin original + +<signal.h> is now always included. + +=end original + + +=head1 Configuration and Building + +=begin original + +C<Configure> now invokes callbacks regardless of the value of the variable +they are called for. Previously callbacks were only invoked in the +C<case $variable $define)> branch. This change should only affect platform +maintainers writing configuration hints files. + +=end original + + +=head1 Platform Specific Problems + +=begin original + +The regression test ext/threads/shared/t/wait.t fails on early RedHat 9 +and HP-UX 10.20 due to bugs in their threading implementations. +RedHat users should see https://rhn.redhat.com/errata/RHBA-2003-136.html +and consider upgrading their glibc. + +=end original + + +=head1 Known Problems + +=begin original + +Detached threads aren't supported on Windows yet, as they may lead to +memory access violation problems. + +=end original + + +=begin original + +There is a known race condition opening scripts in C<suidperl>. C<suidperl> +is neither built nor installed by default, and has been deprecated since +perl 5.8.0. You are advised to replace use of suidperl with tools such +as sudo ( http://www.courtesan.com/sudo/ ) + +=end original + + +=begin original + +We have a backlog of unresolved bugs. Dealing with bugs and bug reports +is unglamorous work; not something ideally suited to volunteer labour, +but that is all that we have. + +=end original + + +=begin original + +The perl5 development team are implementing changes to help address this +problem, which should go live in early 2004. + +=end original + + +=head1 Future Directions + +=begin original + +Code freeze for the next maintenance release (5.8.4) is on March 31st 2004, +with release expected by mid April. Similarly 5.8.5's freeze will be at +the end of June, with release by mid July. + +=end original + + +=head1 Obituary + +(お悔やみ) + +=begin original + +Iain 'Spoon' Truskett, Perl hacker, author of L<perlreref> and +contributor to CPAN, died suddenly on 29th December 2003, aged 24. +He will be missed. + +=end original + +Perl ハッカーであり、L<perlreref> の著者であり、CPAN の +貢献者である Iain 'Spoon' Truskett は 2003 年 12 月 29 日、24 歳で +急死しました。お悔やみを申し上げます。 + +=head1 Reporting Bugs + +=begin original + +If you find what you think is a bug, you might check the articles +recently posted to the comp.lang.perl.misc newsgroup and the perl +bug database at http://bugs.perl.org. There may also be +information at http://www.perl.org, the Perl Home Page. + +=end original + +もしバグと思われるものが見つかったら、 comp.lang.perl.misc ニュースグループに +最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを +確認してください。 +Perl ホームページ、http://www.perl.org にも情報があります。 + +=begin original + +If you believe you have an unreported bug, please run the B<perlbug> +program included with your release. Be sure to trim your bug down +to a tiny but sufficient test case. Your bug report, along with the +output of C<perl -V>, will be sent off to perlb****@perl***** to be +analysed by the Perl porting team. You can browse and search +the Perl 5 bugs at http://bugs.perl.org/ + +=end original + +もしまだ報告されていないバグだと確信したら、そのリリースに含まれている +perlbug プログラムをを実行してください。 +バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを +意識してください。バグレポートは perl -V の出力と一緒に +perl****@perl***** に送られ Perl porting チームによって解析されます。 +Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び +検索することができます。 + +=head1 SEE ALSO + +=begin original + +The F<Changes> file for exhaustive details on what changed. + +=end original + +F<Changes> ファイルに変更点の完全な詳細があります。 + +=begin original + +The F<INSTALL> file for how to build Perl. + +=end original + +F<INSTALL> ファイルに Perl のビルド方法があります。 + +=begin original + +The F<README> file for general stuff. + +=end original + +F<README> ファイルに一般的なことがあります。 + +=begin original + +The F<Artistic> and F<Copying> files for copyright information. + +=end original + +F<Artistic> 及び F<Copying> ファイルに著作権情報があります。 + +=cut + +=begin meta + +Translate: Kentaro Shirakata <argra****@ub32*****> +License: Same as Perl + +=end meta Index: docs/perl/5.8.4/perl58delta.pod diff -u docs/perl/5.8.4/perl58delta.pod:1.3 docs/perl/5.8.4/perl58delta.pod:1.4 --- docs/perl/5.8.4/perl58delta.pod:1.3 Thu Apr 13 05:23:51 2006 +++ docs/perl/5.8.4/perl58delta.pod Fri Apr 14 04:45:35 2006 @@ -4239,6 +4239,8 @@ =end original +INSTALL に 非 64-bit プラットフォームで Perl を 64-bit 整数を使うように +設定する方法の説明が追加されました。 =item * @@ -4253,6 +4255,9 @@ =end original +Policy.sh のポリシーが変更されました: Policy.sh ファイルを +再利用して(INSTALL を参照してください)、 +Configure -Dprefix=/foo/bar を使い、TBT =item * @@ -4264,6 +4269,10 @@ =end original +Perl ライブラリの追加の位置を指定するための otherlibdirs が +利用可能になりました。 +Perl 自身のライブラリディレクトリを使わずにベンダーアドオンを +インストールするためなどに使えます。 =item * @@ -4276,6 +4285,10 @@ =end original +多くのプラットフォームで、ベンダーが提供する 'cc' は Perl を +ビルドするには機能が低すぎます(基本的に、'cc' は ANSI C ではありません)。 +この場合にあたると考えられ、'cc' が GNU C コンパイラでないような +場合、代わりに 'gcc' を使うために自動的に検索します。 =item * @@ -4288,6 +4301,10 @@ =end original +gcc はビルドの問題を避けるためにオペレーションシステムのリリースを +追いかける必要があります。実行されているオペレーティングシステムと +違う環境で gcc がコンパイルされているのを Configure が発見した場合、 +問題があるかもしれないことを明確に警告として出力します。 =item * @@ -4299,6 +4316,8 @@ =end original +Perl 5.8 は以前のバージョンとバイナリ互換性がありませんので、 + @ INC に 5.005 モジュールを含めることを提案しなくなりました。 =item * @@ -4308,6 +4327,7 @@ =end original +Configure C<-S> は非対話的に実行できるようになりました。[561] =item * @@ -4318,6 +4338,8 @@ =end original +Configure の pdp11-スタイルメモリモデルは古いものになっていますので +取り除かれました。 =item * @@ -4327,6 +4349,7 @@ =end original +configure.gnu はオプションに空白が入っていても動作するようになりました。 =item * @@ -4336,6 +4359,7 @@ =end original +installperl は出力を全て STDERR に行うようになりました。 =item * @@ -4348,6 +4372,12 @@ =end original +PerlIO がほとんどのプラットフォームでデフォルトになったので、 +"-perlio" は $Config{archname} ($^O としても知られます) に +追加されなくなりました。 +代わりに、明示的に perlio を使わないことを選択した +(Configure コマンドラインオプション -Uuseperlio)場合、 +"-stdio"が追加されます。 =item * @@ -4359,6 +4389,10 @@ =end original +アーキテクチャ名に関するその他の変更としては、 +"-64all"(-Duse64bitall または "maximally 64-bit") は +ポインタが 64 ビット長 の場合にのみ追加されます。 +(正確には、use64bitall が無視されます。) =item * @@ -4370,6 +4404,7 @@ =end original +AFS インストールで、TBT =item * @@ -4381,6 +4416,10 @@ =end original +ほとんど知られていない設定時定義である APPLLIB_EXP どドキュメントが +作成されました。これはサイト固有のディレクトリを Perl の +デフォルト検索パス (@INC) に追加するために使えます。 +情報については INSTALL を参照してください。 =item * @@ -4394,6 +4433,11 @@ =end original +Perl (とおそらくは DB_File 拡張)がビルドされたときに使われた +Berkeley DB のバージョンが、Perl からは +C<@Config{qw(db_version_major db_version_minor db_version_patch)}> で、 +C からは C<DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG DB_VERSION_PATCH_CFG> で +得られるようになりました。 =item * @@ -4404,6 +4448,8 @@ =end original +DB, NDBM, ODBM のために Berkeley DB3 を互換性モードでビルドする方法が +INSTALL に記述されました。 =item * @@ -4416,6 +4462,11 @@ =end original +(ネットワーク経由か、CD-ROM のようなローカルコピーによって) CPAN に +アクセスできる場合、-Dextras=... オプションを使って +Perl と共にビルドおよびインストールする追加のモジュールを Configure に +指定することが出来ます。 +さらなる詳細については INSTALL を参照してください。 =item * @@ -4428,6 +4479,11 @@ =end original +config.over に追加して、新しい上書きファイルである config.arch が +利用可能になりました。 +このファイルはヒントファイルを書く人が +(config.over がサイトでの変更のためにあるのと違って) +アーキテクチャでの変更を扱うことを想定しています。 =item * @@ -4438,16 +4494,14 @@ =end original - -=begin original +ファイルシステムがシンボリックリンクに対応している場合、 +以下のようにして Perl をソースディレクトリの外側でビルドすることが +できます: mkdir perl/build/directory cd perl/build/directory sh /path/to/perl/source/Configure -Dmksymlinks ... -=end original - - =begin original This will create in perl/build/directory a tree of symbolic links @@ -4456,14 +4510,13 @@ =end original - -=begin original +これは perl/build/directory に /path/to/perl/source にある +ファイルを指すシンボリックリンクのツリーを作成します。 +元のファイルには影響はありません。 +Configure が終了した後、単に以下のようにすることで: make all test -=end original - - =begin original and Perl will be built and tested, all in perl/build/directory. @@ -4471,6 +4524,8 @@ =end original +全て perl/build/directory ディレクトリ内でで Perl が +ビルド、テストされます。[561] =item * @@ -4481,6 +4536,9 @@ =end original +Perl 開発者のために、プロファイリングやデバッグのための +新しい make のターゲットが追加されました; +L<perlhack> を参照してください。 =over 8 @@ -4494,6 +4552,10 @@ =end original +Perl のプロファイリングを 行う F<gprof> ツールの使い方が +L<perlhack> に記述されました。 +gprofile 化された Perl 実行ファイルを生成するための +"perl.gprof" という make ターゲットがあります。 =item * @@ -4505,6 +4567,8 @@ =end original +GCC 3 がある場合、範囲解析のための gcov 化された Perl 実行ファイルを +生成するための "perl.gcov"という make ターゲットがあります。 =item * @@ -4516,6 +4580,10 @@ =end original +IRIX か Tru64 プラットフォームの場合は、 +新しいプロファイリング/デバッギングオプションが追加されました。 +pixie と Third Degree に関するさらなる情報については L<perlhack> を +参照してください。 =back @@ -4528,6 +4596,8 @@ =end original +最小の Perl インストールを構築するためのガイドラインが +INSTALL に追加されました。 =item * @@ -4539,6 +4609,9 @@ =end original +Thread 拡張は i スレッドの基では(C<Configure -Duseithreads>) +ビルドされなくなりました。とにかく動作しないからです +(Thread 拡張は Configure に C<-Duse5005threads> を指定する必要があります)。 =begin original @@ -4548,6 +4621,9 @@ =end original +B<5.005 のスレッドは非サポートで、非推奨であることに注意してください: +古いスレッドを使ったコードは新しい i スレッドモデルに +移るべきです.> =item * @@ -4560,6 +4636,10 @@ =end original +浮動小数点を文字列化するための Gconvert マクロ ($Config{d_Gconvert}) は +変換に sprintf %.*g ルールを使うことに関してよりうるさくなりました。 +gcvt を使えていたプラットフォームでも、より遅い sprintf を使うことに +なるものもあります。 =item * @@ -4570,20 +4650,17 @@ =end original - -=begin original +perl に特殊な(デバッグなど)機能を付けるための以下のように指定する: make LIBPERL=libperld.a -=end original - - =begin original has been removed. Use -DDEBUGGING instead. =end original +古いメソッドは取り除かれました。代わりに -DDEBUGGING を使ってください。 =back @@ -4598,6 +4675,8 @@ =end original +Perl に対応しているとわかっているプラットフォームの一覧については、 +L<perlport/"Supported Platforms"> を参照してください。 =over 4 @@ -4609,6 +4688,7 @@ =end original +AIX の動的ローディングはよりよく対応するようになりました。 =item * @@ -4619,6 +4699,9 @@ =end original +AIX は gcc、スレッド、64-bit 化に関してよりよく動くようになりました。 +また AIX での long double の対応も改善されました。 +L<perlaix> を参照してください。 =item * @@ -4628,6 +4711,7 @@ =end original +AtheOS ( http://www.atheos.cx/ ) は新しいプラットフォームです。 =item * @@ -4637,6 +4721,7 @@ =end original +BeOS で再び動作するようになりました。 =item * @@ -4647,6 +4732,8 @@ =end original +DG/UX プラットフォームで 5.005-スタイルのスレッドに対応しました。 +L<perldgux> を参照してください。 =item * @@ -4657,6 +4744,8 @@ =end original +DYNIX/ptx プラットフォーム(dynixptx としても知られます) は +OS バージョン 4.5.2 あたりから対応されました。 =item * @@ -4670,6 +4759,12 @@ =end original +EBCDIC プラットフォーム (z/OS (OS/390 としても知られます), POSIX-BC, VM/ESA) +が復活しました。多くのテストスイートテストは未だに失敗し、 +Unicode と EBCDIC の共存がすっかり解決したわけではありませんが、 +状況は Perl 5.6 の頃より遥かに改善しました。 +さらなる情報については L<perlos390>, L<perlbs2000> (POSIX-BC), L<perlvmesa> を +参照してください。 =item * @@ -4681,6 +4776,11 @@ =end original +-Duseithreads または -Duse5005threads 付きの perl のビルドは +HP-UX 10.20 以前でも動作するようになりました(以前は10.30 以降でのみ +動作していました)。 +スレッドライブラリパッケージのインストールが必要です。 +README.hpux を参照してください。[561] =item * @@ -4693,6 +4793,9 @@ =end original +Mac OS Classic はメインストリームソースパッケージで対応することに +なりました(perl 5.004 からの MacPerl ももちろん利用可能ですが、 +標準の Perl と MacPerl のソースコードベースは同期しています)。[561] =item * @@ -4704,6 +4807,9 @@ =end original +Mac OS X(Darwin)では、HFS+ ファイルシステムでも Perl をビルドできるように +なりました。 +(大文字小文字を無視するので Perl ビルドプロセスを混乱させていました。) =item * @@ -4713,6 +4819,7 @@ =end original +NCR MP-RAS に対応しました。[561] =item * @@ -4723,6 +4830,8 @@ =end original +全ての NetBSD 固有のパッチ(インストール固有のパッチを除きます)が +メインディストリビューションにマージされました。 =item * @@ -4732,6 +4841,8 @@ =end original +Novell の NetWare に対応しました。 +L<perlnetware> を参照してください。 =item * @@ -4741,6 +4852,7 @@ =end original +NonStop-UX に対応しました。[561] =item * @@ -4750,6 +4862,7 @@ =end original +NEC SUPER-UX に対応しました。 =item * @@ -4760,6 +4873,8 @@ =end original +全ての OpenBSD 固有のパッチ(インストール固有のパッチを除きます)が +メインディストリビューションにマージされました。 =item * @@ -4774,6 +4889,12 @@ =end original +Perl has been tested with the GNU pth userlevel thread package +( http://www.gnu.org/software/pth/pth.html ). All thread tests +of Perl now work, but not without adding some yield()s to the tests, +so while pth (and other userlevel thread implementations) can be +considered to be "working" with Perl ithreads, keep in mind the +possible non-preemptability of the underlying thread implementation. =item * @@ -4786,6 +4907,10 @@ =end original +Stratus VOS is now supported using Perl's native build method +(Configure). This is the recommended method to build Perl on +VOS. The older methods, which build miniperl, are still +available. See L<perlvos>. [561+] =item * @@ -4795,6 +4920,7 @@ =end original +Amdahl UTS UNIX メインフレームプラットフォームに対応しました。[561] =item * @@ -4804,6 +4930,7 @@ =end original +WinCE に対応しました。L<perlce> を参照してください。 =item * @@ -4815,6 +4942,9 @@ =end original +z/OS (formerly known as OS/390, formerly known as MVS OE) now has +support for dynamic loading. This is not selected by default, +however, you must specify -Dusedl in the arguments of Configure. [561] =back @@ -4830,6 +4960,8 @@ =end original +多くのメモリリークと未初期化メモリへのアクセスが修正されました。 +最重要なものとしては、無名 subs がかなりメモリリークしていました。[561] =over 4 @@ -4841,6 +4973,7 @@ =end original +autouse プラグマは Multi::Part::Function::Names で動作していませんでした。 =item * @@ -4853,6 +4986,10 @@ =end original +caller() はある種の状況ではコアダンプを引き起こしていました。 +Cart は時々この問題の影響を受けていました。 +特に、caller() はシンボルテーブルから削除されたサブルーチンでは +サブルーチン名として C<(unknown)> を返すようになりました。 =item * @@ -4969,6 +5106,7 @@ =end original +L<dprofpp> -R は動作しませんでした。 =item * @@ -4978,6 +5116,7 @@ =end original +C<*foo{FORMAT}> が動作するようになりmした。 =item * @@ -4987,6 +5126,7 @@ =end original +無限を数として認識するようになりました。 =item * @@ -5038,6 +5178,8 @@ =end original +C<use warnings qw(FATAL all)> は狙いどおりに動作していませんでした。 +これは修正されました。[561] =item * @@ -5066,6 +5208,7 @@ =end original +多くのメモリリーク、特に eval "" でのメモリリークが修正されました。 =item * @@ -5075,6 +5218,7 @@ =end original +tie した変数をローカル化してもメモリリークしなくなりました。 use Tie::Hash; tie my %tied_hash => 'Tie::StdHash'; @@ -5235,6 +5379,7 @@ =end original +PERL5OPT が組み込み空間では動作していませんでした。 =item * @@ -5311,6 +5456,7 @@ =end original +SOCKS 対応は遥かに頑強になりました。 =item * @@ -5438,6 +5584,7 @@ =end original +Sys::Syslog は C<LOG_AUTH> 定数を無視していました。 =item * @@ -5457,6 +5604,7 @@ =end original +Tie::Array の SPLICE メソッドは壊れていました。 =item * @@ -5485,6 +5633,7 @@ =end original +いくつかの Unicode 関係の修正が行われました。 =over 8 @@ -5507,6 +5656,7 @@ =end original +文字テーブルは Unicode 3.2.0 に更新されました。 =item * @@ -5568,6 +5718,7 @@ =end original +C<eval "v200"> が動作するようになりました。 =item * @@ -6582,6 +6733,7 @@ =end original +PerlIO がデフォルトになりました。 =item * @@ -6592,6 +6744,7 @@ =end original +perlapi.pod (perlguts の仲間) で内部 API の記述を試みています。 =item * @@ -6600,12 +6753,19 @@ You can now build a really minimal perl called microperl. Building microperl does not require even running Configure; C<make -f Makefile.micro> should be enough. Beware: microperl makes -many assumptions, some of which may be too bold; the resulting +many assumptions, some of which may be too bwold; the resulting executable may crash or otherwise misbehave in wondrous ways. For careful hackers only. =end original +microperl と呼ばれる、本当に最小限の perl をビルドできるようになりました。 +microperl のビルドには Configure の実行すら不要です; +C<make -f Makefile.micro> とするだけです。 +注意: microperl は多くの仮定を置いています。その中には +大胆すぎるものもあります;結果として実行ファイルがクラッシュしたり、 +さもなければ不思議な形で正しくない振る舞いをしたりするかもしれません。 +慎重なハッカー専用です。 =item * @@ -6618,6 +6778,10 @@ =end original +rsignal(), whichsig(), do_join(), op_clear, op_null, +ptr_table_clear(), ptr_table_free(), sv_setref_uv() と、 +いくつかの UTF-8 インターフェースが公式 API に追加されました。 +利用可能な API の完全な一覧については L<perlapi> を参照してください。 =item * @@ -6627,6 +6791,8 @@ =end original +カスタマイズした例外を croak() することで伝播させることが +できるようになりました。 =item * @@ -6637,6 +6803,8 @@ =end original +xsubs は subs のように属性を持てるようになりました。 +(ええ、少なくとも組み込み属性は。) =item * @@ -6647,6 +6815,8 @@ =end original +dTHR と djSP は古いものとなりました; 前者は取り除かれ +(なぜならこれは何も行わないからです) 後者は dSP で置き換えられました。 =item * @@ -6656,6 +6826,7 @@ =end original +PERL_OBJECT は完全に取り除かれました。 =item * @@ -6667,6 +6838,8 @@ =end original +MAGIC 定数 (つまり C<'P'>) はソースコードの可読性と +保守性を高めるためにマクロ化(つまり C<PERL_MAGIC_TIED>)されました。 =item * @@ -6680,6 +6853,7 @@ =end original +正規表現コンパイラはTBT =item * @@ -6692,7 +6866,12 @@ =end original +C コードは遥かによく C<gcc -Wall> クリーンになりました。 +プラットフォームによってはいくつかの警告が未だ残っているので、 +gcc を使ってコンパイルすることで疑わしい慣習に関する警告を見ることができます。 +警告は対応中です。 +work on =item * =begin original @@ -6701,6 +6880,7 @@ =end original +F<perly.c>, F<sv.c>, F<sv.h> には広範囲にコメントが付けられました。 =item * @@ -6711,6 +6891,8 @@ =end original +Perl ソースレポジトリの使い方に関するドキュメントが +F<Porting/repository.pod> として追加されました。 =item * @@ -6720,6 +6902,7 @@ =end original +プロファイリングのための make ターゲットがいくつか追加されました。 =back @@ -6735,6 +6918,9 @@ =end original +(これは既に 5.7.0 で修正されていますが、ここで繰り返します。) +(5.7.0 は 5.6.1 より先に出ています: 5.7 開発ブランチは +5.6 メンテナンスブランチより先にリリースされています) =begin original @@ -6748,6 +6934,16 @@ =end original +オプションである suidperl コンポーネントの潜在的なセキュリティ脆弱性が +2000 年 8 月に発見されました。 +suidperl はデフォルトではビルド・インストールされません。 +2001 年 11 月までに知られている唯一の脆弱なプラットフォームは +Linux で、ほとんど全ての Linux ディストリビューションを含みます。 +CERT とさまざまなベンダーとディストリビューターはこの +脆弱性を警告しています。 +さらなる情報については +http://www.cpan.org/src/5.0/sperl-2000-08-05/sperl-2000-08-05.txt を +参照してください。 =begin original @@ -6761,6 +6957,13 @@ =end original +問題は Perl が セキュリティ攻撃を報告するために外部プログラムである +/bin/mail を使おうとすることです。 +Linux プラットフォームでは /bin/main プログラムのドキュメント化されていない +機能が suidperl と結びつくと root シェルへのアクセスを与え、 +結果として攻撃を報告する代わりにセキュリティに重大な脅威を与えます。 +/bin/mail がないか、'safe setuid scripts' を使っているか、 +suidperl がインストールされていなければ、安全です。 =begin original @@ -6776,6 +6979,15 @@ =end original +攻撃報告機能は Perl 5.8.0 (および 5.6.1 メンテナンスリリースと +全ての Perl 5.7 リリース)では完全に取り除かれましたので、 +この脆弱性はもう存在しません。 +しかし、残念ながらさらなるセキュリティ脆弱性は常にあり得ます。 +suidperl 機能はおそらく Perl 5.10 で取り除かれます。 +どちらにしても、suidperl は何が行われ、なぜ sudo +( http://www.courtesan.com/sudo/ を参照してください)のようなその他の +ソリューションではなく suidperl を使うのかを完全に理解している +セキュリティの専門家だけが使うべきです。 =head1 New Tests @@ -6973,6 +7185,13 @@ =end original +'Undefined symbol "Perl_get_sv"' や "can't resolve symbol 'Perl_get_sv'" と +言ったエラーが出るかもしれません(シンボルは "Perl_sv_2pv" の場合もあります)。 +これはおそらく古い Perl の共有ライブラリ(かこれらとリンクされている拡張)を +Perl 5.8.0 実行ファイルと共に使おうとしていることを意味しています。 +以前の Perl はこのようなサブルーチンを使っていましたが、 +現在は使っていません。共有ライブラリパスを調べて、 +そのディレクトリにある Perl の共有ライブラリをチェックしてください。 =begin original @@ -6982,6 +7201,9 @@ =end original +この問題は Perl 5.8.0 のインストールが不完全な場合にも起こります。 +この例と、どう扱うかについては L</"Mac OS X dyld undefined symbols"> を +参照してください。 =head2 Self-tying Problems @@ -6994,6 +7216,10 @@ =end original +配列とハッシュの自己 tie は深くて修正しにくい部分でおかしくなります。 +人々がおかしな結果(最も多いのはコアダンプです)にいらいらするのを +避けるために、これは禁止されることになりました(試みるだけで +致命的エラーになります)。 =begin original @@ -7004,6 +7230,10 @@ =end original +glob の自己 tie の変更は再帰的リファレンスを引き起こします +(参照: L<perlobj/"Two-Phased Garbage Collection">)。 +自己 tie された glob を破壊するためには明示的に untie する必要があります。 +この振る舞いは将来変更されるかもしれません。 =begin original @@ -7011,6 +7241,7 @@ =end original +スカラと IO の自己 tie は動作します。 =head2 ext/threads/t/libc @@ -7187,6 +7418,10 @@ =end original +AIX ネイティブの make コマンドを使っている場合、 +単に"make"とするのではなく、"make all"としてください。 +前者のようにすると、間違って"make install"が実行されることがあります。 +あるいは、GNU make を使う方がよいかもしれません。 =item * @@ -7202,6 +7437,13 @@ =end original +AIX 4.2 では、statics を使う C++ 関数を使う Perl 拡張は +statics が初期化されないために問題が起きるかもしれません。 +より新しい AIX では、この問題は Perl に libC_r ライブラリを +リンクすることで解決されますが、残念ながら AIX 4.2 では +このライブラリは時間に関するさまざまな関数(time() や gettimeofday() など)で +間違った値を返すという不明確なバグがあるため、AIX 4.2 では +Perl は libC_r をリンクしていません。 =item * @@ -7218,6 +7460,13 @@ =end original +AIX C コンパイラ vac バージョン 5.0.0.0 はバグったコードを出力し、 +"make test"の一部として実行するといくつかのテストに失敗することが +ありますが、失敗したテストを手動で実行すると成功します。 +少なくとも vac バージョン 5.0.1.0 にアップグレードすることをお勧めします。 +これは Perl を正しくコンパイルできることがわかっています。 +"lslpp -L|grep vac.C" とすると vac のバージョンが表示されます。 +README.aix を参照してください。 =item * @@ -7227,6 +7476,8 @@ =end original +スレッド化 Perl をビルドすると、pp_sys.c でコンパイル警告が +出るかもしれません。 "pp_sys.c", line 4651.39: 1506-280 (W) Function argument assignment between types "unsigned char*" and "const void*" is not allowed. @@ -7237,6 +7488,8 @@ =end original +これは無害です; これは getnetbyaddr() と getnetbyaddr_r() の第一引数の +型が少し違うために発生します。 =back @@ -7253,6 +7506,13 @@ =end original +Linux/alpha か *BSD/Alpha で op/pack, op/pat, op/regexp, ext/Storable の +いずれかのテストが失敗した場合、おそらく gcc をアップグレードする +タイミングです。2.95.3 以前の gcc は明らかに十分よいものであるとは言えず、 +gcc 3.1 はもっとよいものです。(RedHat Linux/alpha で gcc 3.1 の場合は +問題は報告されていませんが、Linux 2.4.18 で gcc 2.95.4 の場合では +報告されています。)(Tru64 では、バンドルされている C コンパイラを使ったほうが +よいです。) =head2 AmigaOS @@ -7265,6 +7525,11 @@ =end original +Perl 5.8.0 は AmigaOS ではビルドできません。 +iスレッドのどこかで問題が発生していて、この問題を解決するための +Amiga の専門家が見つけられないのです。 +Perl 5.6.1 は未だ Amiga OS で動作します +(5.7.2 開発リリースも動作します)。 =head2 BeOS @@ -7274,6 +7539,7 @@ =end original +BeOS Personal 5.03 では Perl 5.8.0 の以下のテストは失敗します。 t/op/lfs............................FAILED at test 17 t/op/magic..........................FAILED at test 24 @@ -7288,6 +7554,7 @@ =end original +さらなる詳細については L<perlbeos> (README.beos) を参照してください。 =head2 Cygwin "unable to remap" @@ -7300,6 +7567,10 @@ =end original +例えば Cygwin 用の Tk 拡張をビルドするとき、"unable to remap" という +エラーが出るかもしれません。 +これは Cygwin の既知の問題で、回避方法は以下に詳細があります: +http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html =head2 Cygwin ndbm tests fail on FAT @@ -7312,6 +7583,11 @@ =end original +FAT ファイルシステムで NDBM_File をビルドはできますが、 +インストール(とテスト)はできません。 +NTFS でのインストール(とビルド)はうまくいきます。 +FAT でのインストール(とビルド)をテストしようとすると、以下の +失敗が報告されるはずです: ../ext/NDBM_File/ndbm.t 13 3328 71 59 83.10% 1-2 4 16-71 ../ext/ODBM_File/odbm.t 255 65280 ?? ?? % ?? @@ -7326,6 +7602,7 @@ =end original +NDBM_File は失敗し、ODBM_File は単にコアダンプします。 =begin original @@ -7335,6 +7612,9 @@ =end original +FAT でのみ実行したい(あるいは FAT で AnyDBM_File を使いたい)場合は、 +NDBM_File と ODBM_File がビルドされるのを防ぐために +Configure に -Ui_ndbm と -Ui_dbm のオプションをつけて実行してください。 =head2 DJGPP Failures @@ -7355,6 +7635,9 @@ =end original +5.8.0 をロングファイルネーム対応でネイティブにビルドしたときに +上記の失敗が起こることがわかっていますが、dosemu で実行した場合、 +dosemu の制限(とおそらくはバグ)によってさらに以下のものが失敗します。 t/comp/cpp...........................FAILED at test 3 t/op/inccode.........................(crash) @@ -7367,6 +7650,9 @@ =end original +さらに lib/ExtUtils test のいくつかと、ロングファイルネーム対応なら +正しく動く Encode/t/Aliases.t の数百のテストが失敗します。 +従って、ロングファイルネーム付きでネイティブビルドした方がいいでしょう。 =head2 FreeBSD built with ithreads coredumps reading large directories @@ -7377,6 +7663,9 @@ =end original +これは FreeBSD 4.5 の readdir_r() に関する既知の問題で、 +FreeBSD 4.6 で修正されています +(L<perlfreebsd> (README.freebsd) を参照してください)。 =head2 FreeBSD Failing locale Test 117 For ISO 8859-15 Locales @@ -7391,6 +7680,11 @@ =end original +ISO 8859-15 ロケールは FreeBSD の locale test 117 で失敗します。 +これは 文字 \xFF (文節記号付きの y) と \xBE (文節記号付きの Y) が +大文字小文字を無視してのマッチのときに正しく振舞わないことが原因です。 +この問題は最新の FreeBSD リリースでは修正されているようです。 +( http://www.freebsd.org/cgi/query-pr.cgi?pr=34308 ) =head2 IRIX fails ext/List/Util/t/shuffle.t or Digest::MD5 @@ -7403,6 +7697,11 @@ =end original +IRIX で MIPSpro 7.3.1.2m か 7.3.1.3m のコンパイラを使った場合、 +List::Util のテストである ext/List/Util/t/shuffle.t が core を出力して +失敗します。gcc でコンパイルした場合は core を出力せず、 +その他のプラットフォームでこのように失敗したという話を聞きませんので、 +コンパイラのエラーのようです。 =begin original @@ -7411,6 +7710,8 @@ =end original +同様に、Digest::MD5 拡張をビルドするときに +"*** Termination code 139 (bu21)" と表示して失敗することがわかっています。 =begin original @@ -7418,6 +7719,7 @@ =end original +回避方法は最適化レベルを落とすことです(Configure -Doptimize=-O2)。 =head2 HP-UX lib/posix Subtest 9 Fails When LP64-Configured @@ -7430,6 +7732,9 @@ =end original +perl が -Duse64bitall 付きで設定された場合、lib/posix の subtest 10 の +成功が subtest 9 の成功の前に報告されるため、テストハーネスが +混乱して subtest 9 が失敗したと考えてしまいます。 =head2 Linux with glibc 2.2.5 fails t/op/int subtest #6 with -Duse64bitint @@ -7440,6 +7745,8 @@ =end original +これは glibc 2.2.5 の long long int の既知のバグです。 +( http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=65612 ) =head2 Linux With Sfio Fails op/misc Test 48 @@ -7449,6 +7756,7 @@ =end original +わかっている修正方法はありません。 =head2 Mac OS X @@ -7460,6 +7768,9 @@ =end original +Mac OS X の壊れたロケールに関する大量の警告を避けるために、 +"make test" する前に環境変数 LC_ALL を "C" にセットする +(setenv LC_ALL C) ことを忘れないで下さい。 =begin original @@ -7468,6 +7779,8 @@ =end original +以下のテストは Mac OS X に含まれている Berkeley DB の実装が +バグっている(古い)ために失敗することがわかっています。 Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------- @@ -7482,6 +7795,9 @@ =end original +UFS パーティションでビルドした場合、多分 t/op/stat.t subtest #9 も +失敗するでしょう。これは Darwin の UPF が inode 変更時刻に +対応していないからです。 =begin original @@ -7491,6 +7807,9 @@ =end original +また ext/POSIX/t/posix.t subtest #10 が失敗しますが、 +これは Perl の責任ではなく Apple の責任(ブロックされたシグナルが +失われる)なので、スキップするようになりました。 =begin original @@ -7501,6 +7820,9 @@ =end original +iスレッド付きで Configure した場合、ext/threads/t/libc.t が失敗します。 +これも Perl の責任ではありません-- Mac OS X の libc はスレッドセーフでは +ありません(このテストは localtime() がスレッドセーフかどうかをテストします。) =head2 Mac OS X dyld undefined symbols