]> granicus.if.org Git - php/log
php
4 years agoFix handling of nullsafe method in empty()
Nikita Popov [Mon, 3 Aug 2020 08:16:04 +0000 (10:16 +0200)]
Fix handling of nullsafe method in empty()

Fixes oss-fuzz #24627.

4 years agoFix #79877: getimagesize function silently truncates after a null byte
Christoph M. Becker [Tue, 21 Jul 2020 09:07:43 +0000 (11:07 +0200)]
Fix #79877: getimagesize function silently truncates after a null byte

We have to check for NUL bytes if `getimagesize()` has been called.

4 years agoFix #79797: Use of freed hash key in the phar_parse_zipfile function
Christoph M. Becker [Tue, 14 Jul 2020 15:04:24 +0000 (17:04 +0200)]
Fix #79797: Use of freed hash key in the phar_parse_zipfile function

We must not use heap memory after we freed it.

4 years agoMerge branch 'PHP-7.4' into master
Christoph M. Becker [Mon, 3 Aug 2020 07:15:50 +0000 (09:15 +0200)]
Merge branch 'PHP-7.4' into master

* PHP-7.4:
  Enable libxml entity loader test case on Windows

4 years agoEnable libxml entity loader test case on Windows
Christoph M. Becker [Mon, 3 Aug 2020 07:12:46 +0000 (09:12 +0200)]
Enable libxml entity loader test case on Windows

4 years agoDrop the unneeded pointer casting
tangl163 [Sat, 1 Aug 2020 03:56:16 +0000 (11:56 +0800)]
Drop the unneeded pointer casting

The standard says that "A pointer to void may be converted to or from a
pointer to any object type". So the casting is unneeded.

REF:
    * c11: http://port70.net/~nsz/c/c11/n1570.html#6.3.2.3p1
    * c99: http://port70.net/~nsz/c/c99/n1256.html

Closes GH-5916

4 years agoFixed bug #60302: DateTime::createFromFormat should new static(), not new self()
Derick Rethans [Sun, 2 Aug 2020 23:41:31 +0000 (00:41 +0100)]
Fixed bug #60302: DateTime::createFromFormat should new static(), not new self()

Also fixes similar issues for DateTimeImmutable::createFromFormat,
DateTime::createFromImmmutable, DateTime::createFromInterface,
DateTimeImmutable::createFromMutable, and
DateTimeImmutable::createFromInterface.

4 years agoFix stub hash of ext/ldap
Máté Kocsis [Sun, 2 Aug 2020 23:06:21 +0000 (01:06 +0200)]
Fix stub hash of ext/ldap

4 years agoAdd a bunch of missing argument types to stubs
Máté Kocsis [Sun, 2 Aug 2020 22:45:51 +0000 (00:45 +0200)]
Add a bunch of missing argument types to stubs

4 years agoImprove a few parameter names in ext/spl
Máté Kocsis [Sun, 2 Aug 2020 22:45:12 +0000 (00:45 +0200)]
Improve a few parameter names in ext/spl

Use the same names which are used by zend functions.

4 years agoConvert the $ttl parameter of ldap_exop_refresh() to int
Máté Kocsis [Sun, 2 Aug 2020 22:38:59 +0000 (00:38 +0200)]
Convert the $ttl parameter of ldap_exop_refresh() to int

4 years agoBump timeouts, again
Nikita Popov [Sun, 2 Aug 2020 08:10:54 +0000 (10:10 +0200)]
Bump timeouts, again

Now that we're testing an additional JIT configuration in nightly
builds, the jobs are running close to an hour.

[ci skip]

4 years agoEnsure correct signatures for magic methods
Gabriel Caruso [Fri, 31 May 2019 03:45:32 +0000 (00:45 -0300)]
Ensure correct signatures for magic methods

4 years ago[skip ci] Fix grammar/typo nits in docs
Tyson Andre [Sat, 1 Aug 2020 15:44:03 +0000 (11:44 -0400)]
[skip ci] Fix grammar/typo nits in docs

The PHP error message says "well-formed", not "well formed"

Fixes GH-5920

4 years agoAdd a few missing types to stubs
Máté Kocsis [Sat, 1 Aug 2020 21:54:28 +0000 (23:54 +0200)]
Add a few missing types to stubs

