名前

perl583delta - what is new for perl v5.8.3

perl583delta - perl v5.8.3 での変更点

説明

This document describes differences between the 5.8.2 release and the 5.8.3 release.

このドキュメントは 5.8.2 リリースと 5.8.3 リリースの変更点を記述しています。

If you are upgrading from an earlier release such as 5.6.1, first read the perl58delta, which describes differences between 5.6.0 and 5.8.0, and the perl581delta and perl582delta, which describe differences between 5.8.0, 5.8.1 and 5.8.2

もしそれよりも前のリリース, 例えば 5.6.1 等からアップデートするのなら、 5.6.0 と 5.8.0 との違いが書かれている perl58delta および、 5.8.0, 5.8.1, 5.8.2 との違いが書かれている perl581delta, perl582delta を読んでおいた方がよいでしょう。

互換性のない変更

There are no changes incompatible with 5.8.2.

5.8.2 との互換性のない変更はありません。

Core の拡張

A SCALAR method is now available for tied hashes. This is called when a tied hash is used in scalar context, such as

tie されたハッシュで SCALAR メソッドが利用可能になりました。 tie されたハッシュが以下のようにスカラコンテキストで使われたときに 呼び出されます:

    if (%tied_hash) {
        ...
    }

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 each iteration, and otherwise call FIRSTKEY to check if the hash is empty (making sure that a subsequent each will also begin by calling FIRSTKEY). Please see "SCALAR" in perltie for the full details and caveats.

以前の振る舞いでは、%tied_hash はハッシュが tie される前にハッシュが 返すはずの値(つまり普通は 0)を返していました。 新しい振る舞いは、SCALAR メソッドがない場合は each 繰り返しの途中では 真を返し、さもなければ(引き続く each が FIRSTKEY を呼び出すことで 始まることを確実にするために)ハッシュが空かどうかどうかを調べるために FIRSTKEY が呼び出されます。 完全な詳細と問題点については "SCALAR" in perltie を参照してください。

モジュールとプラグマ

CGI
Cwd
Digest
Digest::MD5
Encode
File::Spec
FindBin

A function again is provided to resolve problems where modules in different directories wish to use FindBin.

again 関数は異なったディレクトリにあるモジュールが、FindBin を使いたい 場合の問題を解決するために提供されます。

List::Util

You can now weaken references to read only values.

読み込み専用の値へのリファレンスを弱くすることができるようになりました。

Math::BigInt
PodParser
Pod::Perldoc
POSIX
Unicode::Collate
Unicode::Normalize
Test::Harness
threads::shared

cond_wait has a new two argument form. cond_timedwait has been added.

cond_wait は新しい 2 引数の形を持つようになりました。 cond_timedwait が追加されました。

ツールの変更

find2perl now assumes -print as a default action. Previously, it needed to be specified explicitly.

find2perl はデフォルトのアクションとして -print を 仮定するようになりました。以前は明示的に指定する必要がありました。

A new utility, prove, makes it easy to run an individual regression test at the command line. prove is part of Test::Harness, which users of earlier Perl versions can install from CPAN.

新しいツールである prove で、個々の退行テストをコマンドラインから 簡単に実行できます。prove は Test::Harness の一部で、 以前のバージョンの Perl のユーザーは CPAN からインストールできます。

新しいドキュメント

The documentation has been revised in places to produce more standard manpages.

より標準的な man ページが出力されるように、ドキュメントが見直されました。

The documentation for the special code blocks (BEGIN, CHECK, INIT, END) has been improved.

特殊コードブロック(BEGIN, CHECK, INIT, END) のドキュメントが 改良されました。

インストールと設定の改良

Perl now builds on OpenVMS I64

OpenVMS I64 でビルドできるようになりました。

バグ修正の抜粋

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.

UTF8 文字列に substr() を使うことでその後その文字列にアクセスすると ゴミを返すことがありました。 これはキャッシュされた UTF8 のオフセットが正しくなかったが原因で、 修正されました。

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.

join() 文が以前に処理された UTF8 データを持つ 8 bit のデータを処理して いた場合、その join() でゴミを返すことがありました。 これはその文のテンポラリワークスペースのフラグが正しく リセットされていないのが原因でした。これは修正されました。

$a .. $b will now work as expected when either $a or $b is undef

$a .. $b は $a か $b が undef でも予測どおりに動作するようになりました。

Using Unicode keys with tied hashes should now work correctly.

tie されたハッシュに Unicode キーを使っても正しく動作するようになりました。

