php-master-changes 2019-06-11

この日は Windows 版での setlocale() の挙動修正、libpq の検出に pkg-config を利用するようにする修正、opcache の func_info の修正、zpp の挙動をテストしているに過ぎないテストが残っていたのの削除、Azure Pipelines の設定修正、新関数 get_mangled_object_vars() の追加、7.2 系と 7.3 系の開発バージョン引き上げ、ZEND_API zend_new_pair() の追加、テストの修正、autoload 利用時のみ variance のフルサポート、C++ の TLS 指定を使うようにしていた箇所を使わないようにする修正、コンパイラの警告潰し、ライブラリのコードの上流への同期、不要コードを削除する修正があった！

# 2019-06-11
## cmb69: Fix [#77937](https://bugs.php.net/bug.php?id=77937): preg_match failed
- https://github.com/php/php-src/commit/f3ff72e54b2f6c2fa1ac924ad95455a5309099d5
- [7.2~]
- 最近の Windows 版で、setlocale() は通るけど ctype 側で実際にはサポートしてない（setlocale() 通るからダイジョブだと思ったら先の処理でダメになる）問題への対応
- Windows 版では `/^[a-z]{2}_[A-Z]{2}($|\..*)/` が `/^u[ks]_U[KS]$/` 以外通らないようフィルタする、という修正が [setlocale()](https://www.php.net/manual/ja/function.setlocale.php) に入ってる

## hughmcmaster: ext/pgsql: Use PKG_CHECK_MODULES to detect the pq library
- https://github.com/php/php-src/commit/1e265174ed8b361c2d8b9c050f9e3b1f7034acc9
- [7.4~]
- ext/pgsql で、libpq の検出に pkg-config を利用するよう修正

## TysonAndre: Fix a typo in opcache func info for "get_parrent_class"
- https://github.com/php/php-src/commit/98b487e244a81fa02d1ca98b06657e3d88dced02
- [7.4~]
- ext/opcache で、[get_parent_class()](https://www.php.net/manual/ja/function.get-parent-class.php) の func_info の typo を修正
- MAY_BE_NULL も増えてる

## TysonAndre: Clean up opcache func flags for set_socket_blocking
- https://github.com/php/php-src/commit/b921564a35ec27b516bf2b36463a4143e450b230
- [7.4~]
- ext/opcache で、PHP 7.0 で削除された関数 [set_socket_blocking()](https://php.net/set_socket_blocking) の func_info を削除

## TysonAndre: Delete opcache flags for php 8.0's removed mbereg*() aliases
- https://github.com/php/php-src/commit/cbaf37ff75a82a15dc0ed1191b5da5ff76216866
- ext/opcache で、PHP 8 で削除された mbereg*() を func_info から削除

## TysonAndre: Fix typo in opcache function flag info (mage->image)
- https://github.com/php/php-src/commit/5c8b702e77e971f1d2f87c3e3fa694216eec284b
- [7.4~]
- ext/opcache で、func_info の typo を修正

## TysonAndre: Fix php 8.0's opcache flags for pathinfo()
- https://github.com/php/php-src/commit/cdc82f19d8b6dc72f74abb819eab24589e3aa489
- ext/opcache で、[pathinfo()](https://www.php.net/manual/ja/function.pathinfo.php) が string を返すよう func_info を修正

## nikic: Remove ldap zpp tests
- https://github.com/php/php-src/commit/14692df82b1c13895f55f8fc4b09053b94c89d41
- ext/ldap で、zpp の挙動をテストしているに過ぎないテストが残っていたのを削除

## krakjoe: i386 build
- https://github.com/php/php-src/commit/c2a78c7cac74c184648b8e357a1ce4862ec06a78
- Azure Pipelines の設定で、i386 用ビルドの追加

## nikic: Add get_mangled_object_vars() function
- https://github.com/php/php-src/commit/eecd8961d94c50cc6cdc94ec80df8c1ce4881a76
- [7.4~]
- get_mangled_object_vars() の追加
- ArrayObject 等での array キャストのオーバーロードを無視する以外では array キャストと同じ挙動とのこと

## krakjoe: checkout depth of one doesn't always work with batched builds, it seems
- https://github.com/php/php-src/commit/3ef151127fc7d7496c0d392b2102609ba0837888
- [7.4~]
- Azure Pipelines の設定を修正

## krakjoe: drop docker until tested locally
- https://github.com/php/php-src/commit/a36e381e57bdb1a95707198d3eecc5a209c56c97
- [7.4~]
- Azure Pipelines の設定で、i386 の Docker 用設定を削除
- ローカルで動作確認してからにしよう、ということらしい（してなかったんか）

## remicollet: next is 7.2.21
- https://github.com/php/php-src/commit/05c60abfdba53a8cd5f01b640b64ca367e720c81
- [7.2~]
- 7.2 系の開発バージョンを 7.2.21 に引き上げ

## nikic: Add specialized pair construction API
- https://github.com/php/php-src/commit/51fb8dc422a744d502f7d3c293ced916974521d8
- [7.4~]
- ZEND_API zend_new_pair() の追加
    - 2 要素の配列を作るだけの単純なコード
- ext/pcre で、zend_new_pair() を利用しての最適化

## krakjoe: use XFAILIF rather than XFAIL to avoid warnings [ci skip]
- https://github.com/php/php-src/commit/9ecc0a4f296cf5c72572e75a9734b40d941e2427
- sapi/phpdbg で、[XFAIL 入れていた](https://qiita.com/sj-i/items/f6097a9dbdc6328d8325#krakjoe-watchpoints-have-flaws-in-implementation)ところを SKIPIF に修正

## nikic: Register class before fetching parent
- https://github.com/php/php-src/commit/89b2d88659b8a561769f51dfab1fa325e7fc0603
- zend_do_link_class へ親クラスの読み込みを移動
- full variance サポートの準備

## nikic: Support full variance if autoloading is used
- https://github.com/php/php-src/commit/8f8fcbbd397370b407dc2552c4bd6ee4ccb0e93b
- [7.4~]
- autoload 利用時のみ full variance をサポート
- [PR:4194](https://github.com/php/php-src/pull/4194)

## cmb69: Next is 7.3.8
- https://github.com/php/php-src/commit/bcf20963c10ffdb8d0cf3adafcf440a3e6d6484c
- [7.3~]
- 7.3 系の開発バージョンを 7.3.8 に引き上げ

## krakjoe: This reverts [0e5d4ea55554872fe72e5d984b73fc21abc561fe](https://github.com/php/php-src/commit/0e5d4ea55554872fe72e5d984b73fc21abc561fe) to fix the build on MacOSX
- https://github.com/php/php-src/commit/69190ce5c053a9bf97983932bd702137895b18df
- [7.4~]
- C++ の TLS 指定を使うようにしていた箇所を使わないよう修正
- Mac でのビルドが壊れていたらしい

## TysonAndre: Fix bug in opcache flags for mysqli_get_charset
- https://github.com/php/php-src/commit/7350e808c539ac284b81904730bde11a96b0ab01
- ext/opcache で、[mysqli_get_charset()](https://www.php.net/manual/ja/mysqli.get-charset.php) の func_info を修正

## TysonAndre: Fix opcache signatures for mysqli_stat
- https://github.com/php/php-src/commit/07c63c6fdfb36b4a45273bb8dd6abb11093b3552
- ext/opcache で、[mysqli_stat()](https://www.php.net/manual/en/mysqli.stat.php) の func_info を修正

## TysonAndre: Be more precise about possible types for mysqli methods
- https://github.com/php/php-src/commit/5d3e3a62a2c5a7ebe7f25ec453fb97d1429093a1
- [7.3~]
- ext/opcache で、mysqli の関数の func_info を修正
- mysqli では 32 ビットプラットフォームだと扱えないサイズの整数値を string にして返したりするため、id や行数を返す関数で MAY_BE_STRING を付ける必要がある

## nikic: Remove ext/ldap/tests/bug76248.phpt
- https://github.com/php/php-src/commit/8d3a2a4a12faf0532ead100180dd1224781058f3
- ext/ldap で、こけるしなんかいらなさそうなテストを削除

## nikic: Build with ldap and ldap sasl on azure
- https://github.com/php/php-src/commit/e5aba0f5182ad95bd722d32f7f35c2aab6fd81ba
- [7.4~]
- Azure Pipelines の設定で、--with-ldap、--with-ldap-sasl 付きでビルドするよう修正
- ldap サーバ用意するとかではないので単にビルドが通るかのテスト用

## Girgias: Remove unnecessary short_open_tag INI directive in tests
- https://github.com/php/php-src/commit/7f5f277cf2d44ec031e4eeed767c0e0a546eb825
- テストで無駄に short_open_tag の設定があった箇所を削除

## nikic: Fix 32-bit warnings in timelib
- https://github.com/php/php-src/commit/fc65da5c59f454616ebef0b9b6fd8951b2e17ecf
- [7.4~]
- ext/date で、timelib_dump_tzinfo() で 32-bit int な環境だと警告が出ていた問題の修正
- [上流の修正](https://github.com/derickr/timelib/pull/58)のバックポート

## nikic: Fix abs(long) warnings in gd.c
- https://github.com/php/php-src/commit/0849a621fd2b965edce74c10a916e46b9b328a6d
- ext/gd で、abs() に long を渡して警告が出ていた箇所の修正
- 単に int にキャストしてる、上流での修正に合わせてるとのこと

## nikic: Remove safeboolean use in gd_jpeg.c
- https://github.com/php/php-src/commit/2290102172dca043d1a44e17e12fe73b81c3b858
- ext/gd で、safeboolean を使っていたのを boolean に修正
- [上流にだいぶ前入ってた](https://github.com/libgd/libgd/commit/289c82929f0058da91b727de3b176e83f82d496b#diff-edb6b3029db51dbe988edae798c658d7)修正内容だが、facebook のレビューが見れないので経緯は追えないなー

## nikic: Fix fabs warning in gd_interpolation.c
- https://github.com/php/php-src/commit/5c844c1d36fbba8e0a525064b88e86e3d6429b5e
- ext/gd で、fabs() の結果を int キャストしていた箇所を abs() に修正しコンパイラの警告潰し
- 上流とも同期

## nikic: Remove unused _setEdgePixel() and getPixelOverflowColorTC() functions
- https://github.com/php/php-src/commit/e5411e17c79ff1e555f302e5ad48f58b8a05d086
- ext/gd で、使われていない関数の削除