php-master-changes 2019-07-08

今日は exif の修正、argon2i(d) のパスワードハッシュを必要な場合 sodium から使うようにする修正、ビルドシステムのリファクタリング、ZEND_ASSIGN_DIM_OP の記述修正、com_dotnet の TsHashTable 関連の race 修正、INPUT_SESSION と INPUT_REQUEST の削除、libmagic のパッチ更新、_JIT のデバッグ用ディスアセンブラが FreeBSD / NetBSD で PHP バイナリの ELF シンボルを読む際の処理修正、base_convert() 等の基数変換関数へ無効な文字列を渡した際に deprecation notice を吐くようにする修正、スローパスで EG(exception) のチェックを遅延させるようにする修正、Mac 用のテスト修正、ドキュメントの更新、ReflectionReference::getRefcount() を実装する修正があった！

# 2019-07-08
## smalyshev: Simplify expression and remove the possibility of div by 0
- https://github.com/php/php-src/commit/57e7c3aac100f7ceb992a9a554b76235713f9a83
- [7.4~]
- ext/exif で、処理を単純化し 0 除算の可能性があったのを修正

## sgolemon: Provide argon2i(d) password hashing from sodium when needed
- https://github.com/php/php-src/commit/0ba1db7a4ab035e00dcb3089ef45820054c5a1cf
- [7.4~]
- argon2i(d) のパスワードハッシュを必要な場合 sodium から使うよう修正
- [PHP RFC: Provide argon2i(d) implementations for password_hash() from ext/sodium](https://wiki.php.net/rfc/sodium.argon.hash) の実装

## petk: Remove some unused variables
- https://github.com/php/php-src/commit/5ba69ab3addf17b0b854a20148f92e25b3790ef7
- [7.4~]
- ビルドシステムで、不要な変数を削除

## dstogov: Fixed opcode description
- https://github.com/php/php-src/commit/1305d9c0d26c167c4cb0abcd78a5c804ad96a292
- [7.4~]
- ZEND_ASSIGN_DIM_OP の OP2 のタイプを修正
- UNUSED のオペランドを何らかの形で利用する際の区別に THIS とか NEXT とか CLASS_FETCH とかを[雰囲気で付けてる](https://github.com/php/php-src/commit/061a90f8d14cbd34b42ff66c0c7611902bfe4490)ように見える、が、どんな時にどれ使うのかがイマイチ分からず（CLASS_FETCH は op.num をクラスフェッチで使うんだなというのは見てて分かる）
- たぶん zend_hash_next_index_insert() につながる配列への auto_increment 使った要素追加とかそういう系に使われることの記述なのかな、という気はしている

## petk: Simplify PHP_CHECK_PDO_INCLUDES calls
- https://github.com/php/php-src/commit/a39ea91753c5d131ff802ee394ee23ce2f37d7f4
- [7.4~]
- ビルドシステムで、PHP_CHECK_PDO_INCLUDES の呼び出しを単純化
- PHP_CHECK_PDO_INCLUDES がないバージョンの phpize との後方互換用の記述があった

## cmb69: Fix TsHashTable related race conditions
- https://github.com/php/php-src/commit/98b6330ab45732dcb16bb714d66ca1d987531406
- [7.4~]
- ext/com_dotnet で、TsHashTable 関連の race を修正
- TsHashTable 使っても要素の finding と updating 被るの安全じゃねえよ！というので tsrm_mutex 自前で使って保護する実装にしたもよう

## cmb69: Implement FR [#77230](https://bugs.php.net/bug.php?id=77230): Support custom CFLAGS and LDFLAGS from environment
- https://github.com/php/php-src/commit/338e1b245d8c234ffbd5407bf3f6c05a9e1b3cb3
- [7.4~]
- ビルドシステムで、Windows 版の configure で CFLAGS と LDFLAGS を環境変数から取れるよう修正

## nikic: Remove INPUT_SESSION and INPUT_REQUEST
- https://github.com/php/php-src/commit/0904dd3dc2bae8508f58f99c71e0d1d79fb91d38
- ext/filter で、[filter_input()](https://www.php.net/manual/ja/function.filter-input.php) の INPUT_SESSION と INPUT_REQUEST がぶっちゃけ実装されてなかったので（警告吐くだけだったので）削除

## petk: Update libmagic patch
- https://github.com/php/php-src/commit/f002761e08b928f17b16fb7bf7885294f4128415
- ext/fileinfo で、libmagic のパッチを upstream に追従して更新

## devnexen: JIT: Reading php binary symbols list on FreeBSD
- https://github.com/php/php-src/commit/5e1368814265871695ffb35ceb927cd1bae06a25
- [7.4~]
- ext/opcache/jit で、デバッグ用ディスアセンブラが FreeBSD / NetBSD で PHP バイナリの ELF シンボルを読む際の処理を修正

## petk: Remove C89 checks for signal.h and strerror
- https://github.com/php/php-src/commit/550c2aa89b97b07582773f22b9a52466d8584ab8
- [7.4~]
- ビルドシステムで、C89 で標準化されている signal.h と strerror のチェックを削除

## exussum12: Deprecate passing invalid character to base_convert etc
- https://github.com/php/php-src/commit/d90cdbd9df42c3d012af23a64fb3062f0af60efa
- base_convert() 等の基数変換関数へ無効な文字列を渡した際に deprecation notice を吐くよう修正
- [PHP RFC: base_convert changes](https://wiki.php.net/rfc/base_convert_improvements) の実装

## nikic: Remove redundant variable declaration
- https://github.com/php/php-src/commit/3ee570ae0d8fff340fea207ee49a694ae5b0a7f9
- [7.4~]
- ext/opcache/jit で、[先の修正](#devnexen-jit-reading-php-binary-symbols-list-on-freebsd)の不要な変数宣言の削除

## dstogov: Delay EG(exception) check on slow path
- https://github.com/php/php-src/commit/9a833438d184bcc7198c609117b27a321f20d22c
- [7.4~]
- スローパスで EG(exception) のチェックを遅延させるよう修正

## nikic: Make busy wait busier
- https://github.com/php/php-src/commit/392398bfe63b43288a0fbd301491b564eb24dfe9
- [7.4~]
- タイムアウトのテストが Mac でこけるのでビジーループを足して様子見

## petk: Refactor genif.sh
- https://github.com/php/php-src/commit/900de30b0f40a254e19082d3e2b696d58e338b43
- [7.4~]
- genif.sh のリファクタリング
- genif で Generate internal functions file、って分かるかそんなもん

## petk: Remove APACHE symbol
- https://github.com/php/php-src/commit/4b864c2ebbee11739a52b20a59aff8bdf9a38801
- [7.4~]
- ビルドシステムで、大昔に使われていたシンボル APACHE の削除

## petk: Catch up with recent changes [ci skip]
- https://github.com/php/php-src/commit/0f0c6c617f3a91e9b10bc0107226b7cedfd7d44f
- [7.4~]
- UPGRADING と NEWS の更新

## nikic: Add ReflectionReference::getRefcount()
- https://github.com/php/php-src/commit/428cfdd1810b17f0064b7691276f0eb92dc963b6
- [7.4~]
- ext/reflection で、ReflectionReference::getRefcount() の実装
- 経緯は [#78263](https://bugs.php.net/bug.php?id=78263)