Xinchen Hui [Sat, 10 Feb 2018 09:01:55 +0000 (17:01 +0800)]
Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src: (37 commits)
Avoid conditions inside loop
Improve loop vectorization
Improve loop vectorization
Remove unused function
Fixed bug #75938
Remove unused files
Fixed bug #75940 Unnecessary compile wrapper with PHP_THREAD_SAFETY=yes
typo
Update README.GIT-RULES
Fix SKIPIF section
Fixes bug #75871 Use pkg-config for libxml2 if available
Fixed bug #49876 lib path on 64bit distros
Refactor testing READMEs
Fixed bug #65414
Fixed bug #65414
Fixed bug #74519 strange behavior of AppendIterator
fix #74519 strange behavior of AppendIterator
Use bool instead of boolean
Remove space between function name and open parentheses
Fix some misspellings
...
Nikita Popov [Mon, 5 Feb 2018 20:41:44 +0000 (21:41 +0100)]
Fixed bug #75893
It is not sufficient to just add the additional types for aliased
variables at the end of type inference, because types of derived
variables may depend on them. Make sure the additional types are
always added whenever the type of an aliased variable is updated.
Nikita Popov [Mon, 5 Feb 2018 20:08:18 +0000 (21:08 +0100)]
Fixed bug #75729
Don't try to evaluate substr() and strpos() at compile-time if
mbstring function overloading is enabled. I'm reusing the
COMPILE_NO_BUILTIN_STRLEN for the detection of mbstring function
overloading here, even if it's technically only about strlen()...
Nikita Popov [Mon, 5 Feb 2018 19:48:21 +0000 (20:48 +0100)]
Match strpos() behavior with mbstring.func_overload
mb_strpos() specifically emulates strpos() behavior when function
overloading is enabled. However, the condition was not changed
when strpos() behavior changed in PHP 7.
Dmitry Stogov [Mon, 5 Feb 2018 16:40:06 +0000 (19:40 +0300)]
Avoid repeatable ARG_SHOULD_BE_SENT_BY_REF() checks in FETCH_*FUNC_ARG and following SEND_VAR_EX. Perform the check once in a new CHECK_FUNC_ARG opcode and reuse in the following FETCH_*FUNC_ARG and SEND_FUNC_ARG (SEND_VAR_EX replacement).
Gabriel Caruso [Sun, 4 Feb 2018 18:42:36 +0000 (16:42 -0200)]
Use bool instead of boolean while throwing a type error
PHP requires boolean typehints to be written "bool" and disallows
"boolean" as an alias. This changes the error messages to match
the actual type name and avoids confusing messages like "must be
of type boolean, boolean given".
Gabriel Caruso [Sun, 4 Feb 2018 13:33:49 +0000 (11:33 -0200)]
Use int instead of integer in type errors
PHP requires integer typehints to be written "int" and does not
allow "integer" as an alias. This changes type error messages to
match the actual type name and avoids confusing messages like
"must be of the type integer, integer given".
Nikita Popov [Sat, 3 Feb 2018 17:17:12 +0000 (18:17 +0100)]
Remove some references to E_STRICT in tests
run-tests.php enforces error_reporting=E_ALL (including E_STRICT),
setting this explicitly in not necessary. Conversely, after the
removal of some E_STRICT errors, explicitly excluding it is no
longer necessary in some places.
Nikita Popov [Sat, 3 Feb 2018 16:40:45 +0000 (17:40 +0100)]
Avoid another unused opline warning
The unconditional opline load here used to be necessary for freeing
the return value in case of exception. However, this is no longer
the case, so using LOAD_OPLINE() should be sufficient now.
Gabriel Caruso [Thu, 25 Jan 2018 04:21:03 +0000 (02:21 -0200)]
Fix DateTime*::__set_state arginfo
This is a minor BC break, because classes inheriting from DateTime and
overriding __set_state() now have to specify the additional parameter
as well. However, adding the additional parameter also continues to
work on previous versions of PHP, so this change is acceptable for
master.
The test requires the session extension, which may not be available, in
which case the test would fail, which is expected anyway, but not for
the expected reasons.
Michael Smith [Mon, 29 Jan 2018 15:50:52 +0000 (09:50 -0600)]
Fix spelling and grammar mistakes in php.ini files
The spelling of input_encoding is incorrect in both the php.ini-production
and php.ini-development, as of March, 2014. This fixes the spelling.
Cleaning up spelling and grammar includes wrapping lines to 80 characters,
adding articles such as 'the', and fixing spellings such as pathes to
paths.
Besides that we still hope to sync the complete bundled libgd sometime,
the upstream implementation of `gdImageCrop()` is much simpler than the
current one, and thus better readable and less error prone.