4 years agoBump timeout again
Nikita Popov [Sat, 1 Aug 2020 21:50:56 +0000 (23:50 +0200)]
Bump timeout again

4 years agoConvert resources to objects in ext/openssl
Máté Kocsis [Sat, 1 Aug 2020 20:42:26 +0000 (22:42 +0200)]
Convert resources to objects in ext/openssl

Closes GH-5860

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
4 years agoAllow overriding completion in `auto_prepend_file`
Tyson Andre [Sat, 18 Jul 2020 21:54:59 +0000 (17:54 -0400)]
Allow overriding completion in `auto_prepend_file`

Currently, it's possible to override `php -a`s completion
functionality to provide an alternative to the C implementation,
with `readline_completion_function()`.

However, that surprisingly gets overridden when called from
`auto_prepend_file`, because those scripts get run before the interactive shell
is started. I believe that not overriding it would be more consistent
with what happens when you override the completion function **after** the
interactive shell.

CLI is the only built-in API that uses this (See discussion in GH-5872).
I believe MINIT and RINIT will only run once when invoked with `php -a`.

Add documentation about the architecture of how php uses readline/libedit

Closes GH-5872

4 years agoGet rid of empty function entries
Máté Kocsis [Sat, 1 Aug 2020 07:42:04 +0000 (09:42 +0200)]
Get rid of empty function entries

Closes GH-5917

4 years agoImplement named parameters
Nikita Popov [Mon, 6 Apr 2020 10:46:52 +0000 (12:46 +0200)]
Implement named parameters

From an engine perspective, named parameters mainly add three
concepts:

 * The SEND_* opcodes now accept a CONST op2, which is the
   argument name. For now, it is looked up by linear scan and
   runtime cached.
 * This may leave UNDEF arguments on the stack. To avoid having
   to deal with them in other places, a CHECK_UNDEF_ARGS opcode
   is used to either replace them with defaults, or error.
 * For variadic functions, EX(extra_named_params) are collected
   and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS.

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

Closes GH-5357.

4 years agoThrow ValueError on empty tag in enchant_broker_request_dict()
George Peter Banyard [Fri, 31 Jul 2020 13:34:39 +0000 (14:34 +0100)]
Throw ValueError on empty tag in enchant_broker_request_dict()

4 years agoChange leftover RETURN_FALSE to RETURN_THROWS() from 4095c0a
George Peter Banyard [Fri, 31 Jul 2020 13:11:10 +0000 (14:11 +0100)]
Change leftover RETURN_FALSE to RETURN_THROWS() from 4095c0a

4 years agoPromote empty filename to ValueError in BZ2 extension
George Peter Banyard [Fri, 31 Jul 2020 13:01:05 +0000 (14:01 +0100)]
Promote empty filename to ValueError in BZ2 extension

4 years agoValueError for empty path in stream code
George Peter Banyard [Tue, 28 Jul 2020 13:50:41 +0000 (14:50 +0100)]
ValueError for empty path in stream code

Closes GH-5902

4 years agoWarning to ValueError promotion in Intl extension Part 1
George Peter Banyard [Fri, 31 Jul 2020 12:27:22 +0000 (13:27 +0100)]
Warning to ValueError promotion in Intl extension Part 1

Affects:
- IntlCalendar
- IntlGregorianCalendar
- IntlBreakIterator

Closes GH-5669

4 years agoUpdate i386 job to Ubuntu 20.04
Nikita Popov [Thu, 30 Jul 2020 08:38:11 +0000 (10:38 +0200)]
Update i386 job to Ubuntu 20.04

4 years agoAlso run function jit tests on macos
Nikita Popov [Thu, 30 Jul 2020 08:34:41 +0000 (10:34 +0200)]
Also run function jit tests on macos

4 years agoMake check in RECV_VARIADIC more precise
Nikita Popov [Fri, 31 Jul 2020 10:00:56 +0000 (12:00 +0200)]
Make check in RECV_VARIADIC more precise

