今日は ??= 演算子の実装、opcache 最適化処理の改善と定数表コンパクションのバグ修正、php.ini への opcache.preload の追記、ドキュメントの更新、ROPE_ADD 命令が変なとこに出てた問題の修正、tokenizer のテスト修正があった!
2019-01-22
dstogov: Avoid double live ranges recalculation.
- https://github.com/php/php-src/commit/abd0651020b39e35386d8ec438dea1562086d73c
- ext/opcache で、最適化レベルフラグで 6 ビット目と 7 ビット目 が立っていたら opcode 最適化処理の最後に zend_recalc_live_ranges() を再度かけず抜けるよう修正
- HAVE_DFA_PASS は zend_optimizer.c で通常は常時定義されるようになってるマクロ
cmb69: [ci skip] Add opcache.preload directive
- https://github.com/php/php-src/commit/467d8b3ff78312f6bc8d9d2795a8feddbf03ce56
- デフォルトの php.ini に opcache.preload を追記
dstogov: Use ZEND_FUNC_FREE_LOOP_VAR flag to avoid useless iterations.
- https://github.com/php/php-src/commit/6c983c6221cb3e02b253cd5379eda42fe0d6500d
- ext/opcache で、デッドコード削除処理の最適化
- 制御フローグラフ構築時に ZEND_FREE(switch での一時変数へのもの限定かな)、ZEND_FE_FREE を見てフラグ立ててる
cmb69: [ci skip] List FFI extension
- https://github.com/php/php-src/commit/d0092c212584356c7c0868aa7b6869ca9c4e7968
- EXTENSIONS の拡張リストに FFI を追加
- internals で議論あったように Experimental として入ってるみたい
dstogov: Fixed odd ROPE_ADD instruction placement.
- https://github.com/php/php-src/commit/960f922ed245d89a8f9fba92513add79c741a64f
- ROPE_ADD 命令が変なとこに出てたのを修正
dstogov: Use SSA instead of bogus reverse linear scan.
- https://github.com/php/php-src/commit/8cb1ae92e6baf6b6497fa4bd3644d165452c574f
- ext/opcache で、opcode 解析処理のため一部でデッドコード削除を抑制するための判定処理を修正
- 昨日の修正を修正してる形
dstogov: Most opcodes that don't consume their OP1 operand, must be terminated with real consumer, and don't have to be checked.
- https://github.com/php/php-src/commit/a3503f0402ce996466de966e8105448aba5114cf
- 昨日の修正を最適化
- 不要チェックの ZEND_ASSERT() 送りと分岐予測ヒントの追加
nikic: Make tokenizer test robust against token renumbering
- https://github.com/php/php-src/commit/50ddff94b9989342e66678c311b3abf4e7d5a074
- ext/tokenizer のテストで、トークンのリナンバーがあっても壊れないよう期待出力を修正
nikic: Implement ??= operator
- https://github.com/php/php-src/commit/a50198d0fef652ca052cda642d6e98a9101eb73f
- ??= 演算子の実装
- RFC 受理後長らく放置されてたやつ
nikic: Fixed bug #77287
- https://github.com/php/php-src/commit/76760901fabf8ff53c8dfb4ddf7ca703c5a12b79
- [7.3~]
- ext/opcache で、定数表コンパクションが ZEND_EXT_NOP と非互換だった問題の修正
- 前に「これかなあ」で修正してたとこの犯人見つけた奴
- opcache と xdebug 両方有効で出る問題
cmb69: Prepare main branch for PHP 7.3.3
- https://github.com/php/php-src/commit/19a9a6ba242776901a1b9cf6b41ff52a9917665e
- [7.3~]
- 7.3 系の開発バージョンを 7.3.3 に
- 7.3.2 のリリースは 2/7 頃かな