PHP

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