今日は abstract コンストラクタオーバーライド時のシグネチャ互換性チェック修正、FFI の C 言語宣言パーサの修正、phpdbg で readline サポートがデフォルト有効になっていたことの修正、 bison の location tracking を使う修正のリバート、protected メソッドの可視性チェックのテストを追加する修正があった!
2019-03-28
nikic: Treat abstract ctors the same, regardless of origin
- https://github.com/php/php-src/commit/058554810649da431efa3ab851be17b0d2f96fb8
- [7.4~]
- abstract のコンストラクタでは直接の子についてしかシグネチャの互換性がチェックされなかったのを、2 世代以上離れたクラスや interface についてもチェックされるよう修正
dstogov: Use semantic predicates to simplify lookahead and reduce backtracking
- https://github.com/php/php-src/commit/984d05f9484ee0ddb42360523ab2faeb10140d19
- [7.4~]
- ext/ffi で、C 言語宣言のパーサの最適化
dstogov: Support for __restrict and few GCC attributes
- https://github.com/php/php-src/commit/363e8dd69d4580e047e365304a1bf9917ed95c71
- [7.4~]
- ext/ffi で、__restrict や GCC 拡張の属性を幾つかサポート
- __restict ……
krakjoe: fix build: readline support must be disabled by default in phpdbg
- https://github.com/php/php-src/commit/b7442f1bb81303d3211844445f69d4a03565aa39
- [7.2~]
- sapi/phpdbg で、readline のサポートをデフォルト無効に修正
- 前日の修正でついやってたやつだなー
nikic: Revert "Switch to bison location tracking"
- https://github.com/php/php-src/commit/7f72d771e8581bfff7856b46ae9fb8555b061118
- [7.4~]
- 先日の修正で bison の location tracking を使うようにしてたのをリバート
- 32 bit 版でパーサのオーバーヘッドが大きくなり、WordPress のテストでパーサ内 48M 命令の実行だったのが 59M 命令になってたらしい
nikic: Add additional protected visibility prototype test
- https://github.com/php/php-src/commit/d9fbbbc868e7dda70e3a442f4c300ba46ddf449c
- [7.4~]
- protected メソッドの可視性チェックのテストを追加
- な……なんだこりゃあ!?
- 直接の親子関係にない B から D のメソッド呼べる仕様なのか
- PR:3993
- 可視性チェックは A で行われて呼び出されるのは D のメソッド、みたいな感じか