php-master-changes 2019-03-01

今日はエンジンのメモリリークの修正、不要コードの削除、opcache 最適化バグの修正、リポジトリ内のファイルのパーミッション修正、pdo_odbc.db2_instance_name の ini 設定削除、ドキュメントの更新、テストカバレジの向上、extra() の $prefix の引数処理の ZPP への移行、Linux でも opcache で POSIX 共有メモリを使うようにする修正、メモリアロケータでデバッグ情報を捨ててしまっていた箇所の修正、zend_objects_store_del() の修正、一部 SAPI モジュールが WCOREDUMP のマクロ定義がない環境でビルドに失敗する問題の修正、curl_error() がエラーなしの際に空文字列を返さない場合があった問題の修正、一部テストを並列実行に対応する修正があった！

# 2019-03-01
## nikic: Fix leak in resolve_property_types
- https://github.com/php/php-src/commit/89a7b7cc9699fc16a2d1c8379c83d026bc8a9cc5
- [7.4~]
- zend_resolve_property_types() のメモリリークを修正
- これは内部クラスの型付きプロパティを post_startup 内でリンクするような処理かな

## nikic: Remove unnecessary convert_to_string_safe macro
- https://github.com/php/php-src/commit/1b998bb9cb7385e060e1aa4ea8a8e7a9cd0c9eca
- 不要なマクロ convert_to_string_safe() を削除、convert_to_string() へ置き換え

## nikic: Don't remove CONST CAST in CONCAT operand
- https://github.com/php/php-src/commit/105a04aaac1686cdd35cc777d806ebac6d57e2f3
- [7.4~]
- ext/opcache で、文字列連結演算子のオペランドが文字列キャストされる値である際にキャスト命令を潰す最適化があったが、潰してはいけないケース（文字列でない定数なケース）があったので修正

## nikic: Free map_base_ptr during post_startup
- https://github.com/php/php-src/commit/ff315098f44cfe6483fd55eb434615c1f521eb10
- [7.4~]
- post_startup で map_base_ptr を free() するよう修正

## petk: Remove PHP_DECLARED_TIMEZONE and HAVE_DECLARED_TIMEZONE
- https://github.com/php/php-src/commit/f64ae64f52caf602720cd87061673b378c0c4158
- [7.4~]
- 不要な m4 マクロ PHP_DECLARED_TIMEZONE を削除

## petk: Fix file permissions
- https://github.com/php/php-src/commit/e763cc742505cbb4e85d161f5457bf711f85bd43
- [7.4~]
- リポジトリ内のファイルのパーミッションを修正

## KalleZ: Removed pdo_odbc.db2_instance_name
- https://github.com/php/php-src/commit/fddc751024e850e068be1ab51e454a815a859ee2
- ext/pdo_odbc で、[PHP 7.3 で非推奨化されていた](https://qiita.com/rana_kualu/items/23b10fcefb552533b067#pdo_odbcdb2_instance_name-phpini-directive) pdo_odbc.db2_instance_name の ini 設定を削除

## KalleZ: NEWS
- https://github.com/php/php-src/commit/5e8ed0a0f51b58440fead086ba822b590e1a12ae
- ↑の NEWS への追記

## royopa: Test for function posix_getpwnam() basic functionality
- https://github.com/php/php-src/commit/54ef8d13d8c91f2bdd3c9a65871918efad370571
- [7.4~]
- ext/posix で、[posix_getpwnam()](http://php.net/manual/ja/function.posix-getpwnam.php) のテストを修正
- [先日追加した](https://qiita.com/sj-i/items/17eb3aa8f1c34dce4c38#royopa-create-posix_getpwnam_basic_01phpt)奴で、カバレッジ見たらカバーされてない部分があったから、ということらしい

## nikic: Convert extract() prefix to string zpp arg
- https://github.com/php/php-src/commit/7f262edaf3e12f81dfa204d760139149b681dce1
- [extra()](http://php.net/manual/ja/function.extract.php) の引数 `$prefix` が文字列であることの処理を ZPP で行うよう修正

## dstogov: Enable Posix Shared Memory on Linux
- https://github.com/php/php-src/commit/7d5e2e532c2c3c1d5e249beced450bae7fa17fc3
- [7.4~]
- ext/opcache で、Linux でも [POSIX 共有メモリ](https://linuxjm.osdn.jp/html/LDP_man-pages/man3/shm_open.3.html)を使うよう修正

## dstogov: Keep original debug info
- https://github.com/php/php-src/commit/a1109b28f493a33b94d3bd1dddb0d0dfbb0f5d0d
- [7.4~]
- メモリアロケータの実装で、ラッパー的な関数でデバッグ情報を捨ててしまっていた箇所を引き回すよう修正

## dstogov: Unused parameter
- https://github.com/php/php-src/commit/c896b3ea482d928aa9ca876fedfefda7bfb06565
- [7.4~]
- メモリアロケータの実装で、zend_mm_alloc_small() の不要な引数を削除

## nikic: Check for NULL GC type in objects_store_del
- https://github.com/php/php-src/commit/4dc0662eca4d8bc79cb6f6fa0c62e1600efef78a
- [7.3~]
- zend_objects_store_del() での NULL GC タイプのチェックを修正
- ということなんだけどよく追えておらず、まず GC タイプってなんぞというところを見れてないな

## kadler: Fix bug [#77677](https://bugs.php.net/bug.php?id=77677): WCOREDUMP not available on all systems
- https://github.com/php/php-src/commit/006355c9fa0d1cd8aef86a97c162053e7d2d896e
- [7.2~]
- sapi/fpm、sapi/litespeed で、WCOREDUMP のマクロ定義がない AIX 等の環境でビルドに失敗する問題の修正

## jay: curl_error: return an empty string if no error occurred
- https://github.com/php/php-src/commit/5025eb05bde83a0a51eb0668c45c240b366545bf
- [7.2~]
- ext/curl で、[curl_error()](http://php.net/manual/ja/function.curl-error.php) がエラーなしの際に空文字列を確実に返すよう修正
- 元々 libcurl 側のエラーバッファをそのまま返していたが、これはエラー非発生時に空になる保証は特にないような奴だった

## nikic: Use separate files for SplFileObject::setCsvControl() tests
- https://github.com/php/php-src/commit/51dacafc64336bc7fa02de1ec032d651b1d2b0e1
- [7.4~]
- ext/spl で、[SplFileObject::setCsvControl()](http://php.net/manual/ja/splfileobject.setcsvcontrol.php) のテストケースでそれぞれ別の一時ファイルを使うよう修正
- テストの並列実行対策