Commit Graph

9120 Commits

Author SHA1 Message Date
Andrea Faulds
3f468cd1c7 Removed unused variable 2014-08-17 20:21:12 +01:00
Andrea Faulds
6d187d53ae Fixed and cleaned up implementaton of Closure::call() for phpng 2014-08-17 20:20:23 +01:00
Anatol Belski
f2182ab845 some more pure naming replacements 2014-08-17 21:16:27 +02:00
Anatol Belski
025a7c304e fix THIS_HASHVAL 2014-08-17 21:04:52 +02:00
Nikita Popov
1bab755a35 Fix GC when opcache is in use 2014-08-17 19:15:54 +02:00
Andrea Faulds
e35c8ae13e Merge branch 'master' into Closure_apply
Conflicts:
	Zend/zend_closures.c
	Zend/zend_closures.h
	Zend/zend_execute_API.c
	Zend/zend_vm_def.h
2014-08-17 17:20:02 +01:00
Anatol Belski
90d6f60bc1 mostly fixes to spl, but also some other 2014-08-17 13:31:39 +02:00
Nikita Popov
84e757d22d Drop znode extended attribute and unused union members 2014-08-17 00:37:45 +02:00
Nikita Popov
904a83a137 Merge remote-tracking branch 'php-src/master' into ast
Conflicts:
	ext/opcache/Optimizer/optimize_func_calls.c
2014-08-16 22:31:13 +02:00
Nikita Popov
ee3d28ed33 Fix compile_args semantics 2014-08-16 22:29:15 +02:00
Nikita Popov
ef5f3390e7 Implement a[0] syntax from merge 2014-08-16 22:13:33 +02:00
Nikita Popov
38a173916c Fix merge 2014-08-16 22:08:02 +02:00
Nikita Popov
71675a4bf8 Merge remote-tracking branch 'php-src/phpng' into ast
Conflicts:
	Zend/zend_ast.c
	Zend/zend_compile.c
	Zend/zend_language_parser.y

Incomplete merge!
2014-08-16 21:55:08 +02:00
Anatol Belski
864172d9a4 further fixes to ext/standard and zend 2014-08-16 17:31:40 +02:00
Anatol Belski
5bb25776a0 further fixes on core 2014-08-16 15:34:04 +02:00
Anatol Belski
1169de3e61 fix some cases with fast zpp 2014-08-16 14:00:02 +02:00
Anatol Belski
b7e7a89541 several fixes -
- param parsing Z_PARAM_STR vs Z_PARAM_STRING
- some functions for new params
- etc
2014-08-16 12:55:13 +02:00
Anatol Belski
cb25136f4e fix macros in the 5 basic extensions 2014-08-16 11:37:14 +02:00
Anatol Belski
8ee2a4a9b5 first shot on merging the core fro the int64 branch 2014-08-16 11:16:11 +02:00
Nikita Popov
9cfbf333b0 Fix list() = string refcounting 2014-08-15 22:36:22 +02:00
Nikita Popov
919cb32f72 Fix memory usage test
Can't use peak memory usage because memory usage during compilation
is now larger
2014-08-15 17:44:15 +02:00
Nikita Popov
471f13b75e Fix s&r mistake 2014-08-15 17:27:57 +02:00
Nikita Popov
c4460dd162 Restore old evaluation order
${a()}[b()][c()] = d() will now evaluate in order a, b, c, d.
2014-08-15 17:10:06 +02:00
Dmitry Stogov
b01b971ec0 Parameters with duplicate names are not allowed anymore in PHP7. 2014-08-15 11:46:04 +04:00
Dmitry Stogov
0d57a7bf34 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Update Version Number :)
  Fixed initializing
  Unused variable

Conflicts:
	main/php_version.h