Reading $^E now preserves $!. Previously, the C code implementing $^E did not preserve errno, so reading $^E could cause errno and therefore $! to change unexpectedly.

$^E を読むときに $! が保存されるようになりました。 以前は、$^E を実装していた C コードが error を保存していなかったので、 $^E を読むことで errno が変更されることがあり、それによって $! が 変更されることがありました。

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++

再入可能関数は (再び) C++ で動作するようになりました。 5.8.2 のバグ修正によって図らずも C++ で書かれた Perl 拡張のコンパイルを 壊していました。

新しい、または変更された診断メッセージ

The fatal error "DESTROY created new reference to dead object" is now documented in perldiag.

致命的エラー "DESTROY created new reference to dead object" が perldiag に記述されました。

内部の変更

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.

ハッシュのコードはリファクタリングされ、ソースの重複が減少しました。 外部インターフェースは無変更で、上記のバグ修正を除いて 振る舞いも変わっていないはずです。

hv_clear_placeholders is now part of the perl API

hv_clear_placeholders が perl API の一部となりました。

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.

C マクロのいくつかが整理されました。 特に一時ローカル変数を作成するマクロは変数名をより防御的に 作成するようになり、変数名がぶつかったときのバグを防ぐことができるはずです。

<signal.h> is now always included.

<signal.h> は常に含まれるようになりました。

設定とビルド

Configure now invokes callbacks regardless of the value of the variable they are called for. Previously callbacks were only invoked in the case $variable $define) branch. This change should only affect platform maintainers writing configuration hints files.

Configure は呼び出した変数の値に関わらずコールバックを 起動するようになりました。以前は case $variable $define) 分岐の 場合にのみ起動されていました。 この変更は設定ヒントファイルを書くプラットフォームメンテナにのみ 影響があるはずです。

プラットフォーム固有の問題

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.

初期の RedHat 9 と HP-UX 10.20 はスレッドの実装にバグがあるため、 ext/threads/shared/t/wait.t 退行テストに失敗します。 RedHat ユーザーは https://rhn.redhat.com/errata/RHBA-2003-136.html を 参照して、glibc のアップグレードを考慮するべきです。

既知の問題

Detached threads aren't supported on Windows yet, as they may lead to memory access violation problems.

detach されたスレッドはまだ Windows では動作しません。 メモリアクセス違反問題を引き起こします。

There is a known race condition opening scripts in suidperl. 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/ )

suidperl でスクリプトを開くときに競合状態になることがわかっています。 suidperl はデフォルトではビルドやインストールはされません。 また、perl 5.8.0 以降では非推奨となっています。 suidperl を使用する代わりに sudo ( http://www.courtesan.com/sudo/ ) の ようなツールを使用することをお勧めします。

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.

私たちは未解決のバグの一覧を持っています。 バグとバグ報告を扱うのは魅力のない作業です; 理想的にはボランティアの労働者に割り当てられるべきものではありません。 しかし私たちはそうせざるを得ません。

The perl5 development team are implementing changes to help address this problem, which should go live in early 2004.

perl5 開発チームはこの問題を扱う助けとなる変更を実装中で、 2004 年初頭には有効になる予定です。

将来の方向性

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.

次のメンテナンスリリース(5.8.4)は 2004 年 3 月 31 日にコードフリーズされ、 4 月中旬までにリリースされる予定です。 同様に 5.8.5 は 6 月終わりにフリーズされ、7 月中旬までに リリースされる予定です。

お悔やみ

Iain 'Spoon' Truskett, Perl hacker, author of perlreref and contributor to CPAN, died suddenly on 29th December 2003, aged 24. He will be missed.

Perl ハッカーであり、perlreref の著者であり、CPAN の 貢献者である Iain 'Spoon' Truskett は 2003 年 12 月 29 日、24 歳で 急死しました。お悔やみを申し上げます。

Reporting Bugs

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.

もしバグと思われるものが見つかったら、 comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを 確認してください。 Perl ホームページ、http://www.perl.org にも情報があります。

If you believe you have an unreported bug, please run the 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 perl -V, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. You can browse and search the Perl 5 bugs at http://bugs.perl.org/

もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムをを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。 Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び 検索することができます。

SEE ALSO

The Changes file for exhaustive details on what changed.

Changes ファイルに変更点の完全な詳細があります。

The INSTALL file for how to build Perl.

INSTALL ファイルに Perl のビルド方法があります。

The README file for general stuff.

README ファイルに一般的なことがあります。

The Artistic and Copying files for copyright information.

Artistic 及び Copying ファイルに著作権情報があります。