本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは清水隆博さんで,
Perlのバージョン
Perlは,
Perlインタプリタのソースコード
Perlの最初のリリース時にはGitは存在していませんでした。当時のPerlのソースコードは,
2008年に,
なお,
- 注1)
- バージョン管理ツールの一種です。
これまでのすべてのPerlのバージョン
Perlの各バージョンは,
$ git clone git@github.com:Perl/perl5.git $ cd perl5 $ git tag GitLive-blead (省略) if-0.0605 perl-1.0 perl-1.0.15 perl-1.0.16 perl-2.0 perl-2.001 perl-3.000 perl-3.044 perl-4.0.00 perl-4.0.36 perl-5.000 (省略)
RCバージョンや考古学的にメンテナンスされた古いバージョンを含め,perldoc perlhist
から参照できます。
過去のバージョンへの切り替え
git checkout
により,perl-1.
に切り替えてみましょう。
$ git checkout perl-1.0 $ git log commit 8d063cd8450e59ea1c611a2f4f5a21059a2804f1 (HEAD, tag: perl-1.0) Author: Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> Date: Fri Dec 18 00:00:00 1987 +0000
コミットログを見ると,
Perlインタプリタのソースコードリーディング
Perlのインタプリタは,
動的な読み方とは,gdb
やlldb
などのCデバッガを用いてトレースしながら処理を追っていく方法です。このためには,
静的な読み方とは,grep
やrg
,find
などのファイル検索コマンドを用いて読むべきファイルを探し出し,git log --grep='perl6'
などのコマンドで,
Perl 1. 0──最初のPerl
1987年12月にLarry WallによってリリースされたのがPerl 1.comp.
ニュースグループ上で発表されました。当時,
リポジトリの構成
Perl 1.
サブディレクトリとしては,t
とx2p
があります。t
には,x2p
には,
インタプリタの実装
C言語は1989年に制定されたC89
main(argc,argv,env)
register int argc;
register char **argv;
register char **env;
{
register STR *str;
現代のC言語では,register
キーワードや,