#
a9a5f7ac |
| 11-Dec-2012 |
Dmitry Stogov |
- generators API exported for extensions - improved RETURN sequence to avoid redundant check if op_array is a generator
|
Revision tags: php-5.3.20RC1, php-5.4.10RC1 |
|
#
7651d645 |
| 04-Dec-2012 |
Dmitry Stogov |
Optimized access to temporary and compiled VM variables
|
#
5db372fb |
| 30-Nov-2012 |
Felipe Pena |
- Fixed ZTS build
|
#
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 ...
|
#
60871e51 |
| 24-Nov-2012 |
Nikita Popov |
Fix bug #63596: finally in generators segfaults EX(fast_ret) wasn't initialized in this case so the code ended up dereferencing an invalid pointer after the jump.
|
#
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 |
|
#
a31fa55b |
| 22-Sep-2012 |
Nikita Popov |
Fixed bug #63132 EG(arg_types_stack) is now also backed up when generators are used. This allows the use of yield in nested method calls. This commit adds two new functions to t
Fixed bug #63132 EG(arg_types_stack) is now also backed up when generators are used. This allows the use of yield in nested method calls. This commit adds two new functions to the zend_ptr_stack API: zend_ptr_stack_push_from_memory zend_ptr_stack_pop_into_memory both taking the following arguments: zend_ptr_stack *stack, int count, void **pointers
show more ...
|
#
a47c11a1 |
| 16-Sep-2012 |
Nikita Popov |
Fix two op_array -> function cast warnings
|
Revision tags: php-5.3.17, php-5.4.7 |
|
#
4a7d1b4e |
| 05-Sep-2012 |
Pierre Joye |
- fix build, declarations must be 1st in a contextgit checkout -f master
|
#
72473962 |
| 05-Sep-2012 |
Dmitry Stogov |
Fixed bug #62991 (Segfault with generator and closure)
|
#
dbc7809b |
| 29-Aug-2012 |
Nikita Popov |
Fix typos
|
#
bef79588 |
| 29-Aug-2012 |
Nikita Popov |
Fix segfault when traversing a by-ref generator twice If you try to traverse an already closed generator an exception will now be thrown. Furthermore this changes the error for
Fix segfault when traversing a by-ref generator twice If you try to traverse an already closed generator an exception will now be thrown. Furthermore this changes the error for traversing a by-val generator by-ref from an E_ERROR to an Exception.
show more ...
|
#
cc07038f |
| 29-Aug-2012 |
Nikita Popov |
Make sure that exception is thrown on rewind() after closing too
|
Revision tags: php-5.4.7RC1 |
|
#
f53225a9 |
| 25-Aug-2012 |
Nikita Popov |
Fix several issues and allow rewind only at/before first yield * Trying to resume a generator while it is already running now throws a fatal error. * Trying to use yield in fina
Fix several issues and allow rewind only at/before first yield * Trying to resume a generator while it is already running now throws a fatal error. * Trying to use yield in finally while the generator is being force-closed (by GC) throws a fatal error. * Rewinding after the first yield now throws an Exception
show more ...
|
#
4d8edda3 |
| 24-Aug-2012 |
Nikita Popov |
Run finally if generator is closed before finishing
|
#
f45a0f31 |
| 20-Aug-2012 |
Nikita Popov |
Disallow serialization and unserialization
|
#
05f10480 |
| 20-Aug-2012 |
Nikita Popov |
Drop Generator::close() method
|
Revision tags: php-5.3.16, php-5.4.6, php-5.4.6RC1 |
|
#
268740d9 |
| 26-Jul-2012 |
Nikita Popov |
Fix implementation of Iterator interface It looks like you have to implement the Iterator interface *before* assigning get_iterator. Otherwise the structure for user iterators isn't
Fix implementation of Iterator interface It looks like you have to implement the Iterator interface *before* assigning get_iterator. Otherwise the structure for user iterators isn't correctly zeroed out. Additionaly I'm setting class_entry->iterator_funcs.funcs now. Not sure if this is strictly necessary, but better safe than sorry ;)
show more ...
|
#
94b2ccae |
| 22-Jul-2012 |
Nikita Popov |
Fix throwing of exceptions within a generator If a generator threw an exception and was iterated using foreach (i.e. not manually) an infinite loop was triggered. The reason was that the
Fix throwing of exceptions within a generator If a generator threw an exception and was iterated using foreach (i.e. not manually) an infinite loop was triggered. The reason was that the exception was not properly rethrown using zend_throw_exception_internal.
show more ...
|
#
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 |
|
#
85f077ce |
| 17-Jul-2012 |
Nikita Popov |
Add support by yielding by-reference
|
Revision tags: php-5.3.15, php-5.3.15RC1, php-5.4.5RC1 |
|
#
ab75ed6b |
| 23-Jun-2012 |
Nikita Popov |
Disallow closing a generator during its execution If a generator is closed while it is running an E_WARNING is thrown and the call is ignored. Maybe a fatal error should be thrown instea
Disallow closing a generator during its execution If a generator is closed while it is running an E_WARNING is thrown and the call is ignored. Maybe a fatal error should be thrown instead?
show more ...
|
#
14766e14 |
| 23-Jun-2012 |
Nikita Popov |
Pass zend_generator directly to Zend VM Previously the zval* of the generator was passed into the VM by misusing EG(return_value_ptr_ptr). Now the zend_generator* itself is directly pass
Pass zend_generator directly to Zend VM Previously the zval* of the generator was passed into the VM by misusing EG(return_value_ptr_ptr). Now the zend_generator* itself is directly passed in. This saves us from always having to pass the zval* around everywhere.
show more ...
|
#
04e781f0 |
| 22-Jun-2012 |
Nikita Popov |
Implement get_iterator This implements the get_iterator handler for Generator objects, thus making direct foreach() iteration significantly faster.
|