2014-08-15 11:13:42 +04:00
Dmitry Stogov
d9f3eac12f Bump version to 7.0.0-dev 2014-08-15 11:10:41 +04:00
Xinchen Hui
d7f12b9b9c Fixed initializing 2014-08-15 13:52:52 +08:00
Dmitry Stogov
6463bc5b55 Fixed mode 2014-08-14 23:54:32 +04:00
Dmitry Stogov
c78a1734c2 Fixed compilation warnings 2014-08-14 23:53:27 +04:00
Dmitry Stogov
773d80c6df Fixed support for references 2014-08-14 22:44:25 +04:00
Dmitry Stogov
e7ffdb2654 Fixed support for references 2014-08-14 21:54:57 +04:00
Dmitry Stogov
05ca575bbb Fixed reference support (references to references are not allowed) 2014-08-14 17:00:01 +04:00
Dmitry Stogov
e430948581 Fixed reference handling 2014-08-14 15:07:39 +04:00
Dmitry Stogov
2ece977c80 Fixed conversion of empty packed array into hash 2014-08-14 13:44:37 +04:00
Dmitry Stogov
25bda5ae3c Fixed assignment of reference to itself 2014-08-14 12:01:28 +04:00
Xinchen Hui
c749fe2067 cleanup 2014-08-14 12:15:24 +08:00
Dmitry Stogov
8013a27ad9 Implemented ext/com_dotnet support for phpng 2014-08-11 18:37:26 +04:00
Dmitry Stogov
0ae305e62d Fixed compilation warnings about unused labels 2014-08-11 10:17:06 +04:00
krakjoe
1d01e2334c fix incorrect cast of comparison function and signature of function 2014-08-11 06:47:09 +01:00
krakjoe
dc70139d85 update zend_make_printable_zval to take TSRM context 2014-08-11 06:09:46 +01:00
krakjoe
4513475a41 fix ZTS build 2014-08-10 09:31:02 +01:00
Dmitry Stogov
4a3e501fb3 cleanup 2014-08-08 13:47:34 +04:00
Dmitry Stogov
50a76860bd Fixed GC for inner-loops (ext/standard/tests/array/compact_variation1.phpt).
Fixed bug #63734.
2014-08-07 18:50:03 +04:00
Dmitry Stogov
414762fc12 Fixed GC (Zend/tests/bug63635.phpt) 2014-08-06 15:31:07 +04:00
Dmitry Stogov
e677e8cc87 Fixed ext/wddx/tests/bug48562.phpt 2014-08-05 23:48:27 +04:00
Dmitry Stogov
ce1af1e47b Fixed bug #67725 (now we create immutable arrays only in SHM) 2014-08-05 15:38:43 +04:00
Dmitry Stogov
7301994c28 Merge branch 'master' into phpng
* master: (46 commits)
  PHP_INT_MIN and _MAX tests
  NEWS and UPGRADING
  Added PHP_INT_MIN
  Fix wrong lenght size
  Bug #51096 - Remove unnecessary ? for first/last day of
  Moved streams related functions to xp_ssl.c
  Remove duplicate NEWS
  Update NEWS
  Update NEWS
  Update NEWS
  BFN
  BFN
  Fixed bug #67715 (php-milter does not build and crashes randomly).
  We need to turn off any strict mode here for this warning to show up
  Disable restrictions regarding arrays in constants at run-time. For the discussion around it, see the thread on the mailing list: http://www.mail-archive.com/internals@lists.php.net/msg68245.html
  Revert "Fix bug #67064 in a BC safe way"
  Updated NEWS for #67693
  Updated NEWS for #67693
  Fixed bug #67693 - incorrect push to the empty array
  add missing entry to NEWS
  ...

Conflicts:
	Zend/tests/errmsg_040.phpt
	Zend/tests/ns_059.phpt
	Zend/zend_language_parser.y
	Zend/zend_vm_def.h
	ext/openssl/openssl.c
	ext/reflection/php_reflection.c
	ext/session/session.c
	ext/spl/spl_directory.c
	ext/spl/spl_iterators.c
	ext/sqlite3/sqlite3.c
	ext/standard/array.c
