]> granicus.if.org Git - php/log
php
11 years agoBring static scalar arrays in line
Nikita Popov [Thu, 26 Jun 2014 11:16:31 +0000 (13:16 +0200)]
Bring static scalar arrays in line

11 years agoBring static scalar AST more in line with normal AST
Nikita Popov [Thu, 26 Jun 2014 11:00:13 +0000 (13:00 +0200)]
Bring static scalar AST more in line with normal AST

11 years agoConst eval unary pm (as previously)
Nikita Popov [Thu, 26 Jun 2014 10:43:20 +0000 (12:43 +0200)]
Const eval unary pm (as previously)

11 years agoImplement constant expression folding as a separate pass
Nikita Popov [Mon, 23 Jun 2014 19:30:57 +0000 (21:30 +0200)]
Implement constant expression folding as a separate pass

11 years agoImplement CT eval of binary expressions
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?

11 years agoMove T_STRING_VARNAME handling
Nikita Popov [Sat, 21 Jun 2014 18:11:31 +0000 (20:11 +0200)]
Move T_STRING_VARNAME handling

11 years agoSupport string interpolation
Nikita Popov [Sat, 21 Jun 2014 18:03:29 +0000 (20:03 +0200)]
Support string interpolation

11 years agozend_ast_dynamic_ast returns new node
Nikita Popov [Sat, 21 Jun 2014 17:26:17 +0000 (19:26 +0200)]
zend_ast_dynamic_ast returns new node

11 years agoRemove dead code
Nikita Popov [Sat, 21 Jun 2014 16:44:16 +0000 (18:44 +0200)]
Remove dead code

11 years agoAST stage 2.4
Nikita Popov [Thu, 19 Jun 2014 11:57:29 +0000 (13:57 +0200)]
AST stage 2.4

11 years agoAdd ability to specify additional attr in AST
Nikita Popov [Thu, 19 Jun 2014 11:44:17 +0000 (13:44 +0200)]
Add ability to specify additional attr in AST

11 years agoMake ast->children a uint
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.

11 years agoRemove dead code
Nikita Popov [Sat, 14 Jun 2014 19:59:44 +0000 (21:59 +0200)]
Remove dead code

11 years agoSupport yield without parens
Nikita Popov [Wed, 18 Jun 2014 20:32:08 +0000 (22:32 +0200)]
Support yield without parens

for now => is lowest-prec right-assoc

11 years agoAST stage 1.9
Nikita Popov [Sat, 14 Jun 2014 16:30:18 +0000 (18:30 +0200)]
AST stage 1.9

Expressions (mostly) use the AST

11 years agoAST-based compiler: Stage 1
Nikita Popov [Sat, 7 Jun 2014 11:06:53 +0000 (13:06 +0200)]
AST-based compiler: Stage 1

11 years agoRemove (&ast->u.child)[i] weirdness
Nikita Popov [Fri, 6 Jun 2014 20:35:21 +0000 (22:35 +0200)]
Remove (&ast->u.child)[i] weirdness

11 years agoAccept static member fetch in new variable (BC)
Nikita Popov [Fri, 6 Jun 2014 15:05:14 +0000 (17:05 +0200)]
Accept static member fetch in new variable (BC)

11 years agoAllow only simple variables with global keyword
Nikita Popov [Wed, 4 Jun 2014 15:15:16 +0000 (17:15 +0200)]
Allow only simple variables with global keyword

11 years agoMerge and rename to member_name
Nikita Popov [Sat, 31 May 2014 19:00:11 +0000 (21:00 +0200)]
Merge and rename to member_name

11 years agoRemove duplication
Nikita Popov [Sat, 31 May 2014 18:58:44 +0000 (20:58 +0200)]
Remove duplication

11 years agoHandle FUNC_ARG fetches on temporaries
Nikita Popov [Sat, 31 May 2014 18:15:55 +0000 (20:15 +0200)]
Handle FUNC_ARG fetches on temporaries

