tianhe1986
e6519cb69d
memcmp
begins from the second char.
...
Signed-off-by: tianhe1986 <w1s2j3229@163.com>
2017-10-12 22:46:26 +08:00
Dmitry Stogov
edc7c8ccfa
PHP must not create circular arrays when element is assigned by value.
2017-10-12 16:23:45 +03:00
Dmitry Stogov
4960c41e1f
Small improvement with zend_memnstr (tianhe1986)
2017-10-12 11:54:40 +03:00
Anatol Belski
be62d5fc19
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix datatype
2017-10-11 09:00:32 +02:00
Anatol Belski
53169dc480
Fix datatype
2017-10-11 08:58:59 +02:00
Dmitry Stogov
97e7521e49
AST don't have to be COPYABLE anymore.
2017-10-10 15:45:03 +03:00
Dmitry Stogov
dec8b787ee
Renumber types and type_flags
2017-10-10 11:10:27 +03:00
Dmitry Stogov
ef5ea48741
Always use IS_CONSTANT_AST (IS_CONSTANT is removed).
2017-10-10 10:11:05 +03:00
Dmitry Stogov
39ded1d5f8
Changed zend_ast_ref structure to use only one allocation, removing dichotomy between heap/arena ASTs.
2017-10-09 16:57:51 +03:00
Dmitry Stogov
fcccb0d6ea
Use zval_ptr_dtor_nogc() in places where circular zvals are not possible
2017-10-09 12:24:11 +03:00
Dmitry Stogov
f18638ca2d
Fixed incorrect recursion detection
2017-10-06 11:47:11 +03:00
Dmitry Stogov
254b74b85f
HASH_FLAG_PERSISTENT renamed into IS_ARRAY_PERSISTENT and moved into GC_FLAGS (to be consistent with IS_STR_PERSISTENT).
2017-10-06 02:54:14 +03:00
Dmitry Stogov
cb9d81ef4f
Refactored recursion pretection
2017-10-06 01:34:50 +03:00
Dmitry Stogov
0b87d4bf29
Removed unused flags
2017-10-05 00:04:59 +03:00
Dmitry Stogov
e70618aff6
Changed the way VM accesses constant operands in 64-bit builds.
2017-10-04 16:53:01 +03:00
Dmitry Stogov
879126a2ce
Don't pass useless arguments
2017-10-03 15:24:02 +03:00
Andrea Faulds
1189fe5729
Merge branch 'PHP-7.2'
2017-09-29 21:40:04 +01:00
Andrea Faulds
15efa985df
Merge branch 'PHP-7.1' into PHP-7.2
2017-09-29 21:38:52 +01:00
Andrea Faulds
4372293192
Merge branch 'PHP-7.0' into PHP-7.1
2017-09-29 21:38:30 +01:00
Andrea Faulds
abefb6dfe7
Fix bug #75290
2017-09-29 21:38:08 +01:00
Sara Golemon
8d90c3a7fb
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix word alignment on ILP64.
2017-09-28 10:48:53 -04:00
Sara Golemon
a93fe32c1a
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix word alignment on ILP64.
2017-09-28 10:48:43 -04:00
Sara Golemon
b5bc88c64e
Fix word alignment on ILP64.
2017-09-28 10:45:51 -04:00
Joe Watkins
e2e3c981b5
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed #75220 - Segfault when calling is_callable on parent
2017-09-27 06:09:24 +01:00
Joe Watkins
0d6c56a8ea
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed #75220 - Segfault when calling is_callable on parent
2017-09-27 06:08:49 +01:00
Joe Watkins
2dd77456fe
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed #75220 - Segfault when calling is_callable on parent
2017-09-27 06:08:01 +01:00
Nester
a680d701ce
Fixed #75220 - Segfault when calling is_callable on parent
2017-09-27 06:07:24 +01:00
Xinchen Hui
ac3c586ca7
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Update NEWS
Update NEWS
Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
Compiler warning
2017-09-24 17:25:26 +08:00
Xinchen Hui
bad5639386
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Update NEWS
Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
Compiler warning
2017-09-24 17:24:57 +08:00
Xinchen Hui
e8c200515a
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
Compiler warning
2017-09-24 17:24:23 +08:00
Xinchen Hui
b05ff14a9a
Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
2017-09-24 17:24:11 +08:00
Nikita Popov
18e297d3dd
Merge branch 'PHP-7.2'
2017-09-24 08:55:28 +02:00
Nikita Popov
76b2b4a190
Merge branch 'PHP-7.1' into PHP-7.2
2017-09-24 08:55:12 +02:00
Nikita Popov
628c257f71
Merge branch 'PHP-7.0' into PHP-7.1
2017-09-24 08:54:36 +02:00
Nikita Popov
73d6456d7d
Fixed bug #75252
2017-09-24 08:53:27 +02:00
Dmitry Stogov
44e0b79ac6
Refactored array creation API. array_init() and array_init_size() are converted into macros calling zend_new_array(). They are not functions anymore and don't return any values.
2017-09-20 02:25:56 +03:00
Dmitry Stogov
0fb05f1487
Property access micro-optimization. (ZEND_WRONG_PROPERTY_OFFSET and ZEND_DYNAMIC_PROPERTY_OFFSET are hidden, use one comparison instead of two on fast paths. "Negative" offsets are reserved for future optimizations).
2017-09-18 13:13:24 +03:00
Dmitry Stogov
2aad680c80
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #74878 (Data race in ZTS builds)
2017-09-18 11:28:06 +03:00
Dmitry Stogov
41e5f916bf
Fixed bug #74878 (Data race in ZTS builds)
2017-09-18 11:27:10 +03:00
Dmitry Stogov
351130856c
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed ZTS build (disable deallocation of arg_info of internal functions with type hints)
2017-09-13 10:11:57 +03:00
Dmitry Stogov
168ec3a6e1
Fixed ZTS build (disable deallocation of arg_info of internal functions with type hints)
2017-09-13 10:10:56 +03:00
Dmitry Stogov
7378f27667
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Properly update string type flags
2017-09-13 01:46:34 +03:00
Dmitry Stogov
a84608d4e2
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Properly update string type flags
2017-09-13 01:46:23 +03:00
Dmitry Stogov
c24b3eff11
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Properly update string type flags
2017-09-13 01:46:12 +03:00
Dmitry Stogov
d7a10f0e32
Properly update string type flags
2017-09-13 01:45:57 +03:00
Dmitry Stogov
c6c2b673de
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed memry leaks (free arg_info of internal functions with type hints)
2017-09-13 01:45:05 +03:00
Dmitry Stogov
10a7f2cf62
Fixed memry leaks (free arg_info of internal functions with type hints)
2017-09-13 01:44:19 +03:00
Dmitry Stogov
801d0e557b
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Revert "Properly update string type flags"
2017-09-13 00:15:37 +03:00
Dmitry Stogov
40d15cb03d
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Revert "Properly update string type flags"
2017-09-13 00:15:20 +03:00
Dmitry Stogov
5f1d553e7e
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Revert "Properly update string type flags"
2017-09-13 00:15:08 +03:00
Dmitry Stogov
83d8ebc991
Revert "Properly update string type flags"
...
This reverts commit 99b1a62d55
.
2017-09-13 00:14:39 +03:00
Dmitry Stogov
42a1e7a227
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Properly update string type flags
Update NEWS for 7.2.0RC3
Update NEWS for PHP 7.2.0RC2
2017-09-12 23:45:15 +03:00
Dmitry Stogov
73430d5362
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Properly update string type flags
2017-09-12 23:43:56 +03:00
Dmitry Stogov
7452fd0263
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Properly update string type flags
2017-09-12 23:43:42 +03:00
Dmitry Stogov
99b1a62d55
Properly update string type flags
2017-09-12 23:42:51 +03:00
Remi Collet
0a98998b3c
Merge branch 'PHP-7.2'
...
* PHP-7.2:
drop symbol definition, and not defined anywhere
2017-09-12 13:04:07 +02:00
Remi Collet
ea2507bc24
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
drop symbol definition, and not defined anywhere
2017-09-12 13:03:55 +02:00
Remi Collet
42e15813e2
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
drop symbol definition, and not defined anywhere
2017-09-12 13:03:39 +02:00
Remi Collet
35deb4c88b
drop symbol definition, and not defined anywhere
2017-09-12 13:03:18 +02:00
Xinchen Hui
a8427e7d37
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed arginfo for get_defined_functions
2017-09-12 13:26:25 +08:00
Xinchen Hui
58aa726548
Fixed arginfo for get_defined_functions
2017-09-12 13:26:07 +08:00
Xinchen Hui
ff6f41c94e
Narrow typeinfos down for zend_parse_paramenters_none
2017-09-12 11:25:21 +08:00
Sara Golemon
55562dfb00
Do not include BC for zend_symbtable_add_new on 7.2/master
2017-09-07 17:37:20 -04:00
Sara Golemon
361d3007a6
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Add BC define for users of the typoed zend_symbtable_add_new
2017-09-07 17:36:35 -04:00
Sara Golemon
a1573d5620
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Add BC define for users of the typoed zend_symbtable_add_new
2017-09-07 17:36:04 -04:00
Sara Golemon
0413feb29c
Add BC define for users of the typoed zend_symbtable_add_new
2017-09-07 17:35:54 -04:00
Sara Golemon
ab93a3482a
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix typo in zend_symtable_add_new() API name
2017-09-07 16:30:12 -04:00
Sara Golemon
ff04db4420
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix typo in zend_symtable_add_new() API name
2017-09-07 16:29:57 -04:00
Sara Golemon
9369843ee2
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fix typo in zend_symtable_add_new() API name
2017-09-07 16:26:45 -04:00
Sara Golemon
f18cf46d07
Fix typo in zend_symtable_add_new() API name
2017-09-07 16:25:25 -04:00
Thomas Punt
d938a769b2
Use ZEND_HASH_APPLY_SHIFT macro instead of hard-coded literal
2017-08-23 22:15:14 +02:00
Thomas Punt
a595b0f75b
Fix fast ZPP macro definition
2017-08-19 15:24:11 +02:00
Philip Prindeville
a1f3a0105d
Turn php_syslog() into wrapper for syslog and split lines
2017-08-19 13:51:44 +02:00
Dmitry Stogov
28fdc1f1c3
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed possible incorrect result of type verification.
2017-08-15 14:47:17 +03:00
Dmitry Stogov
b096eacdd1
Fixed possible incorrect result of type verification.
2017-08-15 14:46:18 +03:00
Dmitry Stogov
2929fc8a9b
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed test
2017-08-14 12:37:45 +03:00
Dmitry Stogov
18f567a3b4
Fixed test
2017-08-14 12:37:37 +03:00
Dmitry Stogov
f2db305fa4
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Order live ranges according to "start" position
2017-08-14 12:21:40 +03:00
Dmitry Stogov
a80e462fbd
Order live ranges according to "start" position
2017-08-14 12:21:07 +03:00
Dmitry Stogov
51fc0c5638
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed attempt to free invalid structure (result of ROPE_INIT is not a zval)
Revert "Fixed live_range removing (bug can be triggred by JIT)"
2017-08-14 12:11:46 +03:00
Dmitry Stogov
cd6893aed1
Fixed attempt to free invalid structure (result of ROPE_INIT is not a zval)
2017-08-14 12:11:25 +03:00
Dmitry Stogov
2fab62271a
Revert "Fixed live_range removing (bug can be triggred by JIT)"
...
This reverts commit aecf996510
.
2017-08-14 12:00:02 +03:00
Xinchen Hui
e0c4c3924d
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Revert "Fixed live_range removing (bug can be triggred by JIT)"
2017-08-14 16:59:14 +08:00
Xinchen Hui
6445b3a68f
Revert "Fixed live_range removing (bug can be triggred by JIT)"
...
This reverts commit aecf996510
.
2017-08-14 16:59:01 +08:00
Anatol Belski
beb9295790
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #75063
2017-08-14 00:53:33 +02:00
Anatol Belski
0a2a136111
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #75063
2017-08-14 00:51:47 +02:00
Anatol Belski
3069ad8dd1
Fixed bug #75063
2017-08-14 00:44:19 +02:00
Xinchen Hui
282ae895b0
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed live_range removing (bug can be triggred by JIT)
2017-08-11 21:57:11 +08:00
Xinchen Hui
aecf996510
Fixed live_range removing (bug can be triggred by JIT)
2017-08-11 21:56:30 +08:00
Joe Watkins
8c28ff4287
Merge branch 'PHP-7.2'
...
* PHP-7.2:
fixed #endif comments
2017-08-02 08:36:36 +01:00
Joe Watkins
6202c821a9
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
fixed #endif comments
2017-08-02 08:35:51 +01:00
Joe Watkins
9c6262f39b
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
fixed #endif comments
2017-08-02 08:35:38 +01:00
clwu
b2934d2612
fixed #endif comments
2017-08-02 08:35:27 +01:00
Xinchen Hui
9b87b73fec
Req #74963 (Improved error message on fetching property of non-object)
2017-07-31 11:51:23 +08:00
Xinchen Hui
f12d1e2819
Merge branch 'req74963' of https://github.com/laruence/php-src
...
* 'req74963' of https://github.com/laruence/php-src :
Req #74963 (Improved error message on fetching property of non-object)
2017-07-31 11:45:19 +08:00
Xinchen Hui
dbd729e86b
Req #74963 (Improved error message on fetching property of non-object)
2017-07-31 11:43:14 +08:00
Anatol Belski
853e73fb8e
Reduce struct size, on 64-bit by 8 bytes each
...
Note, the max modifiable flag value is currently 1<<5, there is still
some space. ATM it looks unlikely, but should more flags need to be
added, the types will need to be reconsidered.
2017-07-28 20:02:26 +02:00
Anatol Belski
0d1eeeb68d
move zend_ato*() to size_t and remove casts
2017-07-28 14:59:31 +02:00
Anatol Belski
827284ec36
fix up porting mistakes
2017-07-27 23:38:04 +02:00
Anatol Belski
49d9b3013f
Move cwd_state and path related routines to size_t
...
Having `int` there is no real profit in the size or speed, while unsigned
improves security and overall integration. ZPP supplied strings can
be then accepted directly and structs can be still handled with smaller
unsigned types for size reasons, which is safe. Yet some related places
are to go.
basic move tsrm_realpath_r to size_t
fix conditions and sync with affected places
touch ocurrences of php_sys_readlink usage
follow up on phar path handling
remove duplicated check
move zend_resolve_path and related pieces to size_t
touch yet resolve path related places
remove cast
missing pieces
missing piece
yet cleanups for php_sys_readlink for ssize_t
fix wrong return
2017-07-27 20:11:21 +02:00
Sara Golemon
00bed31d9f
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Simpler fix for #74974
2017-07-27 10:05:16 -04:00
Sara Golemon
4a6ef8327a
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Simpler fix for #74974
2017-07-27 10:04:59 -04:00
Sara Golemon
b62fb3aa0c
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Simpler fix for #74974
2017-07-27 10:04:14 -04:00
Pedro Magalhães
34e5d3a87d
Simpler fix for #74974
2017-07-27 09:25:38 -04:00
Xinchen Hui
a7fe93221d
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed test
2017-07-27 12:50:47 +08:00
Xinchen Hui
262aeb8ae1
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed test
2017-07-27 12:50:41 +08:00
Xinchen Hui
0ddda0dcb7
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed test
2017-07-27 12:50:28 +08:00
Xinchen Hui
9fcfe52d03
Fixed test
2017-07-27 12:50:17 +08:00
Kalle Sommer Nielsen
67be32ced9
FAST_ZPP variant of zend_parse_parameters_none(), ZEND_PARSE_PARAMETERS_NONE()
2017-07-23 08:48:06 +02:00
Sara Golemon
ad698adddf
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:34 -04:00
Sara Golemon
089f4ff885
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:28 -04:00
Sara Golemon
a4e3589966
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:20 -04:00
Sara Golemon
775b4b54d8
Use compatability zend_isnan() instead of POSIX isnan()
...
s/isnan/zend_isnan/g
2017-07-22 21:32:44 -04:00
Sara Golemon
211a0ddf86
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:35 -04:00
Sara Golemon
e23c132940
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:29 -04:00
Sara Golemon
1229b0f8cb
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:17 -04:00
Sara Golemon
c562d44321
Fix compile-time optimization of NAN comparisons
2017-07-22 21:22:51 -04:00
Bob Weinand
d7c8688b35
Merge branch 'PHP-7.2'
2017-07-22 11:17:05 +02:00
Bob Weinand
76ce874422
Merge branch 'PHP-7.1' into PHP-7.2
2017-07-22 11:16:48 +02:00
Bob Weinand
134e713be2
Merge branch 'PHP-7.0' into PHP-7.1
2017-07-22 11:14:54 +02:00
Bob Weinand
bad5d0d6c5
Fixed bug #74954 (null deref and segfault in zend_generator_resume())
2017-07-22 11:14:00 +02:00
Anatol Belski
489b023326
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Move the define into the header to reduce diff for future upgrade
2017-07-21 11:17:01 +02:00
Anatol Belski
96ad72dc29
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Move the define into the header to reduce diff for future upgrade
2017-07-21 11:16:38 +02:00
Anatol Belski
4b3ed311aa
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Move the define into the header to reduce diff for future upgrade
2017-07-21 11:16:15 +02:00
Anatol Belski
9b3c26d4f4
Move the define into the header to reduce diff for future upgrade
2017-07-21 09:12:06 +02:00
Xinchen Hui
484aafb2f3
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Update NEWS
Update NEWS
Fixed bug #74947 (Segfault in scanner on INF number)
2017-07-21 12:04:40 +08:00
Xinchen Hui
463413db53
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Update NEWS
Fixed bug #74947 (Segfault in scanner on INF number)
Conflicts:
Zend/zend_language_scanner.c
2017-07-21 12:02:54 +08:00
Xinchen Hui
84926a0d71
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #74947 (Segfault in scanner on INF number)
Conflicts:
Zend/zend_language_scanner.c
2017-07-21 11:58:07 +08:00
Xinchen Hui
95d2908814
Fixed bug #74947 (Segfault in scanner on INF number)
2017-07-21 11:56:49 +08:00
Dmitry Stogov
6e0bdf201f
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Separate the fast-patch
Convert CONCAT into FAST_CONCAT for non-object operands
2017-07-19 15:43:29 +03:00
Dmitry Stogov
112eda7525
Separate the fast-patch
2017-07-19 15:42:32 +03:00
Nikita Popov
21d5636da8
Merge branch 'PHP-7.2'
2017-07-19 01:06:01 +02:00
Nikita Popov
ecb67e59d7
Don't reuse compare_function operands
...
If the same zval is used for the result and one operand, then the
function thinks it is responsible for freeing the value in case of
a type conversion.
2017-07-19 01:04:36 +02:00
Sara Golemon
5230541ef5
Prepare for PHP 7.3
2017-07-18 10:45:47 -04:00
Sara Golemon
05ff0c5180
Bump all API numbers in prep for 7.2 fork
2017-07-18 10:45:02 -04:00
Dmitry Stogov
f49ee79e95
gc_check_possible_root() may throw exception.
2017-07-17 23:17:16 +03:00
Dmitry Stogov
1180d8c801
Separate ISSET_ISEMPTY_CV/UNSET_CV from ISSET_ISEMPTY_VAR/UNSET_VAR
2017-07-17 14:11:50 +03:00
Dmitry Stogov
5b0e6248e6
Removed vim mode lines. zend_vm_opcodes.h loses these lines after regeneration. Lines in zend_vm_def.h lead to insertion inthe middle of zend_vm_execute.h.
2017-07-17 11:00:46 +03:00
Dmitry Stogov
2a286ad599
Added goblal optimisation passes based on data flow analyses using SSA form:
...
SCCP - Sparse Conditional Constant Propagation, DCE - Dead Code Elimination
and removing of unused local variablesi.
Squashed commit of the following:
commit bf5ac05fc0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 14:26:40 2017 +0300
Added news entry
commit 4cfa6984b1
Merge: 1cdaaac
1f261d7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:30:50 2017 +0300
Merge branch 'sccp' into dce
* sccp:
Bump OCI8 version for recent patch
WS
Fix test title
Ensure that the stream position is kept between reads
Turn off EXIF_DEBUG so Travis don't complain at me
Don't add a new line to undefined tags in EXIF_DEBUG mode
Fix compile error with EXIF_DEBUG
update NEWS
disable --with-pcre-valgrind on travis
fix default args for --with-pcre-valgrind
Enable valgrind support for PCRE by default in debug builds
add oniguruma.patch to ease future upgrades
SIZEOF_SIZE_T doesn't exist on AIX and POWER8 (ppc64le), keep using SIZEOF_LONG
commit 1f261d77cb
Merge: a32a3fb
b280ba8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:30:39 2017 +0300
Merge branch 'master' into sccp
* master:
Bump OCI8 version for recent patch
WS
Fix test title
Ensure that the stream position is kept between reads
Turn off EXIF_DEBUG so Travis don't complain at me
Don't add a new line to undefined tags in EXIF_DEBUG mode
Fix compile error with EXIF_DEBUG
update NEWS
disable --with-pcre-valgrind on travis
fix default args for --with-pcre-valgrind
Enable valgrind support for PCRE by default in debug builds
add oniguruma.patch to ease future upgrades
SIZEOF_SIZE_T doesn't exist on AIX and POWER8 (ppc64le), keep using SIZEOF_LONG
commit 1cdaaac601
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:27:12 2017 +0300
Use generic evalution mechanism for constant functions
commit 75bd92a609
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 12:39:05 2017 +0300
Fixed use-def chain unlinking for "$a = 1; $a += $a;"
commit 7d7746814d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 12:38:29 2017 +0300
Enable duplicate predecessors verification
commit 6b1667f206
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:55:20 2017 +0300
Removed duplicate definitions
commit 1415b53014
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:51:29 2017 +0300
Enable evaluation of constant functions with 3 arguments
commit ab367deef9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:45:13 2017 +0300
Removed deprecated check
commit c51659ea8c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:40:42 2017 +0300
Reduce limit
commit b1be5a04d7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:38:23 2017 +0300
Disable constant array_flip() evaluation
commit 7a5b0596a1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:33:20 2017 +0300
Fixed comments
commit 377e48b342
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:28:50 2017 +0300
Cast of string to long/double can not produce exception
commit 228dd01af3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:24:50 2017 +0300
Added missed return
commit 0972a21636
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:22:36 2017 +0300
objects may be nested in array operands
commit bd346bfa5c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:19:20 2017 +0300
~$resource is unsupported.
commit c77e45610c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:15:39 2017 +0300
ws
commit 0b64d71109
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:14:40 2017 +0300
Call to zend_ssa_unlink_use_chain() shouldn't be dropped
commit cb7059fcf6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:11:58 2017 +0300
Safer check for function name. The previous check is incorrect in ZTS build.
commit 7280aba1e1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:02:10 2017 +0300
Missing warning
commit 54bc7b576c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 10:56:42 2017 +0300
Proper check for successors count
commit ea8c004a15
Merge: 624f76d
a32a3fb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 15:56:26 2017 +0300
Merge branch 'sccp' into dce
* sccp:
fix fold
Fixed bug #74866 extension_dir = "./ext" now use current directory for base
add next vc15 toolset to the list
Revert "Enable whole program optimization for builds without PGO, too"
extend comment
cleanup discontinued target
commit a32a3fb67c
Merge: 2722dbf
5fb2abd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 15:56:14 2017 +0300
Merge branch 'master' into sccp
* master:
fix fold
Fixed bug #74866 extension_dir = "./ext" now use current directory for base
add next vc15 toolset to the list
Revert "Enable whole program optimization for builds without PGO, too"
extend comment
cleanup discontinued target
commit 624f76df48
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 12:30:27 2017 +0300
Set RETURN_VALUE_UNUSED instead of additional FREE opcode, if possible.
Keep alive dead instructions that have to free two temporary variables.
commit 94c9b26695
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 11:51:14 2017 +0300
More accurate "vararg" handling in DCE
commit 665ed8491c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 09:31:45 2017 +0300
Improved DCE performance, by avoiding redundand checks and repeatable iterations.
commit 3f42ce18ba
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 23:03:11 2017 +0300
Added few more instructions without side effects and exceptions
commit b17178f991
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:39:02 2017 +0300
Temprary enable SSA validation in DEBUG build
commit e238a8dc79
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:37:53 2017 +0300
Inegrate SSA validation developed by Nikita
commit a247cee80b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:31:27 2017 +0300
Perform DCE pass before other DFA optimisations, to properly reconstruct "no value" use-def chains.
commit a651564f29
Merge: 06f6eb0
2722dbf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 18:55:05 2017 +0300
Merge branch 'sccp' into dce
* sccp:
Resources should be closed during object destructioin, not during freeing.
Guard against AppVeyor losing deps issue
increase poll timeout as false positives mitigation
Value of EG(user_exception_handler) should't relive request boundary
sodium ext: remove function names before exception messages
sodium ext: update the crypto_kx_*() API to the libsodium one
Revert "fix macro redifinitions"
commit 2722dbfdf5
Merge: 6595ea3
09d3b73
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 18:54:48 2017 +0300
Merge branch 'master' into sccp
* master:
Resources should be closed during object destructioin, not during freeing.
Guard against AppVeyor losing deps issue
increase poll timeout as false positives mitigation
Value of EG(user_exception_handler) should't relive request boundary
sodium ext: remove function names before exception messages
sodium ext: update the crypto_kx_*() API to the libsodium one
Revert "fix macro redifinitions"
commit 06f6eb0e68
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 14:52:28 2017 +0300
Use zend_ssa_is_no_val_use() instead of zend_has_improper_op1_use()
commit 4b64dbb30d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 13:07:14 2017 +0300
Check if instruction may throw exception only for instructions without known side effects.
Always disable removing ASSIGN and UNSET_VAR that may throw.
commit c5aa1f47cd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:21:07 2017 +0300
Use existing bit
commit c2af153bae
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:10:48 2017 +0300
Updated Windows build
commit de5e8fc129
Merge: 8c0de53
6595ea3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:10:12 2017 +0300
Merge branch 'sccp' into dce
* sccp: (29 commits)
Use existing bit
Updated Windows build
Fixed compilation error
Remove debug code
We need to check for the length here too, or we crash and no one likes that! :(
* Implemented #65187 (exif_read_data/thumbnail: add support for stream resource) * ext/exif now uses FAST_ZPP
Remove extraneous configure flag
Revert "remove excessive checks and fix warnings"
parametrize zip names
Upgrade bundled PCRE to 8.41
Updated NEWS file with LDAP changes
Fixed removing all controls by passing an empty array to ldap_set_option
Filled in NEWS file with ext/ldap last modifications
change order, allow to build as shared extension
restore file deleted by mistake in a merge commit
Fix segfault in php_stream_context_get_option call
remove excessive checks and fix warnings
fix macro redifinitions
fix symbol availability and ws
Remove this for now, as not found
...
commit 6595ea3420
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 10:27:02 2017 +0300
Use existing bit
commit f0bfd36cb8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 10:21:22 2017 +0300
Updated Windows build
commit a9bd7c89f2
Merge: d1eb5ed
2b7d3fb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 09:51:32 2017 +0300
Merge branch 'master' into sccp
* master: (27 commits)
Fixed compilation error
Remove debug code
We need to check for the length here too, or we crash and no one likes that! :(
* Implemented #65187 (exif_read_data/thumbnail: add support for stream resource) * ext/exif now uses FAST_ZPP
Remove extraneous configure flag
Revert "remove excessive checks and fix warnings"
parametrize zip names
Upgrade bundled PCRE to 8.41
Updated NEWS file with LDAP changes
Fixed removing all controls by passing an empty array to ldap_set_option
Filled in NEWS file with ext/ldap last modifications
change order, allow to build as shared extension
restore file deleted by mistake in a merge commit
Fix segfault in php_stream_context_get_option call
remove excessive checks and fix warnings
fix macro redifinitions
fix symbol availability and ws
Remove this for now, as not found
fix authors
NEWS for Sodium
...
commit 8c0de53e5f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 21:54:36 2017 +0300
Initial integration of Dead Code Elimination (DCE) and unused variable removing passes, originally developed in https://github.com/nikic/php-src/tree/opt , into DFA optimization pass.
commit d1eb5ede3a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 12:19:11 2017 +0300
Proper SSA reconstruction for "$a = $a;"
commit 4872d139b5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:57:33 2017 +0300
Replace conditions, that should be always true, by ZEND_ASSERT()
commit 9915b1f5cd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:56:51 2017 +0300
Fixed pass name
commit d26ff1b88d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:55:47 2017 +0300
Don't create identical predecessors
commit 0625fbe32b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 09:36:07 2017 +0300
Update unreachable blocks.
commit 9d7d409e6a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 09:28:49 2017 +0300
Keep consistent cfg.map[]
commit 85a86e58b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 02:36:14 2017 +0300
Remove unusded phi
commit d5e0f2df4c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 02:35:00 2017 +0300
Don't clear phi->spources[] too early.
commit a90ed34295
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 21:29:39 2017 +0300
Make SCCP to remove dead live ranges.
commit 320237f3d8
Merge: 63bbed5
7be2637
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 17:35:21 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed memory leak introduced by 7cb5bdf64a
eliminate casts
remove checks for eol dependencies
improve test
Small fix in ext/ldap, Moved vars definitions to the beginning of the block using them
ZipArchive implements countable, added ZipArchive::count() method
commit 63bbed5e71
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 17:01:15 2017 +0300
Evaluation of few more constant functions
commit 07f45d8a3d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 16:22:47 2017 +0300
Properly unlinking dead blocks from predecessors/successors and dominators
commit 502002aa6e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 13:33:14 2017 +0300
Replacel constant JMPZ/NZ/ZNZ by JMP or NOP
commit 3253e61b66
Merge: e7f69f0
161c378
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 12:22:39 2017 +0300
Merge branch 'master' into sccp
* master:
Revert "Fixed bug #74878 "
Upgrading note for #74837
Fixed bug #74837 - NEWS
Implement Countable for DomNodeList and DOMNamedNodeMap (Request #74837 )
Fix #49649 - Handle property visibility changes on unserialization
commit e7f69f07fc
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 12:15:08 2017 +0300
Prevent compile-time evaluation of implode() with arguments causing run-time warnings
commit 0e882f189a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 11:54:04 2017 +0300
Constant evaluation of ini_get() for some safe cases
commit 9e36a748b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 11:13:37 2017 +0300
Constant evaluation of implode()
commit e73046e266
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 10:51:23 2017 +0300
Fixed uninitialized value
commit f5e2e8e68c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 10:05:37 2017 +0300
Remove (compact) unused constants after SCCP pass
commit f0b7bb86eb
Merge: e69d4f6
cfacf84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 09:10:00 2017 +0300
Merge branch 'master' into sccp
* master: (37 commits)
#73594 tests only check the extra params if dns_get_record is successful
Fixed bug #74852 (property_exists returns true on unknown DateInterval property)
fix uninitialized var
fix comparison warning
comply with POSIX signature
fix warning
remove some casts
cleanup casts
remove useless cast
eliminate casts
sync vim mode lines in main
[ci skip] update NEWS
[ci skip] update NEWS
[ci skip] update NEWS
Fixed bug #74883 SQLite3::__construct() produces "out of memory" exception with invalid flags
Silent compiler warning
Fix test
Deprecated the read_exif_data() alias
Add myself as exif maintainer
update libs versions
...
commit e69d4f6140
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 12:51:41 2017 +0300
Avoid in-place modification of referenced data
commit 58f7c17978
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 12:33:24 2017 +0300
Use arena for temporary data.
commit 93d3e7ddc2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 11:54:47 2017 +0300
Made sccp_ctx to be an "extension" of scdf_ctx and remove duplicate data.
commit f810c6f7c4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 11:20:48 2017 +0300
Improved SSCP integration
commit d17ed887f3
Merge: d90805a
29653da
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 10:22:37 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()).
Fixed bug #72324 (imap_mailboxmsginfo() return wrong size)
Fix redefine warnings
Expand sb's name and capitalize my own
Write the URL on a new line, so that it is easier copyable
commit d90805a40b
Merge: 2e5e03b
fc336c7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 23:07:04 2017 +0300
Merge branch 'master' into sccp
* master:
Added missed dump of "main" script code
replace the stack var by a macro
[ci skip] sync NEWS
minor fix for web announce
add missing NEWS entry for #74087 and also fix the formatting
move NEWS entry to the correct place, also bump the version
commit 2e5e03b673
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 23:03:41 2017 +0300
Call info should be removed, but at least we should prevent incorrect stack adjustment.
commit 1ee9110b35
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 19:34:43 2017 +0300
Remove NOP instructions, introduced bvy SCCP.
This commit discloses unrelated issue caused ext/soap/tests/bug70211.phpt failure.
commit 9a2f50070d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 16:34:02 2017 +0300
Avoid useless iterations for first SSA variablesi, always marked BOT.
commit c57dd7c6ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 16:33:46 2017 +0300
Use reference-counting
commit 90f822d68e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 14:00:22 2017 +0300
Support for few more opcodes
commit cffee2f7e5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 12:35:13 2017 +0300
Combined constants substitutaion and dead instruction removing in single pass. This eleminates substitution in dead instructions.
commit f890375c16
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 10:34:48 2017 +0300
Use reference-counting instead of duplication
commit db0cd64dfa
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 03:04:27 2017 +0300
Improved SCDF<->SCCP interface
- "get_feasible_successors" callback is changed into "mark_feasible_successors" and should mark necessary edges through scdf_mark_edge_feasible()
- SCDF takes care about OP_DATA instruction
- SCDF code is re-arranged to avoid repeatable checks
commit e0ad5dd489
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 00:55:40 2017 +0300
Changed representation of "feasible_edges", using one bit per edge.
commit afee3138fe
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 00:49:56 2017 +0300
Revert "Don't propagate unused values"
This reverts commit 84e5bfd430
.
commit 84e5bfd430
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 23:39:42 2017 +0300
Don't propagate unused values
commit d4f15b9506
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 23:39:10 2017 +0300
Don't visit the same Phi twice
commit 2558311b4d
Merge: 722a59d
7bb4ae5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 21:51:06 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed final dump "after optimizer"
commit 722a59ddb1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 21:09:29 2017 +0300
SCCP doesn't support VERIFY_RETURN_TYPE (ext/opcache/tests/bug73789.phpt failure)
commit 7084fade4d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 20:37:21 2017 +0300
Fixed SSA reconstruction
commit 37ec4e0845
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 19:34:46 2017 +0300
Disable constant propagation for variables that can be modified indirectly
commit 4bb9b6526e
Merge: 6800460
73d5097
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 19:17:04 2017 +0300
Merge branch 'master' into sccp
* master: (43 commits)
Keep information about SSA variables, that may be modified indirectly.
Added constants for known ldap controls OID and tests for ldap_get/set_option for controls
Added support for controls to ldap_get_option
[ci skip] sync NEWS
NEWS for oniguruma
Patch from the upstream git https://github.com/kkos/oniguruma/issues/60 (CVE-2017-9228)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/59 (CVE-2017-9229) b690371bbf97794b4a1d3f295d4fb9a8b05d402d Modified for onig 5.9.6
Patch from the upstream git https://github.com/kkos/oniguruma/issues/58 (CVE-2017-9227)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/57 (CVE-2017-9224)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/55 (CVE-2017-9226) b4bf968ad52afe14e60a2dc8a95d3555c543353a Modified for onig 5.9.6 f015fbdd95f76438cd86366467bb2b39870dd7c6 Modified for onig 5.9.6
valid_symbol_table removed
Improve fix for #74145
Fix wddx
Fix tests
Fixed bug #74111
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #74087
Fixed parsing of strange formats with mixed month/day and time strings
...
commit 680046086c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 16:14:38 2017 +0300
Support for few more internal functions evaluation
commit 74a29468ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 13:42:55 2017 +0300
Disabled evaluation of strpos() with empty needle.
commit e8908946e5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 13:17:30 2017 +0300
Replace calls to in_array() with constant array by IN_ARRAY instruction after SCCP.
commit 4e8fa2c3dd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 00:58:12 2017 +0300
Initial integration of Sparse Conditional Constant Propagation (SCCP), originally developed in https://github.com/nikic/php-src/tree/opt , into DFA optimization pass.
2017-07-14 14:33:34 +03:00
Francois Laupretre
0782a7fc63
Fixed bug #74866 extension_dir = "./ext" now use current directory for base
2017-07-13 14:27:19 +02:00
Dmitry Stogov
43e283fd64
Value of EG(user_exception_handler) should't relive request boundary
2017-07-12 15:37:12 +03:00
Dmitry Stogov
161c378cc8
Revert "Fixed bug #74878 "
...
This reverts commit 9069734b57
.
2017-07-10 12:21:58 +03:00
Nikita Popov
9069734b57
Fixed bug #74878
2017-07-07 22:41:48 +02:00
Stanislav Malyshev
d75dbb0e31
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Improve fix for #74145
Fix wddx
Fix tests
Fixed bug #74111
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #74087
Fixed parsing of strange formats with mixed month/day and time strings
Fix bug #74145 - wddx parsing empty boolean tag leads to SIGSEGV
Fixed bug #74111
Fix #74435 : Buffer over-read into uninitialized memory
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #73807
2017-07-04 21:23:16 -07:00
Stanislav Malyshev
0ba04f7737
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Improve fix for #74145
Fix wddx
Fix tests
Fixed bug #74111
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #74087
Fixed parsing of strange formats with mixed month/day and time strings
Fix bug #74145 - wddx parsing empty boolean tag leads to SIGSEGV
Fixed bug #74111
Fix #74435 : Buffer over-read into uninitialized memory
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #73807
2017-07-04 21:18:10 -07:00
Stanislav Malyshev
0525574913
Fix bug #74603 - use correct buffer size
2017-07-04 19:35:56 -07:00
Nikita Popov
8126599670
Drop dead abstract method check from zend_call_function()
...
zend_is_callable() is responsible for doing these kinds of checks
already.
Aldro drop a piece of obsolete commented out code.
2017-07-04 21:11:22 +02:00
Anatol Belski
bc5811f361
further sync for vim mode lines
2017-07-04 18:12:45 +02:00
Dmitry Stogov
bfa24e3488
Fixed bug #74836 (isset on zero-prefixed numeric indexes in array broken)
2017-07-04 07:23:46 +03:00
Dmitry Stogov
02ef5d3803
Revert "Avoid run-time checks performed at compile-time."
...
This reverts commit 8fe47a47cf
.
2017-07-04 07:15:42 +03:00
Dmitry Stogov
55cd4e859b
Added missed opcodes
2017-07-03 21:26:44 +03:00
Anatol Belski
04d7595e58
Merge branch 'PHP-7.1'
...
* PHP-7.1:
yet one C++ compat fix
2017-07-01 20:07:05 +02:00
Anatol Belski
9d1575c495
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
yet one C++ compat fix
2017-07-01 20:06:39 +02:00
Anatol Belski
d0b7eed0c9
yet one C++ compat fix
2017-07-01 20:05:11 +02:00
Anatol Belski
46ef3e237c
Merge branch 'PHP-7.1'
...
* PHP-7.1:
fix C++ compat
2017-07-01 18:39:02 +02:00
Anatol Belski
667185a264
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
fix C++ compat
2017-07-01 18:38:18 +02:00
Anatol Belski
c71b773a62
fix C++ compat
2017-07-01 18:36:43 +02:00
Bob Weinand
2304bc2aa2
Merge branch 'PHP-7.1'
2017-07-01 11:53:00 +02:00
Bob Weinand
af7bfc71fd
Merge branch 'PHP-7.0' into PHP-7.1
2017-07-01 11:52:41 +02:00
Bob Weinand
e3cc15daf2
Fixed bug #74840 (Opcache overwrites argument of GENERATOR_RETURN within finally)
2017-07-01 11:52:03 +02:00
Richard Fussenegger
66e5dc5b9b
Fixed ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO macro
...
The macro was expanding to a wrong macro and thus leads to compile errors upon
usage. Changed it to expand to the correct macro.
2017-06-30 13:22:25 +02:00
Julien Pauli
cf7ae70540
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Updated NEWS
Updated NEWS
Fix bug #74832 , crash in extension loading
2017-06-29 20:25:18 +02:00
Julien Pauli
e57fce4d00
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Updated NEWS
Fix bug #74832 , crash in extension loading
2017-06-29 20:24:03 +02:00
Julien Pauli
3f4340a796
Fix bug #74832 , crash in extension loading
2017-06-29 20:22:21 +02:00
Dmitry Stogov
bbb786c85b
Split zend_init_execute_data() into zend_init_func_execute_data() and zend_init_code_execute_data()
2017-06-29 10:10:57 +03:00
Nikita Popov
4465b37105
Fix zend_get_zval_ptr()
2017-06-28 10:21:32 +02:00
Anatol Belski
e08c0ed8ce
Bug #74815 crash with a combination of INI entries at startup
...
TS related VCWD routines depend on CWD. Thus, a premature CWD
deactivation renders the VCWD layer unusable. Same issue seems to
persist in versions < 7.2, just that the code path is actually unused so
the issue didn't show up. Still might make sense to backport this into
lower branches.
2017-06-27 16:30:10 +02:00
Dmitry Stogov
c0be77aa75
Removed deprecated checks.
2017-06-27 13:12:09 +03:00
Dmitry Stogov
908ce66f73
Cleanup. Removed unused functions and unimplemented prototype. Avoid useless "dtor_obj" calls.
2017-06-27 12:03:06 +03:00
Dmitry Stogov
caaeb4849a
Removed EG(valid_symbol_table). Used EG(active) instead.
2017-06-26 13:35:07 +03:00
Tom Van Looy
04fb3f28ff
Remove superfluous semicolons
2017-06-26 00:23:25 +02:00
Nikita Popov
b3849edf2c
Fix tests on Windows
2017-06-26 00:22:14 +02:00
Nikita Popov
e5741da85c
Fix format arguments
...
Only dropped one before, both need to go...
2017-06-25 22:32:57 +02:00
Tom Van Looy
60d032d65e
Remove unused variable op2. It is redeclared later.
2017-06-25 22:31:00 +02:00
Nikita Popov
9dfcb04f10
Fix typo
2017-06-25 22:28:56 +02:00
Michał Brzuchalski
8e10c9d373
Implement object type annotation
...
RFC: https://wiki.php.net/rfc/object-typehint
2017-06-25 21:49:41 +02:00
Nikita Popov
957c24d5ee
Merge branch 'PHP-7.1'
2017-06-25 19:49:25 +02:00
Nikita Popov
653b96347c
Merge branch 'PHP-7.0' into PHP-7.1
2017-06-25 19:49:11 +02:00
Nikita Popov
2fddc4a7f1
Fixed bug #73900
2017-06-25 19:48:17 +02:00
Nikita Popov
035a27cbc6
Only compute callback name in error cases
...
Mostly the callback name is only used to report an error. Try to
avoid calculating it if no error occurred.
2017-06-25 18:45:59 +02:00
Nikita Popov
ee8e75aab4
Extract zend_get_callable_name() API
...
Instead of interleaving this inside zend_is_callable(), implement
this in a separate function instead.
Also add _deref() hash APIs. I've wanted these for a while, and
this is another place where they're useful, so finally do it...
2017-06-25 18:26:03 +02:00
Nikita Popov
205807f60e
Move va_copy compatibility code into zend_portability.h
...
Previously this was defined in zend.c and php.h and also handled
in another way in soap.c.
2017-06-25 17:00:26 +02:00
Nikita Popov
6dd2eaf45c
Remove unnecessary string copy
2017-06-25 16:52:50 +02:00
Nikita Popov
c136afa2be
Fix FE_FETCH_* exception check
...
Only applying this for 7.2, because handling this would be ugly
under the old retval freeing semantics.
2017-06-25 16:45:17 +02:00
Nikita Popov
ed37ca7369
Fixed bug #74810
...
And also did some general cleanup in ZEND_FUNC_GET_ARGS.
2017-06-25 16:00:24 +02:00
Nikita Popov
191f154d40
Merge branch 'PHP-7.1'
2017-06-25 15:32:38 +02:00
Nikita Popov
bda0f4e8dc
Merge branch 'PHP-7.0' into PHP-7.1
2017-06-25 15:30:29 +02:00
Nikita Popov
de66e80d75
Don't leave holes in func_get_args() and backtraces
...
Argument lists should always be continuous and hole-free, even if
local variables are unset. Replace UNDEF values with NULLs.
2017-06-25 15:27:45 +02:00
Dmitry Stogov
d55b43d9cb
Merge branch 'fast_shutdown'
...
* fast_shutdown:
Reseet EG(active) a bit early.
Reuse "nIndex"
shutdown_executor() refactoring (reuse opcache fast request shutdown code)
2017-06-23 14:59:29 +03:00
Dmitry Stogov
866d3b40e9
Reseet EG(active) a bit early.
2017-06-23 14:58:19 +03:00
Nikita Popov
748069e3a0
Merge branch 'PHP-7.1'
2017-06-23 13:32:51 +02:00
Dmitry Stogov
40ed9aaa48
Reuse "nIndex"
2017-06-23 14:23:00 +03:00
Joe Watkins
5796fff344
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Remove superfluous branch
2017-06-23 07:51:59 +01:00
Joe Watkins
b903733762
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Remove superfluous branch
2017-06-23 07:51:46 +01:00
Thomas Punt
b1301a0686
Remove superfluous branch
2017-06-23 07:51:32 +01:00
Dmitry Stogov
f25ecdacf8
shutdown_executor() refactoring (reuse opcache fast request shutdown code)
2017-06-22 01:45:28 +03:00
Dmitry Stogov
06e41cadd9
We don't need any special handling for CG(unclean_shutdown) at this point, because in case of exit() or die() all destructors must be already called before.
2017-06-21 16:11:50 +03:00
Dmitry Stogov
7802cf8c1a
Added specialized FE_FETCH_R handler for iteration over array
2017-06-20 23:25:09 +03:00
Dmitry Stogov
31a2198fd9
FE_RESER/FE_FETCH optimisation
2017-06-20 22:26:46 +03:00
Dmitry Stogov
bfa154448d
VM refactoring, to avoid passing "execute_data" into helper functions that can access it using global register variable.
2017-06-16 01:42:49 +03:00
Dmitry Stogov
8bb29704ea
Refactored API for constant array element propagation
2017-06-15 22:50:04 +03:00
Dmitry Stogov
76db01d9ff
Moved "Using $this when not in object context" exception code into single VM helper.
2017-06-15 16:23:05 +03:00
Dmitry Stogov
8fe47a47cf
Avoid run-time checks performed at compile-time.
2017-06-13 13:48:58 +03:00
ZiMuyang
5c9d6e89fe
Delete extra semicolon
2017-06-12 23:14:11 +02:00
Michael Moravec
586a22cbad
Bump Modules API number for 7.2 to distinguish from 7.1
2017-06-12 12:04:02 -04:00
Remi Collet
22cdfc2504
cleanup, MEMORY_LIMIT is not used anymore
2017-06-09 08:07:21 +02:00
Dmitry Stogov
db4561bfff
Introduced "zif_handler" type (zif = zend internal function).
2017-06-08 16:52:39 +03:00
Dmitry Stogov
ace9fe5317
Improved new Zend Parameter Parsing API to avoid useless dereferences.
...
This derefernce made sense only for explicit paramter passing by reference, but this feature was removed in PHP-7.
The improvement is 100% backward compatible, only few "tricky" functions may be affected (e.g. extract and usort).
2017-06-08 13:03:24 +03:00
Jakub Zelenka
eb6614e458
Constify str in add_assoc_string_ex and add_assoc_stringl_ex
2017-06-07 23:44:23 +02:00
Richard Fussenegger
7cce220be8
Updated some str functions to new parameter API
2017-06-07 23:43:37 +02:00
Dmitry Stogov
6a024146bb
Removed unused variable.
2017-06-06 16:08:44 +03:00
Pedro Magalhães
c6c1e75e6b
Fix bug #74607 : Don't check for bi-directional compatibility in traits
2017-06-03 00:24:43 +02:00
Dmitry Stogov
02e6c9c757
ZVAL_COPY_UNREF() micro-optimization
2017-06-02 00:38:09 +03:00
marcosptf
3efef6d0c0
test for ErrorException::getSeverity();
2017-06-01 08:23:53 +01:00
Dmitry Stogov
a916bed8f8
Fixed function name resolution
2017-05-30 21:48:16 +03:00
Dmitry Stogov
65edf44291
Check for possible run-time function name resolution
2017-05-30 17:37:54 +03:00
Dmitry Stogov
c015be131d
Update opcode description
2017-05-30 14:47:21 +03:00
Dmitry Stogov
33d42802d3
Fixed support for C compilers that don't support global register variables.
2017-05-30 13:31:58 +03:00
Dmitry Stogov
6043f76ad7
Added ZEND_FUNC_NUM_ARGS, ZEND_FUNC_GET_ARGS instructions, to implement corresponding builtin functions.
...
Special optimisation for "array_slice(INT, func_get_args())" pattern.
2017-05-30 13:23:17 +03:00
Dmitry Stogov
017d65d74a
Extend ZEND_SEND_ARRAY to eliminate array_slice() call for "call_user_func_array(_, array_slice(_, LONG, _))" pattern.
2017-05-30 12:25:46 +03:00
Xinchen Hui
225f6cc11f
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Correct the location
2017-05-27 12:12:17 +08:00
Xinchen Hui
1838f965bc
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Correct the location
2017-05-27 12:12:12 +08:00
Xinchen Hui
ece7d223e8
Correct the location
2017-05-27 12:11:53 +08:00
Xinchen Hui
8af21f3ca6
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Added NEWs
Fixed bug #74657 (Undefined constants in array properties result in broken properties)
2017-05-27 12:09:28 +08:00
Xinchen Hui
cd3520c4d3
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #74657 (Undefined constants in array properties result in broken properties)
2017-05-27 12:08:48 +08:00
Xinchen Hui
5269c4cacb
Fixed bug #74657 (Undefined constants in array properties result in broken properties)
2017-05-27 12:06:43 +08:00
Kalle Sommer Nielsen
7b5ba8e68b
Remove accidently added byte
2017-05-26 17:37:44 +02:00
Kalle Sommer Nielsen
0affe1e7bd
Added zend_parse_parameters_none_throw()
2017-05-26 17:29:50 +02:00
Dmitry Stogov
d32288b5bf
Fixed copy-paste mistake
2017-05-25 20:20:57 +03:00
Dmitry Stogov
f00d1c72b4
Added ZEND_GET_CLASS, ZEMD_GET_CALLED_CLASS, ZEND_GET_TYPE instructions, to implement corresponding builtin functions.
2017-05-25 18:41:28 +03:00
Dmitry Stogov
cd953269d3
Added ZEND_COUNT instruction, to implement corresponding builtin.
2017-05-25 12:52:34 +03:00
Dmitry Stogov
27e7aea412
"Countable" interface is moved from SPL to Core
2017-05-25 12:47:43 +03:00
Dmitry Stogov
44ec732752
Fixed ZEND_IN_ARRAY related issues
2017-05-25 10:26:42 +03:00
Dmitry Stogov
7c7383067f
Added ZEND_IN_ARRAY instruction, implementing optimized in_array() builtin function, through hash lookup in flipped array
2017-05-24 23:00:48 +03:00
Pedro Magalhães
a5eb57c96e
Allow overriding abstract methods
...
RFC: https://wiki.php.net/rfc/allow-abstract-function-override
2017-05-24 17:42:01 +02:00
Dmitry Stogov
490960d861
Avoid useless string duplication
2017-05-23 15:25:21 +03:00
Dmitry Stogov
293d99052d
Optimized parse_url() by using "known" strings
2017-05-22 23:23:12 +03:00
Xinchen Hui
26a6d20ab5
Fixed segfult in JIT (emalloc may trigger memory limitation)
...
Zend/tests/bug68412.phpt
2017-05-21 20:48:07 +08:00
Dmitry Stogov
a08723d3d3
Use interned empty and "one char" strings.
2017-05-18 17:59:59 +03:00
Dmitry Stogov
8203a175b1
Remove unused opcode handlers
2017-05-18 13:18:08 +03:00
Bob Weinand
ccb5591728
Merge branch 'PHP-7.1'
2017-05-17 19:59:36 +02:00
Bob Weinand
649494c0ee
Fixed bug #74606 (Segfault within try/catch/finally nesting in Generators)
...
Thanks to Nikita for pointing out the error source.
2017-05-17 19:58:51 +02:00
Dmitry Stogov
fc927dc263
Switch to HYBRID VM
2017-05-17 15:07:33 +03:00
Anatol Belski
d5bc862470
avoid strlen in common case
2017-05-16 12:52:16 +02:00
Dmitry Stogov
7640e0a5f9
HYBRID VM cleanup
2017-05-16 09:24:23 +03:00
Dmitry Stogov
69b4f8ed79
Fixed USER_OPCODE handling in HYBRID VM.
2017-05-15 21:17:58 +03:00
Anatol Belski
de9124a2e7
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed bug #74589 __DIR__ wrong for unicode character
fixing run-tests.php for variables_order="GPCS"
2017-05-15 16:36:40 +02:00
Anatol Belski
ae3f975c5d
Fixed bug #74589 __DIR__ wrong for unicode character
2017-05-15 16:35:22 +02:00
Markus Staab
2fd94e6be7
Removed always true condition
...
Since 5a9d8a00b4
this can no longer be false
2017-05-11 06:28:08 +01:00
Dmitry Stogov
dfffe6cb32
Type hint inheritance check optimization
2017-05-10 22:25:32 +03:00