y_uti のブログ

統計、機械学習、自然言語処理などに興味を持つエンジニアの技術ブログです

PECL のモジュールを数えてみた (勉強会発表資料)

PECL に登録されているモジュールの統計情報について、PHP BLT #3 で発表しました。発表資料を公開します。

www.slideshare.net

PECL のウェブサイトから情報を収集して、登録モジュール数の推移*1や、ソースコードの行数とテストコードの行数の関係など、いくつかグラフを描いてみたという内容です。

最近、pecl-math-stats という統計関数モジュールのバグを修正したりテストコードを追加したりする機会があったのですが、他の拡張モジュールはどういう様子なのだろう、という興味から調べてみたものです。テストの書かれていないモジュール、あまり積極的にメンテナンスされていないモジュールも多そうです。その一方で、最近でも新しい拡張モジュールが登録され続けているというのは、私にとっては意外な結果でした。

テストコードについては、発表では「全然書かれていない」というイメージを誇張気味に伝えてしまったかもしれません。PHP の拡張モジュールという性格上、C の実装を呼び出す wrapper になっているものも多いのだろうと思います*2。したがって、実装の規模とテストコードの規模の比率については、通常のプログラムとは少し違った見方が必要そうです。

*1:各モジュールのリリース日で最も古い日付を登録日とみなして集計しました。厳密に登録モジュール数の推移を表しているかどうかはわかりません。

*2:たとえば、pecl-math-stats も多くの関数はそういう実装になっています。