Nikita Popov
0eab81f32b
Remove bits of dead code
2014-07-18 15:53:38 +02:00
Nikita Popov
adbddf4e5b
Support static closures
2014-07-18 15:47:46 +02:00
Nikita Popov
405b97e8a9
Handle function doc comments
2014-07-18 15:23:16 +02:00
Nikita Popov
cdcf78f730
Fix lexer/compiler interdependency
2014-07-18 15:05:31 +02:00
Nikita Popov
359f99fe48
Use dedicated func_decl ast node
...
Functions need a bunch of extra info, that becomes inconvenient
to handle using the normal ast structure.
2014-07-18 14:57:00 +02:00
Nikita Popov
3ad55e001e
Small cleanup
...
Current problem: build_runtime_defined_function_key is lexer
coupled
2014-07-18 13:15:58 +02:00
Nikita Popov
ae5ba9abfb
Port closures
2014-07-18 12:58:24 +02:00
Nikita Popov
abfc8bd894
Port closure use
2014-07-18 12:30:39 +02:00
Nikita Popov
20d2a044ee
Lineno corrections
2014-07-16 23:33:22 +02:00
Nikita Popov
64a7132185
Port __METHOD__
2014-07-16 23:23:25 +02:00
Nikita Popov
a75921dcb1
Port __FUNCTION__ to AST
2014-07-16 23:10:16 +02:00
Nikita Popov
f589713cc4
Preliminary function decl support
...
Problem: __FUNCTION__ etc don't work anymore, due to lexer/parser
interdependency.
2014-07-16 00:07:09 +02:00
Nikita Popov
1ee3277aba
Port parameter defs
...
Has one bug re \self
2014-07-14 23:03:53 +02:00
Dmitry Stogov
bcc677789c
Fixed ZTS build
2014-07-14 15:46:09 +04:00
Dmitry Stogov
af7cb16907
Implemented builtin instruction for strlen()
2014-07-14 15:43:11 +04:00
Dmitry Stogov
42c4bcaed1
Fixed ZTS build
2014-07-14 14:25:04 +04:00
Dmitry Stogov
7dfb4f6b38
Implemented builtin instruction for type check functions - is_*()
2014-07-14 10:33:11 +04:00
Nikita Popov
47f0717a69
Rename params -> args
2014-07-13 13:11:55 +02:00
Nikita Popov
484ad86958
Moar removal
2014-07-12 19:20:21 +02:00
Nikita Popov
f9ed83469c
Remove more dead code
2014-07-12 19:18:09 +02:00
Nikita Popov
b934dfe088
Remove dead code
2014-07-12 19:10:19 +02:00
Nikita Popov
856e2a05b6
Fix + improve try/catch
2014-07-12 19:08:09 +02:00
Nikita Popov
069da161cf
approx correct linenos in errors
2014-07-12 17:10:10 +02:00
Nikita Popov
c58079b4fd
Port static vars
...
Need to figure out the constant expr stuff
2014-07-12 17:00:53 +02:00
Nikita Popov
86a1cd0d82
Verious fixes
2014-07-12 16:25:47 +02:00
Nikita Popov
8577f58e52
Store (bad) estimate of lineno with ast
...
Currently not used yet
2014-07-12 14:03:42 +02:00
Nikita Popov
e367e68111
Port try/catch
...
Down to 50 failing Zend tests
2014-07-12 13:50:58 +02:00
Dmitry Stogov
6c8db864e0
Implemented builtin instruction for strlen()
2014-07-11 18:52:27 +04:00
Nikita Popov
32ca08f249
Fix leak
2014-07-11 15:33:39 +02:00
Nikita Popov
dde9faee2e
Port switch
2014-07-11 15:31:47 +02:00
Nikita Popov
f12c1482a3
Port foreach
2014-07-11 12:16:21 +02: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
Nikita Popov
4215969904
Port if (partial)
2014-07-10 16:38:04 +02:00
Nikita Popov
3be63fca48
Port for
2014-07-10 15:51:47 +02:00
Nikita Popov
1738ee7e5a
Port do/while
2014-07-10 14:46:22 +02:00
Nikita Popov
c7656c06cc
Port while
...
Note: From here on everything is broken
2014-07-10 14:35:59 +02:00
Nikita Popov
68777b72b2
Expr stmts go through ast
2014-07-10 00:04:27 +02:00
Nikita Popov
1de1bc96a5
Make statement asty
2014-07-10 00:00:48 +02:00
Nikita Popov
117714d122
Port goto label
2014-07-09 23:46:22 +02:00
Nikita Popov
d14b763bb9
Make unticked_statement an ast node (usually NULL)
2014-07-09 23:39:21 +02:00
Nikita Popov
fc541418f2
Port goto
2014-07-09 23:11:32 +02:00
Nikita Popov
cc8a6fa91e
Port break/continue
2014-07-09 23:05:21 +02:00
Nikita Popov
5bf0c28fe3
Port throw
2014-07-09 22:48:42 +02:00
Dmitry Stogov
b36aaea6ed
ZEND_SEND_VAR and ZEND_SEND_VAL specialization
2014-07-08 02:13:53 +04:00
Nikita Popov
289265402a
Port echo
2014-07-07 21:14:14 +02:00
Nikita Popov
36c3cf3198
Port return statement
2014-07-07 21:06:02 +02:00
Nikita Popov
2d4c962c61
Fix ZTS build
2014-07-05 14:12:20 +02:00
Nikita Popov
77fddc0ca2
Use zend_string* in some places
2014-07-05 00:11:00 +02:00
Nikita Popov
17c2d16d79
Refactor class name resolution as well
2014-07-04 23:45:20 +02:00
Nikita Popov
b3336270f6
Hack around global leak for now
2014-07-04 23:15:31 +02:00
Xinchen Hui
1d1226afa2
Suppress warning "cast from pointer to integer of different size"
2014-07-01 10:36:19 +08:00
Dmitry Stogov
b7715c7e8a
Refactored parameter passing mechanism.
...
In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.
There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
2014-06-30 15:43:45 +04:00
Nikita Popov
fb98dd31a0
Some refactoring of fn/const resolution
2014-06-28 22:27:06 +02:00
Nikita Popov
e198132542
Drop addition of weird \ prefix for FQ consts
...
Also fixes a resolution bug
2014-06-28 18:24:59 +02:00
Nikita Popov
111ad71d38
Rename ZEND_CONST to ZEND_AST_ZVAL
2014-06-28 18:03:26 +02:00
Nikita Popov
64dab4b914
Drop dead code
2014-06-26 22:17:19 +02:00
Nikita Popov
0e44f4c583
Remove obseleted grammar productions
2014-06-26 22:09:05 +02:00
Nikita Popov
dd60c8e0f1
Reuse expr for static_scalar
2014-06-26 22:02:54 +02:00
Nikita Popov
dd60b9bb91
Handle ::class in const expr via ast as well
2014-06-26 21:44:46 +02:00
Nikita Popov
080e8bffa5
Compile const refs to CONST
2014-06-26 16:56:50 +02:00
Nikita Popov
b83c70416b
Compile class const refs to CONST zval
2014-06-26 16:35:30 +02:00
Nikita Popov
08c4e01a1b
Add compilation state for static scalars
2014-06-26 16:03:15 +02:00
Nikita Popov
1b84b87e78
Const eval unary pm (as previously)
2014-06-26 12:43:20 +02:00
Nikita Popov
e26c6d663a
Implement constant expression folding as a separate pass
2014-06-23 21:59:14 +02:00
Nikita Popov
0644fbccf7
Implement CT eval of binary expressions
...
I totally hate this approach. It's ugly and I don't think I can
share code with the static scalar evaluation. Maybe I should use
the approach that static scalars use instead?
2014-06-22 15:57:44 +02:00
Nikita Popov
90d36554e2
Support string interpolation
2014-06-21 20:06:46 +02:00
Nikita Popov
b6789b1dd6
zend_ast_dynamic_ast returns new node
2014-06-21 19:31:08 +02:00
Nikita Popov
86db3942cf
Remove dead code
2014-06-21 18:54:30 +02:00
Nikita Popov
657762ee2b
AST stage 2.4
2014-06-21 18:54:13 +02:00
Nikita Popov
0c81b3eae2
Remove dead code
2014-06-19 13:48:49 +02:00
Nikita Popov
0ec49bba22
AST stage 1.9
...
Expressions (mostly) use the AST
2014-06-19 13:48:35 +02:00
Dmitry Stogov
b108267f2c
Merge branch 'master' into phpng
...
* master: (41 commits)
Update copyright year to 2014
Update copyright year to 2014
Update copyright year to 2014
Update copyright year to 2014
Update copyright year to 2014
Update copyright year to 2014
Update copyright year to 2014
NEWS
Fix Request #67453 Allow to unserialize empty data.
Update copyright year to 2014
Update copyright year for re2c generated files
Update copyright year to 2014
Update copyright year for re2c files as well
Fix patch for bug #67436
fix failed test
Fix test on modern distro where old unsecure algo are disabled in openssl config. Testing recent algo should be enough to check this function.
Added tests for bug 67436
Fixed wrong XFAIL test - already fixed
Fix typo in Bug #67406 NEWS entry
Fix typo in Bug #67406 NEWS entry
...
Conflicts:
Zend/zend_compile.c
ext/session/session.c
ext/standard/array.c
ext/standard/http_fopen_wrapper.c
tests/classes/bug63462.phpt
2014-06-18 17:50:27 +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
a8e63d2b56
Fixed support for constants inherited from interfaces
2014-06-17 01:15:51 +04:00
Dmitry Stogov
909acec231
Avoid useles constants update
2014-06-16 23:32:58 +04:00
Dmitry Stogov
bd10db271c
Use new zend_hash iteration API
2014-06-16 21:11:52 +04:00
Bob Weinand
3c2b42ac41
Merge branch 'PHP-5.5' into PHP-5.6
...
Conflicts:
Zend/zend_compile.c
2014-06-16 11:18:45 +02:00
Bob Weinand
e93f8e74d4
Merge branch 'PHP-5.4' into PHP-5.5
2014-06-16 11:16:33 +02:00
Bob Weinand
0a3979e08b
Fix patch for bug #67436
2014-06-16 11:10:50 +02:00
Bob Weinand
f92143f740
Merge branch 'PHP-5.5' into PHP-5.6
...
Conflicts:
NEWS
Zend/zend_compile.c
2014-06-15 23:06:15 +02:00
Bob Weinand
f5f1c702cd
Merge branch 'PHP-5.4' into PHP-5.5
2014-06-15 22:24:44 +02:00
Bob Weinand
ca29063da5
Fix bug #67436
2014-06-15 22:18:25 +02:00
Nikita Popov
258a733ed2
AST-based compiler: Stage 1
2014-06-14 15:22:18 +02:00
Dmitry Stogov
592c8a0426
Improved conditions order
2014-06-11 02:46:50 +04:00
Nikita Popov
98918fe65b
Remove (&ast->u.child)[i] weirdness
2014-06-06 22:35:21 +02:00
Dmitry Stogov
e499c3d259
Introduced new BIND_GLOBAL instraction instead of FETCH_W+ASSIGN_REF pair that caused a lot of useles checks
2014-06-06 15:04:30 +04:00
Dmitry Stogov
c1965f58d4
Use reference counting instead of zval duplication
2014-06-05 16:04:11 +04:00
Dmitry Stogov
3f6f0d5a70
Simplified and optimized ZEND_HANDLE_NUMERIC()
2014-06-03 13:10:42 +04:00
Nikita Popov
5c2120b6cf
Forbid writing to temporary expressions
2014-05-31 19:41:39 +02:00
Nikita Popov
c53a7ea4e5
Property handle calls on [] and '' consts/tmps
2014-05-31 17:37:30 +02:00
Nikita Popov
8a65c3b234
Remove now unnecessary code in begin_method_call
2014-05-31 16:08:38 +02:00
Nikita Popov
fcf42d817d
Remove object_stack (mostly)
2014-05-31 15:59:54 +02:00
Nikita Popov
87f8e758c8
Cleanup old grammar rules
2014-05-30 23:51:54 +02:00
Nikita Popov
a8c1595012
LTR static member access
2014-05-30 22:33:03 +02:00
Nikita Popov
95a3a12657
Change precedence of $ operator
...
$$foo['bar'] is now interpreted as ${$foo}['bar'] rather than
${$foo['bar']}.
2014-05-30 16:31:10 +02:00
Xinchen Hui
9f70b2f6fa
typo
2014-05-30 14:56:50 +08: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
05d0df4706
Use new zend_hash API
2014-05-26 21:29:35 +04:00
Xinchen Hui
922285ec55
Don't use cast (compiler friendly)
2014-05-26 11:05:04 +08:00
Xinchen Hui
bc357eaf3f
Fixed apply_func_args_t
2014-05-25 20:04:35 +08:00
Xinchen Hui
0175d994c0
Fixed apply_func_arg_t, and it's better not using cast (compiler friendly)
2014-05-25 19:56:51 +08:00
Dmitry Stogov
9eb89dddb1
Use optimized zend_array_dup() function. convert zend_hash_num_elements() and zend_hash_next_free_element() into macros.
2014-05-23 20:37:53 +04:00
Dmitry Stogov
0c6a6f0fba
Re-applyed Bob's patch with minor fixes
2014-05-07 15:03:56 +04:00
Dmitry Stogov
4ecc527976
Reverted Bob's patch (it breaks many tests when run with opcache and needs to be fixed first).
2014-05-07 03:26:13 +04:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Hannes Magnusson
0ebf0c02a0
Fix argument, cur_method_ref->class_name is a zend_string
2014-05-05 21:45:33 -07:00
Nikita Popov
e0247de147
zend_stack_top() now returns pointer directly
2014-05-01 09:08:30 +02:00
Nikita Popov
5a03efe279
Don't allocate zend_stack elements individually
...
Instead allocate a vector of elements. Size must now be specified
on initialization rather than on push.
2014-05-01 09:08:29 +02:00
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +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
7e424f5a95
Use symbolic names instead of magic constants + optimization
2014-04-23 02:47:41 +04:00
Nikita Popov
9c70603f4a
Initialize hash as unpacked if it contains string keys
2014-04-22 21:33:49 +02:00
Nikita Popov
3d3a55cbcb
Pass expected array size hint in INIT_ARRAY
...
To avoid unnecessary rehashes
2014-04-22 18:57:03 +02:00
Dmitry Stogov
7584ae3200
Fixed compilaation warnings
2014-04-22 18:52:59 +04:00
Dmitry Stogov
8ad8254a16
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
2014-04-21 21:39:15 +04:00
Nikita Popov
0d43a277b8
Use zval_get_string in a few more places
2014-04-21 17:55:58 +02:00
Dmitry Stogov
72c287bd23
Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word
2014-04-21 18:25:34 +04:00
Dmitry Stogov
7652a977a8
Use ZEND_FETCH_FOREACH_* macros to iterate over HashTables instead of zend_hash_move_forward() and family.
2014-04-18 19:18:11 +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
Nikita Popov
f98937fa80
Don't copy in ZEND_CAST if type is already correct
2014-04-16 22:39:50 +02:00
Dmitry Stogov
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Dmitry Stogov
cc50ebc487
Fixed memory leak
2014-04-14 23:53:25 +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
Bob Weinand
35b895fdf0
Removed useless void* parameter and replaced with zend_bool on zval_update_constant* functions
2014-04-11 19:18:58 +02:00
Dmitry Stogov
13f0c8b18c
Fixed double free
2014-04-11 16:48:38 +04:00
Bob Weinand
f614fc6898
Fix bug #66015 by reverting "Removed operations on constant arrays."
2014-04-11 10:08:44 +02:00
Dmitry Stogov
91ed685e26
Close all files and resources before before destroying object storage, because resources may point to objects. (THIS CHANGE MAY BE DANGEROUS)
2014-04-11 02:22:00 +04:00
Nikita Popov
f449b04713
Fix some ZTS issues and leaks
2014-04-10 13:50:25 +02:00
Nikita Popov
3ce96eabc0
Fix function copying in ZTS
...
Still doesn't entirely work :/
2014-04-09 23:41:16 +02:00
Nikita Popov
20f2e5986e
Fix ZTS build
...
This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.
2014-04-09 23:41:16 +02:00
Dmitry Stogov
eaeb3c39b4
Optimized RECV_* opcodes
2014-04-04 14:36:34 +04:00
Dmitry Stogov
3bc8810b1e
Constant duplication optimization
...
Argument receiving optimization
2014-04-04 03:55:27 +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
042c937f69
Use STR_COPY() instead of STR_DUP() where possible
2014-04-01 17:10:15 +04:00
Dmitry Stogov
015e5dc43b
In case the string can't be interned it must not be released
2014-04-01 14:35:34 +04:00
Dmitry Stogov
9b196ca6e8
Added check for interned strings
2014-04-01 14:19:43 +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
25d55d16fc
Fixed foreach (now we store HashPointer in additional IS_TMP_VAR slot(s))
2014-03-13 17:01:28 +04:00
Dmitry Stogov
3733737328
Handle interned strings as non-refcounted scalars
2014-03-05 13:55:56 +04:00
Dmitry Stogov
04d04d01c8
Fixed memory leak
2014-02-28 14:24:35 +04:00
Dmitry Stogov
54095e8c56
Converting from reference to regular value
2014-02-28 11:03:05 +04:00
Dmitry Stogov
cb181c512a
I don't know how to fix it
2014-02-27 23:51:00 +04:00
Dmitry Stogov
3810b4ab4a
Fixed constant expressions in array indeces handling
2014-02-27 16:41:41 +04:00
Nikita Popov
d3b484df82
Disallow use of positional args after unpacking
...
This commit disallows the use of trailing positional arguments
after argument unpacking was used. The following calls are no
longer valid:
fn(...$array, $var);
fn(...$array1, $var, ...$array2);
However, all of the following continue to be valid:
fn($var, ...$array);
fn(...$array1, ...$array2);
fn($var, ...$array1, ...$array2);
The reason behind this change is a stack allocation issue pointed
out by Dmitry: As of PHP 5.5 the stack necessary for pushing
arguments is precomputed and preallocated, as such the individual
SEND opcodes no longer verify that there is enough stack space.
The unpacked arguments will occupy some of that preallocated
space and as such following positional arguments could write past
a stack page boundary.
An alternative resolution for this issue is to ensure that there
is enough space for the remaining arguments in the UNPACK opcode.
However making this allocation precise (rather than using a
conversative over-estimate) would require some effort. Given that
this particular aspect of the feature wasn't very popular in the
first place, it doesn't seem worth the effort.
2014-02-26 16:40:25 +01:00
Nikita Popov
2eae187949
Store arg_num in fcall entry
...
Instead of storing the argument number in the znode of the parameter
list, store it in fcall->arg_num. This mainly cleans up the parameter
parsing code, which previously had to duplicate all rules (this
becomes more excessive as more features are added, e.g. named params
would already require a minimum of 14 rules...)
2014-02-26 16:40:25 +01:00
Nikita Popov
cefa7f8d08
Introduce zend_function_call_entry structure
...
Instead of directly pushing the zend_function* onto the
function_call_stack, push this structure. This allows us to store
additional data on this stack.
2014-02-26 16:40:25 +01:00
Dmitry Stogov
60eadc80b8
Fixed return anf yield by reference
2014-02-26 18:07:16 +04:00
Dmitry Stogov
e4b5848859
Fixed handling of "static" variables
2014-02-25 23:56:09 +04:00
Dmitry Stogov
ff162410f0
Fixed traits support
2014-02-25 01:18:06 +04:00
Dmitry Stogov
595fc4d901
More constant related fixes
2014-02-24 15:49:15 +04:00
Dmitry Stogov
f4c2810ab4
fixed support for constant expressions
2014-02-24 15:25:24 +04:00
Dmitry Stogov
62e7ac77e5
Fixed arg_info[].class_name destruction
2014-02-24 13:33:30 +04:00
Dmitry Stogov
d149228b69
Use better data structures (incomplete)
2014-02-21 23:51:08 +04:00
Dmitry Stogov
52bd62eca8
Fixed assertions
2014-02-21 20:35:40 +04:00
Dmitry Stogov
6d5ce339e6
Merge branch 'refactoring2' of github.com:zend-dev/php into refactoring2
2014-02-21 19:05:15 +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
Dmitry Stogov
a4f2c6ea15
Merge branch 'refactoring2' of github.com:zend-dev/php into refactoring2
2014-02-21 18:55:26 +04:00
Dmitry Stogov
686ea7f20e
Fixed compound name resolution
2014-02-21 18:55:04 +04:00
Xinchen Hui
013cc55395
Merge branch 'refactoring2' of github.com:zendtech/php into refactoring2
...
Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
2014-02-21 22:41:48 +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
2549010278
Fixed error messages
2014-02-21 18:23:56 +04:00
Dmitry Stogov
b2e7b89041
Fix non-zero terminated strings
2014-02-21 18:14:47 +04:00
Dmitry Stogov
0907a1b3f8
Fixed error messages
2014-02-21 17:35:19 +04:00
Dmitry Stogov
0fc85fbdff
Fixed error messages
2014-02-21 17:27:53 +04:00
Anatol Belski
47204c6341
some missing pieces for __debugInfo
2014-02-20 02:07:34 +01:00
Dmitry Stogov
8bae1daa0c
Use better data structures (incomplete)
2014-02-19 14:35:28 +04:00
Dmitry Stogov
9067dbcd0d
Use better data structures (incomplete)
2014-02-19 12:03:01 +04:00
Dmitry Stogov
557994d50d
Use better data structures (incomplete)
2014-02-19 01:12:05 +04:00
Dmitry Stogov
5de7115679
Use better data structures (incomplete; able to run bench.php)
2014-02-18 16:27:38 +04:00
Sara Golemon
1e752ce9c5
Add __debugInfo() magic method
...
class Foo {
private $val = 'Random, meaningless data';
public function count() { return 42; }
public function __debugInfo() {
return ['count' => $this->count()];
}
}
$f = new Foo;
var_dump($f);
2014-02-17 19:33:56 -08: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
0e425121b3
Use better data structures (incomplete)
2014-02-17 11:50:32 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
Nikita Popov
2c47dfbaeb
Implement argument unpacking
...
RFC: https://wiki.php.net/rfc/argument_unpacking
2014-01-11 12:42:08 +01:00
Nikita Popov
c7bb283338
Minor cleanup in zend_do_pass_param()
2014-01-11 12:40:16 +01: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
c0d060f5c0
Bump year
2014-01-03 11:04:26 +08:00
Dmitry Stogov
03a37de9b3
Improved empty string handling. Now ZE uses an interned string instead of allocation new empty string each time. (Some extensions might need to be fixed using str_efree() instead of efree() to support interned strings).
2013-12-26 14:47:13 +04:00
Xinchen Hui
eeb37c40e6
Save one char compare
2013-12-17 15:09:52 +08:00
Dmitry Stogov
49d7e98025
Fixed memory leaks introdused by:
...
commit 611da37617
Author: Igor Wiedler <igor@wiedler.ch>
Date: Sat Nov 9 13:48:23 2013 -0500
2013-12-10 15:13:53 +04:00
Dmitry Stogov
5a87b7ff39
Fixed bug #66252 (Problems in AST evaluation invalidating valid parent:: reference. Constant expessions have to be evaluated in context of defining class).
2013-12-10 14:19:17 +04:00
Ferenc Kovacs
562fa252ad
Merge branch 'use-function' of git://github.com/igorw/php-src into igorw-use-function
2013-12-06 05:39:49 +01:00
Nikita Popov
e2a8d7dc17
Merge branch 'PHP-5.5' into PHP-5.6
2013-11-30 13:40:17 +01:00
Nikita Popov
9589cae8cb
Fixed bug #66041 : list() fails to unpack yielded ArrayAccess object
...
Yield return values now use IS_VAR rather than IS_TMP_VAR. This
fixes the issue with list() and should also be faster as it avoids
doing a zval copy.
2013-11-30 13:08:31 +01:00
Bob Weinand
d36cf90291
Merge branch 'const_scalar_exprs' into PHP-5.6
...
Conflicts:
Zend/zend_extensions.h
2013-11-28 13:41:42 +01:00
Dmitry Stogov
43e3933fa3
Removed deprecated AI_SET_PTR()s
2013-11-27 20:30:35 +04:00
Igor Wiedler
611da37617
use ZVAL_ZVAL to init ZVAL from ZVAL
2013-11-09 13:48:23 -05:00
Igor Wiedler
eb063e0075
Merge remote-tracking branch 'lgnome/use-function' into use-function
...
* lgnome/use-function:
Only check user functions for filenames.
2013-11-08 21:50:04 -05:00
Adam Harvey
cc049e6450
Only check user functions for filenames.
2013-11-08 21:49:05 -05:00
Igor Wiedler
719db1a7b2
Merge pull request #4 from LawnGnome/use-function
...
FIX ALL THE THINGS
2013-11-08 18:39:29 -08:00
Adam Harvey
da553a8166
Fix constant resolution.
2013-11-08 21:37:38 -05:00
Adam Harvey
95675dfba9
Remove now unused function_filenames struct.
2013-11-08 21:32:09 -05:00
Adam Harvey
1ea01f55db
Look in the function_table instead of function_filenames for actually declared
...
functions.
2013-11-08 21:29:23 -05:00
Adam Harvey
9711c58bc4
Stop PHP from modifying the lowercase function name in place.
2013-11-08 20:26:46 -05:00
Igor Wiedler
24e0b99103
Merge remote-tracking branch 'upstream/PHP-5.6' into use-function
...
* upstream/PHP-5.6: (399 commits)
Fixed issue #115 (path issue when using phar). Fixed issue #149 (Phar mount points not working with OPcache enabled).
Added tests for PHAR/OPCahce incompatibilities
Update NEWS
Fixed bug #65947 (basename is no more working after fgetcsv in certain situation)
Update NEWS
Fixed Bug #66043 (Segfault calling bind_param() on mysqli)
NEWS entry
NEWS entry
Fix bug #65946 - pdo_sql_parser.c permanently converts values bound to strings
bump API versions
Add a couple more test cases to parse_url() tests
fix missing change from 'tcp_socket' to the more common 'server'
fix many parallel test issues
Cleanup temp test file
Revert "Fixed issue #115 (path issue when using phar)."
Update LiteSpeed SAPI code to V6.4
Fixed typo in Makefile.frag
updated NEWS
Remove outdate codes, make it clearer, although just a bit..
Update NEWS
...
Conflicts:
Zend/zend_compile.h
2013-11-08 19:14:58 -05:00
Dmitry Stogov
9647c61dc1
Constant expressions refactoring
2013-11-06 22:21:07 +04:00