#
2127a37b |
| 01-Feb-2020 |
Akim Demaille |
Bison: enable all the warnings and fix them First, fix 5547d361208d90e12d53bb62bb2ffbbff9b93ca0: the definition of YFLAGS was not passed into the Makefile: AC_SUBST does not suffice, we
Bison: enable all the warnings and fix them First, fix 5547d361208d90e12d53bb62bb2ffbbff9b93ca0: the definition of YFLAGS was not passed into the Makefile: AC_SUBST does not suffice, we need PHP_SUBST_OLD. While at it, allow to pass variable and value at the same time. Then pass -Wall to bison, rather than only -Wempty-rules. Use %precedence where associativity is useless. Remove useless %precedence. GH-5138
show more ...
|
#
37d0f7d3 |
| 30-Jan-2020 |
Akim Demaille |
Use "%empty" in the parsers, instead of comments The annotation %empty is properly enforced: warnings when it's missing, and errors when it's inappropriate. Support for %empty was i
Use "%empty" in the parsers, instead of comments The annotation %empty is properly enforced: warnings when it's missing, and errors when it's inappropriate. Support for %empty was introduced in Bison 3.0. Pass -Wempty-rule to Bison. Closes GH-5134
show more ...
|
#
5265fabc |
| 28-Jan-2020 |
Akim Demaille |
Use "%define parse.error verbose" The YYERROR_VERBOSE macro will no longer be supported in Bison 3.6. It was superseded by the "%error-verbose" directive in Bison 1.875 (2003-01-01).
Use "%define parse.error verbose" The YYERROR_VERBOSE macro will no longer be supported in Bison 3.6. It was superseded by the "%error-verbose" directive in Bison 1.875 (2003-01-01). Bison 2.6 (2012-07-19) clearly announced that support for YYERROR_VERBOSE would be removed. Note that since Bison 3.0 (2013-07-25), "%error-verbose" is deprecated in favor of "%define parse.error verbose". Closes GH-5125.
show more ...
|
#
1caf0951 |
| 13-Jan-2020 |
Nikita Popov |
Handle one more case I missed
|
#
5d869df7 |
| 13-Jan-2020 |
Nikita Popov |
Make class name references use the class_name production Throw a compile error for "static" references instead, where it isn't already the case. Also extract the code that does
Make class name references use the class_name production Throw a compile error for "static" references instead, where it isn't already the case. Also extract the code that does that -- we have quite a few places where we get a const class ref and require it to be default.
show more ...
|
#
2a3e37a4 |
| 13-Jan-2020 |
Nikita Popov |
Don't use yystrlen() This is unnecessary and not available when GLR is used.
|
Revision tags: php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
999e32b6 |
| 25-Sep-2019 |
Nikita Popov |
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same t
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same time. Additionall, zend_type_list is introduced as a new kind of pointer payload, which is used to store multiple class types. Each of the class types is a tagged pointer, which may be either a class name or class entry. The latter is only used for typed properties, while arguments/returns will instead use cache slots. A type list can contain a mix of both names and CEs at the same time, as not all classes may be resolvable. One thing this is missing is support for union types in arginfo and stubs, which I want to handle separately. I've also dropped the special object code from the JIT implementation for now -- I plan to add this back in a different form at a later time. For now I did not want to include non-trivial JIT changes together with large functional changes. Another possible piece of follow-up work is to implement "iterable" as an internal alias for "array|Traversable". I believe this will eliminate quite a few special-cases that had to be implemented. Closes GH-4838.
show more ...
|
Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1 |
|
#
bcf9d1e9 |
| 09-Sep-2019 |
Christoph M. Becker |
new_variable '{' expr '}' is deprecated as well Curly brace syntax for accessing array elements and string offsets is deprecated [1]; this should also be the case for respective `new`
new_variable '{' expr '}' is deprecated as well Curly brace syntax for accessing array elements and string offsets is deprecated [1]; this should also be the case for respective `new` expressions. This issue has been reported by brzuchal@php.net. [1] <https://wiki.php.net/rfc/deprecate_curly_braces_array_access>
show more ...
|
Revision tags: php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9 |
|
#
e5c7f7100 |
| 27-Aug-2019 |
Nikita Popov |
Don't specify precedence for T_INC/T_DEC As these do not operate on expressions, precedence is meaningless for them.
|
Revision tags: php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2 |
|
#
85e8ccd5 |
| 02-Aug-2019 |
Nikita Popov |
Fixed bug #78363
|
Revision tags: php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1 |
|
#
d574df63 |
| 13-Mar-2019 |
rjhdby |
Deprecate alternative array access syntax RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
|
#
9ad094e3 |
| 15-Jul-2019 |
Nikita Popov |
Emit T_BAD_CHARACTER for unexpected characters Avoid having holes in the token stream which are annoying and inefficient to reconstruct on the consumer side.
|
#
48ca5a1e |
| 05-Jul-2019 |
Dmitry Stogov |
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
|
#
852ab5d8 |
| 11-Jun-2019 |
Nikita Popov |
Use %define api.pure instead of %pure-parser %pure-parser is deprecated. In our case there is no difference between true & full, as we don't use locations.
|
Revision tags: php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2, php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1, php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6, php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3 |
|
#
e829d087 |
| 06-Oct-2018 |
CHU Zhaowei |
Implement spread operator in arrays RFC: https://wiki.php.net/rfc/spread_operator_for_array Closes GH-3640.
|
#
09ea55cb |
| 09-Apr-2019 |
Nikita Popov |
Deprecate left-associative ternary Deprecate nesting ternary operators without explicit parentheses. RFC: https://wiki.php.net/rfc/ternary_associativity
|
#
f3e5bbe6 |
| 02-May-2019 |
Nikita Popov |
Implement arrow functions Per RFC: https://wiki.php.net/rfc/arrow_functions_v2 Co-authored-by: Levi Morrison <levim@php.net> Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
|
#
3b23694a |
| 28-Mar-2019 |
Bob Weinand |
Deprecate unparenthesized concatenation and addition/subtraction Implementing RFC https://wiki.php.net/rfc/concatenation_precedence
|
#
61ee8699 |
| 28-Mar-2019 |
Bob Weinand |
Change the precedence of concatenation This implements RFC https://wiki.php.net/rfc/concatenation_precedence
|
#
7f72d771 |
| 28-Mar-2019 |
Nikita Popov |
Revert "Switch to bison location tracking" This reverts commit e528762c1c59bc0bd0bd6d78246c14269630cf0f. Dmitry reports that this has a non-trivial impact on parsing overhead, e
Revert "Switch to bison location tracking" This reverts commit e528762c1c59bc0bd0bd6d78246c14269630cf0f. Dmitry reports that this has a non-trivial impact on parsing overhead, especially on 32-bit systems. As we don't have a strong need for this change right now, I'm reverting it. See also comments on https://github.com/php/php-src/commit/e528762c1c59bc0bd0bd6d78246c14269630cf0f.
show more ...
|
#
e528762c |
| 15-Mar-2019 |
Nikita Popov |
Switch to bison location tracking Locations for AST nodes are now tracked with the help of bison location tracking. This is more accurate than what we currently do and easier to exte
Switch to bison location tracking Locations for AST nodes are now tracked with the help of bison location tracking. This is more accurate than what we currently do and easier to extend with more information. A zend_ast_loc structure is introduced, which is used for the location stack. Currently it only holds the start lineno, but can be extended to also hold end lineno and offset/column information in the future. All AST constructors now accept a zend_ast_loc* as first argument, and will use it to determine their lineno. Previously this used either the CG(zend_lineno), or the smallest AST lineno of child nodes. On the parser side, the location structure for a whole rule can be obtained using the &@$ character salad.
show more ...
|
#
2a04efe0 |
| 15-Mar-2019 |
Nikita Popov |
Remove unnecessary precedence/associativity annotations Some of these are entirely unnecessary. Some specify an associativity for operators where the concept doesn't make sense and has n
Remove unnecessary precedence/associativity annotations Some of these are entirely unnecessary. Some specify an associativity for operators where the concept doesn't make sense and has no effect: Explicit associativity is only meaningful for binary operators. For unary operators and constrained operations like instanceof or assignment the associativity specification has no effect and only serves to confuse. For example assignments were specified as %left, even though they will actually behave as right-associative due to the variable requirement on the LHS. Similarly instanceof was specified as %nonassoc, but it will behave as left-associative, due to the restrictions places on the RHS.
show more ...
|
#
92ac598a |
| 22-Jan-2019 |
Peter Kokot |
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
show more ...
|
#
a81202ac |
| 30-Jan-2019 |
Zeev Suraski |
Adios, yearly copyright ranges
|
#
02557f87 |
| 30-Jan-2019 |
Zeev Suraski |
Adios, yearly copyright ranges
|