2014-08-04 13:56:27 +04:00
Andrea Faulds
668d0683cd Fixed closure::bindTo bad args test 2014-08-03 14:48:14 +01:00
Andrea Faulds
a748f454a8 Merge branch 'master' into Closure_apply 2014-08-01 17:02:11 +01:00
Dmitry Stogov
c201ba8fff execute_data->return_value should be initialized when call internal constructors 2014-07-31 10:51:49 +04:00
Dmitry Stogov
f693cf8e66 EA must be initialized 2014-07-31 10:50:27 +04:00
Nikita Popov
6cf89612db Support doc comments for propreties 2014-07-30 19:12:48 +02:00
Nikita Popov
8e9a840a53 Mark some small functions as inline 2014-07-30 18:27:41 +02:00
Bob Weinand
3c0adf2dcd Merge branch 'PHP-5.6' 2014-07-30 18:07:01 +02:00
Bob Weinand
d5ddd2dbb2 Disable restrictions regarding arrays in constants at run-time.
For the discussion around it, see the thread on the mailing list:
http://www.mail-archive.com/internals@lists.php.net/msg68245.html
2014-07-30 17:57:07 +02:00
Nikita Popov
ad5677e4cd Use ZVAL_COPY until proven wrong 2014-07-30 17:46:00 +02:00
Nikita Popov
0cd9cffb51 Rename _tmp_compile_const_expr
Also remove recursive immutization of arrays there, because this
is already handled when the array is created.
2014-07-30 17:44:43 +02:00
Nikita Popov
044e48d0b1 Weaker recursion during pre-evaluation 2014-07-30 17:29:59 +02:00
Nikita Popov
3630f03f8f Immutable arrays for the recursive case as well 2014-07-30 13:43:04 +02:00
Andrea Faulds
85bf8b4ff1 Fixed unbound scoped closure edge cases and added tests for them 2014-07-30 03:21:44 +01:00
Andrea Faulds
f65bdda469 Rename ::apply to ::call for the sake of JS consistency 2014-07-30 01:26:53 +01:00
Nikita Popov
8cab06f09b Immutablize constant leaf arrays
Still haven't entirely figured out how to elegantly handle the
recursive variant.
2014-07-29 23:31:49 +02:00
Nikita Popov
6a13a22f9d Fix segfault when class name evaluates to IS_CONST 2014-07-29 23:17:54 +02:00
Nikita Popov
763eb13d6e Formatting 2014-07-29 21:00:19 +02:00
Andrea Faulds
d67ec70a4c Added test for unbound_scoped 2014-07-29 19:08:21 +01:00
Nikita Popov
438b1e3d42 build_runtime_definition_key returns zend_string* 2014-07-29 20:01:11 +02:00
Andrea Faulds
ded5b3fda4 Added optional bool param $unbound_scoped to Closure::bind and ::bindTo 2014-07-29 18:59:36 +01:00
Dmitry Stogov
70fb0e7519 Fixed incinsitency in passing arguments by reference to call_user_func() 2014-07-29 20:27:48 +04:00
Dmitry Stogov
507e3b9193 fixed support for references 2014-07-29 15:29:22 +04:00
Dmitry Stogov
cad6408a3f Fixed Zend/tests/bug54265.phpt 2014-07-29 14:34:43 +04:00
Dmitry Stogov
046db57049 Fixed incorrect destruction (it might lead to crash) 2014-07-29 12:13:47 +04:00
Dmitry Stogov
21dec5f511 ext/interbase support (incomplete) 2014-07-29 10:15:01 +04:00
Andrea Faulds
167128d854 Implemented Closure::apply 2014-07-29 02:36:17 +01:00
Nikita Popov
18f0680779 Change current_namespace to a zend_string* 2014-07-28 22:38:26 +02:00
Nikita Popov
047a994830 For filenames a pointer comparison is sufficient 2014-07-28 22:30:24 +02:00
Nikita Popov
e9fb72c8ea Rename to zend_str_equals_literal and turn into a macro
So we can make of sizeof rather than strlen
2014-07-28 22:20:43 +02:00
Nikita Popov
c8d3b5909e zend_str_equals_str(_ci) 2014-07-28 22:16:24 +02:00
Nikita Popov
8c724c205d Use zend_str_equals more often 2014-07-28 22:07:11 +02:00
Nikita Popov
7889050685 Add zend_ prefix for emit_op(_tmp) 2014-07-28 22:03:16 +02:00
Nikita Popov
cf7f0c412d zend_ast_create determined child count automatically 2014-07-28 18:18:47 +02:00
Nikita Popov
39d480e471 Remove zend_ast_create_unary etc 2014-07-28 17:59:12 +02:00
Nikita Popov
e403b27a40 Remove old macro/function 2014-07-28 15:55:30 +02:00
Nikita Popov
4c05bec536 Remove some unused compiler globals 2014-07-28 15:52:18 +02:00
Nikita Popov
31a886c346 More dead code 2014-07-28 15:43:39 +02:00
Nikita Popov
55f53e29a0 zend_get_class_fetch_type works on zend_string 2014-07-28 15:39:43 +02:00
Nikita Popov
50aefcf075 Remove duplicate code 2014-07-28 15:29:56 +02:00
Nikita Popov
2306655214 We don't pay per newline... 2014-07-28 15:26:30 +02:00
Nikita Popov
38c4125c2e Cleanup dead/duplicate code 2014-07-28 15:23:00 +02:00
Nikita Popov
a2925df653 Use zend_ast_get_str where possible 2014-07-28 15:16:35 +02:00
Nikita Popov
1d79fb308b Add zend_ast_list* variant to parser stack element 2014-07-28 15:10:58 +02:00
Nikita Popov
f29b84ab46 Minor cleanups in AST code 2014-07-28 14:51:08 +02:00
Nikita Popov
187ff135f2 zend_do_op_data -> zend_emit_op_data 2014-07-28 12:55:37 +02:00
Nikita Popov
d3cb239305 Use separate node type for lists
This saves storing the children count for normal ast nodes.
2014-07-28 12:06:57 +02:00
Nikita Popov
21eb6807c9 Store lineno for zval ast nodes more efficiently 2014-07-27 13:25:32 +02:00
Nikita Popov
d0943edf49 Remove last EA usages
Still retaining the EA field in znode as it is used by opcache
2014-07-27 12:49:26 +02:00
Nikita Popov
bea85f58bb Use more specific parser stack nodes 2014-07-27 12:46:54 +02:00
Nikita Popov
a74515e240 Separate class type and start lineno 2014-07-27 12:37:28 +02:00
Nikita Popov
0b86b1c8e5 Store doc comments in separate stack entry from start lineno 2014-07-27 12:31:17 +02:00
Nikita Popov
1ea9a2d934 Cleanup member modifier code 2014-07-27 12:19:01 +02:00
Nikita Popov
df42793cd2 Create namespace_name via AST 2014-07-26 21:53:50 +02:00
Nikita Popov
c07907121e zend_do_return -> zend_emit_final_return 2014-07-26 21:32:48 +02:00
Nikita Popov
4ca4b423be Make lexer return AST nodes 2014-07-26 21:22:54 +02:00
Nikita Popov
8c8839c2a1 Remove DUMMY_STRINGL
What is that for?
2014-07-26 19:03:36 +02:00
Nikita Popov
a51e00a8cd Add functions for create str/long ast directly 2014-07-26 19:01:14 +02:00
Nikita Popov
9344a95ac9 Remove dead code 2014-07-26 18:51:28 +02:00
Nikita Popov
17234d7895 Replicate old linenos for class binding 2014-07-26 18:36:57 +02:00
Nikita Popov
1bdc433259 Fix bugs 2014-07-26 18:23:46 +02:00
Nikita Popov
edd9fcab1e Fix leaks
Must find a good way to handle constant expressions...
2014-07-26 18:08:31 +02:00
Nikita Popov
d46f67a3a7 Use arena allocator (currently leaky!) 2014-07-26 17:45:45 +02:00
Nikita Popov
1644bf01da Resolve futher interning issues
Not sure if this is the right way to do it ...
2014-07-24 21:35:57 +02:00
Nikita Popov
c777427c08 Fix interning bug 2014-07-24 21:07:37 +02:00
Nikita Popov
689891c2b2 Expose ast via CG(ast) 2014-07-24 20:51:01 +02:00
Nikita Popov
24ca6bb928 Add call_user_func optimization 2014-07-24 20:35:18 +02:00
Nikita Popov
cec747234d Implement call_user_func_array optimization 2014-07-24 19:22:46 +02:00
Dmitry Stogov
466816d4ef Fixed string destruction (class_name might be reused and stored somewhere in __autoload()). 2014-07-24 14:11:21 +04:00
Dmitry Stogov
7c6477ce37 Merge branch 'master' into phpng
* master:
  Removed second zval_copy_ctor()
  Fixed crash on self-referencing constant expression (part of a constant AST)
  Fixed support for constant arrays in context of "const" statement (Zend/tests/constant_expressions_arrays.phpt failed when opcache.protect_memort was set)

