今日は Preloading の各種修正、opcache の最適化処理の修正、com_dotnet で typelib 経由での case-insensitive な定数定義機能を削除、不要なテストの削除、字句解析器のメモリリーク修正、run-tests.php で並列実行の衝突をコントロールする機能の追加 / PHP_BINARY をデフォルトで使うように / 実行順をシャッフルする --shuffle オプションを追加するなどの修正、Travis でのテスト並列実行有効化、bless_tests.php の修正、コンパイラで ZEND_EXT_FCALL_BEGIN が引数送出の後に発行されるようにする修正、phpdbg で phpdbg.com と書かれていたのを localhost に直す修正、SPL で実行時に処理していた箇所をコンパイル時に解決できるようにする修正、静的メンバ初期化処理のリファクタリング、oci8 のテスト修正、FFI の拡張バージョン修正、ドキュメントの更新、、XmlWriter::openMemory() で zend_parse_parameters_none() を使うようにする修正、幾つかのテストの並列実行対応、FUNC_ARG のフェッチで "Attempt to modify" なエラーメッセージを使うようにする修正、openssl のテスト修正があった!
2019-02-20
dstogov: Accurate handling of not preloaded classes
- https://github.com/php/php-src/commit/26ab6edffc6c4b925f09d74253edec28f550edf6
- [7.4~]
- ext/opacache で、Preloading されないクラスの扱いを修正
- リンクされてないけどクラステーブルにはエントリが入ってる、みたいなケースがこの段であるのか
dstogov: Check for USER_FUNCTION
- https://github.com/php/php-src/commit/1133ee11672c4d75df67b7934d32cbd3cc832a08
- [7.4~]
- ext/opcache で、最適化対象の判定処理に
op_array->type == ZEND_USER_FUNCTION
な条件を追加
cmb69: Remove ability to import case-insensitive constants from typelibs
- https://github.com/php/php-src/commit/f04cf7a587400a3cfdea6d551b82281be9b0ba7d
- ext/com_dotnet で、typelib 経由での case-insensitive な定数定義に関連する ini や関数引数の利用を削除
- こないだ非推奨化の対応してたところ
nikic: Remove some zpp failure tests
- https://github.com/php/php-src/commit/002c096871ff428a3832046aeaf9204446549b6c
- [7.4~]
- 実質的に ZPP のテストを他処理へ組み込んで実行してるに過ぎないようなテストを削除
- 先日の続き
dstogov: Fixed memory leak
- https://github.com/php/php-src/commit/723acab660081c2e8c023c34c0fadb088eb13244
- [7.4~]
- 字句解析器に入っていたシングルクォート文字列でのメモリリークの修正
dstogov: Better new-line handling
- https://github.com/php/php-src/commit/b2073253bf82fdd7feb3f219e442fa3e4a39ea9e
- [7.4~]
- run-tests.php で、前日に続いて行末の処理を修正
krakjoe: begin handlers are currently invoked without access to the arguments being sent, this moves the opcode after SEND
- https://github.com/php/php-src/commit/a3994a9e1601bab7dc576177e184733241ff356a
- [7.4~]
- コンパイラで、ZEND_EXT_FCALL_BEGIN が引数送出の後に発行されるよう修正
- ハンドラが引数へアクセスできるようになる
- たぶん JIT での計測対応でプロファイラとかのツールが ZEND_EXT_FCALL_BEGIN 経由で情報とれるようにする気なんじゃないかな、最近 room11 で krakjoe の人とか beberlei の人がなんか話してた気がする
petk: Rename non-existing site phpdbg.com to localhost
- https://github.com/php/php-src/commit/b1b392763e1330b11b0862c3881eafba6fb631ea
- [7.4~]
- sapi/phpdbg で、$_SERVER に今や存在しない phpdbg.com が書かれていたのを localhost に修正
dstogov: Don't restrict preloading with "open_basedir" directive.
- https://github.com/php/php-src/commit/0510b41a0671fc1094a4e4521faaceb920889001
- [7.4~]
- ext/opcache で、Preloading については open_basedir の制限を受けないよう修正
dstogov: Order of classes may matter
- https://github.com/php/php-src/commit/6b0023897976b6fa8d1b1c5f90e25327d9000913
- [7.4~]
- ext/opcache で、Preloading で共有メモリへクラスを突っ込む際にクラスをソートするよう修正してる
dstogov: Don't preload tests without --FILE-- section
- https://github.com/php/php-src/commit/555fb294ec4c1948b357ee43b6ca3c81873ddf26
- [7.4~]
- run-tests.php で、
--FILE--
セクションのあるテストは preload モードで実行しないよう修正
dstogov: Use ZEND_ACC_REUSE_GET_ITERATOR flag instead of run-time class modification
- https://github.com/php/php-src/commit/f2e515e9eb78b09ecaed057241e7a43bf2d9f883
- [7.4~]
- ext/spl で、実行時にクラスエントリをいじってた箇所をコンパイル時に解決できるようにした感じかな
dstogov: Reorder conditions
- https://github.com/php/php-src/commit/a7c99f3dc52b16f4077819d75a30feb214bbd1c0
- [7.4~]
- 静的メンバ初期化処理で分岐条件の並べ替え
- より早く絞れる方にしたんだとは思うけど実際は知らね!
dstogov: Skip tests f oci8 extension is not loaded
- https://github.com/php/php-src/commit/2cd24e9d7a47e3ec0c01fa18e83ee45d861d40fc
- [7.4~]
- ext/oci8 で、テスト実行時に拡張が読み込まれていなかったらスキップするよう修正
- すぐ後に「ちゃうねん」みたいなコミットが来る↓
cjbj: Correct skipif use for OCI8 password tests
- https://github.com/php/php-src/commit/7a9c20f3fd9152ddf1e55aef9120ecfcf4f87613
- [7.2~]
- 俺が本物の SKIPIF を見せてやるぜ!という感じに正しいスキップ方法で 7.2 からで修正
cjbj: Correct skipif use for OCI8 password tests
- https://github.com/php/php-src/commit/7317de59ecd62353bbb3c16ecdba53f645792994
- [7.4~]
- マージコミットで 7.4 からめでたく正しい状態に
petk: Bump FFI extension version to PHP_VERSION
- https://github.com/php/php-src/commit/e5fe8ad6e56336d1071e84a8f5a38487a54e0491
- ext/ffi で、拡張バージョンに PHP_VERSION を使うよう修正
- このほうが更新楽でしょっていう
petk: Simplify even more - use PHP_VERSION directly
- https://github.com/php/php-src/commit/e765e9a8e0814e2f0681aadac7c09a576ece02fe
- ↑をより単純化して PHP_VERSION を直接使……ってないという typo がある修正
petk: Fix typo
dstogov: Added reference to parser generator
- https://github.com/php/php-src/commit/6e17fbefde58644eca3fd3d013b3af450ac42bae
- [7.4~]
- ext/ffi で、README に使っているパーサジェネレータ LLK へのリンクを追加
- 自作かよ!
nikic: Use zend_parse_parameters_none() in XmlWriter::openMemory()
- https://github.com/php/php-src/commit/d94a1907b735c1c4b0e40a671fa9044c90456c2d
- [7.4~]
- ext/xmlwriter で、XmlWriter::openMemory() で zend_parse_parameters_none() を使うよう修正
- テストで誤って引数与えていたのも修正
dstogov: Prevent error reporting during preloading request start-up
- https://github.com/php/php-src/commit/c143794dd9e10edfd2187fefcbdc7855bcf3114e
- [7.4~]
- ext/opcache で、Preloading 内のリクエストスタートアップ中は error_reporting を切るよう修正
dstogov: Disable preloading for sensetive opcache tests
- https://github.com/php/php-src/commit/12edc453e5cfed69ee150c1c19466dfe52026f94
- [7.4~]
- ext/opcache で、最適化のテストで Preloading を切るよう修正
nikic: Make ext/spl/tests/bug42364.phpt more robust
- https://github.com/php/php-src/commit/f5872614d87c120e64b94fe1686005da9f53bc2d
- ext/spl で、テストの並列実行対応で DirectoryIterator を使うテスト用に専用ディレクトリを作るよう修正
nikic: Make proc_open_bug69900.phpt more robust against parallelization
- https://github.com/php/php-src/commit/0513d59ed33c3439b2fb52bc39feff18a2b5436a
- テストの並列実行対応で、1ms 以内で終わることを期待しているテストについて 10ms は待てるよう修正
nikic: Implement fine-grained conflict handling
- https://github.com/php/php-src/commit/c0e15a3b7fef5b341eb96e0e888f180ba7a39570
- [7.4~]
- テストの並列実行対応で、衝突の可能性があるテストをマークしてそれ以外は並列実行とするよう run-tests.php を修正
- 同じマーク(conflict key)のものは並列実行されない
- --CONFLICTS-- かディレクトリ内の CONFLICTS で指定可能
nikic: Use "modify" error message for FUNC_ARG fetch as well
- https://github.com/php/php-src/commit/a92db42568d5be412fd536cc96475f0a61666223
- "Attempt to modify property ホニャララ of non-object" のエラーメッセージを FUNC_ARG のフェッチでも使うよう修正
- FUNC_ARG ってなんだよ、については nikic の人から若干の解説がある
nikic: Make zip oo_addpattern test more robust
- https://github.com/php/php-src/commit/991ea9cc602d93247d35a1ce94b060f58bcd8205
- ext/zip で、oo_addpattern のテストの並列実行対応
valga: OpenSSL: Improve non-blocking eof test
- https://github.com/php/php-src/commit/74888bede8cb62c31959bb13d92295a79b5abe2e
- [7.2~]
- ext/openssl で、テストの修正
- PR:3809 から修正経緯は追える
nikic: Enable parallel tests on Travis
- https://github.com/php/php-src/commit/10e189de76518946c2d5deb28fc10bc8e7d7d365
- [7.4~]
- Travis でテストの並列実行を有効化
nikic: Use PHP_BINARY by default in run-tests.php
- https://github.com/php/php-src/commit/57fef27521814c575a7ea32abf4bda44f78ff400
- run-tests.php で、PHP_BINARY をデフォルトで使うよう修正
- どうせいつも -P 使うんでしょ!ということらしい
nikic: Support passing single file to bless_tests.php
- https://github.com/php/php-src/commit/e53e753c0e90df0039b4789850b2870cf92a8450
- [7.4~]
- bless_tests.php が単一ファイルや複数のディレクトリ/ファイルを受け取れるよう修正し、実行可能フラグを付けた
dstogov: Remember COMPILER_HALT_OFFSET(s) in preloaded scripts
- https://github.com/php/php-src/commit/4f2ad75dbef9e338611a1a37ecc378276df07544
- [7.4~]
- ext/opcache で、__COMPILER_HALT_OFFSET__ を preload されたスクリプトで保持するよう修正
nikic: Add a --shuffle mode to run-tests
- https://github.com/php/php-src/commit/e5304bb647613da0776e216afb427129d8895b3a
- run-tests.php に実行順をシャッフルする --shuffle オプションを追加
- 並列実行での問題を見つけやすくするためらしい