Wrong expectation in test (The error "Non-static method A::A_ftk() should not be called statically" is reported on caller side, so backtrace shouldn't include call to A::A_ftk()).
* 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
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.
* phpng: (73 commits)
refcount in phpng has different meanings
Suppress warning "cast from pointer to integer of different size"
Fixed possible crash because of race conditions on modifying constants in shared memory
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
Fixed compilation problems
Refactored parameter passing mechanism.
--enable-fpm for the travis build
Fixed segfault while info printing
fix the last fpm NEWS entry, the other bug is related, but not the same what we fixed here
NEWS
NEWS
Fix bug #67091: make install fails to install libphp5.so on FreeBSD 10.0
adding NEWS entry for the fix for bug #65641
Updated NEWS file for recent phpdbg fixes
Fixed issue krakjoe/phpdbg#94 - List behavior is inconsistent
Fix issue krakjoe/phpdbg#97 - list now appends a newline if there is none The prompt should always ensure it is on a newline
Fixed test
...
Dmitry Stogov [Mon, 30 Jun 2014 20:19:41 +0000 (00:19 +0400)]
Merge branch 'master' into test
* master: (67 commits)
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
--enable-fpm for the travis build
fix the last fpm NEWS entry, the other bug is related, but not the same what we fixed here
NEWS
NEWS
Fix bug #67091: make install fails to install libphp5.so on FreeBSD 10.0
adding NEWS entry for the fix for bug #65641
Updated NEWS file for recent phpdbg fixes
Fixed issue krakjoe/phpdbg#94 - List behavior is inconsistent
Fix issue krakjoe/phpdbg#97 - list now appends a newline if there is none The prompt should always ensure it is on a newline
Fixed test
Inform about back command existence in help - Fixes krakjoe/phpdbg#100 No way to list the current stack/frames
Fix issue krakjoe/phpdbg#98 break if does not seem to work
Fix issue krakjoe/phpdbg#99 register function has the same behavior as run
Fix readline/libedit (Thanks to @remicollet)
Replace incorrect `E` command with `ev` in watch help
Fix typo in `finish` help
...
Ferenc Kovacs [Mon, 30 Jun 2014 16:39:31 +0000 (18:39 +0200)]
Merge branch 'PHP-5.6'
* PHP-5.6:
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
Ferenc Kovacs [Mon, 30 Jun 2014 16:38:54 +0000 (18:38 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
Dmitry Stogov [Mon, 30 Jun 2014 11:43:45 +0000 (15:43 +0400)]
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.
Dmitry Stogov [Mon, 30 Jun 2014 10:17:17 +0000 (14:17 +0400)]
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.
Ferenc Kovacs [Sun, 29 Jun 2014 23:30:36 +0000 (01:30 +0200)]
Fix bug #67091: make install fails to install libphp5.so on FreeBSD 10.0
Simplest fix is to remove the specific checks for freebsd1* as it also matches freebsd10,
and nobody should be using >=PHP 5.4 with freebsd 1.x(if it is even possible to make it
to compile there).