11 years agoSupport isset() on temporaries
Nikita Popov [Sat, 31 May 2014 18:05:03 +0000 (20:05 +0200)]
Support isset() on temporaries

11 years agoForbid writing to temporary expressions
Nikita Popov [Sat, 31 May 2014 17:41:39 +0000 (19:41 +0200)]
Forbid writing to temporary expressions

11 years agoAdd another static member access test
Nikita Popov [Sat, 31 May 2014 16:18:20 +0000 (18:18 +0200)]
Add another static member access test

11 years agoProperly handle property read on const/tmp
Nikita Popov [Sat, 31 May 2014 15:51:22 +0000 (17:51 +0200)]
Properly handle property read on const/tmp

11 years agoProperty handle calls on [] and '' consts/tmps
Nikita Popov [Sat, 31 May 2014 15:36:22 +0000 (17:36 +0200)]
Property handle calls on [] and '' consts/tmps

11 years agoSupport directly calling closure
Nikita Popov [Sat, 31 May 2014 15:18:37 +0000 (17:18 +0200)]
Support directly calling closure

11 years agoFix previous commit
Nikita Popov [Sat, 31 May 2014 15:02:48 +0000 (17:02 +0200)]
Fix previous commit

11 years agoIntroduce dereferencable_scalar to simplify future additions
Nikita Popov [Sat, 31 May 2014 14:44:53 +0000 (16:44 +0200)]
Introduce dereferencable_scalar to simplify future additions

11 years agoAdd two initial tests
Nikita Popov [Sat, 31 May 2014 14:33:52 +0000 (16:33 +0200)]
Add two initial tests

11 years agoGeneralize static access syntax
Nikita Popov [Sat, 31 May 2014 14:27:03 +0000 (16:27 +0200)]
Generalize static access syntax

11 years agoRemove now unnecessary code in begin_method_call
Nikita Popov [Sat, 31 May 2014 14:08:38 +0000 (16:08 +0200)]
Remove now unnecessary code in begin_method_call

11 years agoRemove object_stack (mostly)
Nikita Popov [Sat, 31 May 2014 13:59:54 +0000 (15:59 +0200)]
Remove object_stack (mostly)

11 years agoUpdate another test
Nikita Popov [Fri, 30 May 2014 22:48:06 +0000 (00:48 +0200)]
Update another test

11 years agoUpdate two tests with new semantics
Nikita Popov [Fri, 30 May 2014 22:40:32 +0000 (00:40 +0200)]
Update two tests with new semantics

11 years agoAllow arrays + object access for new expressions
Nikita Popov [Fri, 30 May 2014 22:37:03 +0000 (00:37 +0200)]
Allow arrays + object access for new expressions

11 years agoIntegrate combined scalar as dereferencable
Nikita Popov [Fri, 30 May 2014 22:18:50 +0000 (00:18 +0200)]
Integrate combined scalar as dereferencable

11 years agoGeneralize expression dereferencing
Nikita Popov [Fri, 30 May 2014 22:09:11 +0000 (00:09 +0200)]
Generalize expression dereferencing

11 years agoMinor cleanup
Nikita Popov [Fri, 30 May 2014 22:02:51 +0000 (00:02 +0200)]
Minor cleanup

11 years agoCleanup old grammar rules
Nikita Popov [Fri, 30 May 2014 21:51:54 +0000 (23:51 +0200)]
Cleanup old grammar rules

11 years agoReintroduce new expression dereferencing
Nikita Popov [Fri, 30 May 2014 21:44:30 +0000 (23:44 +0200)]
Reintroduce new expression dereferencing

11 years agoRemove reference_variable indirection
Nikita Popov [Fri, 30 May 2014 21:36:30 +0000 (23:36 +0200)]
Remove reference_variable indirection

11 years agoMake function calls directly callable
Nikita Popov [Fri, 30 May 2014 21:30:37 +0000 (23:30 +0200)]
Make function calls directly callable

