php-master-changes 2019-05-31

今日は is_* の arg_info の修正、GCC の最適化制限適用箇所の調整、DatePeriod とその子クラスが書き込み可能なプロパティを持てるようにする修正、エンジンの局所最適化とコールドパス/ホットパスの扱いの調整、コンパイラの警告潰し、不要コードの削除、テストの修正、zpp を使わず手動で引数チェックしてる箇所について引数エラー時 TypeError を投げるようにする修正、テスト並列実行時の TEST_PHP_JUNIT サポート追加、テスト並列実行時の NO_INTERACTION の扱い修正、ICU 64.0 対応の修正があった！

# 2019-05-31
## carusogabriel: Add boolean return type for is_* functions
- https://github.com/php/php-src/commit/edd7fb2a16a17db017724831358a6706b4f69e40
- is_* の組み込み関数について、arg_info で bool の返り値型指定を追加

## dstogov: Disable "bad" optimisations only for emulation loop
- https://github.com/php/php-src/commit/ee565529138891e757727de230af9051caeda05d
- [7.4~]
- GCC の最適化制限の適用箇所を調整

## duncan3dc: Ensure the internal properties cannot be overwritten
- https://github.com/php/php-src/commit/dc586bff36a8a7359942179b94b0f71e99c81d12
- ext/date で、DatePeriod の内部プロパティだけが上書き制限されるよう修正
- [PR:3121](https://github.com/php/php-src/pull/3121)、書き込み可能なプロパティを持てるようにする修正

## duncan3dc: Add a test for bug [#65672](https://bugs.php.net/bug.php?id=65672)
- https://github.com/php/php-src/commit/8b53c7232e2dae1af675e9e280e7e89f2758bda1
- [7.2~]
- ext/date で、↑のテストを追加

## duncan3dc: Update the DatePeriod read/write handlers
- https://github.com/php/php-src/commit/facfbf3c9cf36d78c485ea34a2041aa0b91f17ef
- ext/date で、read / write ハンドラのリファクタリング

## dstogov: Reduce register pressure by reloading values on CPUs with few general purpose registers
- https://github.com/php/php-src/commit/cf388033d553d88d84c1d03eda0e064bbb082c5f
- [7.4~]
- IA32 では汎用レジスタが少ないので call_info を読み直している、ということらしいがパッと見謎コード

## dstogov: Removed useless specialization. Specialized handlers called not specialized helpers.
- https://github.com/php/php-src/commit/4e567ed1dab128a01dae1368011f4a8d08cdfc27
- [7.4~]
- 不要な opcode 特化ハンドラの削除

## dstogov: Don't specialize "cold" handlers
- https://github.com/php/php-src/commit/1814308e49beb4d2c774bf182b274b0d281f033f
- [7.4~]
- コールドコード扱いな ZEND_VM_COLD_HANDLER の特化ハンドラを削除

## dstogov: Fixed compilation warning
- https://github.com/php/php-src/commit/2915a32f374f8ec60915cf7398d5227d9bda43cd
- [7.4~]
- コンパイラの警告潰し

## nikic: Mark sapi_windows_set_ctrl_handler.phpt as XFAIL
- https://github.com/php/php-src/commit/4b1f711823da2ea9f4bebfa56f527d27dbfa13a2
- [7.4~]
- sapi/cli で、sapi_windows_set_ctrl_handler.phpt を XFAIL 指定
- AppVeyor でこけるらしい

## nikic: Convert some warnings to TypeErrors in array functions
- https://github.com/php/php-src/commit/4e391ee3a3086d4072012d5ed782517ed41ed400
- array_*() で引数指定が誤っていた際に TypeError を投げるよう修正
- zpp を使わず手動で引数チェックしてる箇所なので個別対応が必要だったらしい

## nikic: Add CONFLCITS file for fpm
- https://github.com/php/php-src/commit/96a11bee1c6541af98f54b3779b36b92e6c6b735
- [7.4~]
- sapi/fpm で、テストの並列実行を抑制
- ポート衝突の回避

## nikic: Use TypeError instead of warning in implode()
- https://github.com/php/php-src/commit/0ba34824f5328e96af29113970e0aa22cec95ca1
- implode() で引数指定が誤っていた際に TypeError を投げるよう修正
- これも zpp を使わず手動で引数チェックしてる箇所なので個別対応が必要だったらしい

## nikic: Remove stream_socket_sendto.phpt
- https://github.com/php/php-src/commit/84333cad674890174c47f3c21b1b1cf85a4276ac
- [7.4~]
- いらなさそうなこけるテストの削除

## dstogov: Better hot/cold code splitting
- https://github.com/php/php-src/commit/1df9f238fed314255b858e3996c35be8cdff917f
- [7.4~]
- コールドコードの区別の追加

## nikic: A few more func info updates
- https://github.com/php/php-src/commit/673c70a4baf1f40ca043b05c6291252fe8701c50
- ext/opcache で、func_info の MAY_BE_NULL、MAY_BE_FALSE をいくらか削除

## nikic: run-tests: Remove redundant 'suites' key
- https://github.com/php/php-src/commit/137747bdaf8a5fa0d01e2d3833147aba66eb314d
- run-tests.php で、不要コードの削除

## nikic: Add junit support for parallel test runner
- https://github.com/php/php-src/commit/dd2bf448693df98d060d784fed798ec9ba461fad
- [7.4~]
- run-tests.php で、並列実行時の TEST_PHP_JUNIT サポートを追加

## nikic: Fixed uninitialized var warning
- https://github.com/php/php-src/commit/67b84e45489e944e144429a26f3294161c1c7e0a
- [7.4~]
- 未初期化変数の警告潰し

## nikic: Fix NO_INTERACTION handling in parallel test runner
- https://github.com/php/php-src/commit/4ef7f70987410dde626201416849be71b555e18e
- [7.4~]
- run-tests.php で、並列実行時の NO_INTERACTION の扱いを修正
- [前日に修正されてたところ](https://qiita.com/sj-i/items/4da61f833a71b0a64322#krakjoe-have-parallel-test-runner-respect-no_interaction)だな、NO_INTERACTION でなく SHOW_ONLY_GROUPS で制御するねん、とのこと

## nikic: Update tests for ICU 64
- https://github.com/php/php-src/commit/8a8bc5c4529223ecf4f421b1bed03618f7394335
- [7.4~]
- ext/intl で、ICU 64.0 以降用にテストの修正
- [locale_lookup()](https://www.php.net/manual/ja/locale.lookup.php) の zpp の指定も修正されてる、現状の指定がバグくて 64.0 でうまく動かなくなってたらしい

## nikic: Remove confusing spkstr checks
- https://github.com/php/php-src/commit/7f26171445e0b060196bb9b6f1fc506269ced8a4
- ext/openssl で、不要な NULL チェックの修正