History log of /PHP-8.2/Zend/zend_language_parser.y (Results 351 – 375 of 627)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# b8c719c0 25-Dec-2012 Dmitry Stogov

Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
Traits refactoring


# 3f8c729e 25-Dec-2012 Dmitry Stogov

Traits refactoring

Revision tags: php-5.3.20
# 27683158 19-Dec-2012 Nikita Popov

Add missing zend_do_free call

This is a followup to d53f1bf8ab. When the yield *statement* is used its
return value still needs to be freed.

Revision tags: php-5.4.10, php-5.5.0alpha2, php-5.3.20RC1, php-5.4.10RC1, php-5.3.19, php-5.4.9, php-5.5.0alpha1, php-5.3.19RC1, php-5.4.9RC1, php-5.3.18, php-5.4.8, php-5.3.18RC1, php-5.4.8RC1, php-5.3.17, php-5.4.7, php-5.4.7RC1
# d60e3c6e 25-Aug-2012 Nikita Popov

Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

Conflicts:
Zend/zend_language_parser.y
Zend/zend_vm_execute.skl


# bd70d155 25-Aug-2012 Nikita Popov

Remove implementation stubs for yield delegation

I decided to leave out yield delegation for an initial proposal, so remove
the stubs for it too.

# 35951d4b 25-Aug-2012 Xinchen Hui

Support list in foreach

RFC: https://wiki.php.net/rfc/foreachlist

# 1823b16f 20-Aug-2012 Nikita Popov

Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

Merging master to fix Windows build

Conflicts:
Zend/zend_language_scanner.c
Zend/zend

Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

Merging master to fix Windows build

Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h

show more ...


# 3336e1e7 20-Aug-2012 Stanislav Malyshev

Merge branch 'pull-request/31'

* pull-request/31:
Fix lexing of nested heredoc strings in token_get_all()


Revision tags: php-5.3.16, php-5.4.6
# c64f4e73 14-Aug-2012 Xinchen Hui

Add functions declarations, use tabs

# f4ce3646 13-Aug-2012 Nikita Popov

Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

This is just an intial merge. It does not yet make generators and finally
work together.

Conflicts:

Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport

This is just an intial merge. It does not yet make generators and finally
work together.

Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_execute.skl
Zend/zend_vm_opcodes.h

show more ...


# 80d5ae3c 13-Aug-2012 Xinchen Hui

Implemented 'finally' keywords for php

RFC: https://wiki.php.net/rfc/finally
FR: https://bugs.php.net/bug.php?id=32100
and I have got some improvment ideas(performance), will impleme

Implemented 'finally' keywords for php

RFC: https://wiki.php.net/rfc/finally
FR: https://bugs.php.net/bug.php?id=32100
and I have got some improvment ideas(performance), will implemented
later. thanks

show more ...

Revision tags: php-5.4.6RC1
# ba568aae 25-Jul-2012 Xinchen Hui

Fixed invalid read in CONST_STRING dereference, reported by Nikic

# de80e3ce 22-Jul-2012 Nikita Popov

Remove reference restrictions from foreach

foreach only allowed variables to be traversed by reference. This never
really made sense because

a) Expressions like array(&$a, &

Remove reference restrictions from foreach

foreach only allowed variables to be traversed by reference. This never
really made sense because

a) Expressions like array(&$a, &$b) can be meaningfully iterated by-ref
b) Function calls can return by-ref (so they can also be meaningfully
iterated)
c) Iterators could at least in theory also be iterated by-ref (not
sure if any iterator makes use of this)

With by-ref generators the restriction makes even less sense, so I removed
it altogether.

show more ...

# 80748631 21-Jul-2012 Nikita Popov

Require parenthesis around yield expressions

If yield is used in an expression context parenthesis are now required.
This ensures that the code is unambiguos.

Yield statements c

Require parenthesis around yield expressions

If yield is used in an expression context parenthesis are now required.
This ensures that the code is unambiguos.

Yield statements can still be used without parenthesis (which should be
the most common case).

Also yield expressions without value can be used without parenthesis,
too (this should be the most common case for coroutines).

If the yield expression is used in a context where parenthesis are required
anyway, no additional parenthesis have to be inserted.

Examples:

// Statements don't need parenthesis
yield $foo;
yield $foo => $bar;

// Yield without value doesn't need parenthesis either
$data = yield;

// Parentheses don't have to be duplicated
foo(yield $bar);
if (yield $bar) { ... }

// But we have to use parentheses here
$foo = (yield $bar);

This commit also fixes an issue with by-ref passing of $foo[0] like
variables. They previously weren't properly fetched for write.

Additionally this fixes valgrind warnings which were caused by access to
uninitialized memory in zend_is_function_or_method_call().

show more ...

# c9709bfb 19-Jul-2012 Nikita Popov