11 years agoRecursive definition for object proprety fetches
Nikita Popov [Fri, 30 May 2014 20:53:30 +0000 (22:53 +0200)]
Recursive definition for object proprety fetches

11 years agoLTR static member access
Nikita Popov [Fri, 30 May 2014 20:33:03 +0000 (22:33 +0200)]
LTR static member access

11 years agoUse recursion for property fetches
Nikita Popov [Fri, 30 May 2014 20:03:24 +0000 (22:03 +0200)]
Use recursion for property fetches

11 years agoGet rid of base_variable_with_function_calls
Nikita Popov [Fri, 30 May 2014 19:14:18 +0000 (21:14 +0200)]
Get rid of base_variable_with_function_calls

11 years agoTemporarily disable complex variables in new expressions
Nikita Popov [Fri, 30 May 2014 19:11:25 +0000 (21:11 +0200)]
Temporarily disable complex variables in new expressions

11 years agoChange precedence of $ operator
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']}.

11 years agoImproved conditions order
Dmitry Stogov [Fri, 30 May 2014 10:40:19 +0000 (14:40 +0400)]
Improved conditions order

11 years agoMerge branch 'phpng' of git.php.net:php-src into phpng
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

11 years agoAvoid useless duplication of immutable arrays
Dmitry Stogov [Fri, 30 May 2014 07:12:24 +0000 (11:12 +0400)]
Avoid useless duplication of immutable arrays

11 years agoAvoid in-place modification
Dmitry Stogov [Fri, 30 May 2014 07:12:03 +0000 (11:12 +0400)]
Avoid in-place modification

11 years agotypo
Xinchen Hui [Fri, 30 May 2014 06:56:50 +0000 (14:56 +0800)]
typo

11 years agoRevert "Fix ArrayObject with immutable array"
Nikita Popov [Thu, 29 May 2014 19:49:54 +0000 (21:49 +0200)]
Revert "Fix ArrayObject with immutable array"

This reverts commit 9c85aa0489671e6cec43406161c558567e5b7336.

11 years agoFix ArrayObject with immutable array
Nikita Popov [Thu, 29 May 2014 19:19:49 +0000 (21:19 +0200)]
Fix ArrayObject with immutable array

11 years agoIntroduced immutable arrays. They don't need to be copyed and may be used directly...
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.

11 years agoFix length reset in JSON parser
Nikita Popov [Thu, 29 May 2014 10:53:32 +0000 (12:53 +0200)]
Fix length reset in JSON parser

11 years agoFix $http_response_header creation
Nikita Popov [Thu, 29 May 2014 10:51:03 +0000 (12:51 +0200)]
Fix $http_response_header creation

11 years agoImprove gdb ht and zval dumps
Nikita Popov [Thu, 29 May 2014 10:47:40 +0000 (12:47 +0200)]
Improve gdb ht and zval dumps

11 years agoImprove class constant fetch fix
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.)

11 years agoFix class constant fetching
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.

11 years agoA few more fixes and improvements for gdbinit
Nikita Popov [Wed, 28 May 2014 20:43:53 +0000 (22:43 +0200)]
A few more fixes and improvements for gdbinit

11 years agoInitialize GC_TYPE_INFO for EG(symbol_table)
Nikita Popov [Wed, 28 May 2014 19:32:52 +0000 (21:32 +0200)]
Initialize GC_TYPE_INFO for EG(symbol_table)

11 years agoFixed conversion to phpng mistakes
Dmitry Stogov [Wed, 28 May 2014 19:04:50 +0000 (23:04 +0400)]
Fixed conversion to phpng mistakes

11 years agoUse zend_long_to_str in wddx
Nikita Popov [Wed, 28 May 2014 16:55:51 +0000 (18:55 +0200)]
Use zend_long_to_str in wddx

11 years agoUse zval_get_string in implode
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.

