| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Now that trailing positional args are disallowed,
num_additional_args will always be zero in SEND opcodes (and
FUNC_ARG fetches).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed recognition of the operator
Added opcode, still doing multiply instead of pow()
opcode now always returns int(42)
The right answer, but always a float
Yanked code from pow() implementation.
Should not handle negative long as exponent ourselves
Added test cases from pow()
Moved precedence higher than '~'
Added GMP operator overloading
Added ZEND_ASSIGN_POW (**=) operator.
Added pow() as a language construct.
Adjusted test cases for changed precedence.
Reduced pow() to shell function around ZEND_API pow_function()
Reduced test case to only contain edge cases
Added overloading test case
Moved unary minus above T_POW
Revert "Added pow() as a language construct."
Bad bad bad idea.
This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.
Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)
Rebase against master
Fixed tokenizer test case
|
|
|
|
|
|
|
|
|
| |
If multiple unpacks were used (or mixed with normal arguments)
parts of the arguments could land on different stack pages. If
this occurs the arguments will now be copied to a new stack page.
The code used to do this is copied verbatim from the PHP 5.4 branch
and only modified to reduce the amount of inlined code.
|
|
|
|
| |
RFC: https://wiki.php.net/rfc/argument_unpacking
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Yield return values now use IS_VAR rather than IS_TMP_VAR. This
fixes the issue with list() and should also be faster as it avoids
doing a zval copy.
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
Zend/zend_extensions.h
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
const_scalar_exprs
* 'const_scalar_exprs' of github.com:bwoebi/php-src:
Removed operations on constant arrays. They make no sense as constants are not allowed to be arrays. And as just properties are allowed to; no problem, we still don't need operations on any constant array.
Added a few more operators
Whitespace fix
converted several switches to ifs and made more opcache friendly
Fatal error about self referencing constants fixed
Fixed mem leaks, added tests and ternary operator
Working commit for constant scalar expressions (with constants). Tests will follow.
Conflicts:
Zend/Makefile.am
configure.in
win32/build/config.w32
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Tests will follow.
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | /
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
* PHP-5.5:
Fixed bug #65969 (Chain assignment with T_LIST failure)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* PHP-5.4:
Fixed bug #65969 (Chain assignment with T_LIST failure)
Conflicts:
NEWS
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
|
| | | | |
|
| |_|/
|/| | |
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* PHP-5.5:
Use zval* instead of zval**
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
|
| | | |
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | | |
This removes the now unnecessary ZEND_FETCH_ADD_LOCK on the
container of a property fetch of a by-reference foreach.
|
| | |
| | |
| | |
| | | |
As per RFC: https://wiki.php.net/rfc/variadics
|
| | |
| | |
| | |
| | | |
This gives me about 9% improvement on Zend/bench.php for a zts build.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* str_erealloc behaves like erealloc for normal strings, but will
use emalloc+memcpy for interned strings.
* str_estrndup behaves like estrndup for normal strings, but will
not copy interned strings.
* str_strndup behaves like zend_strndup for normal strings, but
will not copy interned strings.
* str_efree_rel behaves like efree_rel for normal strings, but
will not free interned strings.
* str_hash will return INTERNED_HASH for interned strings and
compute it using zend_hash_func for normal strings.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Just changing the error level of the message from E_STRICT to
E_DEPRECATED. This comes one version later than the timeline
mentioned in the RFC.
Oddly, there were no tests for this ‘feature’. I added a simple
one.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previous some places passed return_value_ptr only if the function
returned by reference. Now return_value_ptr is always set, even
for functions returning by-value.
This allows you to return zvals without copying their contents. For
this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST
are added:
RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */
RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */
These macros behave similarly to the non-FAST versions with
copy=1 and dtor=0, with the difference that the FAST versions
will try return the zval without copying by utilizing return_value_ptr.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | | |
* PHP-5.5:
Suppress static analyzer warnings in specialized executor
Update NEWS
|
| | |
| | |
| | |
| | |
| | | |
As things like if(0) will be removed by the compiler, no need
to see that tons of warnings with static analyzer enabled.
|
|\ \ \
| |/ / |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
--enable-dtrace) by Sixd
|
| | | |
|
|\ \ \
| |/ / |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
fails)
Missed a zval_copy_ctor there
|
|\ \ \
| |/ / |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
reference fails)
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | | |
* PHP-5.5:
backward compatibility
HASH_KEY_NON_EXISTANT fix
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
Zend/zend_vm_execute.h
|
| |\ \
| | |/
| | |
| | |
| | |
| | | |
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
|
| | |
| | |
| | |
| | | |
with a namespace).
|
| | | |
|
|\ \ \
| |/ / |
|
| |\ \
| | |/
| | |
| | |
| | | |
Conflicts:
Zend/zend_vm_def.h
|
| | |\ |
|