php-master-changes 2019-06-06

この日はテストの修正、run-tests.php の修正、\_\_toString() からの例外送出時の処理の最適化、ドキュメントの更新、get_object_vars() で false を返す可能性があったのを空配列を返すようにする修正、eval から sodium_*() を呼ぶと SEGV が起きていた問題の修正、php_zip_pcre() の処理の修正、不要コードの削減、 Windows でのビルド修正、ファイルを探すコードが 7.3.6 と比べて 7.4-dev で 100 倍遅くなっていた問題の修正があった！

# 2019-06-06
## krakjoe: this test is flaky on azure, and can't see why from current output
- https://github.com/php/php-src/commit/6f9a06cb74421306dc0158b28fa5b4bbb262fd9d
- [7.4~]
- Azure Pipelines で怪しい感じだったテストのリファクタ
- 後で一旦リバートしてる

## krakjoe: junit testcase classname is used as filename on azure
- https://github.com/php/php-src/commit/bed8ae1d0f7fbd441d91a0676096957ea1b40722
- [7.4~]
- run-tests.php で、JUNIT 用のデータ出力内容を変更してるっぽい
- Azure Pipelines 対応で必要になった奴と思うけどよく分からず

## krakjoe: Revert "this test is flaky on azure, and can't see why from current output"
- https://github.com/php/php-src/commit/69f645884947f035034f1af3f3e9e744e51c2004
- リファクタしたテストのリバート
- この後の再修正見る感じリソース使うとこがアカンかったのかな

## krakjoe: fix test
- https://github.com/php/php-src/commit/d6f93ca753fcfc577a0b8d528ef7a2be46e84168
- リバートしたリファクタを再修正して入れ直し
- 修正前とくらべるとファイルハンドルのテストデータがなくなってる

## dstogov: Fixed reference-counting
- https://github.com/php/php-src/commit/90a2e4ba668e89e59301abfe71175b0c0d1f9b96
- [7.4~]
- zval_try_get_string() で参照カウントを足すよう修正、かな
- すぐ後の修正でめっちゃ使う

## dstogov: Cheaper checks for exceptions thrown from \_\_toString()
- https://github.com/php/php-src/commit/457392fa64692be0927ed641369370f02afb0420
- \_\_toString() からの例外送出時の処理を最適化

## sgolemon: Update release-process.md
- https://github.com/php/php-src/commit/642b8d00e01170eb934c1adb56bcf43c9c4aecd4
- [7.4~]
- release-process.md の更新
- non stable release で Web 更新する際の手順がなくなったのかな

## nikic: Remove possible false return value from get_object_vars()
- https://github.com/php/php-src/commit/252216b2ded7d3808e2a909bfea1e805ee17cde5
- get_object_vars() で false を返す可能性があったのを空配列を返すよう修正
- 実際起きるような奴かはよう分からんらしい

## cmb69: Fix [#78114](https://bugs.php.net/bug.php?id=78114): segfault when calling sodium_* functions from eval
- https://github.com/php/php-src/commit/22a3fa0b2e31e33665765bde630bc6c6f0dd475b
- [7.3~]
- ext/sodium で、eval から sodium_*() を呼ぶと SEGV が起きていたのを修正

## nikic: Fix accidentially dropped type
- https://github.com/php/php-src/commit/8b2741c1c393549817a684c25c2851be59a7a0ee
- ext/opcache で、ついうっかり get_object_vars の func_info から MAY_BE_ARRAY を消してしまってたのを修正

## nikic: php_zip_pcre: Match pattern before stating for directories
- https://github.com/php/php-src/commit/3372f2cf2cd90e899c3b412ec38f2eebc7e106b3
- [7.4~]
- ext/zip で、php_zip_pcre() の処理を修正
- stat() かます前に正規表現の照合処理を入れるよう処理の順序を変えた
- stat() より正規表現の方が安いだろというのと、処理と同時にディレクトリ内容が変わるようなケースを考慮して、ということらしい

## dstogov: Reduce over-specialization for quite seldom instructions
- https://github.com/php/php-src/commit/a95014dc101756d93696c5c283578302a8334edd
- そんなに使われない命令で特化し過ぎてたコードの削減

## dstogov: Support for exceptions thrown during "Array to string conversion" error processing
- https://github.com/php/php-src/commit/be74ca497680ef544af1f650fe4717a3e0d0af67
- [7.4~]
- Array to string conversion のエラー処理から例外を送ることのサポート、[先の修正](#dstogov-cheaper-checks-for-exceptions-thrown-from-__tostring) で nikic の人に[ツッコまれてた](https://github.com/php/php-src/commit/457392fa64692be0927ed641369370f02afb0420#r33832825)奴かな

## dstogov: Use ZEND_ASSUME() to perform the following check only on "slow" path.
- https://github.com/php/php-src/commit/741468d145dced618456ad4c4877571083eac3b2
- [7.4~]
- zval_try_get_string()、zval_try_get_tmp_string() で、スローパスでのみ続くチェックが行われるよう、[ZEND_ASSUME()](https://sourcegraph.com/github.com/php/php-src@741468d145dced618456ad4c4877571083eac3b2/-/blob/Zend/zend_portability.h#L91) を利用

## nikic: Try to fix Windows build
- https://github.com/php/php-src/commit/7780ba9660248f7caf492c2dc8b4febb08bbb966
- [7.4~]
- Windows でのビルドを修正

## cmb69: Fix test regarding Unix Domain Sockets on Windows
- https://github.com/php/php-src/commit/2df32942d3ec9b70e791225aeee70a857b9b292e
- [7.2~]
- ext/curl で、Windows でのテストで Unix ドメインソケット（実は Windows 10 1803 からサポートしてる）の扱いを修正

## cmb69: Fix bug [#78094](https://bugs.php.net/bug.php?id=78094): File Search Problem Excessive Time
- https://github.com/php/php-src/commit/f5b44c7e8a55978b5e3c3511b310ab8f09beaa97
- [7.4~]
- ファイルを探すコードが 7.3.6 と比べて 7.4-dev で 100 倍遅くなっていたのの修正
- GetBinaryType() を各ファイルへ使っていたのを exe / com / bat / cmd の拡張子チェックをするようになってる

## cmb69: Use zero port in socket_(export|import)_stream-4-win.phpt
- https://github.com/php/php-src/commit/3b05bdedcd1b094d84a75dfdd7c2426a71e3c988
- [7.4~]
- ext/sockets で、socket_(export|import)_stream-4-win.phpt のテストでポート 0 を使うよう修正