php-master-changes 2019-08-26

この日は arginfo の PHP スタブへの移行、ldap_read() を呼ぶと引数に渡した配列が変更される問題の修正、一部組み込み関数の警告を例外を投げるエラーに昇格する修正、2 進 / 16 進リテラルで _ が複数続いた際に Out of memory を起こす問題の修正、テストの修正 ZendMM の実装修正、SplDoublyLinkedList のシリアライズで SEGV が起きる問題の修正、opcache の func_info の修正、AI_IDN_ALLOW_UNASSIGNED と AI_IDN_USE_STD3_ASCII_RULES の非推奨化 /　削除、組み込み関数でのスカラ型検査のデバッグ用コードの修正、非推奨化された libzip の関数の置き換え、extract() / compact() へのアサーションの追加と返り値からの nullable 外し、gen_stub.php の修正、コンパイラの live range check 処理の修正があった！

# 2019-08-26
## cmb69: Add ext/gmp stubs
- https://github.com/php/php-src/commit/64d0416a721010b779e34597461c4121b9d5a2d0
- ext/gmp で、arginfo の PHP スタブへの移行

## cmb69: Don't modify arrays passed by value
- https://github.com/php/php-src/commit/ac40d0ffbca2a8c941c748ace7528b4699b307fc
- [7.4~]
- ext/ldap で、[ldap_read()](https://www.php.net/manual/ja/function.ldap-read.php) を呼ぶと引数に渡した配列が変更される問題の修正
- [草としか言いようがない](https://chat.stackoverflow.com/transcript/message/47078047#47078047)

## Girgias: Promote warnings to errors in str_pad()
- https://github.com/php/php-src/commit/743729d5bf4637ef6f9f6008213ac675d216abf6
- [str_pad()](https://www.php.net/manual/ja/function.str-pad.php) の警告を例外投げるエラーに昇格

## theodorejb: Fix [#78454](https://bugs.php.net/bug.php?id=78454): Consecutive numeric separators cause OOM error
- https://github.com/php/php-src/commit/1a78bdab276a9e34aa1ae00a184538e2d0dacdcd
- [7.4~]
- [Numeric Literal Separator](https://wiki.php.net/rfc/numeric_literal_separator) の実装で、2 進 / 16 進リテラルで \_ が複数続いた際に Out of memory を起こす問題の修正

## smalyshev: Fix test
- https://github.com/php/php-src/commit/d1646e328aff679dccf5597476e98c182fe4365c
- [7.3~]
- ext/pcre で、テストの期待出力がなんか（PCRE のバージョン変更か何かで？）ズレてたので修正

## nikic: Fix overflow in memory limit checks
- https://github.com/php/php-src/commit/16d35eb643bf974554e5264021ee10fc969e2053
- [7.2~]
- ZendMM の実装で、memory_limit のチェックにオーバーフローがあり、アドレス空間のサイズに近いサイズのアロケーションでメモリーリミットの上限チェックでなく Out of memory の方が出ていた問題の修正

## nikic: Fixed bug [#78456](https://bugs.php.net/bug.php?id=78456)
- https://github.com/php/php-src/commit/9483c507725637a45704d5983f3eaf7ca37875c9
- [7.4~]
- ext/spl で、[SplDoublyLinkedList](https://www.php.net/manual/ja/class.spldoublylinkedlist.php) のシリアライズで SEGV が起きる問題の修正
- 参照カウントの操作が抜けてた奴

## TysonAndre: Fix opcache optimizer info for time_nanosleep
- https://github.com/php/php-src/commit/f5bccc0eb5bfe2b1c9ba55cf1df27f2a18a046fa
- ext/opcache で、[time_nanosleep()](https://www.php.net/manual/ja/function.time-nanosleep.php) の func_info の修正

## TysonAndre: Also fix signature for passthru
- https://github.com/php/php-src/commit/1e82a2d659aac6ef95a6820d4f6ac3684e07bcad
- [7.2~]
- ext/opcache で、[passthru](https://www.php.net/manual/ja/function.passthru.php) の func_info の修正

## viest: Deprecate AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES
- https://github.com/php/php-src/commit/5703943081fc24d555e572edf507a05702974d98
- [7.4~]
- ext/sockets で、AI_IDN_ALLOW_UNASSIGNED と AI_IDN_USE_STD3_ASCII_RULES の非推奨化
- glibc 2.28 で非推奨化されたので、ということらしい

## Girgias: Promote warnings to errors in explode()
- https://github.com/php/php-src/commit/91f4e2e61493d06db8b6fbbccbd0e4166d86f48f
- [explode()](https://www.php.net/manual/ja/function.explode.php) の警告を例外投げるエラーに昇格

## viest: Remove deprecated getaddrinfo flags
- https://github.com/php/php-src/commit/48040cf3459327a137c78a5bd76dbee3221948f3
- ext/sockets で、[getaddrinfo()](https://www.php.net/manual/ja/function.getaddrinfo.php) の非推奨化されたフラグ対応実装を削除

## theodorejb: Convert remaining array function arginfo to PHP stubs
- https://github.com/php/php-src/commit/d5f42d68c89497834649fce36d9dd65fb6598c35
- 配列操作関数の arginfo を PHP スタブへ移行

## nikic: Avoid duplicate "non well-formed" warning
- https://github.com/php/php-src/commit/0038db22510cce37b24491c266123ba5b1e93953
- 組み込み関数でのスカラ型検査のデバッグ用コードで、不要な重複警告が出ないよう修正

## Girgias: Promote warnings to errors in array_rand()
- https://github.com/php/php-src/commit/c1c8538f952ff8cc4358fc988d5e9b11dcfbf6e6
- [array_rand()](https://www.php.net/manual/ja/function.array-rand.php) の警告を例外投げるエラーに昇格

## cmb69: Replace deprecated libzip functions
- https://github.com/php/php-src/commit/8f897f1040f00210f4a5cdd82a88a1fe3e558955
- [7.4~]
- ext/zip で、非推奨化された libzip の関数を置き換え

## nikic: Assert that symbol table is available in compact()
- https://github.com/php/php-src/commit/a47f170a7562d40d2f675600c641c616c2ebc592
- [extract()](https://www.php.net/manual/ja/function.extract.php) / [compact()](https://www.php.net/manual/ja/function.compact.php) の実装で、シンボルテーブルが見えることのアサーションを追加し、返り値型宣言から nullable を除去

## nikic: Make sure that params with null default are marked nullable
- https://github.com/php/php-src/commit/0c2d4d698c9743f75cb1adb6d485154192536242
- arginfo 用の PHP スタブでデフォルト null のパラメータに nullable 指定も付けるよう修正

## cmb69: Add ext/ffi stubs
- https://github.com/php/php-src/commit/e047e9d8939d77484a5d9eac5611622597a3d189
- ext/ffi で、arginfo を PHP スタブへ移行

## nikic: Make arginfo printing of prefer-ref arguments nicer
- https://github.com/php/php-src/commit/a98307df8771f9b7fb0227ac2d4459e1419b887c
- arginfo 生成での ZEND_SEND_PREFER_REF の扱いを修正
- ZEND_SEND_PREFER_REF がなんじゃらほい、は別途気が向いたら調べて追記

## burakcakirel: Add assert arginfo stubs
- https://github.com/php/php-src/commit/d2210dc2ea69adabbe87a118223970ee2e323e41
- [assert()](https://www.php.net/manual/ja/function.assert.php) / [assert_options()](https://www.php.net/manual/ja/function.assert-options.php) の arginfo を PHP スタブへ移行

## cmb69: Add ext\opcache stubs
- https://github.com/php/php-src/commit/0ab4fca8e3f126649901f7a33e3dd8c320d7022e
- ext/opcache で、arginfo を PHP スタブへ移行

## nikic: Don't use needs_live_range hook for "special" live ranges
- https://github.com/php/php-src/commit/e2b49d6c45f0c5ed69268d32da2f4972265db663
- [7.4~]
- コンパイラの live range check で、needs_live_range を一部ケースでは行わないよう修正