=encoding utf8

=for comment
Consistent formatting of this file is achieved with:
  perl ./Porting/podtidy pod/perlsource.pod

=head1 NAME

=begin original

perlsource - A guide to the Perl source tree

=end original

perlsource - Perl のソースツリーのガイド

=head1 DESCRIPTION

=begin original

This document describes the layout of the Perl source tree. If you're
hacking on the Perl core, this will help you find what you're looking
for.

=end original

この文書は、Perl ソースツリーのレイアウトを記述しています。
Perl コアをハックする場合は、これがあなたの探しているものを見つける
助けになるでしょう。

=head1 FINDING YOUR WAY AROUND

(進む方向を見つける)

=begin original

The Perl source tree is big. Here's some of the thing you'll find in
it:

=end original

Perl ソースツリーは巨大です。
以下はその中で見つけられるものの一部です:

=head2 C code

(C コード)

=begin original

The C source code and header files mostly live in the root of the
source tree. There are a few platform-specific directories which
contain C code. In addition, some of the modules shipped with Perl
include C or XS code.

=end original

C のソースコードとヘッダファイルはほとんどソースツリーのルートにあります。
一部のプラットフォーム固有ディレクトリには C のコードがあります。
さらに、Perl に同梱されている一部のモジュールは C や XS のコードを含みます。

=begin original

See L<perlinterp> for more details on the files that make up the Perl
interpreter, as well as details on how it works.

=end original

Perl インタプリタを作り上げているファイル、およびそれが
どのように動作するかに関するさらなる詳細については
L<perlinterp> を参照してください。

=head2 Core modules

(コアモジュール)

=begin original

Modules shipped as part of the Perl core live in four subdirectories.
Two of these directories contain modules that live in the core, and two
contain modules that can also be released separately on CPAN. Modules
which can be released on cpan are known as "dual-life" modules.

=end original

Perl コアの一部として同梱されているモジュールは、四つのサブディレクトリに
あります。
それらのディレクトリの二つにはコアで管理されているモジュールがあり、
二つには CPAN でも独自にリリースされているモジュールがあります。
cpan でリリースされているモジュールは「二重管理」(dual-life)モジュールとして
知られています。

=over 4

=item * F<lib/>

=begin original

This directory contains pure-Perl modules which are only released as
part of the core. This directory contains I<all> of the modules and
their tests, unlike other core modules.

=end original

このディレクトリには、コアの一部としてのみリリースされている、ピュア Perl
モジュールがあります。
このディレクトリには、その他のコアモジュールと異なり、
I<全ての> モジュールとそのテストがあります。

=item * F<ext/>

=begin original

Like F<lib/>, this directory contains modules which are only released
as part of the core.  Unlike F<lib/>, however, a module under F<ext/>
generally has a CPAN-style directory- and file-layout and its own
F<Makefile.PL>.  There is no expectation that a module under F<ext/>
will work with earlier versions of Perl 5.  Hence, such a module may
take full advantage of syntactical and other improvements in Perl 5
blead.

=end original

F<lib/> と同様、このディレクトリには、コアの一部としてのみリリースされている
モジュールがあります。
しかし、F<lib/> と異なり、F<ext/> 以下のモジュールは一般的に
CPAN 風のディレクトリおよびファイル配置をしていて、
独自の F<Makefile.PL> を持っています。
F<ext/> 以下のモジュールは、以前のバージョンの Perl 5 で動作することを
想定していません。
従って、このようなモジュールは Perl 5 blead の文法的およびその他の改良の
利点を最大限受けられます。

=item * F<dist/>

=begin original

This directory is for dual-life modules where the blead source is
canonical. Note that some modules in this directory may not yet have
been released separately on CPAN.  Modules under F<dist/> should make
an effort to work with earlier versions of Perl 5.

=end original

このディレクトリは、blead のソースが主である二重管理モジュールです。
このディレクトリのモジュールには、まだ CPAN に独自にリリースされていない
ものもあることに注意してください。
F<dist/> 以下のモジュールは、以前のバージョンの Perl 5 でも動作するための
努力が行われるべきです。

=item * F<cpan/>

=begin original

This directory contains dual-life modules where the CPAN module is
canonical. Do not patch these modules directly! Changes to these
modules should be submitted to the maintainer of the CPAN module. Once
those changes are applied and released, the new version of the module
will be incorporated into the core.

=end original

このディレクトリには、CPAN モジュールが主である二重管理モジュールが
あります。
これらのモジュールに直接パッチをしないでください!
これらのモジュールへの変更は、CPAN モジュールの管理者に投稿されるべきです。
その変更が適用されてリリースされてから、モジュールの新しいバージョンが
コアに統合されます。

=back

=begin original

For some dual-life modules, it has not yet been determined if the CPAN
version or the blead source is canonical. Until that is done, those
modules should be in F<cpan/>.

=end original

