これまで作成した変態パッチを管理しているgithubのレポジトリ
追記: 漏れていた 2 つのパッチを追加
追記2: git fetch が抜けていたので訂正
実はこれも発表の際に降れておくべきだったんだけど、PHP のソースコードの VCS が subversion に移行したおかげで git のミラーが実現し、楽しくパッチを VCS で管理しつつ upstream に追従するということができるようになった。これは実はすごく革命的なことで、
「一人に一つのPHP」
を実現するという野望に一歩近づいたのである。
というわけで、
- Autoboxing と new Hoge()->method() を可能にするパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-autobox
- PHP をテンプレートエンジンとして進化させるパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-tagparse
- 名前空間の区切り文字を好きな文字列にするパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-anynssep
- ON ERROR GOTO を追加するパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-onerrorgoto
なんかを置いておきますね。
もしマイ PHP を作りたくなったらどうすればいいの?
追記: gitのcheckout手順を若干修正
PHP の本家の subversion レポジトリから引っ張ってきて... ということをやってもいいんだけど、実際それでやってたけど、明らかに git を使った方が効率がよかったのでそれを前提に説明する。
ここに説明がある通り、github に PHP の subversion レポジトリの準公式ミラー (http://github.com/php/php-src/ ) がある。
このレポジトリの master ブランチは subversion の trunk に相当するので、将来 PHP 6 となるコードベースということになる。おそらく、モチベーションからして PHP 6 を率先していじるということはなく、5.3 の HEAD をいじることになると思うので、その場合は
$ mkdir php-src-5.3 $ cd php-src-5.3 $ git init $ git remote add origin -t PHP_5_3 git://github.com/php/php-src.git php-src-5.3 $ git fetch $ git checkout -b PHP_5_3 origin/PHP_5_3
おもしろいパッチができたら、github で公開すると楽しいはず。まずは github 上でレポジトリを fork して、そこに対して push する。混乱を避けるため、PHP_5_3 という名前のブランチに自分の修正をコミットしていくのではなく、「PHP_5_3-適当な名前」のようなブランチを切って、それを使う。そうするために、clone→checkout した直後に実験するためのブランチを切ってもいいし、最初に push する直前に作って rebase してもいいと思う。
一応 moriyoshi/php-src を、目下そういうパッチの集積場にしたかったりするので、moriyoshi に対して pull request を送ってもらえれば、順次そこにマージします。