Andrea Faulds
0294485164
Prevent "undefined variable opline" errors
2015-02-10 15:48:09 +00:00
Andrea Faulds
5a7ac0fade
Implement per-file strictness for scalar return types
2015-02-10 15:48:09 +00:00
Andrea Faulds
cc01e37e54
It Begins
2015-02-10 15:48:06 +00:00
Dmitry Stogov
f5a9cfc33a
Merge branch 'internal-function-return-types' of github.com:reeze/php-src into test
...
* 'internal-function-return-types' of github.com:reeze/php-src:
Add load time return type checking to match user land logic
Add test function arguments
Implemented internal function return types
2015-02-05 11:01:07 +03:00
Reeze Xia
bff4c47fa7
Implemented internal function return types
2015-02-05 01:04:54 +08:00
Xinchen Hui
8aab1c619c
Fixed unused opline warning
2015-01-31 16:50:17 +08:00
Andrea Faulds
797dee59cd
Blast off to space.
2015-01-29 17:56:09 +00:00
Levi Morrison
c8576c5a46
Implement return types
...
RFC is documented here: https://wiki.php.net/rfc/return_types
2015-01-27 11:49:56 -07:00
Nikita Popov
4d3e4d3bf9
Remove assignment of new by reference
2015-01-26 21:00:22 +01:00
Xinchen Hui
91045c4d74
Fixed ext/standard/tests/general_functions/bug41970.phpt fails
2015-01-26 14:41:45 +08:00
Dmitry Stogov
be31acc927
Fixed memory leak
2015-01-23 20:35:32 +03:00
Nikita Popov
5f0248304e
Revert "Remove static calls from incompatible $this context"
...
This reverts commit dc9991b167
.
2015-01-19 15:12:51 +01:00
Nikita Popov
dc9991b167
Remove static calls from incompatible $this context
2015-01-17 18:26:44 +01: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
Dmitry Stogov
2325758624
Improve "instanceof". Interfaces of the left operand should be checked only if the right operand is interafce itself.
2015-01-14 15:06:26 +03:00
Dmitry Stogov
3e3b006738
Reorder conditions to make "fast paths" shorter
2015-01-13 15:31:42 +03:00
Dmitry Stogov
5a24ac8853
Improved access to object properties (cache property offset instead of pointer to property_info).
2015-01-13 11:33:00 +03:00
Dmitry Stogov
7e93de101f
Handle run-time cache for static properties directly in executor.
...
Removed cache_slot argument in zend_std_get_static_property() and zend_std_unset_static_property().
2015-01-13 09:33:15 +03:00
Dmitry Stogov
dbe66fb2cf
Improved access to static property. Now we cache pointers to zval instead of pointers to property_info.
2015-01-13 03:32:51 +03:00
Stanislav Malyshev
b7a7b1a624
trailing whitespace removal
2015-01-10 15:07:38 -08:00
Dmitry Stogov
cd5ea1619e
Micro optimization for better register allocation
2014-12-29 14:21:16 +03:00
Dmitry Stogov
0fa50fb95d
Reored conditions
2014-12-29 14:20:52 +03:00
Dmitry Stogov
d909a837e2
Cleanup
2014-12-29 13:38:36 +03: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
Dmitry Stogov
106b1017d4
API for fast construction of packed arrays
2014-12-23 19:08:28 +03:00
Dmitry Stogov
fd4844e079
Removed useless checks
2014-12-22 19:04:29 +03:00
Dmitry Stogov
552c06d439
typo
2014-12-22 12:31:00 +03:00
Xinchen Hui
cc4a198d19
Fixed segfault
2014-12-21 23:18:56 -05:00
Dmitry Stogov
00628afd74
Fixed memory leaks
2014-12-19 19:43:17 +03: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
2eef2abee5
Merge remote-tracking branch 'origin/master' into native-tls
...
* origin/master:
Optimize argument passing handlers:
Fix pcre non-FAST_ZPP build
Conflicts:
Zend/zend_compile.c
Zend/zend_execute.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/pcre/php_pcre.c
2014-12-16 17:13:47 +01:00
Dmitry Stogov
3a18597774
Optimize argument passing handlers:
...
- predcalculate offsets of passed argument and store it in opline->result.var for ZEND_SEND_*;
- don't update "number of passed arguments" op each ZEND_SEND_* opcode, store it on call frame creation
- Change ZEND_HANDLE_EXCEPTION to determine "number of passed arguments" in incomplete calls fefore freeing
2014-12-16 18:40:52 +03:00
Anatol Belski
209a7a27a5
Merge remote-tracking branch 'origin/master' into native-tls
...
* origin/master:
Revert "Removed useless local variable"
Fix the fix for bug #55415
add BC breaks from PHPNG RFC
add include for definition of php_url_encode
2014-12-16 08:04:51 +01:00
Dmitry Stogov
caf5521416
Revert "Removed useless local variable"
...
This reverts commit 44ae32ad55
.
It doesn't work properly. We can't access call->scope after free.
2014-12-16 01:44:10 +03:00
Anatol Belski
f62ad3bc57
Merge remote-tracking branch 'origin/master' into native-tls
...
* origin/master:
made the apache ini holders to be zend_bool
Removed useless local variable
Use simpler functions
Fixed test
small fixes to UPGRADING
Reorder to save alignment size (of course, only for common used structs)
2014-12-15 13:57:43 +01:00
Dmitry Stogov
44ae32ad55
Removed useless local variable
2014-12-15 14:43:30 +03:00
Anatol Belski
bdeb220f48
first shot remove TSRMLS_* things
2014-12-13 23:06:14 +01:00
Dmitry Stogov
3893c1fc3d
Fixed compilation warnings
2014-12-12 21:57:34 +03: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
Xinchen Hui
634448e2de
Revert "Save one xor instr"
...
This reverts commit bd5c5d3729
.
2014-12-11 03:19:33 -05:00
Xinchen Hui
882741639c
Merge branch 'master' of https://git.php.net/repository/php-src
2014-12-11 00:03:45 -05:00
Xinchen Hui
bd5c5d3729
Save one xor instr
2014-12-11 00:03:31 -05:00
Anatol Belski
da78550006
fix TS build and C89 compat
2014-12-10 12:23:46 +01:00
Dmitry Stogov
29b9105beb
Wrap RETURN_VALUE_USED() with EXPECTED() or UNEXPECTED() macros according to more frequent usage patterns.
2014-12-09 17:07:12 +03:00
Dmitry Stogov
5b3a69c29f
Improved ASSIGN_<OP>, ASSIGN_DIM and UNSET_DIM
2014-12-09 15:15:24 +03:00
Dmitry Stogov
98e81e13cf
simplified code
2014-12-09 12:17:55 +03:00
Dmitry Stogov
0b19a7c235
Move ZVAL_DEREF() and make_real_object() into slow paths.
2014-12-09 03:05:06 +03:00