5.1.0RC6

昨日RC5が出たと思ったら速攻でRC6が出た。
せっかくなのでいつもは使わない拡張も有効にしまくって make test.
ライブラリの多くと PostgreSQL 8.1 は DarwinPorts, MySQL 5.0.15 はサーバを公式のバイナリ (64bit 版)、クライアントは自前でコンパイルしたものを使っている。*1

./configure --prefix=/usr/local/php51-test \
 --disable-cgi --enable-cli --with-openssl=/opt/local \
 --with-zlib=/opt/local --with-zlib-dir=/opt/local --with-bz2=/opt/local \
 --enable-bcmath --enable-calendar --enable-exif \
 --with-iconv-dir=/opt/local  --with-gettext=/opt/local --with-gmp=/opt/local \
 --with-mcrypt=/opt/local --with-mhash=/opt/local --with-tidy=/opt/local \
 --with-curl=/opt/local --with-curlwrappers --enable-ftp --enable-sockets \
 --enable-dba --with-qdbm=/opt/local --with-db4=/opt/local \
 --with-mysqli=/usr/local/mysqli/bin/mysql_config --with-mysql=/usr/local/mysqli \
 --with-pgsql=/opt/local/lib/pgsql8/bin/lib/pgsql8/bin/pg_config --enable-sqlite-utf8 \
 --with-pdo-mysql=/usr/local/mysqli --with-pdo-pgsql=/opt/local/lib/pgsql8/bin \
 --with-gd --with-jpeg-dir=/opt/local --with-png-dir=/opt/local \
 --with-freetype-dir=/opt/local --enable-gd-native-ttf \
 --enable-mbstring --enable-mbregex \
 --with-libxml-dir=/opt/local --with-xsl=/opt/local \
 --enable-wddx --enable-soap --with-xmlrpc --with-xmlreader \
 --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-shmop \
&& make && make test

で、結果は

=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :   30
Exts tested     :   47
---------------------------------------------------------------------

Number of tests : 1882              1793
Tests skipped   :   89 (  4.7%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :    7 (  0.4%) (  0.4%)
Tests passed    : 1786 ( 94.9%) ( 99.6%)
---------------------------------------------------------------------
Time taken      :  398 seconds
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #30638 (localeconv returns wrong LC_NUMERIC settings) [tests/lang/bug30638.phpt]
Gettext basic test [ext/gettext/tests/gettext_basic.phpt]
mysqli autocommit/commit/rollback [ext/mysqli/tests/014.phpt]
function test: mysqli_character_set_name [ext/mysqli/tests/028.phpt]
mysqli_get_metadata [ext/mysqli/tests/047.phpt]
local infile handler [ext/mysqli/tests/061.phpt]
Sort with SORT_LOCALE_STRING [ext/standard/tests/array/locale_sort.phpt]
=====================================================================

RC5 で出た (switch ($a{0}) crash) は直ってる(?)。ロケール相変わらず。Gettext だめぽ。MySQLi トランザクションのエラーは微妙。
ただ個人的にあまり MySQL を使わないし、使うにしても mysqli より mysql + PEAR::DB か、これからは PDO_MYSQL を選ぶだろうから割とどうでもいい。
いよいよ 5.1.0 のリリースが近づいてきた印象。かなりの難産だったけど(つーかまだ出てねーし)それだけの価値のあるバージョンに仕上がってきていると思う。
5.1.1 では PECL の filter エクステンションがデフォルトで組み込みになるらしいし、sha256/sha256_file 関数を追加するパッチが php.internals に投げられてたりで 5.1 系は何かと便利そう。
そして 4.4.2RC1 も登場。「これで問題ないようなら次の火曜に 4.4.2 出すよ」(意訳)とのこと。

*1:公式バイナリには libmysqlclient.*.dylib が含まれないので