[PHP-dev 176] Re: [PATCH] multibyte patch for PHP 4.1.0

Rui Hirokawa php-dev@php.gr.jp
Sun, 23 Dec 2001 11:42:30 +0900


廣川です。

On Sun, 23 Dec 2001 00:50:57 +0900
Masaki Fujimoto <masaki-f@fides.dti.ne.jp> wrote:

> ふじもとです。
> 
> On Sat, 22 Dec 2001 15:12:22 +0900
> Tomoyuki Asakawa <tom@asakawa.ne.jp> wrote:
> 
> > ところで、このパッチは、Zendコンパイラ/オプチマイザと互換
> > はあるのでしょうか?
> 
> すみません、実は未検証です。APCは構造的に問題ないと思うのですがZend製品
> に関しては自信がありません。どなたか動作させてみた方がいらっしゃると良い
> のですが。まとまった時間がとれたら検証したいですが、ドキュメントの和訳を
> 優先させたいのでしばらくは無理そうです。
> 
> # Optimizerは結構不安...

Optimizerは、無償では使えますが、Zend社のオープンソースでは
ない製品なので検証作業はブラックボックス的で難しいでしょうね。
Optimizerの最適化レベル設定や使用環境の組み合わせはいろいろあるし、
あるバージョンで使えてもOptimizerのバージョンが上るとその保証は
なくなるんですから。
ある程度コード仕様が固まったら、テスターを募集して集まった情報をもとに
動いた実績のある組み合わせを公開する程度が現実的でしょう。
どちらにしろ藤本さんがOptimizerの連接テストに時間を割く必要はないと思います。

> 
> > たしかに、php.iniを、見に行くべきではないですね。
> > メモリ上?の、mbstring.internal_encodingを(もしあるのなら)
> > 見るのならおかしくないと思います。
> 
> うーん。ご存知かとは思いますがmbstring関連の設定値はmbstring_globals(ZTS
> 時はmbstring_globals_idとスレッドIDによりマップされたmbstring_globalsへ
> のポインタ)に格納されるので、結局同じ事かと思うのです。
> 
> ついでですが、僕のパッチのencodingにあたるものはPHP4
> というよりは国際化版PHP3でいうところのi18n.script_encodingだと思っていま
> す。

私も現在のencoding指定はscript_encodingに相当すると思っています。

ただ、既述を省略した場合は、(script_encodingみたいな)
php.iniで設定した値を使用してもらえると使い勝手がよくなると思います。

Zend Engine 2 に向けては仕様案をZend Engine 2のMLで提案/議論することが
大切です。

一方、現行のZend Engine 1.xについては多少ad-hocなアプローチで
あってもユーザの使い勝手が向上するならば受け入れられる余値はあると思います。
Zend-1.xでのShift_JIS対応は、日本で短期的にもユーザ数を増やしたい
Zend社の意向とも一致するわけで、受け入れられる余値は充分あると思います。

世界的にみたらこの機能を使わないPHPユーザの方が圧倒的に多数派ですから
そうしたユーザの使い勝手や性能を低下させずに機能をとりこめるのでしたら、
問題ないのではないのでしょうか。
Zend-1.xではconfigureのオプションでマルチバイト対応でコンパイルした時にだけ
機能が有効となるような考え方で良いと思います。

一方、Zend Engine 2についても、できるだけ早く仕様案をまとめたいところです。

個人的な考えですが、Zend Engine のローダに関して、
スクリプトエンジンがスクリプトファイルのファイルIOといったシステムよりの
機能まで全面的に受け持つのはエンジンをアプリケーションやOSから独立させると
いう観点からどうかと思います。
むしろ、ローダの方は抽象化IOレベルにとどめておいて、
後はアプリケーション(ここではPHP)にシステムよりの処理をまかせる方が
良いのではないかと思っています。
逆にそうすれば、PHPアプリケーション側だけで機能を取りこむ余値が生まれます。

また、HTTP出力ハンドラみたいにローダにハンドラの機能を追加するというのも
ありかと思います。
文字コード変換以外にも、例えば、セキュリティ上危険なPHPスクリプトコードを
ローダレベルでrejectするということもできるようになるかもしれません。
これもアプリケーション側(PHP)がどこかで割り込めるようにならないと
難しいのですが。

どちらにしてもこのレベルのコーディングは私の技術では困難なので、仕様案作成や
デバッグ等に関して主に協力させていただきます。

-- 
-----------------------------------------------------
Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
             <hirokawa@php.net>