]>
granicus.if.org Git - php/log
Nikita Popov [Thu, 26 Jun 2014 14:56:50 +0000 (16:56 +0200)]
Compile const refs to CONST
Nikita Popov [Thu, 26 Jun 2014 14:35:30 +0000 (16:35 +0200)]
Compile class const refs to CONST zval
Nikita Popov [Thu, 26 Jun 2014 14:03:15 +0000 (16:03 +0200)]
Add compilation state for static scalars
Nikita Popov [Thu, 26 Jun 2014 12:03:31 +0000 (14:03 +0200)]
Remove static_scalar_base
Nikita Popov [Thu, 26 Jun 2014 12:00:20 +0000 (14:00 +0200)]
Handle trait __CLASS__ in parser
Nikita Popov [Thu, 26 Jun 2014 11:16:31 +0000 (13:16 +0200)]
Bring static scalar arrays in line
Nikita Popov [Thu, 26 Jun 2014 11:00:13 +0000 (13:00 +0200)]
Bring static scalar AST more in line with normal AST
Nikita Popov [Thu, 26 Jun 2014 10:43:20 +0000 (12:43 +0200)]
Const eval unary pm (as previously)
Nikita Popov [Mon, 23 Jun 2014 19:30:57 +0000 (21:30 +0200)]
Implement constant expression folding as a separate pass
Nikita Popov [Sun, 22 Jun 2014 13:57:44 +0000 (15:57 +0200)]
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?
Nikita Popov [Sat, 21 Jun 2014 18:11:31 +0000 (20:11 +0200)]
Move T_STRING_VARNAME handling
Nikita Popov [Sat, 21 Jun 2014 18:03:29 +0000 (20:03 +0200)]
Support string interpolation
Nikita Popov [Sat, 21 Jun 2014 17:26:17 +0000 (19:26 +0200)]
zend_ast_dynamic_ast returns new node
Nikita Popov [Sat, 21 Jun 2014 16:44:16 +0000 (18:44 +0200)]
Remove dead code
Nikita Popov [Thu, 19 Jun 2014 11:57:29 +0000 (13:57 +0200)]
AST stage 2.4
Nikita Popov [Thu, 19 Jun 2014 11:44:17 +0000 (13:44 +0200)]
Add ability to specify additional attr in AST
Nikita Popov [Thu, 19 Jun 2014 11:08:21 +0000 (13:08 +0200)]
Make ast->children a uint
Future optimization: only use uint for dynamic lists and use a
uchar or even an introspection function to get the child count.
Nikita Popov [Sat, 14 Jun 2014 19:59:44 +0000 (21:59 +0200)]
Remove dead code
Nikita Popov [Wed, 18 Jun 2014 20:32:08 +0000 (22:32 +0200)]
Support yield without parens
for now => is lowest-prec right-assoc
Nikita Popov [Sat, 14 Jun 2014 16:30:18 +0000 (18:30 +0200)]
AST stage 1.9
Expressions (mostly) use the AST
Nikita Popov [Sat, 7 Jun 2014 11:06:53 +0000 (13:06 +0200)]
AST-based compiler: Stage 1
Nikita Popov [Fri, 6 Jun 2014 20:35:21 +0000 (22:35 +0200)]
Remove (&ast->u.child)[i] weirdness
Nikita Popov [Fri, 6 Jun 2014 15:05:14 +0000 (17:05 +0200)]
Accept static member fetch in new variable (BC)
Nikita Popov [Wed, 4 Jun 2014 15:15:16 +0000 (17:15 +0200)]
Allow only simple variables with global keyword
Nikita Popov [Sat, 31 May 2014 19:00:11 +0000 (21:00 +0200)]
Merge and rename to member_name
Nikita Popov [Sat, 31 May 2014 18:58:44 +0000 (20:58 +0200)]
Remove duplication
Nikita Popov [Sat, 31 May 2014 18:15:55 +0000 (20:15 +0200)]
Handle FUNC_ARG fetches on temporaries
Nikita Popov [Sat, 31 May 2014 18:05:03 +0000 (20:05 +0200)]
Support isset() on temporaries
Nikita Popov [Sat, 31 May 2014 17:41:39 +0000 (19:41 +0200)]
Forbid writing to temporary expressions
Nikita Popov [Sat, 31 May 2014 16:18:20 +0000 (18:18 +0200)]
Add another static member access test
Nikita Popov [Sat, 31 May 2014 15:51:22 +0000 (17:51 +0200)]
Properly handle property read on const/tmp
Nikita Popov [Sat, 31 May 2014 15:36:22 +0000 (17:36 +0200)]
Property handle calls on [] and '' consts/tmps
Nikita Popov [Sat, 31 May 2014 15:18:37 +0000 (17:18 +0200)]
Support directly calling closure
Nikita Popov [Sat, 31 May 2014 15:02:48 +0000 (17:02 +0200)]
Fix previous commit
Nikita Popov [Sat, 31 May 2014 14:44:53 +0000 (16:44 +0200)]
Introduce dereferencable_scalar to simplify future additions
Nikita Popov [Sat, 31 May 2014 14:33:52 +0000 (16:33 +0200)]
Add two initial tests
Nikita Popov [Sat, 31 May 2014 14:27:03 +0000 (16:27 +0200)]
Generalize static access syntax
Nikita Popov [Sat, 31 May 2014 14:08:38 +0000 (16:08 +0200)]
Remove now unnecessary code in begin_method_call
Nikita Popov [Sat, 31 May 2014 13:59:54 +0000 (15:59 +0200)]
Remove object_stack (mostly)
Nikita Popov [Fri, 30 May 2014 22:48:06 +0000 (00:48 +0200)]
Update another test
Nikita Popov [Fri, 30 May 2014 22:40:32 +0000 (00:40 +0200)]
Update two tests with new semantics
Nikita Popov [Fri, 30 May 2014 22:37:03 +0000 (00:37 +0200)]
Allow arrays + object access for new expressions
Nikita Popov [Fri, 30 May 2014 22:18:50 +0000 (00:18 +0200)]
Integrate combined scalar as dereferencable
Nikita Popov [Fri, 30 May 2014 22:09:11 +0000 (00:09 +0200)]
Generalize expression dereferencing
Nikita Popov [Fri, 30 May 2014 22:02:51 +0000 (00:02 +0200)]
Minor cleanup
Nikita Popov [Fri, 30 May 2014 21:51:54 +0000 (23:51 +0200)]
Cleanup old grammar rules
Nikita Popov [Fri, 30 May 2014 21:44:30 +0000 (23:44 +0200)]
Reintroduce new expression dereferencing
Nikita Popov [Fri, 30 May 2014 21:36:30 +0000 (23:36 +0200)]
Remove reference_variable indirection
Nikita Popov [Fri, 30 May 2014 21:30:37 +0000 (23:30 +0200)]
Make function calls directly callable
Nikita Popov [Fri, 30 May 2014 20:53:30 +0000 (22:53 +0200)]
Recursive definition for object proprety fetches
Nikita Popov [Fri, 30 May 2014 20:33:03 +0000 (22:33 +0200)]
LTR static member access
Nikita Popov [Fri, 30 May 2014 20:03:24 +0000 (22:03 +0200)]
Use recursion for property fetches
Nikita Popov [Fri, 30 May 2014 19:14:18 +0000 (21:14 +0200)]
Get rid of base_variable_with_function_calls
Nikita Popov [Fri, 30 May 2014 19:11:25 +0000 (21:11 +0200)]
Temporarily disable complex variables in new expressions
Nikita Popov [Fri, 30 May 2014 14:31:10 +0000 (16:31 +0200)]
Change precedence of $ operator
$$foo['bar'] is now interpreted as ${$foo}['bar'] rather than
${$foo['bar']}.
Dmitry Stogov [Fri, 30 May 2014 10:40:19 +0000 (14:40 +0400)]
Improved conditions order
Dmitry Stogov [Fri, 30 May 2014 07:13:19 +0000 (11:13 +0400)]
Merge branch 'phpng' of git.php.net:php-src into phpng
* 'phpng' of git.php.net:php-src:
typo
Revert "Fix ArrayObject with immutable array"
Fix ArrayObject with immutable array
Dmitry Stogov [Fri, 30 May 2014 07:12:24 +0000 (11:12 +0400)]
Avoid useless duplication of immutable arrays
Dmitry Stogov [Fri, 30 May 2014 07:12:03 +0000 (11:12 +0400)]
Avoid in-place modification
Xinchen Hui [Fri, 30 May 2014 06:56:50 +0000 (14:56 +0800)]
typo
Nikita Popov [Thu, 29 May 2014 19:49:54 +0000 (21:49 +0200)]
Revert "Fix ArrayObject with immutable array"
This reverts commit
9c85aa0489671e6cec43406161c558567e5b7336 .
Nikita Popov [Thu, 29 May 2014 19:19:49 +0000 (21:19 +0200)]
Fix ArrayObject with immutable array
Dmitry Stogov [Thu, 29 May 2014 14:21:56 +0000 (18:21 +0400)]
Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.
Nikita Popov [Thu, 29 May 2014 10:53:32 +0000 (12:53 +0200)]
Fix length reset in JSON parser
Nikita Popov [Thu, 29 May 2014 10:51:03 +0000 (12:51 +0200)]
Fix $http_response_header creation
Nikita Popov [Thu, 29 May 2014 10:47:40 +0000 (12:47 +0200)]
Improve gdb ht and zval dumps
Nikita Popov [Thu, 29 May 2014 09:17:33 +0000 (11:17 +0200)]
Improve class constant fetch fix
Dereference the cached constant for Test::TEST as well (and not just
self::TEST).
Also improve the phpt file to test this case as well - previously
this only manifested with opcache enabled, due to literal sharing.
Additionally the Z_TYPE_P != IS_REFERENCE assertion is now moved
into the TMP_VAR fetching code (as it applies to more than just
property assignments.)
Nikita Popov [Wed, 28 May 2014 22:02:13 +0000 (00:02 +0200)]
Fix class constant fetching
If a class is extended after the constant fetch has been cached
the cached value will be turned into a reference. On the next
fetch the polymorphic cache will return this reference, which
will be directly returned. The object assignment code then
dereferences this result and performs a shallow copy, which is
invalid for references. This subsequently leads to the constant
value being prematurely freed.
This is fixed by dereferencing the value returned from the
polymorphic cache. Furthermore the incorrect dereference from
in the object assignment code is replaced with an assertion that
we're dealing with a non-reference, so ensure that this kind of
problem cannot go unnoticed in the future.
Nikita Popov [Wed, 28 May 2014 20:43:53 +0000 (22:43 +0200)]
A few more fixes and improvements for gdbinit
Nikita Popov [Wed, 28 May 2014 19:32:52 +0000 (21:32 +0200)]
Initialize GC_TYPE_INFO for EG(symbol_table)
Dmitry Stogov [Wed, 28 May 2014 19:04:50 +0000 (23:04 +0400)]
Fixed conversion to phpng mistakes
Nikita Popov [Wed, 28 May 2014 16:55:51 +0000 (18:55 +0200)]
Use zend_long_to_str in wddx
Nikita Popov [Wed, 28 May 2014 16:45:00 +0000 (18:45 +0200)]
Use zval_get_string in implode
Also get rid of separate case for IS_OBJECT - this is already
handled by the default branch.
Nikita Popov [Wed, 28 May 2014 16:39:41 +0000 (18:39 +0200)]
Use smart_str_append_long in implode
Nikita Popov [Wed, 28 May 2014 16:34:35 +0000 (18:34 +0200)]
Use zend_long_to_str in curl
Also use STR_ADDREF instead of maintaining a numeric_key flag.
Nikita Popov [Wed, 28 May 2014 16:26:11 +0000 (18:26 +0200)]
Use zend_long_to_str in pcntl
Nikita Popov [Tue, 27 May 2014 15:19:12 +0000 (17:19 +0200)]
Clamb gdb string output at 256 chars
Dmitry Stogov [Wed, 28 May 2014 14:45:01 +0000 (18:45 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 14:12:52 +0000 (18:12 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:49:31 +0000 (17:49 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:43:11 +0000 (17:43 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:30:05 +0000 (17:30 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 12:56:41 +0000 (16:56 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 10:09:42 +0000 (14:09 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 09:00:33 +0000 (13:00 +0400)]
Use extended iteration API to avoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 08:39:27 +0000 (12:39 +0400)]
Use extended iteration API to avoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 08:34:08 +0000 (12:34 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 08:15:36 +0000 (12:15 +0400)]
Avoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 08:15:16 +0000 (12:15 +0400)]
Use new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 06:15:15 +0000 (10:15 +0400)]
Avoid in-place modification
Dmitry Stogov [Tue, 27 May 2014 22:16:21 +0000 (02:16 +0400)]
Reference counter in phpng may have a bit different meaning and must not be the same
Dmitry Stogov [Tue, 27 May 2014 22:13:45 +0000 (02:13 +0400)]
Use new zend_hash API
Dmitry Stogov [Tue, 27 May 2014 21:29:37 +0000 (01:29 +0400)]
Avoid in-place conversion
Dmitry Stogov [Tue, 27 May 2014 21:28:38 +0000 (01:28 +0400)]
Fixed refcounting
Matteo Beccati [Tue, 27 May 2014 09:54:34 +0000 (11:54 +0200)]
Escape non-printable characters in the junit XML output
XML doesn't allow most of the characters < 0x20 and binary output
breaks XML parsers. Such characters are not allowed as entities
either, so the generated entities are escaped in order to be printed
as text.
Xinchen Hui [Tue, 27 May 2014 09:48:47 +0000 (17:48 +0800)]
Merge branch 'phpng' of https://git.php.net/repository/php-src into phpng
Xinchen Hui [Tue, 27 May 2014 09:46:01 +0000 (17:46 +0800)]
retval's initializing is already taken by zend_call_function
Matteo Beccati [Tue, 27 May 2014 09:04:48 +0000 (11:04 +0200)]
Fixed broken XML junit output due to escaping of CDATA sections
I've removed CDATA and used htmlspecialchars as the output might not be UTF-8 safe, as pointed out by ircmaxell in
26b37f1792dfaf9b0b30f81e492c8f68b9ece571
Xinchen Hui [Tue, 27 May 2014 03:48:25 +0000 (11:48 +0800)]
Fixed bug #47407
Dmitry Stogov [Mon, 26 May 2014 20:38:58 +0000 (00:38 +0400)]
Use new zend_hash API