Conflicts:
	Zend/zend_ast.c
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
	ext/reflection/php_reflection.c
2014-07-24 01:54:21 +04:00
Dmitry Stogov
8fb7c4dc08 Merge branch 'PHP-5.6'
* PHP-5.6:
  Removed second zval_copy_ctor()
2014-07-24 01:16:28 +04:00
Dmitry Stogov
ea1d5dcacb Removed second zval_copy_ctor() 2014-07-24 01:16:00 +04:00
Dmitry Stogov
39740a33e5 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed crash on self-referencing constant expression (part of a constant AST)
2014-07-24 00:59:42 +04:00
Dmitry Stogov
d909b6330e Fixed crash on self-referencing constant expression (part of a constant AST) 2014-07-24 00:37:15 +04:00
Dmitry Stogov
4c37e69957 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed support for constant arrays in context of "const" statement (Zend/tests/constant_expressions_arrays.phpt failed when opcache.protect_memort was set)
2014-07-23 22:49:46 +04:00
Dmitry Stogov
c49a06168e Fixed support for constant arrays in context of "const" statement (Zend/tests/constant_expressions_arrays.phpt failed when opcache.protect_memort was set) 2014-07-23 22:47:58 +04:00
Nikita Popov
0356e07a05 Implement ZEND_DEFINED optimization 2014-07-22 23:30:57 +02:00
Nikita Popov
7892b89465 Implement ZEND_TYPE_CHECK optimization 2014-07-22 23:15:47 +02:00
Nikita Popov
2ee490ba3a Implement ZEND_STRLEN optimization 2014-07-22 22:57:38 +02:00
Nikita Popov
f21d8bc23b CT bind args before unpack 2014-07-22 20:41:45 +02:00
Nikita Popov
1859674061 Port ZEND_BIND_GLOBAL optimization 2014-07-22 20:24:47 +02:00
Nikita Popov
d4d4b69e72 Merge branch 'phpng' into ast
Conflicts:
	Zend/zend_compile.c
	Zend/zend_compile.h
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h