11 years agoUse smart_str_append_long in implode
Nikita Popov [Wed, 28 May 2014 16:39:41 +0000 (18:39 +0200)]
Use smart_str_append_long in implode

11 years agoUse zend_long_to_str in curl
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.

11 years agoUse zend_long_to_str in pcntl
Nikita Popov [Wed, 28 May 2014 16:26:11 +0000 (18:26 +0200)]
Use zend_long_to_str in pcntl

11 years agoClamb gdb string output at 256 chars
Nikita Popov [Tue, 27 May 2014 15:19:12 +0000 (17:19 +0200)]
Clamb gdb string output at 256 chars

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 14:45:01 +0000 (18:45 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 14:12:52 +0000 (18:12 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:49:31 +0000 (17:49 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:43:11 +0000 (17:43 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 13:30:05 +0000 (17:30 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 12:56:41 +0000 (16:56 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 10:09:42 +0000 (14:09 +0400)]
Use new zend_hash API

11 years agoUse extended iteration API to avoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 09:00:33 +0000 (13:00 +0400)]
Use extended iteration API to avoid in-place modification

11 years agoUse 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

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 08:34:08 +0000 (12:34 +0400)]
Use new zend_hash API

11 years agoAvoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 08:15:36 +0000 (12:15 +0400)]
Avoid in-place modification

11 years agoUse new zend_hash API
Dmitry Stogov [Wed, 28 May 2014 08:15:16 +0000 (12:15 +0400)]
Use new zend_hash API

11 years agoAvoid in-place modification
Dmitry Stogov [Wed, 28 May 2014 06:15:15 +0000 (10:15 +0400)]
Avoid in-place modification

11 years agoReference counter in phpng may have a bit different meaning and must not be the same
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

11 years agoUse new zend_hash API
Dmitry Stogov [Tue, 27 May 2014 22:13:45 +0000 (02:13 +0400)]
Use new zend_hash API

11 years agoAvoid in-place conversion
Dmitry Stogov [Tue, 27 May 2014 21:29:37 +0000 (01:29 +0400)]
Avoid in-place conversion

11 years agoFixed refcounting
Dmitry Stogov [Tue, 27 May 2014 21:28:38 +0000 (01:28 +0400)]
Fixed refcounting

11 years agoEscape non-printable characters in the junit XML output
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.

11 years agoMerge branch 'phpng' of https://git.php.net/repository/php-src into phpng
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

11 years agoretval's initializing is already taken by zend_call_function
Xinchen Hui [Tue, 27 May 2014 09:46:01 +0000 (17:46 +0800)]
retval's initializing is already taken by zend_call_function

11 years agoFixed broken XML junit output due to escaping of CDATA sections
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

11 years agoFixed bug #47407
Xinchen Hui [Tue, 27 May 2014 03:48:25 +0000 (11:48 +0800)]
Fixed bug #47407

11 years agoUse new zend_hash API
Dmitry Stogov [Mon, 26 May 2014 20:38:58 +0000 (00:38 +0400)]
Use new zend_hash API

11 years agoUse new zend_hash API
Dmitry Stogov [Mon, 26 May 2014 17:29:35 +0000 (21:29 +0400)]
Use new zend_hash API

11 years agoFix ** operator with references
Nikita Popov [Mon, 26 May 2014 16:17:55 +0000 (18:17 +0200)]
Fix ** operator with references

11 years agoAdd test for previous commit
Nikita Popov [Mon, 26 May 2014 16:13:16 +0000 (18:13 +0200)]
Add test for previous commit

11 years agoFix incdec of ref object properties
Nikita Popov [Mon, 26 May 2014 15:58:10 +0000 (17:58 +0200)]
Fix incdec of ref object properties

This fixes a number of infinite loops in the Symfony testsuite. It
took an obscene amount of time to track this down :/

11 years agoUse specialized functions instead of macros
Dmitry Stogov [Mon, 26 May 2014 13:16:16 +0000 (17:16 +0400)]
Use specialized functions instead of macros