2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

php-master-changes 2018-08-24

Last updated at Posted at 2018-08-24

最近 Dmitry が元気。
会社の Qiita の organization 見つけたので、混ぜてーと言ったら混ぜてくれた。

2018-08-24

dktapps: mkdist.php: recursively check dll dependencies

  • https://github.com/php/php-src/commit/b9bf9ddce6b0813df60b346fca7919735f158cd5
  • Windows 用でバイナリ配布物を用意するスクリプトの修正
  • PR はこれ
  • intl を入れなくても ICU が無条件で配布物へ含められていたのを、標準の DLL 依存検査処理を再帰的に行うようにすることでその枠内で ICU も取り扱えるようにし、ICU を除外できるようにした
  • libenchant や libsasl2 のような一部 DLL は、プラグインとして他の DLL をロードしており、DLL へリンクされているわけではなく、無条件のコピーが必要だった
  • ICU もかつては同様だったが、現在は再帰的なリンクチェックで解決できるようになっている

dstogov: Keep information about unresolved parent class in zend_class_entry->parent_name

dstogov: Perform "early-binding" directly during compilation

  • https://github.com/php/php-src/commit/b36dbdd1dd431d1a21fdb6f2508c7c41b682466c
  • コンパイル時に直接早期バインドを行うよう修正
  • 元々、zend_compile() より呼ばれる zend_compile_top_stmt() から AST をたどり、関数/クラス定義をコンパイルする際は ZEND_DECLARE_FUNCTION や ZEND_DECLARE_CLASS などのオペコードを生成、その最後に後処理として zend_do_early_binding() でトップレベルのみ関数/クラス定義をバインド(実際に処理系内へスクリプトから利用できる形でクラス定義を構築)するような作りだった
  • 今回の修正で、トップレベルのものについては直接関数やクラス定義のコンパイル時にバインドを行うようになった
  • これにより、早期バインドの残骸である ZEND_NOP はコンパイル後の op_array に残らなくなった

dstogov: ZEND_DECLARE_CLASS, ZEND_DECLARE_INHERITED_CLASS and ZEND_DECLARE_INHERITED_CLASS_DELAYED don't need return value anymore.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?