一部の二重管理モジュールでは、CPAN 版と blead のソースのどちらが主か
まだ決定されていません。
決定が成されるまで、このようなモジュールは F<cpan/> に置かれます。

=head2 Tests

(テスト)

=begin original

The Perl core has an extensive test suite. If you add new tests (or new
modules with tests), you may need to update the F<t/TEST> file so that
the tests are run.

=end original

Perl コアには大規模なテストスイートがあります。
新しいテスト(またはテスト付きの新しいモジュール)を追加する場合、
テストが実行されるように、F<t/TEST> ファイルを更新する必要があるでしょう。

=over 4

=item * Module tests

(モジュールのテスト)

=begin original

Tests for core modules in the F<lib/> directory are right next to the
module itself. For example, we have F<lib/strict.pm> and
F<lib/strict.t>.

=end original

F<lib/> ディレクトリにあるコアモジュールのテストは、
モジュール自身のすぐ隣にあります。
例えば、F<lib/strict.pm> and F<lib/strict.t> があります。

=begin original

Tests for modules in F<ext/> and the dual-life modules are in F<t/>
subdirectories for each module, like a standard CPAN distribution.

=end original

F<ext/> と二重管理のモジュールのテストは、標準の CPAN 配布と同様、
各モジュールの F<t/> サブディレクトリにあります。

=item * F<t/base/>

=begin original

Tests for the absolute basic functionality of Perl. This includes
C<if>, basic file reads and writes, simple regexes, etc. These are run
first in the test suite and if any of them fail, something is I<really>
broken.

=end original

Perl の絶対的な基本機能をテストします。
これには C<if>、基本的なファイルの読み書き、単純な正規表現などを含みます。
これらはテストスイートで最初に実行され、それらのいずれかが失敗した場合、
何かが I<本当に> 壊れていることになります。

=item * F<t/cmd/>

=begin original

Tests for basic control structures, C<if>/C<else>, C<while>, subroutines,
etc.

=end original

これらは、基本制御構造、C<if/else>、C<while>、サブルーチンなどを
テストします。

=item * F<t/comp/>

=begin original

Tests for basic issues of how Perl parses and compiles itself.

=end original

Perl の構文解析およびコンパイル方法に関する基本的な問題をテストします。

=item * F<t/io/>

=begin original

Tests for built-in IO functions, including command line arguments.

=end original

コマンドライン引数を含む組み込み IO 関数をテストします。

=item * F<t/mro/>

=begin original

Tests for perl's method resolution order implementations (see L<mro>).

=end original

perl のメソッド解決順序実装(L<mro> を参照)をテストします。

=item * F<t/op/>

=begin original

Tests for perl's built in functions that don't fit into any of the
other directories.

=end original

perl に組み込まれている関数のうち、他のどのディレクトリにも適合しない
関数をテストします。

=item * F<t/opbasic/>

=begin original

Tests for perl's built in functions which, like those in F<t/op/>, do
not fit into any of the other directories, but which, in addition,
cannot use F<t/test.pl>,as that program depends on functionality which
the test file itself is testing.

=end original

Tests for perl's built in functions which, like those in 
F<t/op/> にあるものと同様、perl の組み込み関数で、他のディレクトリに
合わないものですが、さらに、F<t/test.pl> を使えないテスト;
このプログラムはテストファイル自身がテストしている機能に
依存しているからです。

=item * F<t/re/>

=begin original

Tests for regex related functions or behaviour. (These used to live in
t/op).

=end original

正規表現関係の関数や振る舞いに関するテストをします。
(これらは以前は t/op にありました)。

=item * F<t/run/>

=begin original

Tests for features of how perl actually runs, including exit codes and
handling of PERL* environment variables.

=end original

終了コードや PERL* 環境変数の処理など、perl が
実際にどのように実行されるかをテストします。

=item * F<t/uni/>

=begin original

Tests for the core support of Unicode.

=end original

Unicode のコア対応をテストします。

=item * F<t/win32/>

=begin original

Windows-specific tests.

=end original

Windows 固有のテスト。

=item * F<t/porting/>

=begin original

Tests the state of the source tree for various common errors. For
example, it tests that everyone who is listed in the git log has a
corresponding entry in the F<AUTHORS> file.

=end original

ソースツリーの状態に関して、様々な一般的な誤りをテストします。
例えば、git ログに乗っている全員が F<AUTHORS> ファイルの対応するエントリを
持っているかをテストします。

=item * F<t/lib/>

=begin original

The old home for the module tests, you shouldn't put anything new in
here. There are still some bits and pieces hanging around in here that
need to be moved. Perhaps you could move them?  Thanks!

=end original

モジュールテストの古いホームです; ここに新しいものを置くべきではありません。
ここにはまだ動かす必要のあるいくつかの断片が残っています。
それらを動かすことはできますか?
ありがとう!

=back

=head2 Documentation

(文書)

=begin original

All of the core documentation intended for end users lives in F<pod/>.
Individual modules in F<lib/>, F<ext/>, F<dist/>, and F<cpan/> usually
have their own documentation, either in the F<Module.pm> file or an
accompanying F<Module.pod> file.

