php-master-changes 2018-10-17

今日は .gitignore の整理、ext/xml の見落とされていたオプションの追加、オブジェクトハンドラの必須/非必須の分類化、ビルドシステムの不要変数削除、ext/mbstring の修正、Preloading の PR から分離された Immutable な クラスデータ / op_array の導入、コンパイラの微修正、CI テストのオプション変更、ext/tidy のバグ修正があった！

あと元ネタの [ruby-trunk-changes](http://d.hatena.ne.jp/nagachika/) の中の人に[拾われて](https://twitter.com/nagachika/status/1052377419120689152)びっくりした！

# 2018-10-17
## petk: Remove configuration parser and scanners ignores
- https://github.com/php/php-src/commit/265ee53b8028f1433586f0c5c6334ad297225c0f
- .gitignore から 古い ini パーサで使われていた lex / yacc の中間生成ファイルの指定を削除

## petk: Remove bsd_converted from .gitignore
- https://github.com/php/php-src/commit/4ac9ef4a0069607c1ac948242348c6b765f9044c
- .gitignore から古いビルドシステムで使われていた bsd_converted というロック用ファイルの指定を削除

## petk: Remove some obsolete config_vars.mk occurrences
- https://github.com/php/php-src/commit/066b5b78813493bf6071b4882f478d94b79d79ce
- .gitignore から古いビルドシステムで使われていた config_vars.mk というファイルの指定を削除

## cmb69: Add support for getting SKIP_TAGSTART and SKIP_WHITE options
- https://github.com/php/php-src/commit/b33124239af07c9349cba42a516b9f00e8357445
- [7.1~]
- ext/xml で [xml_parser_get_option()](http://php.net/manual/ja/function.xml-parser-get-option.php) に SKIP_TAGSTART と SKIP_WHITE のオプションを追加
- 見落としで実装されていなかった

## nikic: Classify object handlers are required/optional
- https://github.com/php/php-src/commit/1cfbb21790ff6dd4931223c5bdc18a0cebf3ffd4
- オブジェクトハンドラについて必須のものとオプショナルなものを分類
- ルールの明確化によって不要な null チェックを避けられる箇所もあわせて直している
- [PR:3599](https://github.com/php/php-src/pull/3599) で入った奴

## petk: Remove unused variable makefile_am_files
- https://github.com/php/php-src/commit/3412345ffefbefdee1da83350d3a45c4838e2b44
- build/build.mk から古いビルドシステムで使われていた makefile_am_files という変数を削除
- 当時は automake を使っていた

## nikic: Add vtbls for EUC-TW encoding
- https://github.com/php/php-src/commit/2cc6462edc79b711930368173119d0bf045d8aa9
- ext/mbstring の vtbl へ EUC-TW を追加

## nikic: Fixed bug [#77025](https://bugs.php.net/bug.php?id=77025)
- https://github.com/php/php-src/commit/56665a1b17b8877164473872b90b68d5ac311306
- [7.3~]
- ext/mbstring で 8bit エンコーディング使用時 [mb_strpos()](http://php.net/manual/ja/function.mb-strpos.php) / [mb_stripos()](http://php.net/manual/ja/function.mb-stripos.php) が[正常に動作していなかった](https://3v4l.org/Qgujb)問題の修正

## nikic: Remove the "auto" encoding
- https://github.com/php/php-src/commit/1151554668557ae649d96743c3ccb2a3ea5b278f
- [7.3~]
- ext/mbstring のエンコーディング実装から auto を削除
- auto の指定をとる関数は関数実装側で明示的なチェックをしており、ここではいらないねということみたい

## dstogov: Immutable clases and op_arrays.
- https://github.com/php/php-src/commit/d57cd36e47b627dee5b825760163f8e62e23ab28
- [preloading の PR](https://github.com/php/php-src/pull/3538) から[分離された](https://github.com/php/php-src/pull/3608) immutable クラスの実装
- opcache の共有メモリからプロセス毎のメモリへのコピーが不要となる
- immutable な構造体から mutable なデータへのアクセスを行うため、一部データについては ZEND_MAP_PTR というマクロを通して間接参照するようになってる

## dstogov: Mark "top-level" classes
- https://github.com/php/php-src/commit/9226695c221dc6e0a66ff03964f0bfae02477d69
- トップレベル定義のクラスについて分類を追加

## dstogov: Micro optimizations
- https://github.com/php/php-src/commit/3575a2b8f921b2c7af9a725e54a1391243a71378
- 一時変数を使ってのコード整理

## dstogov: Fixed comment
- https://github.com/php/php-src/commit/b6ac50f9e6fec55f8e46f2443b2cf3e780374487
- 自分で追加しといて ? もないだろとコメントの修正

## nikic: Run CI tests under opcache.protect_memory=1
- https://github.com/php/php-src/commit/59cec6e67db6bdcb86c49ea3063ab436d0da466f
- CI のテストを opcache.protect_memory=1 で実行するよう修正

## cmb69: Fix [#77027](https://bugs.php.net/bug.php?id=77027): tidy::getOptDoc() not available on Windows
- https://github.com/php/php-src/commit/8a9e0312ce90f6cdc55a8fb6f1e1af326306b97a
- [7.1~]
- ext/tidy で、Windows だと [tidy::getOptDoc()](http://php.net/manual/ja/tidy.getoptdoc.php) が使えなかった問題の修正

## dstogov: Fixed incorrect reallocation
- https://github.com/php/php-src/commit/a0a1c8990ede33b2d5b7976f1a19a82aaa226fcb
- [Arena](https://phpinternals.net/categories/zend_arena) にない奴を ARENA_REALLOC() しようとしていた部分を修正