php-master-changes 2019-06-12

この日は不要コードの削除、一部ライブラリ検出の pkg-config への移行、Azure Pipelines の設定修正、テストコードの修正、bison の構文定義ファイルで非推奨化された機能を使わないようにする修正、ドキュメントの修正、コンパイラの警告潰し、curl ビルド時に CFLAGS/LDFLAGS が引き継がれていなかった問題の修正、printf 書式指定文字列が誤っていた箇所の修正、PHP 7.4.0alpha1 のリリース用作業、libcurl の SSL ライブラリ不検出時の不要な警告を出さないようにする修正、RETURN_* と ZVAL_* のマクロを do-while(0) のイディオムを使うようにする修正、ZEND_API の char * に const を付ける修正があった！
PHP 7.4.0alpha1 リリースのためか、なんかコミット多い日だった！

# 2019-06-12
## nikic: Remove unused gmp_unary_ui_op() function
- https://github.com/php/php-src/commit/fa5513aefeda5c3ff15d9d578de8c71390bece3e
- [7.4]
- ext/gmp で、使われていない関数 gmp_unary_ui_op() を削除

## hughmcmaster: ext/ldap: Use PKG_CHECK_MODULES to detect the libsasl2 library
- https://github.com/php/php-src/commit/9d6103665162f29b7621493b0c5c4a613731a1c9
- [7.4~]
- ext/ldap で、libsasl2 の検出を pkg-config へ移行

## hughmcmaster: ext/standard: Use PKG_CHECK_MODULES to detect the Argon2 library
- https://github.com/php/php-src/commit/bdcef51bcb367323f2eea4808f34a1b3e58bd3d8
- [7.4~]
- libargon2 の検出を pkg-config へ移行
- オプション --with-password-argon2 を --with-argon2 にする修正も入っているが、そっちは後でリバートされている

## krakjoe: disable phpdbg on macosx, it's not well tested there and is skewing results [ci skip]
- https://github.com/php/php-src/commit/8ab3e7bc0c3b7153c4d3526fb32b3552e0393141
- [7.4~]
- Azure Pipelines の設定で、Mac 用ビルドの phpdbg を無効化
- あんまテストされてなくてちゃんと動いてないらしい

## krakjoe: fix flaky gd tests
- https://github.com/php/php-src/commit/2dfa49531170e55d9a9bf4933bc3d60ee05c157f
- [7.4~]
- ext/gd で、テストコードの修正
- 並列実行対策と無駄な掃除コードの修正かな、ただ後で cmb69 の人がもっと単純化してる

