Uhm, do we really need to support that?
Use convert_scalar_to_array only for arrays
Add dst parameter to convert_object_to_type macro

Avoids a ZVAL_DUP in the zval_get_* functions.

Also improve object-to-array cast a bit by initializing the array
with correct number of elements and not doing a alloc-init-free
cycle when convert_object_to_type succeeds.
Fix by-reference argument unpacking
Fix leak I introduced
Improved logarithm of base 2 and 10 of standard math functions
Changed order of types
Optimized JMPZNZ to avoid multiplication at runtime (may be it makes sense to use relative addresses everywere it'll lead to Position Independent Code)
Split IS_BOOL into IS_FALSE and IS_TRUE
JMPZ/JMPNZ/JMPZNZ optimization
Comment out cast_object for IS_NULL
Fix php-cgi -m
Don't allocate zend_stack elements individually

Instead allocate a vector of elements. Size must now be specified
on initialization rather than on push.
zend_stack_top() now returns pointer directly
Avoid superflous allocations in convert_to_string

Taken from zval_get_string.
Refactor XML (incompleted)
Make they are in the same style of Z_ISREF
Add STR_ALLOCA_* API, use in get_method and verify_arg

This avoid unnecessary allocations when using dynamic method
dispatch and class typehints.

Probably there are other places where this should be done as well,
those just stood out for my usage.
Fix SXE->string cast for __toString in inheriting class

This issue was originally hacked around in zend_make_printable_zval.
I've now moved the overridden __toString() handling into the SXE
cast_object handler, so everything invoking that handler
(zend_make_printable_zval, convert_to_string, zval_get_string,
and various other more obscure usages) see the same behavior.
Port XMLReader