summaryrefslogtreecommitdiff
path: root/UPGRADING
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2012-11-30 13:39:23 +0400
committerDmitry Stogov <dmitry@zend.com>2012-11-30 13:39:23 +0400
commit70f83f35d089d0cafae12ae231a38541f5c8e41c (patch)
tree1dee0f4716d742a57558d59a9285392805b25a9b /UPGRADING
parent9f7e53fde8b0feac271230cbc6731e9de90f2a03 (diff)
downloadphp-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-xUPGRADING21
1 files changed, 21 insertions, 0 deletions
diff --git a/UPGRADING b/UPGRADING
index 18ab6bf22e..f8cb6fa2ed 100755
--- a/UPGRADING
+++ b/UPGRADING
@@ -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
========================================