* origin/master:
We can't eliminate FETCH_CONSTANT opcodes for constants represented by AST.
Ensure __LINE__ is always accurate
Fix incdec of referenced properties
Fix ::jsonSerialize() failure message
Fix invalid zend_string_frees in reflection
Remove retval member in spl_dllist
DLL export several APIs needed for phpdbg
More fixes for nodelist array access - testing for null property read - no zval copying if the type is already long - memory fix for master
* origin/master: (42 commits)
Add tests verifying calls work inside echo, concatenation and array access
Updated NEWS and UPGRADING
Fix $this CV init for include/eval
Fix dynamic calls to static methods with fci->object
Fix $arr =& $arr[0]
Add UPGRADING stubs for a number of recent changes
Regenerate tokenizer data
Fix unused variable warning
Remove <% and <script language="php"> tags
zend_uint -> uint32_t
Fix nesting for *non*-compile-time-resolveable functions See a1a4ba9511 (commitcomment-7414223)
Add tests for calls to nested, *non*-compile-time-resolveable functions See a1a4ba9511 (commitcomment-7414362)
Make list of opcodes used for nesting calculation consistent with `zend_do_convert_call_user_func()` in Zend/zend_compile.c
Rewrite code to use ZEND_VM_JMP() instead of repeated ZEND_VM_INC_OPCODE() calls
QA: Simplify code to find matching ZEND_DO_FCALL_BY_NAME CG(context).nested_calls is stored inside the initializer's result.num and inside the finalizer's op2.num, by comparing these we don't need to count manually, and are thus safer from future expansion with specialized opcodes e.g.
Fix expected fatal error, now is catchable fatal
Adjust expected fatal error message Now also includes "on [TYPE]" after merge from master
Check for memory leaks when not using return value
Adjust expected fatal error message Now also includes "on [TYPE]" after merge from master
Add tests with arrays as parameters
...
* origin/master:
properly export tsrm_strtok_r()
Fixed list() behavior inconsistency (string handling is disabled for all cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, ZEND_FETCH_ADD_LOCK flag is removed).
Fix accidental edit in previous commit
Fix arginfo
DateTimeZone::getOffset() now accepts a DateTimeInterface
DateTimeZone::getOffset() now accepts a DateTimeInterface
Moved checks and error reporting related to static methods from DO_FCALL inti INTI_FCALL* opcodes that may really deal with static methods. (In some rare cases it may lead to different order of warning messages).
Fixed a bug that causes crash when environment variable is access while parsing php.ini
Fixed a bug that causes crash when environment variable is access while parsing php.ini
* origin/master:
remove the remains of dsp files handling
fix EX usage
remove misprint parentheses
remove misprint parentheses
Replaced EG(This) and EX(object) with EX(This). Internal functions now recieves zend_execute_data as the first argument.
And this one...
It should be in extern c
Remove useless condition
NEWS entry for previous commit
NEWS entry for previous commit
add IPv6 support to php-fpm
Micro optimization for the most frequency case
Add hash to EXTENSIONS file
Remove extensions which are long gone
we also have xz release tarballs since 5.5
Fix ZTS build
improved file size computation in stat()
Fixed incorrect compilation
5.5.19 now
* origin/master: (26 commits)
Micro optimization
Drop unused INIT_STRING opcode
Drop unused RAISE_ABSTRACT_ERROR opcode
CT substitute unqualified true/false/null in namespaces
Fix a couple compile warnings
fix test filename
one more test to illustrate transfer of an arbitrary data amount throug pipes
fix tests on linux
better test cleanup
Use more readable inline functions
increase the polling period to not to break existing behaviours
updated NEWS
Fixed bug #51800 proc_open on Windows hangs forever
Fixed segfault
Set an LDAP error code when failing ldap_bind due to null bytes
Fix segmentation fault in debug_backtrace()
Drop support for GMP 4.1
Make gmp_setbit and gmp_clrbit return values consistent
removed *.dsw and *.dsp files
Opcache compatibility for coalesce operator
...
* coalesce_operator:
Extended coalesce operator test case for ordering/short-circuiting
Ensure not evaluated twice
Added test
Initial coalesce operator implementation
TLS is already used in TSRM, the way exporting the tsrm cache through
a thread local variable is not portable. Additionally, the current
patch suffers from bugs which are hard to find, but prevent it to
be worky with apache. What is done here is mainly uses the idea
from the RFC patch, but
- __thread variable is removed
- offset math and declarations are removed
- extra macros and definitions are removed
What is done merely is
- use an inline function to access the tsrm cache. The function uses
the portable tsrm_tls_get macro which is cheap
- all the TSRM_* macros are set to placebo. Thus this opens the way
remove them later
Except that, the logic is old. TSRMLS_FETCH will have to be done once
per thread, then tsrm_get_ls_cache() can be used. Things seeming to be
worky are cli, cli server and apache. I also tried to enable bz2
shared and it has worked out of the box. The change is yet minimal
diffing to the current master bus is a worky start, IMHO. Though will
have to recheck the other previously done SAPIs - embed and cgi.
The offsets can be added to the tsrm_resource_type struct, then
it'll not be needed to declare them in the userspace. Even the
"done" member type can be changed to int16 or smaller, then adding
the offset as int16 will not change the struct size. As well on the
todo might be removing the hashed storage, thread_id != thread_id and
linked list logic in favour of the explicit TLS operations.
* origin/master: (31 commits)
Fixed C++ incompatibility
update the certificate used for the test, as it expired recently
Fixed immutable arrays support
Fix counting of "R:" references in serialize()
Remove dead code
Test use($this) being an error
Move list() condition into assign_znode
typo
NEWS
Fix bug #68074 Allow to use system cipher list instead of hardcoded value
Avoid double checks
the order of the blocks should be Core, then exts in alphabetical order
add missing NEWS entry for the phpdbg compilation fix
add NEWS entry for #68088
Make QM_ASSIGN, JMP_SET and CAST return IS_TMP_VAR.
Removed useless helper
Drop unused result argument
Fix ct binding for cuf/cufa functions
Fix detection of write to built-in function for references
Test use of string names with \ prefix
...
The condition in compile_foreach was using ->attr instead of ->kind
and as such never passed. It only worked because assign_znode already
supported this case by indirecting via zend_compile_assign. Now it
implements it with a direct call.
* origin/master:
Fix tests/serialize/bug64146.phpt
Remove zend_dynamic_array
Remove static allocator
Fixed typo
Fix list() destructuring to special variables
Remove php_varname_check
Avoid useless reference counting
Specialization (only IS_VAR ad IS_CV operands may be references)
Optimized unset()
Make error paths to be UNEXPECTED
Replace IS_OP?_TMP_FREE() with more clear (OP?_TYPE == IS_TMP_VAR)
* origin/master: (24 commits)
added a comment
fix the REPARSE_DATA_BUFFER struct def
simplify the condition
Fix two memory errors by interning earlier
Add smart_str_append for appending zend_strings
Rename smart_str_append to smart_str_append_smart_str
Use smart_str for exception stack traces
Use smart_str in get_function_declaration
Move smart_str implementation into Zend/
UPGRADING for Integer Semantics
Fixed bug #66242 (don't assume char is signed)
Fixed bug #67633
Fixed if/else if ordering
Use SIZEOF_ZEND_LONG instead of SIZEOF_LONG
Use zend_ polyfilled nan/finite, check finite
Updated 32-bit << test
Updated << 64-bit tests
Prevent bit shift count wrapping quirkiness on some CPUs for left shift
Cast NaN and Infinity to zero
Updated >> 64-bit tests
...
* FE_RESET_VARIABLE and FE_RESET_REFERENCE were always set
together.
* In some places the code checked FE_FETCH_BYREF instead of
FE_RESET_REFERENCE and relied on them having the same value.
* Now the FE_RESET_* flags are dropped and everything uses
FE_FETCH_BYREF
This moves handling of inheritance and interface implementation
from zend_compile.c into a separate zend_inheritance.c file, as
this is not really related to compilation.