Dmitry Stogov
549e8c4959
Squashed commit of the following:
...
commit 03cf871f1576f08b2348c141b209894a7bf17a86
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:31 2015 +0300
Revert "Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)"
This reverts commit 5ee8413259
.
commit 285a68227ce3d380e821a24fa389aa5239bd3fe1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:26 2015 +0300
Revert "Tuned off dubugging of live ranges"
This reverts commit 404dc93d35
.
commit 93d9d11157301ee2ec99afb6f5744b126d17f637
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:17 2015 +0300
Revert "Remove loop_var_stack"
This reverts commit b3a4c05071
.
commit ede68ebbc284aec79e3f719f2c8dbf9da6907752
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:12 2015 +0300
Revert "ZEND_SEPARATE reuses temporaries"
This reverts commit 1852f538b9
.
commit 96d8995dc1f517fb01b481736273767509f76c47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:10 2015 +0300
Revert "Add assertion in liveliness computation"
This reverts commit ed14019e8c
.
commit 0649d7bfef152e6cc8e67b922534e9946c634d9c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:07 2015 +0300
Revert "Fixed invalid live-range detection"
This reverts commit 54f367ee2a
.
commit dfe8f3851f6b04595eb089323e3492115a59363e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:04 2015 +0300
Revert "Add test guaranteeing that loop vars are only freed after potential return type exceptions"
This reverts commit f5db5a558d
.
commit 52a94aad6f48a199358cc07f7e4f56bb73050504
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:01 2015 +0300
Revert "Fixed exception habdling on "return" statement."
This reverts commit 17c5315bdf
.
commit 6e90ad7331901711e89c2ceb2bcab5023e5cee60
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:58 2015 +0300
Revert "Fix too early terminated temporary range with break/cont/goto"
This reverts commit cc876c04b4
.
commit 7b766e44b1970e4031f75109c302c07ead2c05cb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:55 2015 +0300
Revert "Fixed exception catching on break/continue"
This reverts commit 8c3f701eeb
.
2015-07-10 03:31:52 +03:00
Xinchen Hui
249915f938
Add comment to explaining the new check
2015-07-08 17:44:54 +08:00
Xinchen Hui
c6037bd3af
Fixed bug #70012 (Exception lost with nested finally block)
2015-07-08 17:15:09 +08:00
Dmitry Stogov
5ee8413259
Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)
...
Squashed commit of the following:
commit 38e22106d4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 15:12:19 2015 +0300
Added NEWS entry
commit 0a355935bf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 15:06:32 2015 +0300
Inline function, to eliminate repeatable checks
commit d937584f3a
Merge: 0341626
32677f5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 14:35:49 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Fixed bug #70006 (cli - function with default arg = STDOUT crash output).
Fix x86 build
Fixed use after free on closure_call_leak_with_exception.phpt
Fixed test
commit 0341626ea9
Merge: 74869fa
dec35de
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 12:00:53 2015 +0300
Merge branch 'temporary_cleaning' of https://github.com/laruence/php-src into temporary_cleaning
* 'temporary_cleaning' of https://github.com/laruence/php-src :
Fixed checkpoint get
Fixed crash of invalid pointer derefer
cleanup
commit 74869fa673
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 11:45:34 2015 +0300
Fixed wrong GOTO resolution
commit dec35ded32
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 15:58:49 2015 +0800
Fixed checkpoint get
commit b0f419540a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:47:11 2015 +0300
Fixed crash of invalid pointer derefer (laruence)
commit 7a428d98ca
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:35:47 2015 +0300
Fixed identation
commit 9c3a4dce9c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:33:52 2015 +0300
Fixed invalid size
commit 653abc670b
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 11:29:14 2015 +0800
Fixed crash of invalid pointer derefer
commit e04500ceda
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 11:28:26 2015 +0800
cleanup
commit 34183e1687
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:49:46 2015 +0300
op_array->T_liveliness compression
commit 2f6ad84579
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:44:44 2015 +0300
White spaces
commit be83f115a3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:42:26 2015 +0300
Identation
commit 1f5084b990
Merge: 91b620d
1adf3df
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:41:54 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Throw TypeError for invalid callback
Fix crash when exception occurs during nested rope
Fix crash when exception is thrown during ROPE_END
Small cleanup in ternary compilation
move the define to the right place
fix ext/ldap build
Rectify information about invalid shift warning being now ArithmeticError
commit 91b620d684
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:32:04 2015 +0300
Replace GOTO by FREE/FE_FREE and JMP at compile time
commit 7052e56979
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 02:25:08 2015 +0300
Use zend_regenerate_var_liveliness_info() to regenerate information after pass two.
commit ae72b0dc67
Merge: a81c4bb
a919fe8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 21:02:34 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Do not display EXT_TYPE_UNUSED in phpdbg opcodes
Run debug build with opcache on travis
commit a81c4bb8c6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 20:59:34 2015 +0300
Improved algorithm. It's actually the same algorithm with second loop removed and simpler temporary data structures. The only difference may be in "re-defined" vatriable handling. Now live-range in that case started from the seconnd definition (this must be more safe).
commit 9a16810f7a
Merge: bbfbe47
001ecd3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 17:57:45 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Simplify TMP var number decoding (without HashTable)
commit bbfbe470c8
Merge: 0bda4ab
436b01e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 17:02:01 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Avoid dangerous optimization
Fixed JMPZNZ instruction printing
Attempt at falling back on ldap_find_control for Mac OS
commit 0bda4abea7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 16:05:33 2015 +0300
Fixed live-range construction for OP_DATA opcode
Added comments about algorithm assumtions
commit 521ad9df98
Merge: 4398dab
a09dcb0
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 14:54:15 2015 +0200
Merge branch 'master' of https://github.com/php/php-src into temporary_cleaning
commit 4398dab82f
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 13:51:27 2015 +0200
Add a few phpt tests related to temporary cleaning
commit 739656f83f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 14:28:49 2015 +0300
Fixed Zend/tests/foreach_004.phpt failure (FE_FETCH shouldn't be included into TMP vatriablr live range)
commit 3df462a2bc
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 13:41:02 2015 +0300
Improve data layout (reduce the op_array structure size on 64-bit systems)
commit 883b73c56e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 13:28:45 2015 +0300
Removed op_array->brk_cont_array
commit ae5e58b598
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 04:22:58 2015 +0200
Fix bug with brk_cont variable free / free loop vars via temporary liveliness info
commit b4223ca627
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 04:07:07 2015 +0200
Fix bugs / cleanup fixes
commit ea33189d22
Author: Xinchen Hui <laruence@gmail.com>
Date: Sun Jul 5 20:58:38 2015 +0800
Removed useless TsTop
commit 1dbb007e4a
Merge: 550bbf8
3a8af24
Author: Xinchen Hui <laruence@gmail.com>
Date: Sat Jul 4 15:06:44 2015 +0800
Merge branch 'temporary_cleaning' of https://github.com/dstogov/php-src into temporary_cleaning
commit 3a8af24529
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 16:15:36 2015 +0300
More exceptions from regular liveliness analyses (with explanation in comments).
Mark old "unexplained" exceptions with ???.
commit ba721efa2c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 14:16:09 2015 +0300
Print list of live temp variables (at least for internal debugging)
commit 8d1f88fe91
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 13:31:56 2015 +0300
Use op_array->T_liveliness to free incomplete ropes and restore error_reporting level on exception
commit 80c1d0d779
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 11:05:39 2015 +0300
Don't keep empty T_liveliness
commit 501ae8aaac
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 2 22:31:48 2015 +0300
Reverted changes to Zend/zend_arena.h.
Reuse CG(arena) instead of creating a new one.
commit a4fce36907
Merge: 6ff7246
fd0fcce
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 2 22:01:42 2015 +0300
Merge branch 'temporary_cleaning' of github.com:bwoebi/php-src into temporary_cleaning
* 'temporary_cleaning' of github.com:bwoebi/php-src:
Fix remaining issues with compacted temporaries
Fix regression from last commit (+1 ?!)
Fix off-by-one (opcache may remove last ZEND_RETURN)
Speed algorithm up, more fail safety when reusing temporaries
Dumb bug in opcode.c (forgot to update Ts[i])
Fix opcache support
Exempt ROPE temporaries from freeing
Hmm, we need temporary info for all the opcodes
Add opcache support for cleaning in optimization step (Opcache seems to have a few unrelated issues which blow up together with that patch)
Add proper temporary cleaning upon frame abortion
Fix arena on small sizes (size < sizeof(zend_arena))
commit fd0fcce811
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Thu Jul 2 20:00:33 2015 +0200
Fix remaining issues with compacted temporaries
commit 427dc58bbb
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 22:49:12 2015 +0200
Fix regression from last commit (+1 ?!)
commit 1adcf56a6e
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 22:17:07 2015 +0200
Fix off-by-one (opcache may remove last ZEND_RETURN)
commit 25b231b784
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 20:59:24 2015 +0200
Speed algorithm up, more fail safety when reusing temporaries
commit 22d9d05350
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 16:48:46 2015 +0200
Dumb bug in opcode.c (forgot to update Ts[i])
commit 6538269bfa
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 13:05:52 2015 +0200
Fix opcache support
commit 333a7c4a88
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Sat Jun 27 22:40:21 2015 +0200
Exempt ROPE temporaries from freeing
commit 02585f7708
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 16:20:55 2015 +0200
Hmm, we need temporary info for all the opcodes
commit cbcaedbd78
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 01:04:09 2015 +0200
Add opcache support for cleaning in optimization step
(Opcache seems to have a few unrelated issues which blow up together with that patch)
commit fef649f406
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 01:02:27 2015 +0200
Add proper temporary cleaning upon frame abortion
commit 1cec2e7271
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Thu Jun 25 23:33:21 2015 +0200
Fix arena on small sizes (size < sizeof(zend_arena))
2015-07-07 15:41:12 +03:00
Dmitry Stogov
436b01e379
Avoid dangerous optimization
2015-07-06 16:52:38 +03:00
Dmitry Stogov
fa1abb5677
Fixed memory leak because of incorrect 'if ();' optimization
2015-07-02 02:00:34 +03:00
Dmitry Stogov
a0b55e6a37
Cleanup (updated comments about optimization of comparison with IS_NULL)
2015-07-01 16:31:20 +03:00
Dmitry Stogov
e2baf737ae
Cleanup (we don't use is_ref=1/refcount=2 trick to trigger COW in PHP-7)
2015-07-01 16:15:45 +03:00
Dmitry Stogov
4a2e40bb86
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 04:05:24 +03:00
Dmitry Stogov
dc588997e2
On Windows PHP may be restarted with different set of DSO extensions without SHM reset.
...
This may make optimisation for entities from DSO extensions inconsistent.
2015-06-29 18:01:01 +03:00
Dmitry Stogov
ee1e67fae6
On Windows PHP may be restarted with different set of DSO extensions without SHM reset.
...
This may make optimisation for entities from DSO extensions inconsistent.
2015-06-29 17:45:56 +03:00
Dmitry Stogov
625dba022c
Don't evaluate invalid constant expressions.
2015-06-29 11:35:12 +03:00
Bob Weinand
4a4529adb0
Fix rope memory leaks upon exception
2015-06-28 15:42:15 +02:00
Xinchen Hui
e011e6fdf4
Add a comment
2015-06-17 17:33:55 +08:00
Dmitry Stogov
a524a375d9
Improved class type hints checks, by caching resolved class entries in run-time cache.
2015-06-17 12:07:43 +03:00
Nikita Popov
8542befa7b
Remove ZEND_BRK/ZEND_CONT from VM
...
These are no longer used at run-time now, only temporarily during
compilation.
2015-05-23 10:51:33 +02:00
Nikita Popov
9325ada725
Embed break/continue depth into opline
...
Previously a separate lval literal was used - this is probably a
leftover from the time where the break level could still be
specified dynamically.
2015-05-23 10:51:33 +02:00
Dmitry Stogov
f186d4b8b1
Fixed build with DEBUG_COMPACT_LITERALS=1
2015-05-21 17:57:06 +03:00
Dmitry Stogov
d72a94468e
Merged FE_FETCH_R[W] with the following ASSIGN[_REF] when assigne to CV.
2015-05-13 12:55:42 +03:00
Dmitry Stogov
7e5aa6b2ea
Removed deprecated conditions
2015-05-13 10:09:06 +03:00
Dmitry Stogov
e6976e9ba2
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF)
2015-05-07 12:17:55 +03:00
Dmitry Stogov
329513c3a7
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF)
Conflicts:
NEWS
2015-05-07 12:16:40 +03:00
Dmitry Stogov
8026001943
Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF)
2015-05-07 12:14:14 +03:00
Dmitry Stogov
94245bc14c
Refactored using specialized opcodes
2015-04-27 12:24:39 +03:00
Dmitry Stogov
ca76a86fe6
Removed deprecated code
2015-04-21 11:48:43 +03:00
Xinchen Hui
5c31c8c6e5
Fixed is_callable/function_exists with disable_functions
2015-03-28 17:07:11 +08:00
Xinchen Hui
e60b380c55
Merge branch 'bug69315' of https://github.com/laruence/php-src
2015-03-28 14:10:41 +08:00
Xinchen Hui
84d9426730
Fixed bug #69315
2015-03-27 17:50:36 +08:00
Xinchen Hui
6aaee5fc14
Merge branch 'PHP-5.6'
...
Conflicts:
ext/opcache/Optimizer/pass1_5.c
2015-03-25 23:35:56 +08:00
Xinchen Hui
d380d1cb1b
Fixed Bug #69297 (function_exists strange behavior with OPCache on disabled function)
...
is_callable returns true for disable_functions, but function_exists
return false for it.
2015-03-25 23:34:02 +08:00
Xinchen Hui
e46e9a3d22
Fixed Bug #69297 (function_exists strange behavior with OPCache on disabled function)
...
is_callable returns true for disable_functions, but function_exists
return false for it.
2015-03-25 23:29:18 +08:00
Dmitry Stogov
e37e9d2986
Reverted part committed by mistake
2015-03-24 22:56:07 +03:00
Dmitry Stogov
23c33b1483
Optimized strings concatenation.
...
ZEND_ADD_STRING/VAR/CHAR are replaced with ZEND_ROPE_INTI, ZEND_ROPE_ADD, ZEND_ROPE_END.
Instead of reallocation and copying string on each ZEND_ADD_STRING/VAR/CAHR, collect all the strings and then allocate and construct the resulting string once.
2015-03-24 22:47:21 +03:00
Dmitry Stogov
0a6bb2dfd4
Fixed optimization patterns
2015-03-20 05:24:04 +03:00
Dmitry Stogov
d146d15003
Optimize zend_string_realloc() add more specialized versions zend_string_extend() and zend_string_truncate()
2015-03-20 02:02:42 +03:00
Dmitry Stogov
db10b72523
Use fastcall calling convention for most critical ZE subsystems.
2015-03-13 21:10:09 +03:00
Dmitry Stogov
6289f7e52f
Executor cleanup: fix GOTO and SWITCH VMs, remove aility to build additional PHP-5.0 compatible VM, hide executor implementation details.
2015-03-12 20:39:04 +03:00
Xinchen Hui
ec00a4de4e
Merge branch 'PHP-5.6'
2015-03-04 14:49:03 +08:00
Xinchen Hui
a29b64fc10
Fixed bug #69159 (Opcache causes problem when passing a variable variable to a function)
2015-03-04 14:48:41 +08:00
Dmitry Stogov
9a20323e19
Improved assert() according to expectations RFC.
...
See https://wiki.php.net/rfc/expectations
Squashed commit of the following:
commit 3f3651a787
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Mar 2 11:56:33 2015 +0300
opcode 137 is used for ZEND_OP_DATA and con't be reused for ZEND_ASSERT_CHECK
commit ca8ecabf2a
Merge: 24328ac
9dac923
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Mar 2 10:49:23 2015 +0300
Merge branch 'master' into assert
* master:
Update NEWS
Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize)
windows only test
Align entries format
Align entries format for 5.6.7
Align entries format for 5.5.23
Bump header year
Fixed bug #69144 (strtr not replacing with partly matching replace pairs)
Fixed test?
Revert mktime()/gmmktime()'s arginfo
Update NEWS
Fixed bug #69141 Missing arguments in reflection info for some builtin functions
Add NEWS entry
Remove useless date warning
Fix ARG_INFO for levenshtein
Fix ARG_INFO for levenshtein
fix dir separator in tests
Update NEWS
Fixed bug #69085 (SoapClient's __call() type confusion through unserialize()).
commit 24328ac03f
Merge: 021fd94
1cdee9a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Feb 27 15:57:13 2015 +0300
Merge branch 'master' into assert
* master:
Fixed C++ support
Fixed bug #69115 crash in mail
Reorder
Update NEWs
Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build)
Update News
Fixed bug #69125 (Array numeric string as key)
fix bug#68942's patch
Fixed ability to build unspecialized executor
Fixed bug #69124 (method name could not be used when by ref)
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
commit 021fd94ed1
Merge: 49963eb
ace1f82
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Feb 26 11:26:03 2015 +0300
Merge branch 'master' into assert
* master: (59 commits)
Improved ASSIGN_DIM handler
Don't inline slow path
Revert a part committted by mistake
Fixed compilation warnings
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
better name
Improve fix for #69038
Update NEWs
Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage)
Added specialized versions of DO_FCALL handler: DO_ICALL - for internal functions DO_UCALL - for user functions DO_FCALL_BY_NAME - plain, most probably user, funcstions (not methods)
Use cache_slot offsets instead of indexes (simplify run-time instructions)
Split INIT_FCALL_BY_NAME inti INIT_FCALL_BY_NAME(CONST+STRING) and INIT_DYNAMIC_CALL(CONST-STRING|TMPVAR|CV)
Support list($a, $b) = $a
Avoid unnecassary check
Make zend_array_destroy() to free the corresponding zend_array
Eliminate check on the fast path
Make current() and key() receive argument by value.
Use Firebird default home folder, replace Interbase with Firebird
Updated NEWS
updated NEWS
...
Conflicts:
Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.c
Zend/zend_vm_opcodes.h
commit 49963ebf9d
Merge: 07b1f92
6b77959
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Feb 19 11:13:08 2015 +0300
Merge branch 'master' into assert
* master:
Implemented AST pretty-printer
update NEWS to match the actual stuff in 5.6.6
update NEWS to match the actual stuff in 5.5.22
update NEWS(add missing entry for the enchant fix, and reorder the entries a bit)
fix typo in bug#
update NEWS
fix email format
update NEWS
update 5.6.6 release date in NEWS
Fix bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI)
BFN
fix test
fix test
fix test
Fixed bug #65593 (Segfault when calling ob_start from output buffering callback)
Updated NEWS
add CVE
5.4.39 next
Fix associativity to match Perl
Blast off to space.
Conflicts:
Zend/zend_ast.c
commit 07b1f92ed6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 23:06:32 2015 +0300
fixed pretty-printer (support for "elseif")
commit 5a976c8d85
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 19:50:08 2015 +0300
Fixed vaeious ptetty-printer issues
commit 69491e8e8e
Merge: 8473157
3ddc246
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 10:18:32 2015 +0300
Merge branch 'master' into assert
* master:
Set PHP_JSON_VERSION to 1.4.0
Remove unnecessary resource checks in openssl ext
JSON is now maintained
commit 8473157fbb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 10:17:26 2015 +0300
Fixed typo and white spaces
commit 96de5ffc8d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Feb 18 00:28:39 2015 +0300
Fixed assert() in namesapaces
commit 5eba069c28
Merge: 4a2d9c0
d428bf2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Feb 17 22:45:55 2015 +0300
Merge branch 'master' into assert
* master: (25 commits)
improve debugability in TS debug builds
More UPGRADING, in particular on foreach
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves) for master
Replace var is introduced
abstain from using xmlCleanupParser
fix TS build
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
update news
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
Port for for bug #68552
Fix bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone)
Update NEWS
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves)
- BFN
Don't read the local php.ini when Generating Phar When building phar shared, you can end up loading a previous phar.so that isn't compatible with the php cli being used to generate Phar here.
- Fixed bug #67827 (broken detection of system crypt sha256/sha512 support)
Delete json outdated package.xml
made ZEND_TSRMLS_CACHE_* macros look like function calls
- Fix merge
- Fixed bug #67427 (SoapServer cannot handle large messages) patch by: brandt at docoloc dot de
...
commit 4a2d9c0953
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Feb 17 22:45:10 2015 +0300
Implemented AST pretty-printer to capture expression passed to assert()
commit 7a059b66d5
Merge: 9973df7
3892eba
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Feb 16 18:42:28 2015 +0300
Merge branch 'expect' of github.com:krakjoe/php-src into assert
* 'expect' of github.com:krakjoe/php-src:
import expect
Conflicts:
Zend/zend_compile.c
Zend/zend_execute_API.c
Zend/zend_globals.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.c
Zend/zend_vm_opcodes.h
ext/opcache/Optimizer/block_pass.c
ext/opcache/Optimizer/pass1_5.c
ext/standard/assert.c
ext/standard/tests/assert/assert_error3.phpt
commit 3892eba2bf
Author: krakjoe <joe.watkins@live.co.uk>
Date: Sun Feb 2 12:49:35 2014 +0000
import expect
2015-03-02 12:25:40 +03:00
Xinchen Hui
a8927cd647
Merge branch 'PHP-5.6'
2015-02-27 11:43:49 +08:00
Xinchen Hui
cfaf7c3b5f
Merge branch 'PHP-5.5' into PHP-5.6
2015-02-27 11:42:57 +08:00
Xinchen Hui
3e82816ba1
Fixed bug #69125 (Array numeric string as key)
2015-02-27 11:42:36 +08:00
Xinchen Hui
34d397e267
better name
2015-02-25 20:49:07 +08:00
Xinchen Hui
60f18026eb
Merge branch 'PHP-5.6'
...
Conflicts:
ext/opcache/Optimizer/zend_optimizer.c
2015-02-25 20:16:15 +08:00
Xinchen Hui
d3615b5fb1
Merge branch 'PHP-5.5' into PHP-5.6
...
Conflicts:
ext/opcache/tests/bug69038.phpt
2015-02-25 20:13:47 +08:00
Xinchen Hui
d508ff9640
Improve fix for #69038
2015-02-25 20:07:02 +08:00
Dmitry Stogov
c2c78dc963
Added specialized versions of DO_FCALL handler:
...
DO_ICALL - for internal functions
DO_UCALL - for user functions
DO_FCALL_BY_NAME - plain, most probably user, funcstions (not methods)
2015-02-25 10:37:21 +03:00
Dmitry Stogov
5f278e4d3a
Use cache_slot offsets instead of indexes (simplify run-time instructions)
2015-02-25 01:52:35 +03:00
Dmitry Stogov
dcb96c2e03
Split INIT_FCALL_BY_NAME inti INIT_FCALL_BY_NAME(CONST+STRING) and INIT_DYNAMIC_CALL(CONST-STRING|TMPVAR|CV)
2015-02-24 22:29:47 +03:00
Xinchen Hui
7299d43536
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves) for master
2015-02-17 22:05:57 +08:00
Xinchen Hui
e22759b1e5
Replace var is introduced
2015-02-17 21:16:37 +08:00
Xinchen Hui
1c0fa36c61
Merge branch 'PHP-5.5' into PHP-5.6
2015-02-17 11:36:15 +08:00
Xinchen Hui
66d3095993
Fixed bug #69038 (switch(SOMECONSTANT) misbehaves)
2015-02-17 11:34:57 +08:00
Dmitry Stogov
97fe15db43
Fix "forech" statemt behaviour according to https://wiki.php.net/rfc/php7_foreach
...
Squashed commit of the following:
commit 1e41295097
Author: Dmitry Stogov <dmitry@zend.com>
Date: Sat Jan 31 07:28:58 2015 +0300
Generalize HashTableIterator API to allows its usage without involvement of HashTable.nInternalPonter
commit 5406f21b11
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 18:08:43 2015 +0300
Reduced alghorithms complexity
commit b37f1d58d2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 18:08:30 2015 +0300
Fixed test name
commit fb2d079645
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 18:08:05 2015 +0300
API cleanup
commit 08302c0d6d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 14:20:46 2015 +0300
Make array_splice() to preserve foreach hash position
commit cc4b7be41e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 12:24:31 2015 +0300
Make internal function, operation on array passed by reference, to preserve foreach hash position
commit 5aa9712b0a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 09:49:35 2015 +0300
Implement consistent behavior for foreach by value over plain object
commit 4c5b385ff5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jan 30 07:56:37 2015 +0300
More careful iterators update.
commit 721fc9e80d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jan 29 21:43:28 2015 +0300
Added new test
commit 15a23b1218
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jan 29 21:05:02 2015 +0300
Reimplement iteration magic with HashTableIterators (see https://wiki.php.net/rfc/php7_foreach#implementation_details )
commit 10a3260b1f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jan 29 21:04:44 2015 +0300
New test
commit eef80c5837
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jan 28 16:52:21 2015 +0300
Fixed foreach by reference iteration over constant array
commit 61e7391873
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jan 28 14:59:54 2015 +0300
Fixed temporary variable re-allocation pass
commit 92e90c09f0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jan 28 12:44:57 2015 +0300
Fixed operand destruction in case of exceptions in iterator
commit dd2a36a207
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jan 28 10:02:34 2015 +0300
Use GET_OP1_ZVAL_PTR_DEREF() (IS_TMP_VAR and IS_CONST can't be IS_REFERENCE)
commit 4638f7b914
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jan 28 07:43:28 2015 +0300
Change "foreach" statement behavior (this is just a PoC yet)
- "foreach by value" don't relay on internal array/object pointer and doesnt perform array duplication. It just locks it incrementing reference counter. If the original array is modified by some code, the copy on write is performed and "foreach" still work with the old copy.
- it makes no difference if array given to "foreach by value" is reference itself
- "foreach by reference" still use internal array/object pointer and should work similar to PHP-5. (This id not completely implemented)
2015-02-12 13:57:12 +03:00
Xinchen Hui
a1d9ceac7a
Fixed annoying warnings
2015-01-29 11:59:37 +08:00
Anatol Belski
d0e75bdc59
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #68827 Double free with disabled ZMM
Fixed segfault while running with moodle
2015-01-22 10:00:10 +01:00
Xinchen Hui
201f660ae1
Merge branch 'PHP-5.6'
2015-01-22 16:39:22 +08:00
Xinchen Hui
d0928b7f97
Merge branch 'PHP-5.5' into PHP-5.6
2015-01-22 16:39:03 +08:00
Xinchen Hui
251745c012
Fixed segfault while running with moodle
2015-01-22 16:38:34 +08:00
Dmitry Stogov
22ac15e6c9
Improve optimization of CONCAT/ADD_STRING/ADD_CJAR sequences
2015-01-19 17:01:30 +03:00
Xinchen Hui
fc33f52d8c
bump year
2015-01-15 23:27:30 +08:00
Xinchen Hui
0579e8278d
bump year
2015-01-15 23:26:37 +08:00
Xinchen Hui
73c1be2653
Bump year
2015-01-15 23:26:03 +08:00
Stanislav Malyshev
b7a7b1a624
trailing whitespace removal
2015-01-10 15:07:38 -08:00
Xinchen Hui
aa5b3b0e4a
Merge branch 'PHP-5.6'
2015-01-09 11:54:01 +08:00
Xinchen Hui
0547edb5c2
Fixed bug (try block removed while combined with xdebug)
2015-01-09 11:53:47 +08:00
Dmitry Stogov
814df43fb9
Reimplemented used stack size recalculation (replaced 3d4babdc2b
)
2014-12-26 12:42:38 +03:00
Xinchen Hui
3d4babdc2b
Adjust tempoary variable used in caller's side
2014-12-25 14:57:58 +08:00
Xinchen Hui
e0ca75a454
No need to do this check for master, ZEND_COMPILE_NO_BUILTIN_STRLEN already cover it
2014-12-24 20:42:17 +08:00
Dmitry Stogov
c42ac09518
Added new API function 'zend_string* zend_string_tolower(zend_string*)'.
...
It simplifies code and avoids unnecessary allocation and copying if string is already in lower case.
2014-12-24 15:04:51 +03:00
Xinchen Hui
d4f89fbda4
Merge branch 'PHP-5.6'
...
Conflicts:
ext/opcache/Optimizer/pass1_5.c
2014-12-24 18:30:06 +08:00
Xinchen Hui
bba4a8aad5
Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache)
2014-12-24 17:55:58 +08:00
Xinchen Hui
b5b617674e
Micro optimaztion (yeah, I know compiler supposed to do that)
2014-12-22 00:10:46 -05:00
Nikita Popov
c94f62d0d9
Merge branch 'PHP-5.6'
...
Conflicts:
ext/opcache/Optimizer/pass2.c
2014-12-19 21:51:05 +01:00
Nikita Popov
87ccf50bad
Merge branch 'PHP-5.5' into PHP-5.6
2014-12-19 21:46:38 +01:00
Nikita Popov
aa394e70ff
Fix bug #67111
...
Loop variables need to be freed for both "break" and "continue".
I'm adding the test to Zend/ because it's good to have a test for
this even without opcache.
2014-12-19 21:42:42 +01:00
Nikita Popov
0f815642e0
Drop ZEND_PRINT opcode in favor of ZEND_ECHO
...
The return value long(1) is an IS_CONST operand now.
2014-12-18 14:39:40 +01:00
Anatol Belski
e112f6a04e
second shot on removing TSRMLS_*
2014-12-14 14:07:59 +01:00
Anatol Belski
bdeb220f48
first shot remove TSRMLS_* things
2014-12-13 23:06:14 +01:00
Dmitry Stogov
14e29f5146
Reduced size of zend_op on 64-bit systems.
...
the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces the size of each opcode from 48 to 32 bytes (saves 16 bytes for each opcode, and applications use thousands of opoceds). This reduced the number of CPU cache misses by 12% and improved performance of real-life apps by 1-2%.
The patch affects how constants and jump targets are represented in VM during execution. Previously they were implemented as absolute 64-bit pointers. Now they are relative 32-bit offsets.
In run-time constant now should be accessed as:
RT_CONSTANT(op_array, opine->op1) instead of opline->op1.zv
EX_CONSTANT(opline->op1) instead of opline->op1.zv
Jump targets:
OP_JMP_ADDR(opline, opline->op2) instead of opline->op2.jmp_addr
The patch doesn't change zend_op representation for 32-bit systems. They still use absolute addresses. The compile-time representation is also kept the same.
2014-12-12 10:19:41 +03:00
Dmitry Stogov
9ea35a37b9
Make ZEND_INIT_FCALL keep predcalculted size of necessary stack space in opline->op1.num to avoid its recalculation on each execution.
2014-12-12 09:01:42 +03:00
Dmitry Stogov
dcfe58773e
Rename EX_VAR_2() into ZEND_CALL_VAR() and EX_VAR_NUM_2() into ZEND_CALL_VAR_NUM().
2014-11-28 11:11:33 +03:00
Dmitry Stogov
303d73ecd2
Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore original EG(error_reporting) if exception occured inside a "silence" region.
2014-11-26 22:44:58 +03:00
Dmitry Stogov
e20a727430
SEND_VAR_NO_REF optimization
2014-11-18 14:37:36 +03:00
Dmitry Stogov
10107db61e
Use DECLARE_CONST instruction instead of call to internal define() function when possible
2014-10-30 16:42:39 -07:00
Dmitry Stogov
1551db8faa
Added constant expression evaluation for "dirname(__FILE__)".
...
Improved constant expression evaluation for function calls
2014-10-30 15:15:51 -07:00
Dmitry Stogov
4fd435abab
Embed FETCH_CLASS <string> into the following NEW
2014-10-23 11:52:34 +04:00
Dmitry Stogov
534d854fb2
Embed FETCH_CLASS <string> into the following INSTANCEOF
2014-10-22 17:23:43 +04:00
Dmitry Stogov
ab539e177e
Removed old irrelevant comment
2014-10-20 13:52:28 +04:00
Dmitry Stogov
702a2dfb3e
Merge branch 'PHP-5.6'
...
* PHP-5.6:
We can't eliminate FETCH_CONSTANT opcodes for constants represented by AST.
Conflicts:
ext/opcache/Optimizer/pass1_5.c
2014-10-13 14:10:44 +04:00
Dmitry Stogov
7acba332fe
We can't eliminate FETCH_CONSTANT opcodes for constants represented by AST.
2014-10-13 14:07:37 +04:00
Dmitry Stogov
7c7b9184b1
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).
2014-10-05 13:02:58 +04:00
Nikita Popov
67a11b61cd
Drop unused INIT_STRING opcode
...
INIT_STRING has been implemented as an UNUSED op1 to ADD_* for
some time now.
2014-09-29 22:59:57 +02:00
Nikita Popov
5bd34be604
Opcache compatibility for coalesce operator
2014-09-28 12:31:52 +02:00
Dmitry Stogov
bd76544e15
Fixed optimizer bug
2014-09-26 01:37:33 +04:00
Dmitry Stogov
58a41cf795
Make QM_ASSIGN, JMP_SET and CAST return IS_TMP_VAR.
2014-09-24 01:57:40 +04:00
Dmitry Stogov
06103d65b1
Use zval_ptr_dtor_nogc() to free IS_TMP_VAR operands.
...
Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).
2014-09-23 17:21:29 +04:00
Dmitry Stogov
d244d3bbf1
Fixed typo
2014-09-23 01:04:47 +04:00
Dmitry Stogov
3bc8a958c5
Fixed useless or duplicated IS_INTERNED() checks
2014-09-19 15:41:01 +04:00
Dmitry Stogov
551ee4165b
Use runtime-cache to avoid hash lookups in BIND_GLOBAL instruction
2014-09-17 00:52:45 +04:00
Dmitry Stogov
82096dc151
Removed ZEND_QM_ASSIGN_VAR and ZEND_JMP_SET_VAR opcodes (in PHPNG they did exacly the same as ZEND_QM_ASSIGN and ZEND_JMP_SET)
2014-09-11 12:29:54 +04:00
Dmitry Stogov
5c897aa7da
Preallocate hash tables of required size
2014-09-03 18:21:36 +04:00
Dmitry Stogov
3447d465af
Use better hash functions
2014-08-28 17:47:40 +04:00
Dmitry Stogov
234af84c04
Refactored optimizer (compile different opimizer passes separately, instead of including *.c file)
2014-08-28 17:23:12 +04:00
Dmitry Stogov
ee552b628c
Reorder fields for better nenory consumtion and data locality on 64-bit systems
2014-08-27 22:45:27 +04:00
Dmitry Stogov
614bc31635
Fixed incorrect ZEND_INIT_FCALL_BY_NAME -> ZEND_INIT_FCALL conversion
2014-08-27 01:39:39 +04:00
Dmitry Stogov
055b632e7d
Fixed return operand type (Use IS_TMP_VAR instead of IS_VAR in the same way as it was before AST patch)
2014-08-26 14:22:03 +04:00
Nikita Popov
59848e3fbb
Remove ZEND_ACC_INTERACTIVE and CG(interactive)
...
As far as I can discern these are leftovers of the interactive
shell implementation that was used before PHP 5.4. Now the readline
ext makes use of normal eval calls for this.
So, dropping these until there is evidence to the contrary, as they
currently wouldn't work anyway.
2014-08-25 23:46:43 +02:00
Nikita Popov
899a1ed59a
Merge branch 'ast'
...
Conflicts:
Zend/zend_compile.c
2014-08-25 22:04:33 +02:00
Nikita Popov
6db293d5e0
Merge remote-tracking branch 'php-src/master' into ast
...
Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_globals.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_types.h
2014-08-25 21:52:18 +02:00
Anatol Belski
af59e92b24
master renames phase 7
2014-08-25 21:51:49 +02:00
Anatol Belski
6f9f0bf205
master renames phase 2
2014-08-25 19:28:33 +02:00
Anatol Belski
c3e3c98ec6
master renames phase 1
2014-08-25 19:24:55 +02:00
Anatol Belski
476bdbf85b
ported opcache
2014-08-20 00:23:37 +02:00
Anatol Belski
63d3f0b844
basic macro replacements, all at once
2014-08-19 08:07:31 +02:00
Nikita Popov
904a83a137
Merge remote-tracking branch 'php-src/master' into ast
...
Conflicts:
ext/opcache/Optimizer/optimize_func_calls.c
2014-08-16 22:31:13 +02:00
Nikita Popov
71675a4bf8
Merge remote-tracking branch 'php-src/phpng' into ast
...
Conflicts:
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_language_parser.y
Incomplete merge!
2014-08-16 21:55:08 +02:00
Nikita Popov
f72d6f97ec
ZEND_INIT_FCALL_BY_NAME can have non-string literal
2014-08-15 22:55:15 +02:00
Nikita Popov
99878ced15
ZEND_STRLEN and ZEND_DEFINED have IS_VAR results for now
...
This avoids issues with calls being expected to have an IS_VAR
result
2014-08-15 22:07:46 +02:00
Xinchen Hui
101c055396
Add copyright header
2014-08-15 16:47:54 +08:00
Xinchen Hui
e2522b4f1d
Remove old version PHP supports
2014-08-15 16:40:07 +08:00
krakjoe
dc70139d85
update zend_make_printable_zval to take TSRM context
2014-08-11 06:09:46 +01:00
Dmitry Stogov
ce1af1e47b
Fixed bug #67725 (now we create immutable arrays only in SHM)
2014-08-05 15:38:43 +04:00
Dmitry Stogov
af7cb16907
Implemented builtin instruction for strlen()
2014-07-14 15:43:11 +04:00
Dmitry Stogov
6c8db864e0
Implemented builtin instruction for strlen()
2014-07-11 18:52:27 +04:00
Dmitry Stogov
de306e7088
Implement call_user_func() and call_user_func_array() using special opcodes.
...
In some rare cases it leads to insignificant changes in error messages.
2014-07-11 00:32:18 +04:00
Dmitry Stogov
9d6e45a0ee
Changed zend_make_printable_zval() to return "use_copy" instead of additional reference argument.
...
Improved branch prediction.
2014-07-09 16:05:55 +04:00
Dmitry Stogov
b36aaea6ed
ZEND_SEND_VAR and ZEND_SEND_VAL specialization
2014-07-08 02:13:53 +04:00
Dmitry Stogov
0a77dcd4b9
Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something.
2014-07-03 01:02:25 +04:00
Dmitry Stogov
4b09dd69e6
Removed EG(active_op_array) and use corresponding value from EG(current_execute_data)
2014-07-02 22:03:21 +04:00
Dmitry Stogov
43477bc7a2
Refactoring: use call_frames instead of call_slots
2014-06-24 02:17:16 +04:00
Dmitry Stogov
87b667221e
Code cleanup
2014-06-20 19:40:03 +04:00
Dmitry Stogov
a4f38192ec
Use arena allocator for optimizer temporary data structures
2014-06-18 17:09:37 +04:00
Dmitry Stogov
14e6ee7f42
Use absolute addresses as branch targets for NEW, FE_RESET and FE_FETCH
2014-06-11 11:39:42 +04:00
Dmitry Stogov
3f6f0d5a70
Simplified and optimized ZEND_HANDLE_NUMERIC()
2014-06-03 13:10:42 +04:00
Dmitry Stogov
b3b616cf7e
Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.
2014-05-29 18:21:56 +04:00
Dmitry Stogov
9dd66e4d53
Merge branch 'master' into phpng
...
* master:
Fixed issue #183 (TMP_VAR is not only used once)
Fix broken Junit output with --disable-cgi
Added folder mark
Further test fixes for the fdb2709
breakage.
Fix broken test caused by fdb2709
.
Added tests for ZipArchive::addGlob() and ZipArchive::addPattern()
Fix run-tests.php with Valgrind >= 3.10.0.
Add microseconds to the serialised form of DateTime objects.
Improved test for bug #62479
fix typo in ODBC code
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the upper level dir
5.5.14 now
Fix bug #67060 : use default mode of 660
Conflicts:
ext/date/php_date.c
2014-05-26 10:52:43 +04:00
Dmitry Stogov
347b430a03
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed issue #183 (TMP_VAR is not only used once)
2014-05-26 10:12:36 +04:00
Dmitry Stogov
24a86dbb6f
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed issue #183 (TMP_VAR is not only used once)
2014-05-26 10:12:10 +04:00
Dmitry Stogov
19be8b676c
Fixed issue #183 (TMP_VAR is not only used once)
2014-05-26 10:10:59 +04:00
Dmitry Stogov
b11a30f5ea
Merge branch 'master' into phpng
...
* master:
Support for __debugInfo (Joe Watkins)
Optimize ZEND_POW (Rouven Weßling)
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the upper level dir
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the upper level dir
Prevent recursion in ZF2 Parameters class
adding NEWS block for beta4
5.4.30 next
enable email notifications
update NEWS
update NEWS
update NEWS
- Updated to version 2014.3 (2014c)
fix bug #67253 : timelib_meridian_with_check out-of-bounds read
Fix bug #67252 : convert_uudecode out-of-bounds read
Fix bug #67251 - date_parse_from_format out-of-bounds read
Fix bug #67250 (iptcparse out-of-bounds read)
Conflicts:
ext/opcache/zend_persist.c
ext/spl/spl_array.c
2014-05-18 21:17:31 +04:00
Dmitry Stogov
0019b512ff
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Optimize ZEND_POW (Rouven Weßling)
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the upper level dir
Conflicts:
ext/opcache/ZendAccelerator.h
2014-05-18 20:51:37 +04:00
Dmitry Stogov
3fff53fc57
Optimize ZEND_POW (Rouven Weßling)
2014-05-18 20:48:16 +04:00
Xinchen Hui
eb5c613311
Fixed Zend Hash API usage (although it's in comments)
2014-05-18 12:05:36 +08:00
Dmitry Stogov
feeebc2e05
Fixed new hash API usage
2014-05-17 11:48:29 +04:00
Dmitry Stogov
bc99c0debb
Fixed hack. now we may store numbers not as pointers.
2014-05-15 14:00:49 +04:00
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +04:00
Dmitry Stogov
6a911e833f
Optimized JMPZNZ to avoid multiplication at runtime (may be it makes sense to use relative addresses everywere it'll lead to Position Independent Code)
2014-04-30 11:23:19 +04:00
Dmitry Stogov
df7ca608ce
Optimized constant lookup
2014-04-25 00:56:15 +04:00
Dmitry Stogov
5864ce8a44
Fixed compilation warnings
2014-04-22 17:46:34 +04:00
Dmitry Stogov
afe66d89a1
Cleanup
2014-04-21 16:34:40 +04:00
Dmitry Stogov
3434d3fc98
Optimize CASE(TRUE, X) into BOOL(X) (this pattern affects wordpress)
2014-04-17 21:15:02 +04:00
Dmitry Stogov
e96073b1e4
Moved zend_literal->cache_slot right into zval.
...
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.
2014-04-17 15:40:45 +04:00
Dmitry Stogov
c92dd8eedf
Fixed ZEND_CAST related optimizations (now it returns IS_VAR instead of IS_TMP_VAR)
2014-04-17 11:12:47 +04:00
Dmitry Stogov
f9b26bc39a
Cleanup (2-nd round)
2014-04-15 21:56:30 +04:00
Dmitry Stogov
5dc52e4880
Fixed interface constants inheritance.
...
Now we use IS_REFERENCE for inhereted class constants.
I might miss some edje cases.
2014-04-14 13:24:43 +04:00
Dmitry Stogov
76cc99fe60
Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)
2014-04-03 15:26:23 +04:00
Dmitry Stogov
d8099d0468
Changed data layout to allow more efficient operations
2014-04-02 14:34:44 +04:00
Dmitry Stogov
3b25faa4aa
Fixed 0 index handling
2014-04-02 12:09:05 +04:00
Dmitry Stogov
2a612e91c2
Fixed optimizer
2014-04-01 11:04:12 +04:00
Dmitry Stogov
b964621294
Fixed optimizer (incomplete)
2014-04-01 01:53:33 +04:00
Dmitry Stogov
fd4d11e053
fixes
2014-03-31 23:38:37 +04:00
Dmitry Stogov
7465be4fbd
Optimizer related fixes (incomplete)
2014-03-31 18:13:16 +04:00
Dmitry Stogov
5324f22f59
ext/opcache refactoring (incomplete)
2014-03-28 23:34:49 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
Dmitry Stogov
61028ad45e
Merge branch 'PHP-5.6'
...
* PHP-5.6:
We don't know PHP_5_6_X_API_NO yet
2014-01-15 11:11:01 +04:00
Dmitry Stogov
77bc5b8bae
We don't know PHP_5_6_X_API_NO yet
2014-01-15 11:09:38 +04:00
Xinchen Hui
aca07343ce
Merge branch 'PHP-5.6'
2014-01-14 22:34:53 +08:00
Nikita Popov
a5ee337156
Fixed arguments unpacking segfault with opcache
2014-01-14 22:34:08 +08:00
Dmitry Stogov
e141592da6
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #66440 (Optimisation of conditional JMPs based on pre-evaluate constant function calls)
2014-01-13 16:16:57 +04:00
Dmitry Stogov
9b74dc4a07
Fixed bug #66440 (Optimisation of conditional JMPs based on pre-evaluate constant function calls)
2014-01-13 16:16:23 +04:00
Dmitry Stogov
3458dac342
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #66471 (Keep backward compatibility)
2014-01-13 15:36:06 +04:00
Dmitry Stogov
ca550248f1
Fixed bug #66471 (Keep backward compatibility)
2014-01-13 15:34:25 +04:00
Dmitry Stogov
aab2e8eb7e
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)
2014-01-13 12:08:23 +04:00
Dmitry Stogov
d09d64c15c
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)
Conflicts:
NEWS
2014-01-13 12:07:50 +04:00
Dmitry Stogov
fcd75690fe
Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)
2014-01-13 12:06:19 +04:00
Xinchen Hui
0f53e37494
Merge branch 'PHP-5.6'
2014-01-03 11:09:07 +08:00
Xinchen Hui
c081ce628f
Bump year
2014-01-03 11:08:10 +08:00
Xinchen Hui
47c9027772
Bump year
2014-01-03 11:06:16 +08:00
Xinchen Hui
408ae9a452
Merge branch 'PHP-5.6'
2013-12-30 10:52:21 +08:00
Xinchen Hui
a88543a106
Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style ^M as lineend)
2013-12-30 10:51:47 +08:00
Xinchen Hui
04c8ce259f
Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style ^M as lineend)
...
Use git blame -w to ingore the space changes
2013-12-30 10:50:46 +08:00
Dmitry Stogov
67eccf8617
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #66338 (Optimization binding of class constants is not safely opcacheable)
2013-12-23 16:54:54 +04:00
Dmitry Stogov
a00e7f22d2
Fixed bug #66338 (Optimization binding of class constants is not safely opcacheable)
2013-12-23 16:53:34 +04:00
Dmitry Stogov
209ec406ca
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed bug #66334 (Memory Leak in new pass1_5.c optimizations). (Terry)
2013-12-23 16:05:18 +04:00
Dmitry Stogov
ccb29a6e41
Fixed bug #66334 (Memory Leak in new pass1_5.c optimizations). (Terry)
2013-12-23 16:04:10 +04:00
Bob Weinand
b11b3d201f
Fixed ZTS build. Needed to bump API version number.
2013-12-18 16:44:20 +01:00
Kalle Sommer Nielsen
2eb9bd316d
Merge branch 'master' of https://git.php.net/push/php-src
2013-12-18 07:27:14 +01:00
Kalle Sommer Nielsen
d14670ccdb
Eliminate another TSRMLS_FETCH() in i_zend_is_true()
...
# Affected extensions have all been updated, ext/opcache and ext/zip
# both have macros for cross version compatibility
2013-12-18 07:25:05 +01:00
Xinchen Hui
eeb37c40e6
Save one char compare
2013-12-17 15:09:52 +08:00
Dmitry Stogov
73f13f439b
Fixed bug #66251 (Constants get statically bound at compile time when Optimized)
2013-12-10 17:04:17 +04:00
Dmitry Stogov
f000624864
Added an optimization of class constants and constant calls to some internal functions
2013-11-26 21:37:31 +04:00
Dmitry Stogov
e7132597a6
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #66176 (Invalid constant substitution)
Fixed bug #66176 (Invalid constant substitution)
2013-11-26 21:01:01 +04:00
Dmitry Stogov
d79dd9cc1c
Fixed bug #66176 (Invalid constant substitution)
2013-11-26 21:00:00 +04:00
Dmitry Stogov
27524b52b5
Fixed bug #66176 (Invalid constant substitution)
2013-11-26 19:55:49 +04:00
Dmitry Stogov
0999d85049
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fixed bug #66176 (Invalid constant substitution)
Conflicts:
NEWS
2013-11-26 17:48:11 +04:00
Dmitry Stogov
d85ac7fb3f
Fixed bug #66176 (Invalid constant substitution)
2013-11-26 17:47:02 +04:00
Dmitry Stogov
a2aa6a3440
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled).
Conflicts:
NEWS
2013-10-10 15:33:17 +04:00
Dmitry Stogov
ef8cf76815
Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled).
2013-10-10 15:32:30 +04:00
Nikita Popov
0d7a638866
Implement variadic function syntax
...
As per RFC: https://wiki.php.net/rfc/variadics
2013-09-26 18:39:17 +02:00
Xinchen Hui
e53e79c701
Merge branch 'PHP-5.5'
2013-09-16 14:43:13 +08:00
Xinchen Hui
46f18ccf0d
Fixed bug #65665 (Exception not properly caught when opcache enabled)
2013-09-16 14:43:01 +08:00
Dmitry Stogov
ec173433da
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var)
Conflicts:
NEWS
2013-08-29 11:57:19 +04:00
Dmitry Stogov
5015c4af6c
Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var)
2013-08-29 11:56:01 +04:00
Dmitry Stogov
c8673b64ce
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed compatibility with php-5.2
2013-08-29 10:45:00 +04:00
Dmitry Stogov
94816ed9bf
Fixed compatibility with php-5.2
2013-08-29 10:44:07 +04:00
Dmitry Stogov
b6864d978c
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4). (Terry Ellison)
Conflicts:
NEWS
2013-08-29 10:31:14 +04:00
Dmitry Stogov
790db9ff9b
Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4). (Terry Ellison)
2013-08-29 10:29:48 +04:00
Dmitry Stogov
a13c00cd14
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed compilation warning
2013-08-26 09:49:22 +04:00
Dmitry Stogov
1c67a9940a
Fixed compilation warning
2013-08-26 09:48:10 +04:00
Dmitry Stogov
2bc886abed
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Replce ZEND_FETCH_* instructions with IS_CV if possible
Conflicts:
ext/opcache/Optimizer/zend_optimizer.c
2013-08-09 17:52:22 +04:00
Dmitry Stogov
b27f6826d4
Replce ZEND_FETCH_* instructions with IS_CV if possible
2013-08-09 17:47:47 +04:00
Dmitry Stogov
147d5241dc
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Improved implementation of NOP removal pass from O(n^2) to O(n) (hnw)
2013-07-30 22:33:46 +04:00
Dmitry Stogov
cb17c99511
Improved implementation of NOP removal pass from O(n^2) to O(n) (hnw)
2013-07-30 22:31:37 +04:00
Dmitry Stogov
05a88447ad
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Avoid possible conditional jump depended on uninitialised value
2013-04-29 10:46:54 +04:00
Dmitry Stogov
4b83f4a011
Avoid possible conditional jump depended on uninitialised value
2013-04-29 10:45:31 +04:00
Dmitry Stogov
3f48e8765d
Merge branch 'PHP-5.5'
...
* PHP-5.5:
Fixed compilation warnings (issue #92 )
2013-04-29 10:32:50 +04:00
Dmitry Stogov
a5b4eeb5f0
Fixed compilation warnings (issue #92 )
2013-04-29 10:32:08 +04:00
Xinchen Hui
676e737f5b
Fix other typos & add test script
2013-04-19 11:21:44 +08:00
Xinchen Hui
580d6fe94d
Fix typo
2013-04-19 10:55:11 +08:00
Felipe Pena
1192cfa58c
- Fixed ZTS build
2013-04-18 19:27:02 -03:00
Dmitry Stogov
60a59d27b4
Disable FCALL optimization pass for PHP older than 5.4
2013-04-18 22:22:48 +04:00
Dmitry Stogov
edfeab8bf2
Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.
2013-04-18 22:12:31 +04:00
Dmitry Stogov
2bfb523f45
Merge identical constants (and related cache_slots) in op_array->literals table.
2013-04-18 10:48:16 +04:00
Dmitry Stogov
36d343c0c4
Merge branch 'PHP-5.5' into PHP-5.5-opcache
...
* PHP-5.5:
Initialize literals hash_value and cache_slot
Added curl config test for windows
updated lib versions
updated lib versions
fixed EOL
updated lib versions
allow lcov 1.10
allow lcov 1.10
Conflicts:
ext/opcache/Optimizer/zend_optimizer.c
2013-04-17 21:32:08 +04:00
Dmitry Stogov
5a897009a8
Initialize literals hash_value and cache_slot
2013-04-17 21:19:56 +04:00
Dmitry Stogov
276847caba
Added script level constant replacement
2013-04-11 15:18:35 +04:00
Dmitry Stogov
e27039630a
Fixed support for PHP-5.3
2013-04-10 21:27:06 +04:00
Dmitry Stogov
7845f49006
Numeric string constants used as array indeces have to be converted to long at compile time
2013-04-10 15:33:08 +04:00
Dmitry Stogov
2b28f29e53
Fixed CFG construction bugs
2013-04-09 17:48:45 +04:00
Dmitry Stogov
23b44e7f39
Fixed ZTS build
2013-04-01 21:16:33 +04:00
Dmitry Stogov
74f158fb9d
Fixed issue #79 (Optimization Problem/Bug)
2013-04-01 11:33:04 +04:00
Dmitry Stogov
987dee9ca1
Fixed PHP-5.2 ZTS compatibility
2013-03-25 12:21:58 +04:00
Dmitry Stogov
a62ffb72f4
Renamed Zend Optimizer+ into Zend OPcache
2013-03-19 10:32:24 +04:00
Dmitry Stogov
e00b04a54f
Fixed memory leaks
2013-03-16 17:24:54 +04:00
Dmitry Stogov
34d3202eda
Merge Zend Optimizer+
...
git-subtree-dir: ext/opcache
git-subtree-mainline: b1dbfb7357
git-subtree-split: 8d35170c5f
2013-03-16 00:41:46 +04:00