Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
373 commits
Select commit Hold shift + click to select a range
5535741
Add support for the never type in gen_stub.php
kocsismate Jul 14, 2021
6fd8808
Add exception check to zend_jit_fetch_obj_w_slow()
nikic Jul 14, 2021
6776e05
Merge branch 'PHP-8.0'
nikic Jul 14, 2021
339ce94
Declare the $value param of define() as mixed
kocsismate Jul 14, 2021
ebd3a21
Undef slot before destroying in unset_property
nikic Jul 15, 2021
567e53e
Merge branch 'PHP-7.4' into PHP-8.0
nikic Jul 15, 2021
59a5f89
Merge branch 'PHP-8.0'
nikic Jul 15, 2021
53aed48
Allow objects in define()
nikic Jun 14, 2021
10f416f
Use standard bool type instead of bool_int
Girgias Jul 14, 2021
5e4d727
Use standard bool type instead of boolean_e
Girgias Jul 14, 2021
2bf68b3
Remove unused macro
Girgias Jul 14, 2021
b901c05
Refactor conversion function
Girgias Jul 14, 2021
9778554
Use standard 64bit unsigned int type
Girgias Jul 14, 2021
02e48d9
Use standard 64bit signed int type
Girgias Jul 14, 2021
282abfe
Drop register keyword
Girgias Jul 14, 2021
c252420
IteratorIterator::getInnerIterator() can't return null
nikic Jul 15, 2021
11f62c9
Revert "IteratorIterator::getInnerIterator() can't return null"
nikic Jul 15, 2021
f556a30
Narrow ArrayIterator::key() return type
nikic Jul 15, 2021
33f8dfb
Fix #72146: Integer overflow on substr_replace
cmb69 Jul 14, 2021
c0a1ef3
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 15, 2021
6dc20e1
Merge branch 'PHP-8.0'
cmb69 Jul 15, 2021
b9ae73e
Fix RecursiveIteratorIterator segfault for invalid aggregate
nikic Jul 15, 2021
c2b2930
Merge branch 'PHP-8.0'
nikic Jul 15, 2021
a942cf5
Fix #72595: php_output_handler_append illegal write access
cmb69 Jul 14, 2021
1bc5bd7
Handle both WARNING and UNRESOLVED during early binding
nikic Jul 15, 2021
c6b7f6c
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 15, 2021
29e5e47
Merge branch 'PHP-8.0'
cmb69 Jul 15, 2021
fc6656e
Fix some more ext/spl return types
kocsismate Jul 14, 2021
fae7cec
Merge branch 'PHP-8.0'
kocsismate Jul 15, 2021
0ba155c
Make syslog() binary safe
Girgias Jul 15, 2021
a054ef2
Fix #80849: HTTP Status header truncation
cmb69 Jul 15, 2021
bb4dbbc
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 15, 2021
1f9b044
Merge branch 'PHP-8.0'
cmb69 Jul 15, 2021
be5fd30
Fix Windows debug builds
cmb69 Jul 15, 2021
3025126
Fix race condition in automatic zend_vm_gen.php invocation
nikic Jul 16, 2021
8f97f82
Fix bug #81265: getimagesize returns 0 for 256px ICO images
Blacksmoke16 Jul 16, 2021
12a858a
Merge branch 'PHP-7.4' into PHP-8.0
nikic Jul 16, 2021
f2e374c
Merge branch 'PHP-8.0'
nikic Jul 16, 2021
b3e0888
Declare tentative return types in ext/spl - part 3 (#7239)
kocsismate Jul 16, 2021
4c873df
sockets enabling SO_MARK socket option which is relatively similar
devnexen Jun 28, 2021
172f84b
Add UPGRADING entry for socket options
nikic Jul 16, 2021
4423253
Fix deprecation warnings in phar.php
nikic Jul 16, 2021
bf40a93
Add --bless option to run-tests.php
nikic Jul 16, 2021
a733b1a
Restore zend_atoi()
nikic Jul 16, 2021
bcb89c7
Fix #78238: BCMath returns "-0"
cmb69 Jul 16, 2021
9fbcaa5
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 16, 2021
d66854b
Merge branch 'PHP-8.0'
cmb69 Jul 16, 2021
f089e8a
DOMNodeList::count() cannot return false
nikic Jul 16, 2021
4cf0269
DOMNamedNodeMap::count() cannot return false
nikic Jul 16, 2021
cad6144
Add minimial tentative types to dom
nikic Jul 16, 2021
b9893c2
Actually add the tentative type marker...
nikic Jul 16, 2021
edb6b37
Don't return bool from Phar::offsetUnset()
nikic Jul 16, 2021
3cfcfac
Fix bug pointed out in feature request 81268
Girgias Jul 16, 2021
9e1c961
Fix intersection types being nullable via implicit forced nullability
Girgias Jul 17, 2021
dff3219
Provide bless_tests.patch for failing tests on AppVeyor
cmb69 Jul 17, 2021
453a516
[skip-ci] Fixup UPGRADING documents
Girgias Jul 17, 2021
9cd4371
Fixed bug #81225 (Wrong result with pow operator with JIT enabled)
dstogov Jul 19, 2021
3621ce6
Merge branch 'PHP-8.0'
dstogov Jul 19, 2021
ee98161
Skip test on 32-bit system
dstogov Jul 19, 2021
58fb147
Merge branch 'PHP-8.0'
dstogov Jul 19, 2021
a837d35
Don't track internal class dependencies
nikic Jul 19, 2021
c0e4932
Fixed bug #81249 (Intermittent property assignment failure with JIT e…
dstogov Jul 19, 2021
6632874
Merge branch 'PHP-8.0'
dstogov Jul 19, 2021
e120d52
Deprecate oci8.old_oci_close_semantics (#7258)
kocsismate Jul 19, 2021
b6dcab2
Fix assert with attribute + first-class callable in assert
nikic Jul 19, 2021
73c6a5b
Fix conversion of Big5 and CP950 text (and add test suite)
alexdowad Jul 4, 2021
340164b
Reduce size of conversion tables for CP936
alexdowad Jul 15, 2021
13136a5
Fix conversion of GB18030 text (and add test suite)
alexdowad Jul 14, 2021
26fc7c4
Fix typo in mbfilter.h
alexdowad Jul 18, 2021
75a678a
Declare tentative return types for Zend (#7251)
kocsismate Jul 19, 2021
c5d93ae
Fixed incorrec immediate encoding when using LEA optimization
shqking Jul 19, 2021
de1a1d5
Merge branch 'PHP-8.0'
dstogov Jul 19, 2021
15abbea
Avoid ASAN integer overflow warnings
dstogov Jul 19, 2021
28f6a2b
Merge branch 'PHP-8.0'
dstogov Jul 19, 2021
c2a58ab
Throw DomException for DOM out-of-memory error conditions
nikic May 26, 2021
052af90
Deprecate autovivification on false
kamil-tekiela Jun 9, 2021
ffc30c5
getrandom support for DragonFlyBSD too.
devnexen Nov 8, 2020
273720d
Add str_replace/array_unique to ct eval list
nikic Jul 19, 2021
814a932
Add ZEND_ACC_NOT_SERIALIZABLE flag
nikic Jul 16, 2021
26b1572
Move date timezone cache destruction to post deactivate
derickr Jul 19, 2021
9d0fb10
Merge branch 'PHP-7.4' into PHP-8.0
derickr Jul 19, 2021
8400878
Merge branch 'PHP-8.0'
derickr Jul 19, 2021
a4db743
Remove THREAD_LS
nikic Jul 19, 2021
084d49a
Set UNION bit for internal class union return type
nikic Jul 19, 2021
ef77d3c
Fix #81206: Multiple PHP processes crash with JIT enabled
cmb69 Jul 17, 2021
0ce1cd1
Merge branch 'PHP-8.0'
cmb69 Jul 19, 2021
2d2c001
Revert "Fix #79908: json_encode encodes negative zero as int"
cmb69 Jul 19, 2021
18abfcb
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 19, 2021
d2cc723
Merge branch 'PHP-8.0'
cmb69 Jul 19, 2021
fc0d898
Fix some smaller formatting inconsistencies in stubs
kocsismate Jul 19, 2021
7a9a37d
Actually, abstract methods don't have a body
kocsismate Jul 19, 2021
d9838e5
Declare tentative return types for ext/dom (#6985)
kocsismate Jul 20, 2021
977c3d1
Fix file name clash in curl_copy_handle tests
nikic Jul 20, 2021
b382883
Indent stubs inside global namespace blocks (#7261)
kocsismate Jul 20, 2021
6780aaa
Implement readonly properties
nikic Jun 2, 2021
570d9b6
Not serializable flag permeation
krakjoe Jul 20, 2021
27bb573
Merge branch 'master' of github.com:php/php-src
krakjoe Jul 20, 2021
c50f4de
Fix typo in comment
nikic Jul 20, 2021
322864b
Drop serial denier functions
krakjoe Jul 20, 2021
2378f35
Use single line phpdoc in stubs where possible
kocsismate Jul 20, 2021
1e4095f
Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" …
dstogov Jul 20, 2021
051ff33
Fix bug #81272: Fix func info for functions returning EMPTY_ARRAY
nikic Jul 20, 2021
c14c82e
Merge branch 'PHP-8.0'
nikic Jul 20, 2021
b420d09
Fix type info for pg_socket()
nikic Jul 20, 2021
c289f52
Fix snmp test for ipv6
nikic Jul 20, 2021
b0d4d6e
Create persistent interned string for password algos
nikic Jul 20, 2021
bf92bdd
Merge branch 'PHP-8.0'
nikic Jul 20, 2021
9726bc6
Duplicate possibly persistent string in phar metadata clone
nikic Jul 20, 2021
bd2cd26
Create interned strings for internal union types
nikic Jul 20, 2021
bca1ebf
Merge branch 'PHP-8.0'
nikic Jul 20, 2021
7572d9b
Fix RC_DEBUG check for IS_NULL type
nikic Jul 20, 2021
4a8b370
Remove gcov mention from release process docs
nikic Jul 20, 2021
520a8e0
Skip new preload test on Windows
cmb69 Jul 20, 2021
718b675
The master branch is now for 8.1.0beta2
ramsey Jul 20, 2021
fda0ed5
Change release process to create branch at RC1
ramsey Jul 20, 2021
02acc5a
Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT)
dstogov Jul 20, 2021
4cf7a25
Merge branch 'PHP-8.0'
dstogov Jul 20, 2021
c22a4d7
Fixed test
dstogov Jul 20, 2021
576655e
drop unused header in fibers
krakjoe Jul 20, 2021
ae8647d
Remove leading underscore for _zend_hash_find_known_hash (#7260)
morrisonlevi Jul 20, 2021
1da5df8
Don't enable rc_debug mode if module startup fails
nikic Jul 21, 2021
21d9931
Fix user ini parsing under RC_DEBUG
nikic Jul 20, 2021
1602db2
Fix return type of DOMNodeList::item()
nikic Jul 21, 2021
0fb1ccc
Add variation job with RC_DEBUG=1
nikic Jul 20, 2021
a190c7f
Sync JIT zend_check_string_offset()
nikic Jul 21, 2021
a3f5b11
Sync JIT overloaded assign/inc/dec overloaded property
nikic Jul 21, 2021
a089386
dom_import_simplexml() cannot return null
nikic Jul 21, 2021
239446c
Merge branch 'PHP-8.0'
nikic Jul 21, 2021
4a8efc3
Set PROFITABILITY_CHECKS=0 on variation job
nikic Jul 20, 2021
11b990f
Forbid multiple readonly modifiers
nikic Jul 21, 2021
7b85d3b
Add support for verifying optimizer func info
nikic Apr 28, 2021
a9991fb
Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
dstogov Jul 21, 2021
a3a74b0
Merge branch 'PHP-8.0'
dstogov Jul 21, 2021
9108ac6
Fixed test
dstogov Jul 21, 2021
760ff84
Fix #74960: Heap buffer overflow via str_repeat
cmb69 Jul 21, 2021
f03e7c8
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 21, 2021
9f18bff
Merge branch 'PHP-8.0'
cmb69 Jul 21, 2021
848b545
more fiber notifications (#7293)
krakjoe Jul 21, 2021
e3d90fa
Transfer MAY_BE_INDIRECT for VERIFY_RETURN
nikic Jul 21, 2021
d1456d1
Print MAY_BE_INDIRECT in dump
nikic Jul 21, 2021
e2194c1
FETCH_STATIC_PROP_IS may return undef
nikic Jul 21, 2021
0ba6dde
retry ldap setup a few times in CI
krakjoe Jul 21, 2021
6ce9836
Merge branch 'PHP-8.0'
krakjoe Jul 21, 2021
053c56f
Fixed bug #81226 (Integer overflow behavior is different with JIT ena…
dstogov Jul 21, 2021
a800bc0
Merge branch 'PHP-8.0'
dstogov Jul 21, 2021
17b5fe1
Added test
dstogov Jul 21, 2021
713eec7
Merge branch 'PHP-8.0'
dstogov Jul 21, 2021
bf294d5
Extend resource reservation to Fibers (#7292)
krakjoe Jul 21, 2021
590af46
Sync the FPM openmetrics status with php-fpm_exporter
bukka Jul 20, 2021
23b1c4a
Migrate to PHP-Parser 4.12.0 and regenerate some arginfos
kocsismate Jul 22, 2021
6d505d4
Add RETURN/RETVAL_COPY_DEREF() macros
nikic Jul 22, 2021
578b785
Don't return reference from Fiber::getReturn()
nikic Jul 22, 2021
9e787d5
Fix typo
nikic Jul 22, 2021
bb9ef2b
Backport libgd commit
andypost Jul 21, 2021
a5ad9ee
Add explicit IntlPartsIterator::getRuleStatus() method
nikic Jul 22, 2021
8a26cbe
Remove unnecessary PDORow get_method / get_class_name handlers
nikic Jul 22, 2021
fc56de1
Add support for generating readonly properties via stubs (#7297)
kocsismate Jul 22, 2021
9c2b87c
JIT: avoid $this check in closures called from methods
dstogov Jul 22, 2021
8fbeebe
Fixed typo
dstogov Jul 22, 2021
e1f211f
Merge branch 'PHP-8.0'
dstogov Jul 22, 2021
87c181a
Fix oci8.old_oci_close_semantics deprecation is always displayed
kocsismate Jul 22, 2021
3eb97a4
Always use separate static_members_table
nikic Jul 22, 2021
5ac55af
Add test for bug #80564
nikic Jul 23, 2021
338a47b
Fix bug #63327
nikic Jul 23, 2021
a892647
Set called_scope in __callStatic closure trampoline
nikic Jul 23, 2021
dfd05da
Fix bug #66719
nikic Jul 23, 2021
90ee1c3
Merge branch 'PHP-7.4' into PHP-8.0
nikic Jul 23, 2021
921e105
Merge branch 'PHP-8.0'
nikic Jul 23, 2021
8befb6d
Assert that call to method always has called scope or object
nikic Jul 23, 2021
89d0115
Remove zend_cleanup_internal_classes()
nikic Jul 23, 2021
36d2dd0
Remove redundant static_members/mutable_data cleanup
nikic Jul 23, 2021
c4f4f1e
Share zval_make_interned_string() helper
nikic Jul 23, 2021
387c0de
Fix #81283: shmop can't read beyond 2147483647 bytes
cmb69 Jul 23, 2021
71879d3
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 23, 2021
f5ee342
Merge branch 'PHP-8.0'
cmb69 Jul 23, 2021
8d25b62
Display the readonly property modifier when printing reflection info
kocsismate Jul 25, 2021
3babe95
Validate that promoted readonly properties have a type
kocsismate Jul 25, 2021
ff8e04a
[ci skip] UPGRADING: oci8.old_oci_close_semantics has been deprecated
cmb69 Jul 25, 2021
a374230
Add support for internal enums
nikic Jul 22, 2021
663536d
Improve class inheritance error messages (#7307)
kocsismate Jul 27, 2021
56ef117
Remove special ctor handling in abstract class verification
nikic Jul 27, 2021
70195c3
Don't force property type resolution for include preloading
nikic Jul 27, 2021
645ef62
Fix enum cast AST allocation
nikic Jul 27, 2021
703e92c
Don't force constant resolution for include preloading
nikic Jul 27, 2021
c1959e6
Fix preloading of enums
nikic Jul 27, 2021
aef3bb7
Fix enum cast AST allocation, again
nikic Jul 27, 2021
b354184
Allocate map_ptr for mutable_data during preloading
nikic Jul 27, 2021
5a7e1a7
Don't use IMMUTABLE flag to decide whether mutable_data is used
nikic Jul 27, 2021
1bd6faf
Fix preloading of trait property attributes
nikic Jul 27, 2021
1fa26ec
Fix #81294: Segfault when removing a filter
cmb69 Jul 26, 2021
bf9afc1
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 27, 2021
ccb6642
Merge branch 'PHP-8.0'
cmb69 Jul 27, 2021
8675380
Increment refcounts in mutable data copies
nikic Jul 27, 2021
d26069a
Prevent mysqli::next_result from reporting errors from previous calls…
kamil-tekiela Jul 27, 2021
65e2dbd
Merge branch 'PHP-7.4' into PHP-8.0
kamil-tekiela Jul 27, 2021
abacd91
Merge branch 'PHP-8.0'
kamil-tekiela Jul 27, 2021
6aa0873
Don't unlink preload file if test failed
nikic Jul 27, 2021
8834cf0
Handle missing class when evaluating CONST_ENUM_INIT
nikic Jul 27, 2021
dcf5e5b
Reuse part of the class binding logic
nikic Jul 27, 2021
9d0db2e
Fixed bug #81298
nikic Jul 28, 2021
d2ccea1
Remove wrappers for *printf functions (#7313)
kamil-tekiela Jul 28, 2021
98049e8
Fix #81252: PDO_ODBC doesn't account for SQL_NO_TOTAL
cmb69 Jul 21, 2021
3244e07
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 28, 2021
a1c1ee6
Don't use opaque for encoding detection score
nikic Jul 28, 2021
19061e3
Merge branch 'PHP-8.0'
cmb69 Jul 28, 2021
f78216f
Extract early binding registration code
nikic Jul 28, 2021
380e705
Use consistent line numbers for early binding errors
nikic Jul 28, 2021
89aa42c
Add missing EXTENSIONS section
nikic Jul 28, 2021
fb52b3c
[skip-ci] Fix comments and UPGRADING.INTERNALS for zend_type changes
Girgias Jul 28, 2021
e011952
Preload unlinked classes, remove preload autoload (#7311)
nikic Jul 28, 2021
58040f2
DynASM/x86: Add missing escape in pattern.
Jul 28, 2021
29aed2a
Clean up dependency resolution during preloading
nikic Jul 28, 2021
840e441
Fix parameter name in call_user_func() error message
nikic Jul 29, 2021
fc45223
Merge branch 'PHP-8.0'
nikic Jul 29, 2021
d1ccb5b
Fix #81305: Built-in Webserver Drops Requests With "Upgrade" Header
cmb69 Jul 29, 2021
3b461d9
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 29, 2021
92b1c17
Merge branch 'PHP-8.0'
cmb69 Jul 29, 2021
4645a9d
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Jul 29, 2021
6d8d636
Merge branch 'PHP-8.0'
cmb69 Jul 29, 2021
60ea2cb
Fix a typo in function execute_ex (#7315)
shqking Jul 29, 2021
6c7b322
Fix parameter name in count() error message
nikic Jul 29, 2021
9e66455
Merge branch 'PHP-8.0'
nikic Jul 29, 2021
254d164
Remove mysqlnd_field_type_name
kamil-tekiela Jul 28, 2021
fb85731
Remove get_parameter_metadata
kamil-tekiela Jul 28, 2021
132d499
Drop mysqlnd statistics triggers
kamil-tekiela Jul 29, 2021
b5746a4
Drop HAS_UNLINKED_USES flag
nikic Jul 29, 2021
b1b0c81
Don't print preload warning for non-top-level classes
nikic Jul 30, 2021
d7b77a4
Fix SplFileObject::fseek() method description (#7321)
andrew-demb Jul 30, 2021
6b1337b
Fix typo [no-ci]
kamil-tekiela Jul 30, 2021
d836046
Perform preloading attempt on copied class
nikic Jul 29, 2021
67b5d8f
Don't reverse class order during preloading
nikic Jul 30, 2021
9ee9393
Skip shebang on preload script
nikic Jul 30, 2021
1852121
Fix session + Serializable tests
nikic Jul 30, 2021
06cf4ff
Tweak some tests to be --preload compatible
nikic Jul 30, 2021
1a370d3
Skip some tests under --preload
nikic Jul 30, 2021
1015eef
Automatically skip ext/opcache tests under --preload
nikic Jul 30, 2021
d6368f7
Test --preload in CI
nikic Jul 30, 2021
ffc8717
Fix some typos (#7320)
javiereguiluz Jul 31, 2021
cd0cd3d
Fix typos (#7327)
kamil-tekiela Aug 1, 2021
328a07d
Update OCI8 tests for oci8.old_oci_close_semantics deprecation
cjbj Aug 2, 2021
8356da6
Remove dynamic defs from methods as well
nikic Aug 2, 2021
9fe3aab
Remove declares inside functions as well
nikic Aug 2, 2021
6e91a82
Fix mutable data initialization during lazy class loading
nikic Aug 2, 2021
9fb93e8
Fixed failed test in extension skeleton
Frago9876543210 Aug 1, 2021
7c9ac47
Fix some mismatches in preprocessor directive comments
javiereguiluz Jul 31, 2021
d28f6e6
Move php_gcvt to zend_gcvt
nikic Aug 2, 2021
e14fbc8
Remove FORMAT_CONV_MAX_PRECISION
nikic Aug 2, 2021
6048481
Add additional double to string APIs
nikic Aug 2, 2021
05ef633
Fix bug #81303 improve match errors
krakjoe Jul 29, 2021
ac17b36
Add support for generating classynopses from stubs
kocsismate Jul 22, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
47 changes: 46 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -1,6 +1,51 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 8.1.0alpha3
?? ??? ????, PHP 8.1.0beta2

- Core:
. Fixed bug #81303 (match error message improvements). (krakjoe)

- Mbstring:
. Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is
specified). (Nikita)

- MySQLnd:
. Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment).
(Nikita)

- Opcache:
. Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT)
. Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
(Nikita, Dmitry)

- Reflection:
. Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current
value for statics). (Nikita)
. Fixed bug #80564 (ReflectionProperty::__toString() renders current value,
not default value). (Nikita)

22 Jul 2021, PHP 8.1.0beta1

- Core:
. Fixed bug #81238 (Fiber support missing for Solaris Sparc). (trowski)
. Fixed bug #81237 (Comparison of fake closures doesn't work). (krakjoe)

- Opcache:
. Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
(Dmitry)
. Fixed bug #81249 (Intermittent property assignment failure with JIT
enabled). (Dmitry)
. Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with
JIT). (Dmitry)

- Reflection:
. Fixed bug #80097 (ReflectionAttribute is not a Reflector). (beberlei)

- Standard:
. Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes
with __serialize()). (Nikita)

08 Jul 2021, PHP 8.1.0alpha3

- Core:
. Fixed bug #81202 (powerpc64 build fails on fibers). (krakjoe)
Expand Down
165 changes: 147 additions & 18 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,18 @@ PHP 8.1 UPGRADE NOTES

- Fileinfo:
. The fileinfo functions now accept and return, respectively, finfo objects
instead of resources.
instead of resources. Return value checks using is_resource()
should be replaced with checks for `false`.

- FTP:
. The FTP functions now accept and return, respectively, FTP\Connection objects
instead of resources.
instead of resources. Return value checks using is_resource()
should be replaced with checks for `false`.

- IMAP:
. The IMAP functions now accept and return, respectively, IMAP\Connection objects
instead of resources.
instead of resources. Return value checks using is_resource()
should be replaced with checks for `false`.

- LDAP:
. The LDAP functions now accept and return, respectively, LDAP\Connection objects
Expand Down Expand Up @@ -139,6 +142,10 @@ PHP 8.1 UPGRADE NOTES
objects instead of "pgsql large object" resources. Return value checks
using is_resource() should be replaced with checks for `false`.

- Phar:
. To comply with the ArrayAccess interface, Phar::offsetUnset() and
PharData::offsetUnset() no longer return a boolean.

- PSpell:
. The PSpell functions now accept and return, respectively, PSpell\Dictionary objects
instead of "pspell" resources. Return value checks using is_resource()
Expand All @@ -160,12 +167,8 @@ PHP 8.1 UPGRADE NOTES
reference representation since PHP 7.0.
. debug_zval_dump() will not print "interned" instead of a dummy refcount of
one for interned strings and immutable arrays.
. fputcsv() now accepts a new "eol" argument which allow to define a custom
eol sequence, the default remains the same and is "\n".

- SPL:
. SplFileObject::fputcsv() now accepts a new "eol" argument which allow to
define a custom eol sequence, the default remains the same and is "\n".
. SplFixedArray will now be JSON encoded like an array.

========================================
Expand All @@ -185,11 +188,26 @@ PHP 8.1 UPGRADE NOTES
RFC: https://wiki.php.net/rfc/noreturn_type
. Added support for fibers.
RFC: https://wiki.php.net/rfc/fibers
. It is now possible to use "new ClassName()" expressions as parameter
default values, static variable and global constant initializers, as well
as attribute arguments. Objects can also be passed to `define()` now.
RFC: https://wiki.php.net/rfc/new_in_initializers
. Closures for callables can now be created using the syntax `myFunc(...)`,
which is the same as `Closure::fromCallable('myFunc')`. Yes, the `...` is
part of the syntax, not an omission.
RFC: https://wiki.php.net/rfc/first_class_callable_syntax
. File uploads now provide an additional full_path key, which contains the
full path (rather than just the basename) of the uploaded file. This is
intended for use in conjunction with "upload webkitdirectory".
. It is now allowed to specify named arguments after an argument unpack, e.g.
foo(...$args, named: $arg).
. Added support for intersection types.
They cannot be combined with union types.
RFC: https://wiki.php.net/rfc/pure-intersection-types
. Added support for the final modifier for class constants.
RFC: https://wiki.php.net/rfc/final_class_const
. Added support for readonly properties.
RFC: https://wiki.php.net/rfc/readonly_properties_v2

- Curl:
. Added CURLOPT_DOH_URL option.
Expand Down Expand Up @@ -222,7 +240,7 @@ PHP 8.1 UPGRADE NOTES
imageavif() functions, if libgd has been built with avif support.

- hash:
. The following functions have changed signatures:
. The following functions have changed signatures, to support an optional `$options` argument:

- function hash(string $algo, string $data, bool $binary = false, array $options = []): string|false {}
- function hash_file(string $algo, string $filename, bool $binary = false, array $options = []): string|false {}
Expand Down Expand Up @@ -277,7 +295,7 @@ PHP 8.1 UPGRADE NOTES
. Binding in execute has been added to mysqli prepared statements.
Parameters can now be passed to mysqli_stmt::execute as an array.
RFC: https://wiki.php.net/rfc/mysqli_bind_in_execute
. A new function has been added to mysqli_result called mysqli_fetch_column().
. A new method has been added to mysqli_result called mysqli_fetch_column().
It allows for fetching single scalar values from the result set.
RFC: https://wiki.php.net/rfc/mysqli_fetch_column

Expand All @@ -298,6 +316,14 @@ PHP 8.1 UPGRADE NOTES
. Added POSIX_RLIMIT_KQUEUES and POSIX_RLIMIT_NPTS. These rlimits are only
available on FreeBSD.

- Standard:
. fputcsv() now accepts a new "eol" argument which allow to define a custom
eol sequence, the default remains the same and is "\n".

- SPL:
. SplFileObject::fputcsv() now accepts a new "eol" argument which allow to
define a custom eol sequence, the default remains the same and is "\n".

========================================
3. Changes in SAPI modules
========================================
Expand All @@ -307,7 +333,7 @@ PHP 8.1 UPGRADE NOTES
Previously, -a without readline had the same behavior as calling php without
any arguments, apart from printing an additional "Interactive mode enabled"
message. This mode was not, in fact, interactive.

- phpdbg:
. Remote functionality from phpdbg has been removed.

Expand All @@ -325,7 +351,63 @@ PHP 8.1 UPGRADE NOTES
e.g. a truncation from 1.9 to 1, is deprecated. This affects array keys,
int parameter and return types, and operators working on integers.
RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate
. returning a non-array from __sleep will raise a warning
. Calling a static method or accessing a static property directly on a trait
is deprecated. Static methods and properties should only be accessed on a
class using the trait.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. Returning a non-array from __sleep will raise a warning
. Returning by reference from a void function is deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. Automatic conversion of "false" into an empty array on write operands is
deprecated.
RFC: https://wiki.php.net/rfc/autovivification_false

- Ctype:
. Passing a non-string value to ctype_*() functions is deprecated. A future
version of PHP will make ctype_*() accept a string argument, which means
that either only strings will be accepted (strict_types=1) or inputs may be
converted to string (strict_types=0). In particular, using ctype_*($cp) to
check whether an ASCII codepoint given as integer satisfies a given ctype
predicate will no longer be supported. Instead ctype_*(chr($cp)) should be
used.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- Date:
. The date_sunrise() and date_sunset() functions have been deprecated in
favor of date_sun_info().
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. The strftime() and gmstrftime() functions have been deprecated in favor of
date()/DateTime::format() (for locale-independent formatting) or
IntlDateFormatter::format() (for locale-dependent formatting).

- Filter:
. The FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED filters have been
deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. The filter.default ini setting is deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- GD:
. The $num_points parameter of image(open|filled)polygon has been deprecated.

- Hash:
. The mhash(), mhash_keygen_s2k(), mhash_count(), mhash_get_block_size() and
mhash_get_hash_name() functions are deprecated. Use the hash_*() APIs
instead.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- IMAP:
. The NIL constant has been deprecated. Use 0 instead.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- Intl:
. Calling IntlCalendar::roll() with bool argument is deprecated. Pass 1 and -1
instead of true and false respectively.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- Mbstring:
. Calling mb_check_encoding() without an argument is deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- MySQLi:
. The mysqli_driver::$driver_version property has been deprecated. The driver
Expand All @@ -335,11 +417,49 @@ PHP 8.1 UPGRADE NOTES
mysqli_get_client_info() function has been deprecated. Use
mysqli_get_client_info() without any arguments to obtain the client
library version information.
. The mysqli::init() method has been deprecated. Replace calls to
parent::init() with parent::__construct().
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- OCI8:
. The INI directive oci8.old_oci_close_semantics has been deprecated.

- ODBC:
. odbc_result_all() has been deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- PDO:
. The PDO::FETCH_SERIALIZE mode has been deprecated.
RFC: https://wiki.php.net/rfc/phase_out_serializable

- PgSQL:
. Not passing the connection argument to PgSQL functions and using the
default connection is deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- SOAP:
. The ssl_method option for the SoapClient constructor has been deprecated in
favor of ssl stream context options. The direct equivalent would be
crypto_method, but min_proto_version/max_proto_version are recommended
instead.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

- Standard:
. Calling key(), current(), next(), prev(), reset(), or end() on objects
is deprecated. Instead cast the object to array first, or make use of
ArrayIterator.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. The strptime() function has been deprecated. Use date_parse_from_format()
instead (for locale-independent parsing) or IntlDateFormatter::parse() (for
locale-dependent parsing).
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. The auto_detect_line_endings ini setting has been deprecated. If necessary,
handle "\r" line breaks manually instead.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1
. The FILE_BINARY and FILE_TEXT constants are deprecated. They already had
no effect previously.
RFC: https://wiki.php.net/rfc/deprecations_php_8_1

========================================
5. Changed Functions
========================================
Expand All @@ -366,6 +486,15 @@ PHP 8.1 UPGRADE NOTES
. PDO::getAttributes() with PDO::ATTR_SERVER_INFO and PDO::ATTR_SERVER_VERSION
now return values instead of throwing PDOException.

- Reflection:
. ReflectionProperty::setAccessible() and ReflectionMethod::setAccessible()
no longer have an effect. Properties and methods are always considered
accessible through reflection.
RFC: https://wiki.php.net/rfc/make-reflection-setaccessible-no-op

- Standard:
. syslog() is now binary safe.

========================================
6. New Functions
========================================
Expand Down Expand Up @@ -436,9 +565,6 @@ PHP 8.1 UPGRADE NOTES
- OpenSSL:
. The OpenSSL extension now requires at least OpenSSL version 1.0.2.

- Sockets:
. FreeBSD defines SO_ACCEPTFILTER

- Standard:
. --with-password-argon2 now uses pkg-config to detect libargon2. As such,
an alternative libargon2 location should now be specified using
Expand All @@ -453,9 +579,14 @@ PHP 8.1 UPGRADE NOTES
MYSQLI_REFRESH_SLAVE, in line with an upstream change in MySQL. The old
constant is still available for backwards-compatibility reasons, but may
be deprecated/removed in the future.

- Sockets:
. TCP_DEFER_ACCEPT socket option added where available.
. The following socket options are now defined if they are supported:
* SO_ACCEPTFILTER
* SO_DONTTRUNC
* SO_WANTMORE
* SO_MARK
* TCP_DEFER_ACCEPT

========================================
11. Changes to INI File Handling
Expand All @@ -468,8 +599,6 @@ PHP 8.1 UPGRADE NOTES
12. Windows Support
========================================

. The macro IGNORE_URL_WIN has been removed; it had no effect as of PHP 5.0.0.

========================================
13. Other Changes
========================================
Expand Down
15 changes: 15 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ PHP 8.1 INTERNALS UPGRADE NOTES
a. Removed Zend APIs
b. Zend Stream API
c. zend_get_opcode_id()
d. Removed support for "p" printf format specifier
e. ZEND_ATOL() changes
f. Non-serializable classes should use ZEND_ACC_NOT_SERIALIZABLE
g. _zend_hash_find_known_hash renamed to zend_hash_find_known_hash
h. Renaming of ZEND_TYPE_HAS_CLASS() into ZEND_TYPE_IS_COMPLEX()

2. Build system changes
a. New compiler flags
Expand All @@ -25,6 +30,7 @@ PHP 8.1 INTERNALS UPGRADE NOTES
zend_ce_traversable.
- The ZVAL_NEW_ARR() macro has been removed. Use array_init() or ZVAL_ARR
with zend_new_array() instead.
- The IGNORE_URL_WIN macro has been removed; it had no effect as of PHP 5.0.0.
b. Zend Stream API has been changed to use "zend_string*" instead of "char*"
- zend_file_handle.filename now is zend_string*
- zend_file_handle.free_filename is removed. Now zend_file_handle.filename is always released.
Expand All @@ -42,6 +48,15 @@ PHP 8.1 INTERNALS UPGRADE NOTES
c. Added the zend_get_opcode_id() function, which is intended to get opcode id from name.
d. Removed support for "p" modifier (%pd, %pu, etc) in PHP's printf
implementations. Use ZEND_LONG_FMT and ZEND_ULONG_FMT instead.
e. ZEND_ATOL() now returns the integer instead of assigning it as part of the
macro. Replace ZEND_ATOL(i, s) with i = ZEND_ATOL(s).
f. Non-serializable classes should be indicated using the
ZEND_ACC_NOT_SERIALIZABLE (@not-serializable in stubs) rather than the
zend_class_(un)serialize_deny handlers which are removed.
g. _zend_hash_find_known_hash has been renamed to zend_hash_find_known_hash.
h. ZEND_TYPE_HAS_CLASS() has been renamed to ZEND_TYPE_IS_COMPLEX() for clarity.
A zend_type element can contain a zend_type_list which might be either a union or an intersection,
or a single class stored as either a zend_string* or a zend_class_entry*.

========================
2. Build system changes
Expand Down
8 changes: 7 additions & 1 deletion Zend/Makefile.frag
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ $(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --no-generation-date --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l)

$(srcdir)/zend_vm_execute.h $(srcdir)/zend_vm_opcodes.c: $(srcdir)/zend_vm_def.h $(srcdir)/zend_vm_execute.skl $(srcdir)/zend_vm_gen.php
# Use an intermediate target to indicate that zend_vm_gen.php produces both files
# at the same time, rather than the same recipe applying for two different targets.
# The "grouped targets" feature, which would solve this directly, is only available
# since GNU Make 4.3.
$(srcdir)/zend_vm_execute.h $(srcdir)/zend_vm_opcodes.c: vm.gen.intermediate ;
.INTERMEDIATE: vm.gen.intermediate
vm.gen.intermediate: $(srcdir)/zend_vm_def.h $(srcdir)/zend_vm_execute.skl $(srcdir)/zend_vm_gen.php
@if test ! -z "$(PHP)"; then \
$(PHP) $(srcdir)/zend_vm_gen.php; \
fi;
Expand Down
2 changes: 1 addition & 1 deletion Zend/Optimizer/compact_literals.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ static size_t type_num_classes(const zend_op_array *op_array, uint32_t arg_num)
arg_info = op_array->arg_info - 1;
}

if (ZEND_TYPE_HAS_CLASS(arg_info->type)) {
if (ZEND_TYPE_IS_COMPLEX(arg_info->type)) {
if (ZEND_TYPE_HAS_LIST(arg_info->type)) {
return ZEND_TYPE_LIST(arg_info->type)->num_types;
}
Expand Down
Loading