]> granicus.if.org Git - php/log
php
11 years agoMake inner_statement_list asty
Nikita Popov [Thu, 10 Jul 2014 21:04:42 +0000 (23:04 +0200)]
Make inner_statement_list asty

11 years agoPort if (partial)
Nikita Popov [Thu, 10 Jul 2014 14:38:04 +0000 (16:38 +0200)]
Port if (partial)

11 years agoPort for
Nikita Popov [Thu, 10 Jul 2014 13:51:47 +0000 (15:51 +0200)]
Port for

11 years agoSupport creating of ast nodes with >3 children
Nikita Popov [Thu, 10 Jul 2014 13:18:08 +0000 (15:18 +0200)]
Support creating of ast nodes with >3 children

11 years agoPort do/while
Nikita Popov [Thu, 10 Jul 2014 12:46:22 +0000 (14:46 +0200)]
Port do/while

11 years agoPort while
Nikita Popov [Thu, 10 Jul 2014 12:35:59 +0000 (14:35 +0200)]
Port while

Note: From here on everything is broken

11 years agoExpr stmts go through ast
Nikita Popov [Wed, 9 Jul 2014 22:04:27 +0000 (00:04 +0200)]
Expr stmts go through ast

11 years agoMake statement asty
Nikita Popov [Wed, 9 Jul 2014 22:00:48 +0000 (00:00 +0200)]
Make statement asty

11 years agoPort goto label
Nikita Popov [Wed, 9 Jul 2014 21:46:22 +0000 (23:46 +0200)]
Port goto label

11 years agoMake unticked_statement an ast node (usually NULL)
Nikita Popov [Wed, 9 Jul 2014 21:39:21 +0000 (23:39 +0200)]
Make unticked_statement an ast node (usually NULL)

11 years agoPort goto
Nikita Popov [Wed, 9 Jul 2014 21:11:32 +0000 (23:11 +0200)]
Port goto

11 years agoPort break/continue
Nikita Popov [Wed, 9 Jul 2014 21:05:21 +0000 (23:05 +0200)]
Port break/continue

11 years agoPort throw
Nikita Popov [Wed, 9 Jul 2014 20:47:36 +0000 (22:47 +0200)]
Port throw

11 years agoPort echo
Nikita Popov [Mon, 7 Jul 2014 19:14:14 +0000 (21:14 +0200)]
Port echo

11 years agoPort return statement
Nikita Popov [Mon, 7 Jul 2014 19:06:02 +0000 (21:06 +0200)]
Port return statement

11 years agoUse zend_string* in some places
Nikita Popov [Fri, 4 Jul 2014 22:11:00 +0000 (00:11 +0200)]
Use zend_string* in some places

11 years agoRefactor class name resolution as well
Nikita Popov [Fri, 4 Jul 2014 21:45:20 +0000 (23:45 +0200)]
Refactor class name resolution as well

11 years agoHack around global leak for now
Nikita Popov [Fri, 4 Jul 2014 21:15:31 +0000 (23:15 +0200)]
Hack around global leak for now

11 years agoShared name production for const / fn name
Nikita Popov [Fri, 4 Jul 2014 21:08:05 +0000 (23:08 +0200)]
Shared name production for const / fn name

11 years agoSome refactoring of fn/const resolution
Nikita Popov [Sat, 28 Jun 2014 20:27:06 +0000 (22:27 +0200)]
Some refactoring of fn/const resolution

11 years agoDrop addition of weird \ prefix for FQ consts
Nikita Popov [Sat, 28 Jun 2014 16:22:51 +0000 (18:22 +0200)]
Drop addition of weird \ prefix for FQ consts

Also fixes a resolution bug

11 years agoRename ZEND_CONST to ZEND_AST_ZVAL
Nikita Popov [Sat, 28 Jun 2014 16:03:26 +0000 (18:03 +0200)]
Rename ZEND_CONST to ZEND_AST_ZVAL

11 years agoDrop dead code
Nikita Popov [Thu, 26 Jun 2014 20:17:19 +0000 (22:17 +0200)]
Drop dead code

11 years agoRemove obseleted grammar productions
Nikita Popov [Thu, 26 Jun 2014 20:04:09 +0000 (22:04 +0200)]
Remove obseleted grammar productions

11 years agoReuse expr for static_scalar
Nikita Popov [Thu, 26 Jun 2014 20:02:54 +0000 (22:02 +0200)]
Reuse expr for static_scalar

11 years agoHandle ::class in const expr via ast as well
Nikita Popov [Thu, 26 Jun 2014 19:44:46 +0000 (21:44 +0200)]
Handle ::class in const expr via ast as well

11 years agoCompile const refs to CONST
Nikita Popov [Thu, 26 Jun 2014 14:56:50 +0000 (16:56 +0200)]
Compile const refs to CONST

11 years agoCompile class const refs to CONST zval
Nikita Popov [Thu, 26 Jun 2014 14:35:30 +0000 (16:35 +0200)]
Compile class const refs to CONST zval

11 years agoAdd compilation state for static scalars
Nikita Popov [Thu, 26 Jun 2014 14:03:15 +0000 (16:03 +0200)]
Add compilation state for static scalars

11 years agoRemove static_scalar_base
Nikita Popov [Thu, 26 Jun 2014 12:03:31 +0000 (14:03 +0200)]
Remove static_scalar_base

11 years agoHandle trait __CLASS__ in parser
Nikita Popov [Thu, 26 Jun 2014 12:00:20 +0000 (14:00 +0200)]
Handle trait __CLASS__ in parser

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