=end original

エンドユーザー向けの全てのコア文書は F<pod/> にあります。
F<lib/>, F<ext/>, F<dist/>, F<cpan/> にある個々のモジュールは
通常独自の文書を持っていて、それは F<Module.pm> ファイルの中か
付随する F<Module.pod> ファイルにあります。

=begin original

Finally, documentation intended for core Perl developers lives in the
F<Porting/> directory.

=end original

最後に、コア Perl 開発者向けの文書は F<Porting/> ディレクトリにあります。

=head2 Hacking tools and documentation

(ツールと文書をハックする)

=begin original

The F<Porting> directory contains a grab bag of code and documentation
intended to help porters work on Perl. Some of the highlights include:

=end original

F<Porting> ディレクトリには、porters の Perl での作業を助けるための
コードと文書の寄せ集めになっています。
重要なものとしては:

=over 4

=item * F<check*>

=begin original

These are scripts which will check the source things like ANSI C
violations, POD encoding issues, etc.

=end original

これらは、ANSI C 違反、POD のエンコーディング問題などのソースのことを
チェックするスクリプトです。

=item * F<Maintainers>, F<Maintainers.pl>, and F<Maintainers.pm>

=begin original

These files contain information on who maintains which modules. Run
C<perl Porting/Maintainers -M Module::Name> to find out more
information about a dual-life module.

=end original

これらのファイルはモジュールを管理している人に関する情報です。
二重管理モジュールに関するさらなる情報を探すには、
C<perl Porting/Maintainers -M Module::Name> を実行します。

=item * F<podtidy>

=begin original

Tidies a pod file. It's a good idea to run this on a pod file you've
patched.

=end original

pod ファイルを整理します。
パッチを当てた pod ファイルに対してこれを実行するのは良い考えです。

=back

=head2 Build system

(ビルドシステム)

=begin original

The Perl build system on *nix-like systems starts with the F<Configure>
script in the root directory.

=end original

*nix 風のシステムでのPerl ビルドシステムは、ルートディレクトリの
F<Configure> スクリプトから始まります。

=begin original

Platform-specific pieces of the build system also live in
platform-specific directories like F<win32/>, F<vms/>, etc.
Windows and VMS have their own Configure-like scripts, in their
respective directories.

=end original

ビルドシステムのプラットフォーム固有の部分は、
F<win32/>, F<vms/> のようなプラットフォーム固有ディレクトリにもあります。
Windows と VMS は独自の Configure 風スクリプトを持っていて、それぞれの
ディレクトリにあります。

=begin original

The F<Configure> script (or a platform-specific similar script) is
ultimately responsible for generating a F<Makefile> from F<Makefile.SH>.

=end original

F<Configure> スクリプト(またはプラットフォーム独自の同様のスクリプト)は、
F<Makefile.SH> から F<Makefile> を生成するための最終的な責任を持ちます。

=begin original

The build system that Perl uses is called metaconfig. This system is
maintained separately from the Perl core, and knows about the
platform-specific Configure-like scripts, as well as F<Configure>
itself.

=end original

Perl が使っているビルドシステムは metaconfig と呼ばれます。
このシステムは Perl コアとは別に保守されていて、
プラットフォーム固有の Configure 風スクリプトと F<Configure> 自身について
知っています。

=begin original

The metaconfig system has its own git repository. Please see its README
file in L<https://github.com/Perl/metaconfig> for more details.

=end original

metaconfig システムは独自の git リポジトリを持っています。
さらなる詳細については
L<https://github.com/Perl/metaconfig> にある README ファイルを
参照してください。

=begin original

The F<Cross> directory contains various files related to
cross-compiling Perl. See F<Cross/README> for more details.

=end original

F<Cross> ディレクトリには、Perl のクロスコンパイルに関連した様々な
ファイルがあります。
さらる詳細については F<Cross/README> を参照してください。

=head2 F<AUTHORS>

=begin original

This file lists everyone who's contributed to Perl. If you submit a
patch, you should add your name to this file as part of the patch.

=end original

これは Perl に貢献した全員の一覧です。
あなたがパッチを投稿する場合、パッチの一部としてこのファイルにあなたの名前を
追加するべきです。

=head2 F<MANIFEST>

=begin original

The F<MANIFEST> file in the root of the source tree contains a list of
every file in the Perl core, as well as a brief description of each
file.

=end original

ソースツリーのルートにある F<MANIFEST> ファイルは、Perl コアにある全ての
ファイルの一覧と、それぞれのファイルの概要です。

=begin original

You can get an overview of all the files with this command:

=end original

次のコマンドで、全てのファイルの概要を得られます:

  % perl -lne 'print if /^[^\/]+\.[ch]\s+/' MANIFEST

=begin meta

Translate: SHIRAKATA Kentaro <argrath@ub32.org>
Status: completed

=end meta