Revision tags: php-5.4.31RC1, php-5.5.15RC1 |
|
#
28926540 |
| 07-Jul-2014 |
Nikita Popov |
Port echo |
#
7ce2d59a |
| 07-Jul-2014 |
Dmitry Stogov |
Merge branch 'call-frame' into phpng * call-frame: Simplify call-frame handling Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data) Us
Merge branch 'call-frame' into phpng * call-frame: Simplify call-frame handling Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data) Use values from current_execute_data instead of globals where possible Removed EG(called_scope) and use corresponding value from EG(current_execute_data) Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something. Removed EG(opline_ptr) and use corresponding value from EG(current_execute_data) Removed EG(active_op_array) and use corresponding value from EG(current_execute_data) Uinified call frame handling for user and internal functions. Now EG(current_execute_data) always point to the call frame of the currently executed function. Fixed cleanup of incompleytely passed parameters Prohibited parameter redefinition Fixed support for extra arguments in conjunction with variadiv argument. Use compile time flags to check if we call constructor and result of ZEND_NEW is used or not. Fixed uninitialized variables Optimization Changed zend_execute_data layout to reduce memory overhead Help C compilet to do the better job optimizing target code Use fast comparison for (func->type == ZEND_USER_FUNCTION || func->type == ZEND_EVAL_CODE) Keep extra args in the same VM stack segment (after all CV and TMP vars) Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions) Refactoring: use call_frames instead of call_slots Conflicts: Zend/zend_vm_def.h Zend/zend_vm_execute.h
show more ...
|
#
5aa91be5 |
| 07-Jul-2014 |
Dmitry Stogov |
Simplify call-frame handling |
#
2d4c962c |
| 05-Jul-2014 |
Nikita Popov |
Fix ZTS build |
#
17c2d16d |
| 04-Jul-2014 |
Nikita Popov |
Refactor class name resolution as well |
Revision tags: php-5.6.0RC2 |
|
#
b7715c7e |
| 30-Jun-2014 |
Dmitry Stogov |
Refactored parameter passing mechanism. In PHP-5.6 and below each argument passed to user function was copies on VM stack twice. Now we always have ZEND_INIT_FCALL (or simular) opcode th
Refactored parameter passing mechanism. In PHP-5.6 and below each argument passed to user function was copies on VM stack twice. Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack. "Call frame" is actually the same zend_execute_data structure. All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance. There are two minor incompatibilities: 1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}". 2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
show more ...
|
#
3f0ee308 |
| 30-Jun-2014 |
Dmitry Stogov |
Fixed support for extra arguments in conjunction with variadiv argument. Use compile time flags to check if we call constructor and result of ZEND_NEW is used or not. |
#
fb98dd31 |
| 28-Jun-2014 |
Nikita Popov |
Some refactoring of fn/const resolution |
#
7eebe229 |
| 27-Jun-2014 |
Dmitry Stogov |
Changed zend_execute_data layout to reduce memory overhead |
#
d6bd21ea |
| 27-Jun-2014 |
Dmitry Stogov |
Use fast comparison for (func->type == ZEND_USER_FUNCTION || func->type == ZEND_EVAL_CODE) |
#
032f3359 |
| 27-Jun-2014 |
Dmitry Stogov |
Keep extra args in the same VM stack segment (after all CV and TMP vars) |
#
64dab4b9 |
| 26-Jun-2014 |
Nikita Popov |
Drop dead code |
#
c6978139 |
| 26-Jun-2014 |
Dmitry Stogov |
Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions) |
Revision tags: php-5.4.30, php-5.5.14 |
|
#
43477bc7 |
| 23-Jun-2014 |
Dmitry Stogov |
Refactoring: use call_frames instead of call_slots |
#
e26c6d66 |
| 23-Jun-2014 |
Nikita Popov |
Implement constant expression folding as a separate pass |
#
90d36554 |
| 21-Jun-2014 |
Nikita Popov |
Support string interpolation |
#
86db3942 |
| 21-Jun-2014 |
Nikita Popov |
Remove dead code |
#
657762ee |
| 19-Jun-2014 |
Nikita Popov |
AST stage 2.4 |
#
55ab55c4 |
| 19-Jun-2014 |
Nikita Popov |
Add ability to specify additional attr in AST |
#
89ecd73a |
| 19-Jun-2014 |
Nikita Popov |
Make ast->children a uint Future optimization: only use uint for dynamic lists and use a uchar or even an introspection function to get the child count. |
Revision tags: php-5.6.0RC1 |
|
#
0c81b3ea |
| 14-Jun-2014 |
Nikita Popov |
Remove dead code |
#
0ec49bba |
| 14-Jun-2014 |
Nikita Popov |
AST stage 1.9 Expressions (mostly) use the AST |
Revision tags: php-5.5.14RC1, php-5.4.30RC1 |
|
#
258a733e |
| 07-Jun-2014 |
Nikita Popov |
AST-based compiler: Stage 1 |
Revision tags: php-5.6.0beta4 |
|
#
a8c15950 |
| 30-May-2014 |
Nikita Popov |
LTR static member access |
#
95a3a126 |
| 30-May-2014 |
Nikita Popov |
Change precedence of $ operator $$foo['bar'] is now interpreted as ${$foo}['bar'] rather than ${$foo['bar']}. |