Edited at

php-master-changes 2018-10-10

今日は autoconf の要求バージョン引き上げ、オブジェクトハンドラ get_properties_for の導入、flexble heredocに関連した字句解析のバグ修正があった!

ところで最近わりと朝の更新が増えてきたので、「今日は」という出だし、嘘もよいところなのではないか

いや気にしないようにしよう


2018-10-10


petk: Bump minimum Autoconf requirement to 2.68


  • https://github.com/php/php-src/commit/0b0d4b5f0d5de7d3172e995c34e951790fedafb5

  • [7.3~]

  • autoconf の要求バージョンを 2.68 へ引き上げ

  • 元々 phpize.m4 で 2.59、configure.ac で 2.64 を要求していた


    • が、phpize も中では 2.64 以降のマクロを使っていたりした……



  • CentOS 6 は autoconf 2.63 を使うシステムだが、現状で PHP 7.2+ をビルドするにはいずれにせよ 2.68 が必要という

  • autoconf 2.68 は 8 年前にリリースされたバージョン


    • ちなみに最新版 2.69 は 6 年前で、最近のディストリビューションだとわりと 2.69 が入ってる奴


    • コミット自体は入ってるので、リリース作業の時間は取れないけど死んでるというわけではない、という感じなのかな




petk: [ci skip] Update UPGRADING about Autoconf version


nikic: Introduce get_properties_for() handler


  • https://github.com/php/php-src/commit/7ec8087f8097955bfc6b97d1a916c6ffc39908f4

  • オブジェクトハンドラ get_properties_for() を追加

  • 配列へのキャストやシリアライズといった用途フラグを渡すと、オブジェクトのハッシュテーブルを適切に取ってくる


  • PR:3579 から経緯が追える

  • 型付プロパティを念頭に、可視性チェックの最適化で prop_info を効率的に見つける機構、という PR:3573 が別にあった

  • そっちで ArrayObject のテストがこけるという問題が出た

  • ArrayObject が master でなんかバグいぞ、というので PR:3574 が出て、その中で「必要なのは用途フラグ取れて部分的に挙動をオーバーライドできる get_properties_for() だ!」となり、 PR:3579 が別立てされマージされた形


nikic: Migrate ext/date to get_properties_for where appropriate


nikic: Don't overload get_properties for ArrayObject


nikic: Add UPGRADING notes


nikic: Specify timezone in test


nikic: Fixed bug #76991