1
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-22

Posted at

今日は急にコミット多くて

2018-08-22

dstogov: Removed op_array->static_variables duplication code. They can't be "shared" during comilation.

  • https://github.com/php/php-src/commit/e3bbfbe6a26272a21504a2fe5c5738bae017f032
  • 静的変数のコンパイル時、静的変数テーブルのコピーを行っていたのを行わないよう修正
  • 継承時、親クラスからの関数テーブルのコピーが発生
  • 親クラスのメソッドが静的変数を持つ際、関数のコピーコンストラクタで静的変数テーブルをコピーするような実装が 1999 年に入った
  • このコードは後に zend_array_dup() を使うよう 2014 年に修正された
  • その後、関数コピー時点では静的変数テーブルをコピーせず、lazy にコピーするような実装が 2015 年に入る
  • 実行時はともかくコンパイル時に親から引き継いだ関数の静的変数テーブルを触るようなことはない筈なので、なんとなく入れてたコンパイル時のコードからは抜いた、みたいな感じなのかな?

dstogov: Stop using zend_function->reserved[] space.

devnexen: Don't report mmap failure if it is expected

nikic: Unify unpack checking in compile_special_func()

dstogov: Introduced ZEND_COMPILE_IGNORE_OTHER_FILES compiler option, to allow "separate" file compilation (unaffected but previously compiled files), without CG(function_table)/CG(class_table) manipulation.

  • https://github.com/php/php-src/commit/fc8d6b679786cdfebc692b74cdaf4e508a916a3e
  • compiler_options に ZEND_COMPILE_IGNORE_OTHER_FILES を追加
  • early_binding で継承を処理する際や call_user_func() 系など、ある処理をコンパイルする際に連鎖的に別ファイルのデータを見て CG(function_table)/CG(class_table) の操作をしなくて済むようにしてるみたい?

vhuk: Fixed bug #76777 and added test

dstogov: Use zend_class_entry/zend_function type names instead of _zend_class_entry/_zend_function tags.

massimilianobraglia: Fixed bug #75797

cmb69: Fix #76778: array_reduce leaks memory if callback throws exception

oerdnj: Fix #76767: ‘asm’ operand has impossible constraints in zend_operators.h

DaveRandom: Fix #76773 - Methods with a concrete scope need to be added again

cmb69: Increase memory_limit to prevent test failures

cmb69: Fix #68825: Exception in DirectoryIterator::getLinkTarget()

dstogov: Change zend_lookup_class_ex() and zend_fetch_class_by_name() prototypes to accept optional lower-case class name as zend_string*, instead of zval*.

php-src めも

1
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
1
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?