php-master-changes 2019-06-27

この日はビルドシステムのリファクタ、不要コードの削除、テストの修正、継承まわりの処理の改善、ストリームで use-after-free が起きる問題の修正、メモリ / リソースリークの修正、SUCCESS しか返してなかった関数を返値型 void にする修正、enchant で phpinfo() のバージョン出力に取得できるときは実際のバージョン番号を使うようにする修正、メモリアロケータへ tracked allocator mode を追加する修正、phpdbg の一部メモリ管理まわりの処理の修正があった！

# 2019-06-27
## petk: Set Computer English language for credits sorting
- https://github.com/php/php-src/commit/537844cb1d9ce3b432c617baa17fd46f911bb848
- [7.4~]
- CREDITS の生成スクリプトで LC_ALL=C 指定してソート順が locale に依存しないよう修正

## petk: Remove HAVE_STRTOD and strtod check
- https://github.com/php/php-src/commit/cc4134c04eb0f092b1245c5efbdfe476165fd4b2
- [7.4~]
- ビルドシステムで、C89 で標準化されてる strtod のチェックを削除

## petk: Remove unused HAVE_DATE and HAVE_SPL symbols
- https://github.com/php/php-src/commit/6ef2f04a7557504c2596c82c5c64240dbc21ec24
- [7.4~]
- 常時あるので不要な HAVE_DATE と HAVE_SPL の条件コンパイルを削除

## petk: Fix posix_errno test without PCNTL dep
- https://github.com/php/php-src/commit/a29bf46b68cf1974cdd3cd80d3669a7d08e3a7f8
- [7.4~]
- ext/posix で、pcntl なしでは定義されない定数 SIGKILL があったのを自前定義の変数に修正

## petk: Fix concurrent testing of bug [61964](https://bugs.php.net/bug.php?id=61964)
- https://github.com/php/php-src/commit/4ff44a916155e0ebcb749566da59ab177965c85c
- [7.4~]
- ext/fileinfo で、テストの並列実行対策

## petk: Remove warnings for bison and re2c checks
- https://github.com/php/php-src/commit/798fed3b0deb1d979fd4f1916e938890c423577e
- [7.4~]
- ビルドシステムで、すでに生成された字句解析 / 構文解析のファイルがある場合に「リビルドするときは bison / re2c が必要だよ」という警告を出さないよう修正

## dstogov: Avoid double checks on early binding
- https://github.com/php/php-src/commit/83b99527dfb624b2b87d358ba729528bac3c7aab
- [7.4~]
- early binding でチェック処理が二重に行われるのを避けるよう修正

## petk: Clean headers checks
- https://github.com/php/php-src/commit/2079b09854ba1b7990641450ab9a69a141f7718a
- [7.4~]
- ビルドシステムで、一部ヘッダファイルのチェック処理が拡張や SAPI モジュール等に散在していたので整理

## nikic: Fix use-after-free in stream freeing during shutdown
- https://github.com/php/php-src/commit/6bebe833a2fd65c4d42e3870317a4c6b4c7299ad
- [7.4~]
- 処理系の終了処理時にストリームで use-after-free が起きる問題の修正

## nikic: Fix persistent connection leak in mysqli
- https://github.com/php/php-src/commit/2f0f895284f71c77754b52807a03a5e336419449
- [7.4~]
- ext/mysqli で、永続的接続利用時に DB 接続の解放漏れがあった問題の修正

## Andrey Gromov: Make zend_hash_rehash() a void function
- https://github.com/php/php-src/commit/84c4a4f17d1f1bc78932bf940c6be6b6ed137f8c
- [7.4~]
- SUCCESS しか返してなかった zend_hash_rehash() を返値型 void に修正

## dstogov: Inline hot path
- https://github.com/php/php-src/commit/a58964be82c239d29977aa4b80e6c3232de5a439
- [7.4~]
- zend_duplicate_function() のホットパスをインライン化

## dstogov: Separate common code abd eliminate useless checks
- https://github.com/php/php-src/commit/e7446c1b2d6ea06c9f862ec531a0ced9c1ec5b9f
- [7.4~]
- 継承まわりの処理でコードの共通化と不要コードの削除

## cmb69: Show actual enchant version if possible
- https://github.com/php/php-src/commit/218c18530aa09ac28b9bf16cf34382c28f4589bd
- [7.4~]
- ext/enchant で、phpinfo() のバージョン出力に取得できるときは実際のバージョン番号を使うよう修正

## nikic: Add tracked allocator mode
- https://github.com/php/php-src/commit/cfeda978dfa093f9d5da5a6fd6fa1090915bf418
- [7.4~]
- メモリアロケータに tracked allocator mode を追加
- USE_ZEND_ALLOC=0 で USE_TRACKED_ALLOC=1 だと有効化
- ZendMM 通さず ふつーに malloc / free しつつアロケーション状況をハッシュテーブルへ突っ込む
- 世間のメモリリーク検出ツールが有効に機能するようにしつつ、アロケーション状況はポータブルにとれるように、みたいな感じかな
- 最近 nikic の人がめっちゃメモリリーク系直してる気がする、long running なアプリケーションとか想定すると必要な対応だろうなあ

## nikic: Fix persistent XML memory leaks in SOAP
- https://github.com/php/php-src/commit/78375aa52f1f2ae79e2d014f24e15b48ef72bea7
- [7.4~]
- ext/soap で、persistent XML のメモリリークを修正
- "SOAP uses a horrible bailout based error handling approach" でなんかふいた

## nikic: Don't use zmm for PHPDBG_G(exec)
- https://github.com/php/php-src/commit/2149ed7072052fcab3baed72e82e26225845589b
- [7.4~]
- sapi/phpdbg で、PHPDBG_G(exec) を ZendMM でなくシステムのアロケータで管理するよう修正

## nikic: Fix phpdbg shutdown order
- https://github.com/php/php-src/commit/c3132781ecb7b6ff9ca4c8ccb64847fdeb26d2f4
- [7.4~]
- sapi/phpdbg で、終了処理の処理順を修正
- ZendMM 終了前に利用部分を一通り解放、ということらしい

## nikic: Fix opcache blacklist leak
- https://github.com/php/php-src/commit/40d6147dd0d43f0c114847bf3965b7d167cf752d
- [7.4~]
- ext/opcache で、ブラックリストのメモリリークの修正

## nikic: Remove posix_getlogin_basic.phpt test
- https://github.com/php/php-src/commit/08027e85fafe67c2044e868d49286b800497ef14
- [7.4~]
- ext/posix で、不要なテストの削除