diff options
author | Dmitry Stogov <dmitry@zend.com> | 2012-11-30 13:39:23 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2012-11-30 13:39:23 +0400 |
commit | 70f83f35d089d0cafae12ae231a38541f5c8e41c (patch) | |
tree | 1dee0f4716d742a57558d59a9285392805b25a9b /UPGRADING | |
parent | 9f7e53fde8b0feac271230cbc6731e9de90f2a03 (diff) | |
download | php-git-70f83f35d089d0cafae12ae231a38541f5c8e41c.tar.gz |
. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more.
. Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.
Diffstat (limited to 'UPGRADING')
-rwxr-xr-x | UPGRADING | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -28,6 +28,27 @@ PHP 5.5 UPGRADE NOTES zend_logo_guid() have been removed - Removal of Logo GUIDs +- extensions can't override zend_execute() any more, they should override + zend_execute_ex() instead. The EG(current_execute_data) is already + initialized in zend_execute_ex(), so for compatibility extensions + may need to use EG(current_execute_data)->prev_execute_data instead. +- removed EG(arg_types_stack), EX(fbc), EX(called_scope), EX(current_object) +- added op_array->nested_calls. It's calculated at compile time. +- added EX(call_slots). It is an array to store information about syntaticaly + nested calls (e.g. foo(bar())). It's preallocated together with execute_data. +- added EX(call) - pointer to a current calling function. Actually an + element of EX(call_slots) +- opcodes INIT_METHOD_CALL, ZEND_INIT_STATIC_METHOD_CALL, + ZEND_INIT_FCALL_BY_NAME, ZEND_INIT_NS_FCALL_BY_NAME use result.num as + an index in EX(call_slots) +- opcode ZEND_NEW uses extended_vallue as an index in EX(call_slots) +- opcoes ZEND_DO_FCALL and ZEND_DO_FCALL_BY_NAME use op2.num as + an index in EX(call_slots) +- added op_array->used_stack. It's calculated at compile time and the + corresponding stack space is preallocated together with execute_data. + ZEND_SEND* and ZEND_DO_FCALL* don't need to check for stack overflow + anymore. + ======================================== 2. New Features ======================================== |