Fetch arg_info only once (it's always the same one...) and check
ZEND_TYPE_IS_SET on it, rather than checking if *any* parameter
has a type.

4 years agoFixed JIT when result of ASSIGN is in register, but the original variable might need...
Dmitry Stogov [Fri, 31 Jul 2020 09:31:46 +0000 (12:31 +0300)]
Fixed JIT when result of ASSIGN is in register, but the original variable might need to be destroyed

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 31 Jul 2020 08:59:17 +0000 (10:59 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79919: Stack use-after-scope in define()

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 31 Jul 2020 08:56:29 +0000 (10:56 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79919: Stack use-after-scope in define()

4 years agoFix #79919: Stack use-after-scope in define()
Christoph M. Becker [Fri, 31 Jul 2020 07:12:22 +0000 (09:12 +0200)]
Fix #79919: Stack use-after-scope in define()

Instead of the temporary `rv`, we use the `val_free` which is there for
this purpose.

4 years agoDocument the signature change of zend_get_closure_method_def()
Máté Kocsis [Fri, 31 Jul 2020 08:04:49 +0000 (10:04 +0200)]
Document the signature change of zend_get_closure_method_def()

4 years agoFix the default value handling of imagegif()
Máté Kocsis [Fri, 31 Jul 2020 08:01:08 +0000 (10:01 +0200)]
Fix the default value handling of imagegif()

4 years agoRemove more unused func_info fields
Nikita Popov [Thu, 30 Jul 2020 16:08:11 +0000 (18:08 +0200)]
Remove more unused func_info fields

4 years agoWe check result type guard in FETCH_DIM_R/IS only if index is long or string.
Dmitry Stogov [Thu, 30 Jul 2020 16:19:10 +0000 (19:19 +0300)]
We check result type guard in FETCH_DIM_R/IS only if index is long or string.

4 years agoAdd type inference support for RECV_VARIADIC
Nikita Popov [Thu, 30 Jul 2020 15:14:34 +0000 (17:14 +0200)]
Add type inference support for RECV_VARIADIC

4 years agoRemove unused recv_arg_info from func_info
Nikita Popov [Thu, 30 Jul 2020 15:04:56 +0000 (17:04 +0200)]
Remove unused recv_arg_info from func_info

4 years agoRemove some dead code in RECV type inference
Nikita Popov [Thu, 30 Jul 2020 14:53:11 +0000 (16:53 +0200)]
Remove some dead code in RECV type inference

We must always have arg_info corresponding to RECV.

4 years agoClear result type for exit point caused by JMPZ_EX/NZ_EX
Dmitry Stogov [Thu, 30 Jul 2020 14:01:08 +0000 (17:01 +0300)]
Clear result type for exit point caused by JMPZ_EX/NZ_EX

4 years agoFixed memory leaks caused by incorrect AVOID_REFCOUNTING flag
Dmitry Stogov [Thu, 30 Jul 2020 13:59:41 +0000 (16:59 +0300)]
Fixed memory leaks caused by incorrect AVOID_REFCOUNTING flag

4 years agoAdd missing RETURN_THROWS()
Máté Kocsis [Thu, 30 Jul 2020 12:55:13 +0000 (14:55 +0200)]
Add missing RETURN_THROWS()

4 years agoAdd a few missing parameter types in stubs
Máté Kocsis [Tue, 28 Jul 2020 21:00:44 +0000 (23:00 +0200)]
Add a few missing parameter types in stubs

Related to GH-5627

4 years agoSkip tests leaking because of preloading failure.
Dmitry Stogov [Thu, 30 Jul 2020 11:04:14 +0000 (14:04 +0300)]
Skip tests leaking because of preloading failure.

4 years agoFixed bug #79897: Promoted constructor params with attribs cause crash
Deus Kane [Sat, 25 Jul 2020 11:02:01 +0000 (12:02 +0100)]
Fixed bug #79897: Promoted constructor params with attribs cause crash

This was caused by the attribute AST being used twice, and was fixed by
creating a temporary copy of it (and destroying said copy) when neccesary.

4 years agoCheck non-zero in is_power_of_two()
Nikita Popov [Thu, 30 Jul 2020 08:17:37 +0000 (10:17 +0200)]
Check non-zero in is_power_of_two()

And assert non-zero in floor_log2().

Fixes DASM_S_RANGE_I in ext/simplexml/tests/021.phpt.

4 years agoIncrease timeout on asan job
Nikita Popov [Thu, 30 Jul 2020 07:54:51 +0000 (09:54 +0200)]
Increase timeout on asan job

We now also run tests with function JIT here, which makes this
slower.

Probably, this job should be split up into asan and ubsan, and
possibly run with optimization.

[ci skip]

4 years agoImprove wording and spelling consistency in UPGRADING
Theodore Brown [Wed, 29 Jul 2020 23:39:54 +0000 (17:39 -0600)]
Improve wording and spelling consistency in UPGRADING

[ci skip]

4 years agoForce type update if the previous value was in register only
Dmitry Stogov [Wed, 29 Jul 2020 22:32:23 +0000 (01:32 +0300)]
Force type update if the previous value was in register only

4 years agoDon't skip fcall guard for method calls from trait
Dmitry Stogov [Wed, 29 Jul 2020 21:31:46 +0000 (00:31 +0300)]
Don't skip fcall guard for method calls from trait

4 years agoFixed temporary register usage
Dmitry Stogov [Wed, 29 Jul 2020 19:01:19 +0000 (22:01 +0300)]
Fixed temporary register usage

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 29 Jul 2020 16:45:03 +0000 (18:45 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Amendment to OPcache base file removal

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Wed, 29 Jul 2020 16:44:35 +0000 (18:44 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Amendment to OPcache base file removal

4 years agoAmendment to OPcache base file removal
Christoph M. Becker [Wed, 29 Jul 2020 16:06:42 +0000 (18:06 +0200)]
Amendment to OPcache base file removal

We fix the erroneous segment size.  We also keep the segment pointer at
the allocated address, but increase the position instead.

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 29 Jul 2020 16:31:28 +0000 (18:31 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #73060: php failed with error after temp folder cleaned up

4 years agoUpdate azure macos builds to 10.15
Nikita Popov [Wed, 29 Jul 2020 15:09:47 +0000 (17:09 +0200)]
Update azure macos builds to 10.15

Closes GH-5908.

4 years agoFix #73060: php failed with error after temp folder cleaned up
Christoph M. Becker [Wed, 29 Jul 2020 13:11:04 +0000 (15:11 +0200)]
Fix #73060: php failed with error after temp folder cleaned up

Instead of storing the mapping base address and the address of
`execute_ex()` in a separate file in the temporary folder, we store
them right at the beginning of the memory mapping.

4 years agoRun function JIT tests in nightly build
Nikita Popov [Wed, 29 Jul 2020 14:39:16 +0000 (16:39 +0200)]
Run function JIT tests in nightly build

Changing this for primary x64 and i386 jobs for now.
The different test configurations are now consolidated in one
file shared between both.

4 years agoMerge branch 'PHP-7.4'
Nikita Popov [Wed, 29 Jul 2020 15:05:42 +0000 (17:05 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Consider op1 literal of FETCH_OBJ_R

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 29 Jul 2020 15:05:35 +0000 (17:05 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Consider op1 literal of FETCH_OBJ_R

4 years agoConsider op1 literal of FETCH_OBJ_R
Nikita Popov [Wed, 29 Jul 2020 15:04:23 +0000 (17:04 +0200)]
Consider op1 literal of FETCH_OBJ_R

FETCH_OBJ_R may have an op1 CONST operand, even though it will
always error. We should take this into account when compacting
literals.

4 years agoLoad ptoper IP value
Dmitry Stogov [Wed, 29 Jul 2020 14:37:01 +0000 (17:37 +0300)]
Load ptoper IP value

4 years agoFixed bug #79888 (Incorrect execution with JIT enabled)
Dmitry Stogov [Wed, 29 Jul 2020 14:32:57 +0000 (17:32 +0300)]
Fixed bug #79888 (Incorrect execution with JIT enabled)

4 years agoFix leak with nullsafe operator with constant LHS
Nikita Popov [Wed, 29 Jul 2020 13:51:47 +0000 (15:51 +0200)]
Fix leak with nullsafe operator with constant LHS

Followup to 5303bcdd32e8171399c2c60bf431e5304a66c39a. We need to
perform the addref after emitting the opline, because that might
intern the string.

Fixes oss-fuzz #24479.

4 years agoFix bug #79900
Nikita Popov [Wed, 29 Jul 2020 13:25:57 +0000 (15:25 +0200)]
Fix bug #79900

Run debug build shutdown GC regardless even if GC has been disabled.
Of course, this only does something meaningful if the GC has been
disabled at runtime and root collection is still enabled. We cannot
prevent leaks if GC is disabled completely.

4 years agoRemove PHP_CHECK_GCC_ARG()
Nikita Popov [Wed, 29 Jul 2020 10:45:26 +0000 (12:45 +0200)]
Remove PHP_CHECK_GCC_ARG()

In favor of AX_CHECK_COMPILE_FLAG(), which we bundle since at least
PHP 7.

Closes GH-5904.

4 years agoMerge branch 'PHP-7.4'
Nikita Popov [Wed, 29 Jul 2020 13:04:41 +0000 (15:04 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix test

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 29 Jul 2020 13:04:23 +0000 (15:04 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix test

4 years agoFix test
Nikita Popov [Wed, 29 Jul 2020 13:04:05 +0000 (15:04 +0200)]
Fix test

4 years agoTemporary disable abstract test usage for inferring previous type of variables (previ...
Dmitry Stogov [Wed, 29 Jul 2020 11:58:41 +0000 (14:58 +0300)]
Temporary disable abstract test usage for inferring previous type of variables (previous value may be in CPU register and type of the stack slot may be inconsistent).

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 29 Jul 2020 11:37:50 +0000 (13:37 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Revert "Merge branch 'PHP-7.3' into PHP-7.4"

4 years agoRevert "Merge branch 'PHP-7.3' into PHP-7.4"
Christoph M. Becker [Wed, 29 Jul 2020 11:32:59 +0000 (13:32 +0200)]
Revert "Merge branch 'PHP-7.3' into PHP-7.4"

This reverts commit e1f6ab3388f509782857557ee1e40a66b2bb6455, reversing
changes made to e0ebe56ebfc80bae3875b23eca4cbe0803f41e79.

There are obviously issues with running tests in parallel, maybe
related to the cache ID.  This needs to be investigated.  Revert for
now.

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 29 Jul 2020 10:47:41 +0000 (12:47 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Prevent test case from stalling

4 years agoPrevent test case from stalling
Christoph M. Becker [Wed, 29 Jul 2020 10:33:46 +0000 (12:33 +0200)]
Prevent test case from stalling

If the CTRL-C event can't be sent to the child for whatever reason, the
test will never terminate, because `proc_close()` waits for an infinite
amount of time.  Therefore, we `proc_terminate()` the child instead,
after explicitly closing the pipes.

4 years agoMerge branch 'PHP-7.4'
Nikita Popov [Wed, 29 Jul 2020 10:39:58 +0000 (12:39 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79895: support = in PHP_CHECK_GCC_ARG m4 macro

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 29 Jul 2020 10:38:35 +0000 (12:38 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79895: support = in PHP_CHECK_GCC_ARG m4 macro

4 years agoFix #79895: support = in PHP_CHECK_GCC_ARG m4 macro
Santiago M. Mola [Fri, 24 Jul 2020 20:46:11 +0000 (22:46 +0200)]
Fix #79895: support = in PHP_CHECK_GCC_ARG m4 macro

Closes GH-5890.

4 years agoFixed live-range interval construction (close all frames)
Dmitry Stogov [Wed, 29 Jul 2020 10:11:27 +0000 (13:11 +0300)]
Fixed live-range interval construction (close all frames)

4 years agoMerge branch 'PHP-7.4'
twosee [Wed, 29 Jul 2020 09:48:01 +0000 (17:48 +0800)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Handle bindto error

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
twosee [Wed, 29 Jul 2020 09:46:57 +0000 (17:46 +0800)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Handle bindto error

4 years agoHandle bindto error
twosee [Wed, 29 Jul 2020 04:59:44 +0000 (12:59 +0800)]
Handle bindto error

Closes GH-5903.

4 years agoFix STR_OR_OBJ_OF_TYPE stringable handling
Nikita Popov [Wed, 29 Jul 2020 09:29:24 +0000 (11:29 +0200)]
Fix STR_OR_OBJ_OF_TYPE stringable handling

4 years agoMove patch to right place
Nikita Popov [Wed, 29 Jul 2020 08:59:40 +0000 (10:59 +0200)]
Move patch to right place

This was supposed to be for laravel, not symfony.

[ci skip]

4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 29 Jul 2020 08:17:22 +0000 (10:17 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #73060: php failed with error after temp folder cleaned up

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Wed, 29 Jul 2020 08:11:11 +0000 (10:11 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #73060: php failed with error after temp folder cleaned up

4 years agoFix #73060: php failed with error after temp folder cleaned up
Christoph M. Becker [Tue, 28 Jul 2020 12:40:04 +0000 (14:40 +0200)]
Fix #73060: php failed with error after temp folder cleaned up

Instead of storing the mapping base address and the address of
`execute_ex()` in a separate file in the temporary folder, we store
them right at the beginning of the memory mapping.

4 years agoTry to fix laravel PHP 8 incompatibility
Nikita Popov [Wed, 29 Jul 2020 07:54:12 +0000 (09:54 +0200)]
Try to fix laravel PHP 8 incompatibility

[ci skip]

4 years agoUse inline function instead of macro
Dmitry Stogov [Wed, 29 Jul 2020 07:42:12 +0000 (10:42 +0300)]
Use inline function instead of macro

4 years agoMerge common "cold" part
Dmitry Stogov [Wed, 29 Jul 2020 07:10:37 +0000 (10:10 +0300)]
Merge common "cold" part

4 years agoImplement 'Saner Numeric Strings' RFC:
George Peter Banyard [Wed, 29 Jul 2020 01:51:09 +0000 (02:51 +0100)]
Implement 'Saner Numeric Strings' RFC:

RFC: https://wiki.php.net/rfc/saner-numeric-strings

This removes the -1 allow_error mode from is_numeric_string functions and replaces it by
a trailing boolean out argument to preserve BC in a couple of places.

Most of the changes can be resumed to "numeric" strings which emitted a E_NOTICE now emit
a E_WARNING and "numeric" strings which emitted a E_WARNING now throw a TypeError.

This mostly affects:
 - String offsets
 - Arithmetic operations
 - Bitwise operations

Closes GH-5762

4 years agoPermit trailing whitespace in numeric strings
Andrea Faulds [Wed, 24 Jun 2020 13:05:58 +0000 (15:05 +0200)]
Permit trailing whitespace in numeric strings

This is part 1 of the 'Saner Numeric Strings' RFC:
https://wiki.php.net/rfc/saner-numeric-strings

4 years agoFixed incorrect reuse of exit_point
Dmitry Stogov [Tue, 28 Jul 2020 20:31:58 +0000 (23:31 +0300)]
Fixed incorrect reuse of exit_point

4 years agoRefactor user streams to use ZPP class check
George Peter Banyard [Mon, 20 Jul 2020 12:47:35 +0000 (13:47 +0100)]
Refactor user streams to use ZPP class check

Closes GH-5876

4 years agoCheck for EG(exception) after leaving function frame
Dmitry Stogov [Tue, 28 Jul 2020 16:03:05 +0000 (19:03 +0300)]
Check for EG(exception) after leaving function frame

4 years agoPrevent incorrect optimization
Dmitry Stogov [Tue, 28 Jul 2020 16:02:08 +0000 (19:02 +0300)]
Prevent incorrect optimization

4 years agoFix UNKNOWN default values in ext/mbstring and ext/gd
Máté Kocsis [Mon, 18 May 2020 18:32:21 +0000 (20:32 +0200)]
Fix UNKNOWN default values in ext/mbstring and ext/gd

Closes GH-5598

4 years agoCheck for shm_open() in libroot to support Haiku
David Carlier [Sat, 25 Jul 2020 17:15:54 +0000 (17:15 +0000)]
Check for shm_open() in libroot to support Haiku

Resides on libroot (system runtime) on this platform.

Closes GH-5892.

4 years agoFix typo in test
Nikita Popov [Tue, 28 Jul 2020 13:39:22 +0000 (15:39 +0200)]
Fix typo in test

4 years agoImplement Shorter Attribute Syntax
Theodore Brown [Thu, 2 Jul 2020 15:56:21 +0000 (09:56 -0600)]
Implement Shorter Attribute Syntax

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

Closes GH-5796.

Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>
4 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 28 Jul 2020 12:02:25 +0000 (14:02 +0200)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79806: realpath() erroneously resolves link to link