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 ...
|
Revision tags: php-5.4.30, php-5.5.14, php-5.6.0RC1, php-5.5.14RC1, php-5.4.30RC1, php-5.6.0beta4, php-5.4.29, php-5.5.13, php-5.5.13RC1, php-5.6.0beta3, php-5.4.29RC1, php-5.6.0beta2, php-5.5.12, php-5.4.28 |
|
#
ea2e1bb1 |
| 18-Apr-2014 |
Dmitry Stogov |
Optimized zend_leave_helper()
|
Revision tags: php-5.4.28RC1, php-5.5.12RC1, php-5.6.0beta1, php-5.4.27, php-5.5.11, php-5.5.11RC1, php-5.4.27RC1, php-5.5.10, php-5.4.26, php-5.6.0alpha3, php-5.4.26RC1, php-5.5.10RC1 |
|
#
4e66abad |
| 12-Feb-2014 |
Dmitry Stogov |
Use better data structures (incomplete) - refactored return_value handling
|
Revision tags: php-5.6.0alpha2 |
|
#
f4cfaf36 |
| 10-Feb-2014 |
Dmitry Stogov |
Use better data structures (incomplete)
|
Revision tags: php-5.5.9, php-5.4.25, php-5.5.9RC1, php-5.4.25RC1, php-5.6.0alpha1, php-5.5.8, php-5.4.24, php-5.4.24RC1, php-5.5.8RC1, php-5.5.7, php-5.4.23, php-5.3.28, php-5.5.7RC1, php-5.4.23RC1, php-5.4.22, php-5.5.6, php-5.4.22RC1, php-5.5.6RC1, php-5.4.21, php-5.5.5, php-5.4.21RC1, php-5.5.5RC1, php-5.5.4, php-5.4.20, php-5.5.4RC1, php-5.4.20RC1, php-5.5.3, php-5.4.19, php-5.5.2, php-5.4.18, php-5.5.2RC1, php-5.4.18RC2, php-5.5.1, php-5.4.18RC1, php-5.3.27, php-5.4.17, php-5.5.0, php-5.3.27RC1, php-5.4.17RC1, php-5.5.0RC3, php-5.3.26, php-5.4.16, php-5.5.0RC2, php-5.3.26RC1, php-5.4.16RC1, php-5.5.0RC1, php-5.3.25, php-5.4.15, php-5.3.25RC1, php-5.5.0beta4, php-5.4.15RC1, php-5.4.14, php-5.3.24, php-5.5.0beta3, php-5.3.24RC1, php-5.4.14RC1, php-5.5.0beta2, php-5.5.0beta1, php-5.3.23, php-5.4.13, php-5.5.0alpha6, php-5.3.23RC1, php-5.4.13RC1, php-5.3.22, php-5.5.0alpha5, php-5.4.12, php-5.3.22RC2, php-5.4.12RC2, php-5.3.22RC1, php-5.4.12RC1, php-5.5.0alpha4, php-5.3.21, php-5.4.11, php-5.5.0alpha3, php-5.3.21RC1, php-5.4.11RC1, php-5.3.20, php-5.4.10, php-5.5.0alpha2, php-5.3.20RC1 |
|
#
fa30e475 |
| 05-Dec-2012 |
Dmitry Stogov |
Slight performance improvement
|
Revision tags: php-5.4.10RC1 |
|
#
61dbf35c |
| 04-Dec-2012 |
Dmitry Stogov |
Moved zend_create_execute_data_from_op_array() implementation from zend_vm_execute.skl to zend_execute.c
|
#
7651d645 |
| 04-Dec-2012 |
Dmitry Stogov |
Optimized access to temporary and compiled VM variables
|
#
70f83f35 |
| 30-Nov-2012 |
Dmitry Stogov |
. 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 preallocate
. 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.
show more ...
|
#
eb4825b5 |
| 22-Nov-2012 |
Dmitry Stogov |
Improved "finally" im[plementation
|
Revision tags: php-5.3.19, php-5.4.9, php-5.5.0alpha1, php-5.3.19RC1, php-5.4.9RC1 |
|
#
7bcb8780 |
| 04-Nov-2012 |
Xinchen Hui |
Fixed bug #63428 (The behavior of execute() changed)
|
Revision tags: php-5.3.18, php-5.4.8, php-5.3.18RC1, php-5.4.8RC1, php-5.3.17, php-5.4.7, php-5.4.7RC1 |
|
#
d92a89fe |
| 25-Aug-2012 |
Xinchen Hui |
Fixed bug (segfault while build with zts and GOTO vm-kind)
|
Revision tags: php-5.3.16, php-5.4.6 |
|
#
80d5ae3c |
| 13-Aug-2012 |
Xinchen Hui |
Implemented 'finally' keywords for php RFC: https://wiki.php.net/rfc/finally FR: https://bugs.php.net/bug.php?id=32100 and I have got some improvment ideas(performance), will impleme
Implemented 'finally' keywords for php RFC: https://wiki.php.net/rfc/finally FR: https://bugs.php.net/bug.php?id=32100 and I have got some improvment ideas(performance), will implemented later. thanks
show more ...
|
Revision tags: php-5.4.6RC1 |
|
#
c9709bfb |
| 19-Jul-2012 |
Nikita Popov |
Remove asterix modifier (*) for generators Generators are now automatically detected by the presence of a `yield` expression in their body. This removes the ZEND_SUSPEND_AND_RET
Remove asterix modifier (*) for generators Generators are now automatically detected by the presence of a `yield` expression in their body. This removes the ZEND_SUSPEND_AND_RETURN_GENERATOR opcode. Instead additional checks for ZEND_ACC_GENERATOR are added to the fcall_common helper and zend_call_function. This also adds a new function zend_generator_create_zval, which handles the actual creation of the generator zval from an op array. I feel like I should deglobalize the zend_create_execute_data_from_op_array code a bit. It currently changes EG(current_execute_data) and EG(opline_ptr) which is somewhat confusing (given the name).
show more ...
|
Revision tags: php-5.4.5, php-5.3.15, php-5.3.15RC1, php-5.4.5RC1, php-5.3.14, php-5.4.4, php-5.3.14RC2, php-5.4.4RC2 |
|
#
b770b221 |
| 29-May-2012 |
Nikita Popov |
Make the GOTO and SWITCH VMs work again
|
#
f627be52 |
| 26-May-2012 |
Nikita Popov |
Add support for executing a zend_execute_data This adds another function execute_ex(), which accepts a zend_execute_data struct to run (contrary to execute(), which accepts a zend_op_arr
Add support for executing a zend_execute_data This adds another function execute_ex(), which accepts a zend_execute_data struct to run (contrary to execute(), which accepts a zend_op_array from which it initialized the execute_data). This needs a bit more cleanup.
show more ...
|
#
5e763d94 |
| 22-May-2012 |
Nikita Popov |
Allocate execute_data using malloc for generators Generators need to switch the execute_data very often. If the execute_data is allocated on the VM stack this operation would require to
Allocate execute_data using malloc for generators Generators need to switch the execute_data very often. If the execute_data is allocated on the VM stack this operation would require to always copy the structure (which is quite large). That's why the execution context is allocated on the heap instead (only for generators obviously).
show more ...
|
Revision tags: php-5.3.14RC1, php-5.4.4RC1, php-5.3.13, php-5.4.3, php-5.4.2, php-5.3.12, php-5.3.11, php-5.4.1, php-5.3.11RC2, php-5.4.1RC2, php-5.3.11RC1, php-5.4.1RC1, PHP-5.4.1-RC1, php-5.4.0, php-5.4.0RC8, php-5.3.10, php-5.4.0RC7, php-5.4.0RC6, php-5.3.9, php-5.4.0RC5, php-5.3.9RC4, php-5.4.0RC4, php-5.3.9RC3, php-5.4.0RC3, php-5.3.9RC2, php-5.4.0RC2, php-5.4.0RC1, php-5.3.9RC1, php-5.4.0beta2, php-5.4.0beta1, yaf-2.1.0, php-5.3.8, php-5.3.7, php-5.3.7RC5, php-5.4.0alpha3, php-5.3.7RC4, php-5.3.7RC3, php-5.4.0alpha2, php-5.3.7RC2, php-5.4.0alpha1, php-5.3.7RC1, php-5.3.6, php-5.3.6RC3, php-5.3.6RC2, php-5.3.6RC1, php-5.2.17, php-5.3.5, php-5.2.16, php-5.2.15, php-5.3.4, php-5.2.15RC2, php-5.3.4RC2, php-5.3.4RC1, php-5.2.15RC1, PHP_5_2_15RC1 |
|
#
f2df6a4a |
| 15-Sep-2010 |
Dmitry Stogov |
- Improved memory usage . zend_function.pass_rest_by_reference is replaced by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags . zend_function.return_reference is replace
- Improved memory usage . zend_function.pass_rest_by_reference is replaced by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags . zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags . zend_arg_info.required_num_args removed. it was needed only for internal functions. Now the first arg_info for internal function (which has special meaning) is represented by zend_internal_function_info structure. . zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count moved into CG(context), because they are used only during compilation. . zend_op_array.start_op is moved into EG(start_op), because it's used only for 'interactive' execution of single top-level op-array. . zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags. . op_array.vars array is trimmed (reallocated) during pass_two. . zend_class_entry.constants_updated is replaced by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags . the size of zend_class_entry is reduced by sharing the same memory space by different information for internal and user classes. See zend_class_inttry.info union.
show more ...
|
Revision tags: oci8-1.4.3, php-5.2.14, php-5.3.3, php-5.3.3RC3, php-5.2.14RC3, php-5.3.3RC2, php-5.2.14RC2, php-5.3.3RC1, php-5.2.14RC1 |
|
#
c5237d82 |
| 24-May-2010 |
Dmitry Stogov |
Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties
|
#
453b49ed |
| 20-Apr-2010 |
Dmitry Stogov |
Added a number of small performance tweaks and optimizations . ZEND_RECV now always has IS_CV as its result . ZEND_CATCH now has to be used only with constant class names . ZEND_FET
Added a number of small performance tweaks and optimizations . ZEND_RECV now always has IS_CV as its result . ZEND_CATCH now has to be used only with constant class names . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
show more ...
|
Revision tags: php-5.3.2, php-5.2.13, php-5.3.2RC3, php-5.3.2RC2, php-5.2.13RC2, php-5.2.13RC1, php-5.3.2RC1, php-5.2.12, php-5.2.12RC4, php-5.2.12RC3, php-5.2.12RC2, php-5.3.1, php-5.3.1RC4, php-5.2.12RC1, php-5.3.1RC3, php-5.3.1RC2, oci8-1.4.0, php-5.2.11, php-5.2.11RC3, php-5.3.1RC1 |
|
#
4016bfcd |
| 03-Sep-2009 |
Dmitry Stogov |
Fixed bug #46074 (Bus error during running PHP CLI under IRIX 6.5.30)
|
Revision tags: php-5.2.11RC2, php-5.2.11RC1, php-5.3.0, php-5.3.0RC4, php-5.2.10, php-5.2.10RC2, php-5.3.0RC3, php-5.2.10RC1, php-5.3.0RC2, php-5.3.0RC1, RELEASE_1_3_5, php-5.2.9, php-5.2.9RC3, php-5.2.9RC2, php-5.2.9RC1, php-5.3.0beta1, NEWS, php-5.2.8, BEFORE_HEAD_NS_CHANGES_MERGE, php-5.3.0alpha3, php-5.3.0alpha2, php-5.2.7, php-5.2.7RC5, php-5.2.7RC4, BEFORE_HEAD_NS_CHANGE, BEFORE_NS_RULES_CHANGE, php-5.2.7RC3, php-5.2.7RC2, php-5.2.7RC1, php-4.4.9, php-5.3.0alpha1, php-4.4.9RC1, BEFORE_NEW_PARAMETER_PARSE |
|
#
76a9a42e |
| 11-Jun-2008 |
Dmitry Stogov |
- Removed direct executor recursion. - Use fastcall calling convention in executor on x86.
|
Revision tags: RELEASE_1_2_5, RELEASE_2_0_0b1 |
|
#
5521912b |
| 07-May-2008 |
Dmitry Stogov |
Use IS_CV for dirrent access to $this variable
|
Revision tags: php-5.2.6 |
|
#
2ecf4bb0 |
| 29-Apr-2008 |
Dmitry Stogov |
Lazy EG(active_symbol_table) initialization
|
Revision tags: RELEASE_1_0_2, php-5.2.6RC5, php-5.2.6RC4, php-5.2.6RC3, RELEASE_2_0_0a2, RELEASE_2_0_0a1, php-5.2.6RC2, php-5.2.6RC1, RELEASE_1_3_1 |
|
#
0b682510 |
| 24-Jan-2008 |
Dmitry Stogov |
Changed EG(argument_stack) implementation.
|
Revision tags: php-4.4.8, php-4.4.8RC1 |
|
#
70bf5468 |
| 23-Nov-2007 |
Dmitry Stogov |
Fixed compilation on Windows
|