#
9c96fe52 |
| 12-Dec-2012 |
Dmitry Stogov |
Restored proper generators behaviour in conjunction with "finally". (Nikita)
|
Revision tags: php-5.3.20RC1, php-5.4.10RC1 |
|
#
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, 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 |
|
#
bd70d155 |
| 25-Aug-2012 |
Nikita Popov |
Remove implementation stubs for yield delegation I decided to leave out yield delegation for an initial proposal, so remove the stubs for it too.
|
#
68c1e1cf |
| 24-Aug-2012 |
Nikita Popov |
Add dedicated opcode for returns from a generator Generators don't have a return value, so it doesn't make sense to have a shared implementation here.
|
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 |
|
#
d939d2de |
| 11-Jun-2012 |
Nikita Popov |
Add sceleton for yield* expression This does not yet actually implement any delegation.
|
Revision tags: php-5.3.14RC2, php-5.4.4RC2 |
|
#
fafce586 |
| 26-May-2012 |
Nikita Popov |
Add YIELD opcode implementation
|
#
1cec3f12 |
| 19-May-2012 |
Nikita Popov |
Add ZEND_SUSPEND_AND_RETURN_GENERATOR opcode If the function is a generator this opcode will be invoked right after receiving the function arguments. The current implementation
Add ZEND_SUSPEND_AND_RETURN_GENERATOR opcode If the function is a generator this opcode will be invoked right after receiving the function arguments. The current implementation is just a dummy.
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 |
|
#
e4ca0ed0 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
#
8775a375 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
#
4e198252 |
| 01-Jan-2012 |
Felipe Pena |
- Year++
|
Revision tags: 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 |
|
#
ea5a61e3 |
| 18-Oct-2011 |
Arnaud Le Blanc |
Improved ternary operator performance when returning arrays
|
#
07b7ba8b |
| 18-Oct-2011 |
Arnaud Le Blanc |
Improved ternary operator performance when returning arrays
|
Revision tags: 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 |
|
#
ae40e5f4 |
| 10-Jul-2011 |
Felipe Pena |
- Year++
|
#
31a69cd4 |
| 10-Jul-2011 |
Felipe Pena |
- Year++
|
#
327a9d45 |
| 10-Jul-2011 |
Felipe Pena |
- Year++
|
Revision tags: php-5.3.7RC2, php-5.4.0alpha1, php-5.3.7RC1, php-5.3.6 |
|
#
b78ac8df |
| 16-Mar-2011 |
Dmitry Stogov |
Fixed bug #54262 (Crash when assigning value to a dimension in a non-array)
|
#
8efa208e |
| 16-Mar-2011 |
Stanislav Malyshev |
fix UMR when variable name is an object and __toString is used # zend_call_function checks IS_REF on This
|
Revision tags: php-5.3.6RC3, php-5.3.6RC2, php-5.3.6RC1, php-5.2.17, php-5.3.5 |
|
#
927bf09c |
| 01-Jan-2011 |
Felipe Pena |
- Year++
|
#
0203cc3d |
| 01-Jan-2011 |
Felipe Pena |
- Year++
|
Revision tags: 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 |
|
#
2188f26c |
| 25-Aug-2010 |
Dmitry Stogov |
Fixed bug #52614 (Memory leak when writing on uninitialized variable returned from method call)
|
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 |
|
#
cd6415f1 |
| 22-Apr-2010 |
Stefan Marr |
Implemented Traits for PHP as proposed in the RFC [TRAITS] # RFC http://wiki.php.net/rfc/horizontalreuse#traits_-_reuse_of_behavior # Ok, here we go, I guess that will result in more dis
Implemented Traits for PHP as proposed in the RFC [TRAITS] # RFC http://wiki.php.net/rfc/horizontalreuse#traits_-_reuse_of_behavior # Ok, here we go, I guess that will result in more discussion, which is fine # by me. But now, the patch is here, and properly archived. # # See below a list of notes to the patch, it also includes a list of # points which should be fixed # # Internals of the Traits Patch # ----------------------------- # # Open TODOs # """""""""" # # - Reflection API # - support for traits for internal classes # - currently destroy_zend_class does not handle that case # # Introduced Structures # """"""""""""""""""""" # # Data structures to encode the composition information specified in the # source: # - zend_trait_method_reference # - zend_trait_precedence # - zend_trait_alias # # Changes # """"""" # # zend_class_entry # - uses NULL terminated lists of pointers for # - trait_aliases # - trait_precedences # - do you prefer an explicit counter? # - the information is only necessary during class composition # but might be interesting for reflection # - did not want to blow up class further with not really necessary length counters # # added keywords # - trait # - insteadof # # Added opcodes # ZEND_ADD_TRAIT # - similar to ZEND_ADD_INTERFACE # - adds the trait to the list of traits of a class, no actual composition done # ZEND_BIND_TRAITS # - emitted in zend_do_end_class_declaration # - concludes the class definition and will initiate the trait composition # when the class definition is encountered during runtime # # Added Flags # ZEND_ACC_TRAIT = 0x120 # ZEND_ACC_IMPLEMENT_TRAITS = 0x400000 # ZEND_FETCH_CLASS_TRAIT = 14 # # zend_vm_execute.h # - not sure whether the handler initialization (ZEND_ADD_TRAIT_SPEC_HANDLER, # ZEND_BIND_TRAITS_SPEC_HANDLER) is correct, maybe it should be more selective # # zend_compile.c # - refactored do_inherit_method_check # split into do_inherit_method_check and do_inheritance_check_on_method # - added helper functions use a '_' as prefix and are not mentioned in the # headers # - _copy_functions # prepare hash-maps of functions which should be merged into a class # here the aliases are handled # - _merge_functions # builds a hash-table of the methods which need to be added to a class # does the conflict detection # - reused php_runkit_function_copy_ctor # - it is not identical with the original code anymore, needed to update it # think I fixed some bugs, not sure whether all have been reported back to runkit # - has to be renamed, left the name for the moment, to make its origin obvious # - here might be optimization potential # - not sure whether everything needs to be copied # - copying the literals might be broken # - added it since the literals array is freed by efree and gave problems # with doubled frees # - all immutable parts of the zend_op array should not be copied # - am not sure which parts are immutable # - and not sure how to avoid doubled frees on the same arrays on shutdown # - _merge_functions_to_class # does the final merging with the target class to handle inherited # and overridden methods # - small helper for NULL terminated lists # zend_init_list, zend_add_to_list # # zend_language_parser.y # - reused class definition for traits # - there should be something with regard to properties # - if they get explicitly defined, it might be worthwhile to # check that there are no collisions with other traits in a composition # (however, I would not introduce elaborate language features to control that # but a notice for such conflicts might be nice to the developers)
show more ...
|
#
fb9d95e5 |
| 22-Apr-2010 |
Dmitry Stogov |
ZEND_RETURN is splitted into two new instructions ZEND_RETURN and ZEND_RETURN_BY_REF
|