Some of dmitry's optimizations are not merged in yet!
2014-07-22 18:24:58 +02:00
Dmitry Stogov
f163f625e8 fixed "isset($array[true]);" 2014-07-22 18:40:29 +04:00
Dmitry Stogov
f81956cb3e Fixed GC bug 2014-07-22 18:39:58 +04:00
Nikita Popov
43b2973ee7 Remove declare_stack 2014-07-22 16:18:13 +02:00
Nikita Popov
a7fc995fa2 Dead code 2014-07-22 16:11:54 +02:00
Nikita Popov
b9be66ebf2 Implement declare() 2014-07-22 16:11:19 +02:00
Nikita Popov
2653b8b5dc Handle __halt_compiler() 2014-07-22 15:50:23 +02:00
Nikita Popov
3becdb3376 __halt_compiler() without haling compiler 2014-07-22 14:25:19 +02:00
Nikita Popov
de2f132f33 Add NS error checks
Those can probably be implemented in a better way now...
2014-07-22 14:08:52 +02:00
Nikita Popov
776800b0a0 Discard NS doc comments 2014-07-22 13:54:54 +02:00
Dmitry Stogov
f2a2fccece Merge branch 'master' into phpng
* master:
  fix nmake snap when ext name is different in target dll
  force atoll macro usage on windows
  Enable $ replacement in exif, ldap, pdo_pgsql and tidy
  See bug #67635
  NEWS
  NEWS
  improve previous, add message during configure
  Fixed bug #67635 php links to systemd libraries without using pkg-config
  Improve fix for #66608
  Fixed segfault with empty break
  New added opcodes don't need to be resloved
  Update NEWS
  Update NEWS
  Update NEWS
  Fixed bug #66827 Session raises E_NOTICE when session name variable is array
  implemented copy libs of core exts in phpize mode
  fix copy the ext dll into the prefix path in phpize mode
  fix default prefix in phpize mode
  fix file with zero size usage in phpize mode

Conflicts:
	Zend/zend_opcode.c
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
	ext/session/session.c
2014-07-22 15:42:17 +04:00
Nikita Popov
130b6340d2 Code cleanup 2014-07-22 13:30:26 +02:00
Nikita Popov
cc0bef6636 Fix namespace\, maybe 2014-07-22 13:25:47 +02:00
Nikita Popov
9c69c41a64 Port top level stmt
Problem: namespace\foo no longer works :/
2014-07-22 13:02:51 +02:00
Nikita Popov
8a2ff6b53d Partial NS port (semicolon, no errors) 2014-07-22 12:45:44 +02:00
Nikita Popov
b6c9eb21d4 Port constant declaration 2014-07-22 11:55:07 +02:00
Dmitry Stogov
821b8bbb39 Fixed support for executor override 2014-07-22 11:24:16 +04:00
Dmitry Stogov
ea17b018d8 Fixed dtrace support 2014-07-22 11:12:49 +04:00
Nikita Popov
64151ec37a Port function/const use 2014-07-21 23:41:11 +02:00
Nikita Popov
573d25b5e7 Drop dead code 2014-07-21 22:58:38 +02:00
Nikita Popov
37ac1b96ed Port use statement 2014-07-21 22:49:31 +02:00
Nikita Popov
c60cd3e8ef Remove __clone test (not reason it should error) 2014-07-21 18:47:03 +02:00
Nikita Popov
94d5d7d01b Remove one usage of implementing_class 2014-07-21 18:25:46 +02:00