Dmitry Stogov
c69781393c
Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions)
2014-06-26 23:51:14 +04:00
Dmitry Stogov
43477bc7a2
Refactoring: use call_frames instead of call_slots
2014-06-24 02:17:16 +04:00
Dmitry Stogov
e1b18e59f7
Use arena allocator for zend_class_entry, zend_op_array and zend_property_info that live till the end of request
2014-06-18 02:47:01 +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
Nikita Popov
6714770d83
Fix ZTS build
2014-05-25 18:11:24 +02:00
Xinchen Hui
c2082ece52
Fixed apply_func_t (they should be broken before)
2014-05-25 18:32:35 +08: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
f9927a6c97
Merge mainstream 'master' branch into refactoring
...
During merge I had to revert:
Nikita's patch for php_splice() (it probably needs to be applyed again)
Bob Weinand's patches related to constant expression handling (we need to review them carefully)
I also reverted all our attempts to support sapi/phpdbg (we didn't test it anyway)
Conflicts:
Zend/zend.h
Zend/zend_API.c
Zend/zend_ast.c
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_execute_API.c
Zend/zend_hash.c
Zend/zend_highlight.c
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_variables.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/date/php_date.c
ext/dom/documenttype.c
ext/hash/hash.c
ext/iconv/iconv.c
ext/mbstring/tests/zend_multibyte-10.phpt
ext/mbstring/tests/zend_multibyte-11.phpt
ext/mbstring/tests/zend_multibyte-12.phpt
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/mysqlnd/mysqlnd_reverse_api.c
ext/mysqlnd/php_mysqlnd.c
ext/opcache/ZendAccelerator.c
ext/opcache/zend_accelerator_util_funcs.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/pcre/php_pcre.c
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c
ext/pdo_pgsql/pgsql_driver.c
ext/pgsql/pgsql.c
ext/reflection/php_reflection.c
ext/session/session.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
ext/standard/array.c
ext/standard/basic_functions.c
ext/standard/html.c
ext/standard/mail.c
ext/standard/php_array.h
ext/standard/proc_open.c
ext/standard/streamsfuncs.c
ext/standard/user_filters.c
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re
main/php_variables.c
sapi/phpdbg/phpdbg.c
sapi/phpdbg/phpdbg_bp.c
sapi/phpdbg/phpdbg_frame.c
sapi/phpdbg/phpdbg_help.c
sapi/phpdbg/phpdbg_list.c
sapi/phpdbg/phpdbg_print.c
sapi/phpdbg/phpdbg_prompt.c
2014-04-26 00:32:51 +04:00
Dmitry Stogov
f71da39210
Use ZEND_HASH_FOEACH_* instead of zend_hash_apply_*
2014-04-21 13:55:25 +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
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Dmitry Stogov
98ca90c910
Fixed char*/zend_string* mess
2014-04-01 13:57:23 +04:00
Dmitry Stogov
47fdb9eae3
fixed craches at request shutdown and memory leaks
2014-03-31 16:09:45 +04:00
Dmitry Stogov
9a8fbdf2f4
Use CV variable offset instead of CV variable number
2014-03-27 16:00:25 +04:00
Dmitry Stogov
ef6919e6f2
Fixed static data cleanup
2014-03-21 13:51:18 +04:00
Dmitry Stogov
598a51844c
Fixed improper deallocation
2014-02-22 00:20:36 +04:00
Xinchen Hui
47fb198533
Revert "Use zend_string for arg_info to fixed segfault in Zend/tests/argument_restriction_003.phpt"
...
This reverts commit b96318105b
.
2014-02-21 23:02:24 +08:00
Xinchen Hui
b96318105b
Use zend_string for arg_info to fixed segfault in Zend/tests/argument_restriction_003.phpt
2014-02-21 22:34:30 +08:00
Dmitry Stogov
557994d50d
Use better data structures (incomplete)
2014-02-19 01:12:05 +04:00
Dmitry Stogov
a0fe8e5a91
Use better data structures (incomplete)
2014-02-18 01:41:23 +04:00
Dmitry Stogov
2b9b9afa7a
Use better data structures (incomplete)
2014-02-17 17:59:18 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
datibbaw
aff56f3c45
add T_POW (**) operator
...
Fixed recognition of the operator
Added opcode, still doing multiply instead of pow()
opcode now always returns int(42)
The right answer, but always a float
Yanked code from pow() implementation.
Should not handle negative long as exponent ourselves
Added test cases from pow()
Moved precedence higher than '~'
Added GMP operator overloading
Added ZEND_ASSIGN_POW (**=) operator.
Added pow() as a language construct.
Adjusted test cases for changed precedence.
Reduced pow() to shell function around ZEND_API pow_function()
Reduced test case to only contain edge cases
Added overloading test case
Moved unary minus above T_POW
Revert "Added pow() as a language construct."
Bad bad bad idea.
This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.
Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)
Rebase against master
Fixed tokenizer test case
2014-02-06 14:41:21 +01:00
Xinchen Hui
c081ce628f
Bump year
2014-01-03 11:08:10 +08:00
Xinchen Hui
6f95a07c41
Merge branch 'PHP-5.5' into PHP-5.6
2013-12-13 11:37:43 +08:00
Xinchen Hui
ef73f85079
Use zend_error_noreturn here
2013-12-13 10:56:35 +08:00
Xinchen Hui
54213b462d
Disallowed JMP into a finally block.
2013-12-13 01:44:54 +08:00
Xinchen Hui
794a888a48
Fixed bug #65784 (Segfault with finally).
2013-12-13 00:16:08 +08:00
Nikita Popov
64caedd927
Use zend_error_noreturn for all E_COMPILE_ERRORs
2013-10-19 23:22:20 +02:00
Dmitry Stogov
a2d6d27458
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fixed bug #64720 (SegFault on zend_deactivate)
Conflicts:
NEWS
2013-05-21 10:15:37 +04:00
Dmitry Stogov
77fffff157
Fixed bug #64720 (SegFault on zend_deactivate)
2013-05-21 09:58:11 +04:00
Xinchen Hui
a666285bc2
Happy New Year
2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009
Happy New Year
2013-01-01 16:28:54 +08:00
Dmitry Stogov
b8c719c068
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Traits refactoring
2012-12-25 10:33:01 +04:00
Dmitry Stogov
3f8c729e69
Traits refactoring
2012-12-25 10:23:08 +04:00
Dmitry Stogov
9c96fe52d9
Restored proper generators behaviour in conjunction with "finally". (Nikita)
2012-12-12 17:47:55 +04:00
Dmitry Stogov
70f83f35d0
. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more.
...
. Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.
2012-11-30 13:39:23 +04:00
Dmitry Stogov
eb4825b50b
Improved "finally" im[plementation
2012-11-22 15:17:05 +04:00
Pierre Joye
2b7bddd82a
Merge branch 'PHP-5.4'
...
* PHP-5.4:
- fix build, there was no tsrm context there, doing a fetch but this is horribly slow, this fix needs improvement (or simply add a TSRM context in the signature in master
2012-09-05 13:00:41 +02:00
Pierre Joye
954e7a3b3c
- fix build, there was no tsrm context there, doing a fetch but this is horribly slow, this fix needs improvement (or simply add a TSRM context in the signature in master
2012-09-05 13:00:04 +02:00
Dmitry Stogov
bceec038c8
Merge branch 'PHP-5.4'
...
* PHP-5.4:
Fixed bug #62907 (Double free when use traits)
Conflicts:
NEWS
2012-09-05 10:01:04 +04:00
Dmitry Stogov
6c0508f8d5
Fixed bug #62907 (Double free when use traits)
2012-09-05 09:58:22 +04:00
Nikita Popov
68c1e1cfe9
Add dedicated opcode for returns from a generator
...
Generators don't have a return value, so it doesn't make sense to have
a shared implementation here.
2012-08-24 13:51:39 +02:00
Nikita Popov
6517ed0215
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2012-08-24 13:29:40 +02:00
Xinchen Hui
60a29791e4
Fixed bug that jmp in try block jmp over finally block
...
Refactor the implemention, make codes clear
2012-08-22 18:32:03 +08:00
Xinchen Hui
703a4e390d
stash
2012-08-22 13:51:44 +08:00
Nikita Popov
1823b16fa1
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
...
Merging master to fix Windows build
Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
2012-08-20 13:37:53 +02:00
Felipe Pena
b2a74b5bdb
- Remove unused vars
2012-08-18 11:28:00 -03:00
Xinchen Hui
72b9b8f380
Make the codes clearer, and also check continue statement
2012-08-18 11:44:09 +08:00
Xinchen Hui
f2a8912e61
Refactor examing of jumping out of finally block
2012-08-18 00:16:34 +08:00