Remove asterix modifier (*) for generators

Generators are now automatically detected by the presence of a `yield`
expression in their body.

This removes the ZEND_SUSPEND_AND_RET

Remove asterix modifier (*) for generators

Generators are now automatically detected by the presence of a `yield`
expression in their body.

This removes the ZEND_SUSPEND_AND_RETURN_GENERATOR opcode. Instead
additional checks for ZEND_ACC_GENERATOR are added to the fcall_common
helper and zend_call_function.

This also adds a new function zend_generator_create_zval, which handles
the actual creation of the generator zval from an op array.

I feel like I should deglobalize the zend_create_execute_data_from_op_array
code a bit. It currently changes EG(current_execute_data) and
EG(opline_ptr) which is somewhat confusing (given the name).

show more ...

Revision tags: php-5.4.5, php-5.3.15, php-5.3.15RC1, php-5.4.5RC1
# a027ba3a 26-Jun-2012 Xinchen Hui

Merge branch 'PHP-5.4'

* PHP-5.4:
Fixed bug #62357 (compile failure: (S) Arguments missing for built-in function __memcmp).


# a44a1dc1 26-Jun-2012 Xinchen Hui

Fixed bug #62357 (compile failure: (S) Arguments missing for built-in function __memcmp).

Any C library function may be a macro, We should avoid using ZEND_STRS(L) as their arguments

Revision tags: php-5.3.14, php-5.4.4
# d939d2de 11-Jun-2012 Nikita Popov

Add sceleton for yield* expression

This does not yet actually implement any delegation.

Revision tags: php-5.3.14RC2, php-5.4.4RC2
# bc08c2cf 30-May-2012 Nikita Popov

Add support for yielding keys

Keys are yielded using the

yield $key => $value

syntax. Currently this is implemented as a statement only and not as an
expression, be

Add support for yielding keys

Keys are yielded using the

yield $key => $value

syntax. Currently this is implemented as a statement only and not as an
expression, because conflicts arise considering nesting and use in arrays:

yield yield $a => $b;
// could be either
yield (yield $a) => $b;
// or
yield (yield $a => $b);

Once I find some way to resolve these conflicts this should be available
as an expression too.

Also the key yielding code is rather copy-and-past-y for the value yielding
code, so that should be factored out.

show more ...

# ad525c28 29-May-2012 Nikita Popov

Allow to use yield without value

If the generator is used as a coroutine it often doesn't make sense to yield
anything. In this case one can simply receive values using

$val

Allow to use yield without value

If the generator is used as a coroutine it often doesn't make sense to yield
anything. In this case one can simply receive values using

$value = yield;

The yield here will simply yield NULL.

show more ...

# 3600914c 29-May-2012 Nikita Popov

Add support for $generator->send()

Yield now is an expression and the return value is the value passed to
$generator->send(). By default (i.e. if ->next() is called) the value is
NUL

Add support for $generator->send()

Yield now is an expression and the return value is the value passed to
$generator->send(). By default (i.e. if ->next() is called) the value is
NULL.

Unlike in Python ->send() can be run without priming the generator with a
->next() call first.

show more ...

# e14cfafc 19-May-2012 Nikita Popov

Add zend_do_suspend_if_generator calls

The execution of generator functions will be suspended right after the
arguments were RECVed. This will be done in zend_do_suspend_if_generator.

# 252f6234 19-May-2012 Nikita Popov

Add flag for generator functions

Generator functions have to specify the * (asterix) modifier after the
function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to
the fn

Add flag for generator functions

Generator functions have to specify the * (asterix) modifier after the
function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to
the fn_flags.

show more ...

Revision tags: php-5.3.14RC1, php-5.4.4RC1
# 9b101ac8 15-May-2012 Nikita Popov

Add T_YIELD "yield" keyword

Revision tags: php-5.3.13, php-5.4.3, php-5.4.2, php-5.3.12, php-5.3.11, php-5.4.1
# ec061a93 12-Apr-2012 Nikita Popov

Allow arbitrary expressions for empty()

This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

The change allows passing the result of function calls and other
ex

Allow arbitrary expressions for empty()

This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

The change allows passing the result of function calls and other
expressions to the empty() language construct. This is accomplished by
simply rewriting empty(expr) to !expr.

The change does not affect the suppression of errors when using empty()
on variables. empty($undefinedVar) will continue not to throw errors.
When an expression is used inside empty() on the other hand, errors will
not be suppressed. Thus empty($undefinedVar + $somethingElse) *will*
throw a notice.

The change also does not make empty() into a real function, so using
'empty' as a callback is still not possible.

In addition to the empty() changes the commit adds nicer error messages
when isset() is used on function call results or other expressions.

show more ...

1...<<11121314151617181920>>...26