php-master-changes 2019-05-09

今日は ReflectionClass の修正、run-tests.php のプレースホルダ追加、不要コードの削除、Windows でのテストこけの修正、list() の挙動の微修正、拡張を作る際の雛形 ext/skeleton で PKG_CHECK_MODULES を使うようにする修正、誤ったアサーションの修正があった！

# 2019-05-09
## nikic: Use fast zpp for ReflectionClass constructor
- https://github.com/php/php-src/commit/e4e6820d103d82bece101597cdbca06f173cd64b
- [7.4~]
- ext/reflection で、ReflectionClass のコンストラクタに fast zpp を使うよう修正

## cmb69: Add {TMP} placeholder for PHPT INI sections
- https://github.com/php/php-src/commit/3d0a0f801b6eb0ec7d4fdee119b339d2dab9771f
- [7.2~]
- run-tests.php で、PHPT の INI セクションで /tmp の直接指定でなく {TMP} の形でプレースホルダを使えるよう修正

## petk: Remove vcsclean script
- https://github.com/php/php-src/commit/4eb67310a0b0f8daddf4edc1f8e41a3dae648953
- [7.4~]
- ビルドシステムで、vcsclean スクリプトの削除
- git clean でええやん、ということらしい

## petk: Remove example PHP script from FFI
- https://github.com/php/php-src/commit/05350e621b7d14822719195096ced34e2da23dd6
- [7.4~]
- ext/ffi で、README にも含まれているサンプルスクリプトを削除

## petk: Remove unused example/test fileinfo.php script
- https://github.com/php/php-src/commit/71acd7a2f7ec59fb3aea16939f33ed3fcc7189c4
- [7.4~]
- 不要なファイル ext/fileinfo/fileinfo.php の削除

## petk: Remove redundant example/test libsodium.php file
- https://github.com/php/php-src/commit/99b94fbb5c4fa622f7a57b754e98399930f53bf7
- [7.4~]
- 不要なファイル ext/sodium/libsodium.php の削除

## petk: Remove unused functions
- https://github.com/php/php-src/commit/3c92b79ea056543ad711a9ad3a042847dd0904a2
- [7.4~]
- 使われていない関数の削除

## nikic: Fixed bug [#77951](https://bugs.php.net/bug.php?id=77951)
- https://github.com/php/php-src/commit/54be40113d77f41cbf5a5078a265279140511c52
- [7.4~]
- ext/reflection で、ReflectionReference が is_ref=1 で refcount=1 の zval について null を返すよう修正

## cmb69: Fix log_verbosity_bug.phpt
- https://github.com/php/php-src/commit/e359812ce3b01f184601fde75e3963b550fc599d
- [7.2~]
- ext/opcache で、Windows でのテストこけの修正

## nikic: Fixed bug [#75186](https://bugs.php.net/bug.php?id=75186)
- https://github.com/php/php-src/commit/35c80583f08c0af3d01715cb8feeca6d0f284545
- [7.2~]
- ext/reflection で、[ReflectionClass::getMethods()](https://www.php.net/manual/ja/reflectionclass.getmethods.php) を Closure に使うと \_\_invoke() がとれないが [ReflectionClass::hasMethod()](https://www.php.net/manual/ja/reflectionclass.hasmethod.php) ではとれて一貫性がない問題の修正
- getMethods() の方でとれるようになってる

## nikic: Fixed bug [#71030](https://bugs.php.net/bug.php?id=71030)
- https://github.com/php/php-src/commit/d0a56f707f9b043d9af512524e9c486044cbf510
- [7.4~]
- list() の挙動を変更
- 元々 `$a = [1, 2]; list($a, $b) = $a;` の挙動は特別扱いで [`$a === 1 and $b === 2` になる](https://3v4l.org/r10pk)挙動だった
- が、[`$a = [1, 2]; $_a = "a"; list($$_a, $b) = $a;` や](https://3v4l.org/ZNo4P) [`$a = [1, 2]; $c = &$a;
list($c, $b) = $a;` だと](https://3v4l.org/hi3X8) `$a === 1 and $b === null` となる挙動だった
- いずれのコードも `$a === 1 and $b === 2` となるよう修正されている
- 副作用として、以前は[間違って実行されるケースがあった](https://3v4l.org/JG374) `byRef(list($x) = $y);` のようなコード（list() 代入の結果を参照渡しの引数とする）は一貫して許容されなくなっている

## hughmcmaster: Update the extension template file to use PKG_CHECK_MODULES
- https://github.com/php/php-src/commit/0025a39b4521ef05105f989c42b25e0852484cc0
- [7.4~]
- 拡張を作る際の雛形 ext/skeleton で PKG_CHECK_MODULES を使うよう修正

## cmb69: Fix erroneous assertions
- https://github.com/php/php-src/commit/27f168cf638183716d02ff1973856c8d5ef71273
- [7.2~]
- win32/codepage.c で、誤ったアサーションがあったのを修正