## krakjoe: Revert "ext/pgsql: Use PKG_CHECK_MODULES to detect the pq library"
- https://github.com/php/php-src/commit/eac238fb6cb6f38c2f3ba1d0fa129ea8d42fec38
- [7.4~]
- [前日の修正](https://qiita.com/sj-i/items/ba65116c2f87d2b13eca#hughmcmaster-extpgsql-use-pkg_check_modules-to-detect-the-pq-library)をリバート
- [RHEL / CentOS 7 でアカン](https://github.com/php/php-src/pull/4235#issuecomment-501130054)ということらしい

## krakjoe: fix flaky test on OSX
- https://github.com/php/php-src/commit/abe38b5e4823b08cdec72ca6207fc41a9a0a3152
- [7.4~]
- ext/sockets で、Mac でうまいこと動かないテストの修正
- socket_create_listen(80) でこけてほしかったがこけないので、[ポート 427](https://support.apple.com/ja-jp/HT202944) を使うようにしてる

## krakjoe: fix flaky sockets test - form of response is OS dependent
- https://github.com/php/php-src/commit/c54a247cb0d15e683131daf16ec932fc1b30af43
- [7.4~]
- ext/sockets で、テストの出力内容が OS 依存だったのを修正

## nikic: Use %define api.pure instead of %pure-parser
- https://github.com/php/php-src/commit/852ab5d83fc350cabbe5d80237410ab9e2d47176
- [7.4]
- bison の構文定義ファイルで、非推奨化された [%pure-parser](https://www.gnu.org/software/bison/manual/html_node/Decl-Summary.html#index-_0025pure_002dparser) を [%define api.pure](https://www.gnu.org/software/bison/manual/html_node/_0025define-Summary.html#index-_0025define-api_002epure-1) に修正

## nikic: Revert option rename
- https://github.com/php/php-src/commit/b654a0749233d89704d8b23ae6e758095fdfea1d
- [7.4~]
- --with-password-argon2 にオプション名を戻した
- [先に入った修正](#hughmcmaster-extstandard-use-pkg_check_modules-to-detect-the-argon2-library)を一部リバートする形

## remicollet: add comment about pg_config/pkgconfig
- https://github.com/php/php-src/commit/66bd7875f85fb74695ec9fa98bba88d114580b9f
- [7.4~]
- ext/pgsql で、pkg-config は 9.3 からしか使えないので pg_config 使うよと config.m4 にコメントを追記

## krakjoe: fix flaky zip tests, order is OS dependent
- https://github.com/php/php-src/commit/e2eb1ee1e3c4bc66f81bde2c5e26dd12f549efb2
- [7.4~]
- ext/zip で、OS により挙動の違っていたテストの修正

## derickr: Update credits pre-release
- https://github.com/php/php-src/commit/06ddc025ac3ad09bdd344cb4779427c81dece9fd
- [7.4~]
- 拡張のクレジットで、バンドルから外れた wddx 用のエントリの削除

## nikic: Fix -Wmissing-braces warnings
- https://github.com/php/php-src/commit/f601eb15e63590f00acd3453dbc24d4caaed1182
- [7.4]
- -Wmissing-braces のコンパイラ警告の修正、GNU 拡張の書き方をしてた

## nikic: Fix type mismatch in two get_col callbacks
- https://github.com/php/php-src/commit/26a1b2e28e621923c7199862e5f0b5012537d91d
- [7.4]
- ext/pdo_pgsql と ext/pdo_sqlite で、[コールバックの引数型](https://github.com/php/php-src/blob/26a1b2e28e621923c7199862e5f0b5012537d91d/ext/pdo/php_pdo_driver.h#L349)が誤っていた問題の修正

## nikic: Don't use sqlite3_aggregate_count()
- https://github.com/php/php-src/commit/1d8c323b64191873c9f06a3c4a3126eca97e3c05
- [7.4]
- ext/pdo_sqlite で、[非推奨化されている](https://www.sqlite.org/c3ref/aggregate_count.html) sqlite3_aggregate_count() を使わないよう修正

## nikic: Use labs() on long integer
- https://github.com/php/php-src/commit/d2921af348cc7ba075ef4577a8738414c04f1c94
- [7.4]
- ext/soap で、long 要求箇所で abs() でなく labs() を使うよう修正

## nikic: Suppress int to char conversion warnings
- https://github.com/php/php-src/commit/365a905e00119cb499d8b10c0227f8c0d46213ab
- [7.4]
- ext/soap で、int から　char への暗黙変換の警告を修正

## nikic: Preserve CFLAGS/LDFLAGS for curl ssl check
- https://github.com/php/php-src/commit/2f1d822d78ca8f34e67a06139ce36e6ff88fc158
- [7.4~]
- ext/curl で、ビルド時に CFLAGS/LDFLAGS が引き継がれていなかったのを修正

## cmb69: Simplify GD null byte injection tests
- https://github.com/php/php-src/commit/37d0c7b0e4072889ed05e7d631ee47a6bedf8ef5
- [7.4~]
- ext/gd で、NUL バイトインジェクションのテストの単純化
- 関数失敗して警告出てるのチェックすれば実際にファイル作られないことまで確認しなくていいよね、ということらしい

## cmb69: Fix nullbyte tests
- https://github.com/php/php-src/commit/fc7b3cc7ca523d703a0270b79011ed4725ed942f
- ext/gd で、NUL バイトインジェクションのテストで警告出力のチェックではなく例外をチェックするよう修正
- PHP 8 だと引数エラーとして例外でして、ということらしい

## nikic: Guard functions by SO_PASSCRED
- https://github.com/php/php-src/commit/2134cc25d2ece0d38e1de194bc5486089e6d349f
- [7.4]
- ext/sockets で、一部関数を SO_PASSCRED が使える時のみ定義するよう修正
- そのケースでしか使われない関数みたい

## nikic: Fix incorrect printf modifiers
- https://github.com/php/php-src/commit/5be772a19ccb4ad7dda871e50e9349484de92d56
- [7.4]
- file_put_contents() のエラーメッセージで、書式指定文字列が誤っていた問題の修正

## nikic: Remove unused php_mbX_int_to_char() functions
- https://github.com/php/php-src/commit/fdfb390f0759a331981f3a0cd4f36bb641a2b427
- [7.4]
- 使われていない関数の削除

## nikic: Fix incorrect enum value uses in xmlrpc
- https://github.com/php/php-src/commit/9fa552f3935f29371102f784b1bbfde753253aed
- [7.4]
- ext/xmlrpc で、誤った enum 値を返していた箇所の修正

## nikic: Fix warnings in mysqlnd_alloc.c
- https://github.com/php/php-src/commit/3e4b9659d33d4c2eaf4e11a7917f5d9d2355aed1
- [7.4]
- ext/mysqlnd で、コンパイラの警告潰しと `#if PHP_DEBUG` のコードパスをより分離するリファクタリング

## nikic: Enable -Werror on m32 build
- https://github.com/php/php-src/commit/4d65d53805591e25767452910d0cf716f29399c9
- [7.4]
- Azure Pipelines の設定で、i386 用のビルド設定に --enable-werror を追加

## nikic: Fix mysqlnd printf modifiers
- https://github.com/php/php-src/commit/e1e275eefd0ea8bc394a9058244751349cf77b5c
- [7.4]
- ext/myqlnd で、printf 書式指定の修正

## nikic: Remove MYSQLND_LLU_SPEC/MYSQLND_LL_SPEC
- https://github.com/php/php-src/commit/52d80ccd2401b3b67be08f7e584f04ca1174462e
- [7.4]
- ext/mysqlnd で、元々 printf 書式指定に使っていたが標準マクロへ置き換えられた MYSQLND_LLU_SPEC/MYSQLND_LL_SPEC を削除

## nikic: Fix unused value warnings in snprintf.c
- https://github.com/php/php-src/commit/be36d922943b11ebfbb43112de1c48bef9e2d68a
- [7.4]
- snprintf.c で、不使用変数の警告潰し

## nikic: Try to control ZEND_MM_ALIGNED_SIZE type
- https://github.com/php/php-src/commit/93c728b77cfb47f5cfdd1863f8982ea59d344205
- [7.4]
- ZEND_MM_ALIGNED_SIZE の型を size_t にするよう修正、かな

## nikic: Fix unused variables in fpm_env.c
- https://github.com/php/php-src/commit/16f79129c788578711ab63f088dc4f8f43f0a952
- [7.4]
- sapi/fpm で、不使用変数の削除

## nikic: Mark some operand fetching funs as ATTRIBUTE_UNUSED
- https://github.com/php/php-src/commit/080e2316cf86a5fcf030b57569eaa07d6d9d22ef
- [7.4]
- 幾つかのオペランドフェッチ用関数を ATTRIBUTE_UNUSED に指定

## nikic: Remove always true condition
- https://github.com/php/php-src/commit/65ff4dddba3110433eefbfc1f3539a8fc6a3ffec
- [7.4~]
- ext/mysqlnd で、常時 true の不要な三項演算子の除去

## derickr: Update NEWS for PHP 7.4.0alpha1
- https://github.com/php/php-src/commit/53bfa33ef5e91bb676ba022009490dd51fded99f
- [7.4]
- NEWS で、PHP 7.4.0alpha1 のリリース日を 6/13 と記載

## derickr: Update CREDITS for PHP 7.4.0alpha1
- https://github.com/php/php-src/commit/ec57ba5eddbc1592ff0ece88111b8f184e9fe037
- [7.4]
- CREDITS を辞書順にソート

## derickr: Update NEWS for 7.4.0alpha2
- https://github.com/php/php-src/commit/945e5d35d77cf0a7a5cb9677c49fa0d15a549563
- [7.4~]
- 7.4 系の開発バージョンを PHP 7.4.0alpha2 に引き上げ

## nikic: Use memset instead of brace initialization
- https://github.com/php/php-src/commit/cdefeb715b7a91695407fefd59cdf93815dc0a90
- [7.4]
- ext/sockets で、{{0}} で初期化していた箇所で memset() を使うよう修正

## nikic: Fix ifdef position
- https://github.com/php/php-src/commit/cc89d260968746f1048029d711f113d2a9688a13
- [7.4~]
- ext/mysqlnd で、ifdef の位置を修正

## nikic: Make ATTRIBUTE_UNUSED more portable
- https://github.com/php/php-src/commit/8f63e7e324c84319919f0f87eaa2505c5c4f512d
- [7.4]
- ATTRIBUTE_UNUSED の定義に GCC のバージョンチェックだけでなく __has_attribute(unused) を見るよう修正

## nikic: Fix unsigned char mismatch
- https://github.com/php/php-src/commit/6fcb469991248b3f67f618ed7033465197ccfcda
- [7.4~]
- マクロで unsigned char * 渡されるケースがあった奴について char * キャスト追加した形かな

## krakjoe: we are not running database tests on macos, there is no need to install mysql or start pg
- https://github.com/php/php-src/commit/a7f8a2b7312e2cc2e9feebf399dbe53cd50cb6d3
- [7.4~]
- Azure Pipelines の設定で、Mac では DB テストを実行してないのに DB をセットアップする箇所があったのを削除

## nikic: Don't warn if libcurl SSL library not detected
- https://github.com/php/php-src/commit/bc8fece0cf43be05dcf5022b851d5429c8977401
- [7.4~]
- ext/curl で、libcurl の SSL ライブラリが検出されなくても不要な警告を出さないよう修正
- libcurl は 7 つの SSL ライブラリにリンクされ得て、openssl 以外はスレッドセーフのため、openssl でさえなければダイジョブらしい

## nikic: Fix ext/exif/tests/bug76557.phpt for 32-bit builds
- https://github.com/php/php-src/commit/7b8299893ec1c3ddf4093de350a75be55e63b33c
- [7.4~]
- ext/exif で、i386 ビルドでのテストこけの修正

## nikic: Fix two 32-bit tests for zpp changes
- https://github.com/php/php-src/commit/b277548ed567caad1b7c9c22bf049b3f31af94a2
- zpp のテストで警告を期待出力としていたのを例外を期待するよう修正

## nikic: Skip syntax errors in skipif conditions
- https://github.com/php/php-src/commit/eabb8a6324dbe306f87a05d28709f461ef3c2589
- sapi/phpdbg で、SKIPIF セクションのセミコロン抜けを修正

## nikic: Enable -Werror on macos builds
- https://github.com/php/php-src/commit/da56e77357c5267fc99f407695c4f18a50bbd25c
- [7.4~]
- Azure Pipelines の設定で、Mac 用ビルドで -Werror を指定するよう修正

## twose: Add do...while(0) for RETURN_* and ZVAL_* APIs
- https://github.com/php/php-src/commit/63171d88f2b1f45840d0c63072cde0735b6f2764
- RETURN_* と ZVAL_* のマクロを do-while(0) のイディオムを使うよう書き換え

## nikic: Mark label as potentially unused
- https://github.com/php/php-src/commit/ff8002fc7c3cbf9ee01d6d68cccbbd9460314ce4
- ext/opcache で、ラベルに ZEND_ATTRIBUTE_UNUSED を指定
- 条件コンパイル次第で goto success がないからかな

## twose: Constify some char* arguments or return values of ZEND_API
- https://github.com/php/php-src/commit/61f78de4860b951b8548b745f40caef3b5369528
- ZEND_API の char * に const をいくらか付けた