Skip to content

sync #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 497 commits into from
Dec 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
497 commits
Select commit Hold shift + click to select a range
a55402d
Rename XmlParser to XMLParser for consistency with XMLWriter/XMLReader
Girgias Nov 24, 2020
0076b47
Fix Bug #80438: imap_msgno() incorrectly warns and return false on va…
Girgias Nov 30, 2020
e42bf72
Merge branch 'PHP-8.0'
Girgias Nov 30, 2020
ecee3f1
Next attempt to fix bug #80368
nikic Nov 30, 2020
32cd5a1
Merge branch 'PHP-7.4' into PHP-8.0
nikic Nov 30, 2020
4ce3348
Merge branch 'PHP-8.0'
nikic Nov 30, 2020
57463cf
Drop all JIT related XFAILS from phpdbg test suite
cmb69 Nov 30, 2020
875741b
Merge branch 'PHP-8.0'
cmb69 Nov 30, 2020
5f36d04
Fixed "may be used uninitialized" compilation warnings
dstogov Nov 30, 2020
6852029
Merge branch 'PHP-8.0'
dstogov Nov 30, 2020
841b00f
Preallocate stack space for JIT in execute_ex() to eliminate JIT prol…
dstogov Nov 30, 2020
e1656ba
Merge branch 'PHP-8.0'
dstogov Nov 30, 2020
f1d11c1
Fix #62004: SplFileObject: fgets after seek returns wrong line
cmb69 Nov 18, 2020
ecb1aa4
Merge branch 'PHP-8.0'
cmb69 Nov 30, 2020
886712b
hash: Add build dir for ext/hash/murmur
weltling Nov 30, 2020
31eafed
Skip test if JIT is not available
dstogov Dec 1, 2020
c3a6cf0
Merge branch 'PHP-8.0'
dstogov Dec 1, 2020
4959c60
Fixed incorrect "skipif.inc" include
dstogov Dec 1, 2020
3030d4a
Merge branch 'PHP-8.0'
dstogov Dec 1, 2020
648cda6
Don't mark cpu_supports functions as always inline
nikic Dec 1, 2020
c034f20
Merge branch 'PHP-8.0'
nikic Dec 1, 2020
3c6ab4b
Add const modifier for zend_extension members
huanghantao Nov 27, 2020
5dfec88
Fix use after free with file cache and arena allocated strings
nikic Dec 1, 2020
1912ff5
Merge branch 'PHP-8.0'
nikic Dec 1, 2020
f06afc4
Don't use scope when validating Attribute
nikic Dec 1, 2020
715d89e
Merge branch 'PHP-8.0'
nikic Dec 1, 2020
6fdc988
Don't pass null to strlen()
nikic Nov 30, 2020
3b4fb2e
Determine run-tests executables consistently
nikic Dec 1, 2020
8ad2b59
Disable stack reuse optimization for x86 PIC code. It may clobber loc…
dstogov Dec 1, 2020
5b078e7
Merge branch 'PHP-8.0'
dstogov Dec 1, 2020
b2d7528
Don't try to open null file
nikic Dec 1, 2020
1674c96
Bug #80447 (Strange out of memory error when running with JIT)
dstogov Dec 1, 2020
828f680
Merge branch 'PHP-8.0'
dstogov Dec 1, 2020
44475e7
Fixed bug #80447 (Strange out of memory error when running with JIT)
dstogov Dec 1, 2020
f71cc45
Merge branch 'PHP-8.0'
dstogov Dec 1, 2020
c283f53
Fix #73809: Phar Zip parse crash - mmap fail
cmb69 Dec 1, 2020
83cf4aa
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 1, 2020
13eee77
Merge branch 'PHP-8.0'
cmb69 Dec 1, 2020
5aaffc8
Backport IMAP test modernization to PHP-8.0 branch
Girgias Dec 1, 2020
0811ccb
Merge branch 'PHP-8.0'
Girgias Dec 1, 2020
1071d85
Flesh out HashTable insertion APIs
sgolemon Aug 7, 2020
7a61984
Fixed bug #80462
nikic Dec 2, 2020
2dcf71c
Merge branch 'PHP-8.0'
nikic Dec 2, 2020
a89aaf6
Don't throw from imagecreatefromstring() with too short string
nikic Dec 2, 2020
ecb1592
Merge branch 'PHP-8.0'
nikic Dec 2, 2020
fef0872
Ensure consistent error message in phpdbg parser
nikic Dec 2, 2020
bfa4f81
Don't disable phpdbg on macos
nikic Dec 2, 2020
d6fcaf5
Fixed bug #80457
nikic Dec 2, 2020
f2833ca
Merge branch 'PHP-7.3' into PHP-7.4
nikic Dec 2, 2020
9dda22b
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 2, 2020
0040e59
Merge branch 'PHP-8.0'
nikic Dec 2, 2020
72cd579
Fix failing VirtualProtect() calls
cmb69 Dec 2, 2020
52bd07e
Merge branch 'PHP-8.0'
cmb69 Dec 2, 2020
7bc7a80
Make is_file() and friends return false when path contains 0-byte
Dec 2, 2020
15a33bc
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
d386ed1
Backport fix for bug #78750
petk Jun 7, 2020
8d2a1c8
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 3, 2020
52d3666
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
53f7bdd
Fix typos in mysql tests
kamil-tekiela Dec 2, 2020
261faa6
Remove PHP 5 mysqli tests
kamil-tekiela Dec 2, 2020
aff9a85
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
5d5c1ce
fix mysqli_stmt_get_result_metadata_fetch_field test for mariadb
grooverdan Dec 3, 2020
98cccd3
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 3, 2020
c0ea836
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
0697a64
Fix mysqli_expire_password test for mariadb
grooverdan Dec 2, 2020
0f6c41c
Merge branch 'PHP-7.3' into PHP-7.4
nikic Dec 3, 2020
1a1eeee
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 3, 2020
a5dea65
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
8f8e6f9
Upload coverage data to codecov.io
pcrov Dec 3, 2020
724ee93
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 3, 2020
97338ba
Merge branch 'PHP-8.0'
nikic Dec 3, 2020
e45cc31
Add tests for passing a UID instead of a message number
Girgias Nov 30, 2020
426fe2f
Standardize behaviour for int message number between functions
Girgias Dec 1, 2020
fec771d
Merge branch 'PHP-8.0'
Girgias Dec 3, 2020
8591bb7
Return early from php_search_array()
cmb69 Dec 4, 2020
77325c4
Fix removal of type source during unserialization
nikic Dec 4, 2020
1748329
Merge branch 'PHP-8.0'
nikic Dec 4, 2020
8588ae7
Fix #75102: `PharData` says invalid checksum for valid tar
cmb69 Dec 2, 2020
b52db13
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 4, 2020
7adc3e8
Merge branch 'PHP-8.0'
cmb69 Dec 4, 2020
a83cc03
Fixed bug #80458
kamil-tekiela Dec 2, 2020
9dc42b4
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 4, 2020
89bbaf5
Merge branch 'PHP-8.0'
nikic Dec 4, 2020
8bb7417
Increase timeout on msan job
nikic Dec 5, 2020
c9f3cf8
Clarify and assert that printf() and friends never return NULL
cmb69 Dec 6, 2020
7971602
Fixed bug #80480 (Segmentation fault with JIT enabled)
dstogov Dec 7, 2020
b9ee875
Merge branch 'PHP-8.0'
dstogov Dec 7, 2020
2d467ab
Fix another typed resource issue in unserialization
nikic Dec 7, 2020
c4f97a1
Merge branch 'PHP-8.0'
nikic Dec 7, 2020
db34491
Avoid unnecessary checks
dstogov Dec 8, 2020
75d7e60
Merge branch 'PHP-8.0'
dstogov Dec 8, 2020
bd093ad
Fixed bug #63185
nikic Dec 8, 2020
bd72e4a
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 8, 2020
c22f1d4
Merge branch 'PHP-8.0'
nikic Dec 8, 2020
c3734f9
ldap_exop_whoami() does not return TRUE
cmb69 Dec 8, 2020
748d553
Merge branch 'PHP-8.0'
cmb69 Dec 8, 2020
65f5573
Fix #77069: stream filter loses final block of data
cmb69 Sep 22, 2020
d6ae0f0
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 8, 2020
615197a
Merge branch 'PHP-8.0'
cmb69 Dec 8, 2020
20e7532
Fix #48725: Support for flushing in zlib stream
cmb69 Aug 19, 2020
fb4bc0f
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 8, 2020
78c0338
Merge branch 'PHP-8.0'
cmb69 Dec 8, 2020
713ef85
Enable XFAILed test
nikic Dec 8, 2020
f531b84
Merge branch 'PHP-8.0'
nikic Dec 8, 2020
bfa69d2
Handle column count change in PDO MySQL
nikic Dec 8, 2020
0ac8518
Merge branch 'PHP-8.0'
nikic Dec 8, 2020
2df09b9
PDO MySQL: Normalize handling of empty stored procedure result set
nikic Dec 8, 2020
dc58a1e
Merge branch 'PHP-8.0'
nikic Dec 8, 2020
311a77d
Handle changing column count in mysqlnd result binding
nikic Dec 8, 2020
c77bf40
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
9c0712d
Make XFAILED test less broken
nikic Dec 9, 2020
18517e7
Fix stmt_free_result implementation and usage
nikic Dec 9, 2020
de22980
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
44b234a
Fixed bug #78154
nikic Dec 9, 2020
71b5f14
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 9, 2020
7eae146
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
23193e8
PDO MySQL: Handle error during closeCursor()
nikic Dec 9, 2020
39d20b4
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
186b766
PDO MySQL: Make sure nextRowset() works with partially consumed result
nikic Dec 9, 2020
bd096f3
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
8d268e8
Fixed IS_32BIT/IS_SIGNED_32BIT mess
dstogov Dec 9, 2020
974b442
Merge branch 'PHP-8.0'
dstogov Dec 9, 2020
fb69c77
PDO MySQL: Use set_row_count() helper
nikic Dec 9, 2020
b9ea8d6
PDO MySQL: Extract common code for handling PS results
nikic Dec 9, 2020
f6b22da
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
a073b02
Add ifdef for mysqlnd only function
nikic Dec 9, 2020
ef342b0
Remove unnecessary more_results() checks
nikic Dec 9, 2020
77a06cc
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
fcfa7fd
Fixed bug #66878
nikic Dec 9, 2020
6b2d28b
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
106e7e4
Fixed bug #70066
nikic Dec 9, 2020
e268709
Merge branch 'PHP-8.0'
nikic Dec 9, 2020
6992c38
Fix typo 'variabled' in named_params/undef_var.phpt
hgsgtk Dec 9, 2020
e9f9e9f
Perform early guard type check for result of FETCH_CONSTANT
dstogov Dec 9, 2020
d92b001
Merge branch 'PHP-8.0'
dstogov Dec 9, 2020
f3d5877
Backport fix for bug #70066
nikic Dec 9, 2020
c95680d
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 10, 2020
bbd65c1
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
26c7b94
EXTERN_C wrapping for GC buffer APIs
twose Dec 10, 2020
a38aaf6
Merge branch 'PHP-8.0'
twose Dec 10, 2020
4922049
Fixed bug #71145
nikic Dec 10, 2020
9b678bc
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 10, 2020
030845e
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
e450621
Fixed bug #76815
nikic Dec 10, 2020
d63aedd
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 10, 2020
207fcb0
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
288581f
Fixed bug #79872 by improving error message
nikic Dec 10, 2020
16e8c1a
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
dde5572
Eliminate some repeatable IS_REFERENCE checks
dstogov Dec 10, 2020
6ec7d4c
Merge branch 'PHP-8.0'
dstogov Dec 10, 2020
15b51a2
Fixed bug #79131
nikic Dec 10, 2020
786cb68
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
a552757
Allow drivers to omit error code
nikic Dec 10, 2020
d6c3b8b
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
9e3ba77
Fixed bug #72368
nikic Dec 10, 2020
1af2edd
Merge branch 'PHP-8.0'
nikic Dec 10, 2020
54a63d9
Fix test cases for MariaDB
kamil-tekiela Dec 10, 2020
2d6330d
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
c927c83
PDO MySQL: Fix leak with libmysqlclient and multiple rowsets
nikic Dec 11, 2020
b4ff7d4
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
43741a3
Fixed bug #62889
nikic Dec 11, 2020
09cc096
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
4e51059
PDO MySQL: Fix libmysql option test
nikic Dec 11, 2020
d6b4b82
PDO MySQL: Use stmt_next_result with libmysqlclient as well
nikic Dec 11, 2020
96ec26e
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
ad8eb11
Fixed bug #67004
nikic Dec 11, 2020
d09d930
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
e4e88bd
PDO MySQL: Unskip bug_41125.phpt
nikic Dec 11, 2020
9b5f908
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
81f012a
PDO MySQL: Don't skip two LOCAL_INFILE tests with libmysqlclient
nikic Dec 11, 2020
7a89157
PDO MySQL: Fix nextRowset() on libmysqlclient with native PS
nikic Dec 11, 2020
d5f6922
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
ccb7f1c
Fixed bug #79132
nikic Dec 11, 2020
154f27a
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
b0e858d
Remove bug41347.phpt as the error cases are already tested
ekinhbayar Dec 11, 2020
70c22de
Merge branch 'PHP-8.0'
nikic Dec 11, 2020
110b4e9
hash: Support custom algo parameters
weltling Nov 2, 2020
c6d3c68
UPGRADING: Document algorithm specific hash options [ci skip]
weltling Dec 13, 2020
ffcc93e
UPGRADING.INTERNALS: Document hash init signature changes [ci skip]
weltling Dec 13, 2020
a221e17
Fix bug #69625: FPM returns 200 status on request without SCRIPT_FILE…
bukka Nov 28, 2020
d254078
Merge branch 'PHP-7.4' into PHP-8.0
bukka Dec 13, 2020
97d2dd0
Merge branch 'PHP-8.0'
bukka Dec 13, 2020
269a884
hash: Fix signatures in the final callback defs
weltling Dec 13, 2020
2b7eb0e
Disallow version_compare() $operator abbreviations
cmb69 Dec 13, 2020
aa58db7
Fix signed/unsigned warnings in PDO ODBC
nikic Dec 14, 2020
47fe412
Allow building dblib with machine-dependent libdir
nikic Dec 14, 2020
f2ddfcc
Fix MHANDLEFUNC signature
nikic Dec 14, 2020
c288b52
Fix compile warnings in PDO Firebird
nikic Dec 14, 2020
2d51c20
PDO: Store/pass query_string as zend_string
nikic Dec 11, 2020
86e317a
MySQLnd: Remove fail thresholds from infallible allocators
nikic Dec 14, 2020
5d9bd14
MySQLnd: Remove some unnecessary allocator failure checks
nikic Dec 14, 2020
141eb34
Remove MYSQLND_STRING_TO_INT_CONVERSION define
nikic Dec 14, 2020
35d752f
Remove more OOM checks
nikic Dec 14, 2020
7088cff
mysqlnd_error_info_init() cannot fail
nikic Dec 14, 2020
a12e7af
Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug",…
dstogov Dec 14, 2020
66e3907
Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug",…
dstogov Dec 14, 2020
c3c7b67
Merge branch 'PHP-8.0'
dstogov Dec 14, 2020
b337702
Remove unused flag
dstogov Dec 14, 2020
f1e2cd8
Merge branch 'PHP-8.0'
dstogov Dec 14, 2020
3c63b26
Use zmm for row_c data
nikic Dec 14, 2020
10c9d61
Drop pdo_mysql_prepare_load_data.phpt
cmb69 Dec 11, 2020
15d9c42
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 14, 2020
5263fff
Merge branch 'PHP-8.0'
cmb69 Dec 14, 2020
2e974c8
Add Windows support for OCI 19
cmb69 Dec 14, 2020
b59156c
Merge branch 'PHP-8.0'
cmb69 Dec 14, 2020
1e6c7e7
JIT disabled build fix.
devnexen Dec 14, 2020
f9942b0
Merge branch 'PHP-8.0'
nikic Dec 15, 2020
c1e977f
Add more tests that document late static binding
jellynoone Dec 14, 2020
54248b1
IBM i PASE doesn't support ITIMER_PROF
NattyNarwhal Dec 10, 2020
b6d043a
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 15, 2020
3642042
Merge branch 'PHP-8.0'
nikic Dec 15, 2020
724e241
JIT: Update invalid opcache.jit INI value message to include "tracing…
Ayesh Dec 2, 2020
0896f36
Merge branch 'PHP-8.0'
nikic Dec 15, 2020
36ff92e
Remove very old -no-cpp-precomp compatibility flag on Mac
morrisonlevi Dec 9, 2020
be4f73f
MySQLnd: Remove unused fetch_field_data method
nikic Dec 15, 2020
362c292
Remove mysqlnd_extension enum
nikic Dec 15, 2020
40d9e3a
7.3.27 is next
cmb69 Dec 15, 2020
c0a1c2c
Merge branch 'PHP-7.3' into PHP-7.4
cmb69 Dec 15, 2020
305500a
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 15, 2020
6e2614e
Merge branch 'PHP-8.0'
cmb69 Dec 15, 2020
a53d67c
Fix #77322: PharData::addEmptyDir('/') Possible integer overflow
cmb69 Dec 11, 2020
c2fbab3
Merge branch 'PHP-7.4' into PHP-8.0
cmb69 Dec 15, 2020
6b37cdd
Merge branch 'PHP-8.0'
cmb69 Dec 15, 2020
6bda0c1
MySQLnd: Simplify management of zval row buffer
nikic Dec 15, 2020
de78786
Optimize out result value of ASSIGN, ASSIGN_OP and INC/DEC opcodes, i…
dstogov Dec 15, 2020
6c05b33
Merge branch 'PHP-8.0'
dstogov Dec 15, 2020
8064658
MySQLnd: Drop free_result_internal
nikic Dec 15, 2020
f1f78ac
Next is 8.0.2
carusogabriel Dec 15, 2020
82af0ea
Merge branch 'PHP-8.0'
carusogabriel Dec 15, 2020
9eea9aa
Prepare for PHP 8.0.2
carusogabriel Dec 15, 2020
1314ae6
Merge branch 'PHP-8.0'
carusogabriel Dec 15, 2020
078cdd8
Prepare for 7.4.15
derickr Dec 15, 2020
e586a35
Merge branch 'PHP-7.4' into PHP-8.0
derickr Dec 15, 2020
f66f2b2
Merge branch 'PHP-8.0'
derickr Dec 15, 2020
cfe2b36
Fix ATTR_ORACLE_NULLS with PARAM_ZVAL
nikic Dec 15, 2020
118ff03
Fix bug #80523
nikic Dec 16, 2020
f6bd3df
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 16, 2020
8bd5310
Merge branch 'PHP-8.0'
nikic Dec 16, 2020
315f3f8
Fixed bug #67983
nikic Dec 16, 2020
1a66d64
Merge branch 'PHP-7.4' into PHP-8.0
nikic Dec 16, 2020
1c29db1
Merge branch 'PHP-8.0'
nikic Dec 16, 2020
205d209
PDO MySQL: Use mysqlnd column names
nikic Dec 16, 2020
52435f9
Merge branch 'PHP-8.0'
nikic Dec 16, 2020
c567016
Detect overlarge step for character range()
nikic Dec 16, 2020
bc4140d
Merge branch 'PHP-8.0'
nikic Dec 16, 2020
1860ef2
Fix #80521: Parameters with underscores no longer recognized
cmb69 Dec 16, 2020
58d459f
Merge branch 'PHP-8.0'
cmb69 Dec 16, 2020
95a4e1e
Fix ubsan error on Mac
morrisonlevi Dec 17, 2020
890e4ca
Drop support for max_length in mysqli_fetch_fields()
nikic Dec 14, 2020
33e9049
MySQLnd: Clean up and optimize mysqlnd result set handling
nikic Dec 14, 2020
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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ jobs:
include:
- env: ENABLE_ZTS=0 ENABLE_DEBUG=0
arch: amd64
if: type = cron
- env: ENABLE_ZTS=1 ENABLE_DEBUG=1
arch: amd64
if: type = cron
- env: ENABLE_ZTS=1 ENABLE_DEBUG=1 SKIP_IO_CAPTURE_TESTS=1 ARM64=1
arch: arm64
if: type = cron
Expand Down
4 changes: 4 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 8.1.0alpha1

- Core:
. Fixed inclusion order for phpize builds on Windows. (cmb)
. Added missing hashtable insertion APIs for arr/obj/ref. (Sara)

- FTP:
. Convert resource<ftp> to object \FTPConnection. (Sara)

Expand Down
39 changes: 38 additions & 1 deletion UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,49 @@ PHP 8.1 UPGRADE NOTES
1. Backward Incompatible Changes
========================================

- MySQLi:
. mysqli_fetch_fields() and mysqli_fetch_field_direct() will now always return
zero for max_length. You can compute this information by iterating over the
result set and taking the maximum length. This is what PHP was doing
internally previously.
. The MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH option no longer has an effect.
. The MYSQLI_STORE_RESULT_COPY_DATA option no longer has an effect.

- MySQLnd:
. The mysqlnd.fetch_copy_data ini setting has been removed. However, this
should not result in user-visible behavior changes.

- Standard:
. version_compare() no longer accepts undocumented operator abbreviations.

========================================
2. New Features
========================================

- hash:
. Added MurmurHash3 with streaming support. The following variants are implemented
. The following functions have changed signatures:

- 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 {}
- function hash_init(string $algo, int $flags = 0, string $key = "", array $options = []): HashContext {}

The additional `$options` argument can be used to pass algorithm specific data.

. Added MurmurHash3 with streaming support. The following variants are implemented:

- murmur3a, 32-bit hash
- murmur3c, 128-bit hash for x86
- murmur3f, 128-bit hash for x64

The initial hash state can be passed through the `seed` key in the `$options` array, for example:

```php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
```

A valid seed value is within the range from 0 to the plaform defined UINT_MAX, usually 4294967295.

========================================
3. Changes in SAPI modules
========================================
Expand Down Expand Up @@ -61,6 +93,11 @@ PHP 8.1 UPGRADE NOTES
- OpenSSL:
. The OpenSSL extension now requires at least OpenSSL version 1.0.2.

- Standard:
. --with-password-argon2 now uses pkg-config to detect libargon2. As such,
an alternative libargon2 location should now be specified using
PKG_CONFIG_PATH.

========================================
10. New Global Constants
========================================
Expand Down
8 changes: 8 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ PHP 8.1 INTERNALS UPGRADE NOTES
2. Build system changes

3. Module changes
a. ext/hash

========================
1. Internal API changes
Expand All @@ -17,3 +18,10 @@ PHP 8.1 INTERNALS UPGRADE NOTES
========================
3. Module changes
========================

a. ext/hash
- The init signatures are extended with an additional `HashTable*`
argument. The passed HT is to contain the algorithm specific
configuration. If the an algorithm doesn't make use of any
additional configuration, the argument is to be marked with
ZEND_ATTRIBUTE_UNUSED.
6 changes: 0 additions & 6 deletions Zend/Zend.m4
Original file line number Diff line number Diff line change
Expand Up @@ -190,12 +190,6 @@ dnl LIBZEND_OTHER_CHECKS
dnl
AC_DEFUN([LIBZEND_OTHER_CHECKS],[

AC_ARG_ENABLE([zts],
[AS_HELP_STRING([--enable-zts],
[Enable thread safety])],
[ZEND_ZTS=$enableval],
[ZEND_ZTS=no])

AC_MSG_CHECKING(whether to enable thread-safety)
AC_MSG_RESULT($ZEND_ZTS)

Expand Down
9 changes: 9 additions & 0 deletions Zend/tests/attributes/032_attribute_validation_scope.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
--TEST--
Validation for "Attribute" does not use a scope when evaluating constant ASTs
--FILE--
<?php
#[Attribute(parent::x)]
class x extends y {}
?>
--EXPECTF--
Fatal error: Cannot access "parent" when no class scope is active in %s on line %d
2 changes: 1 addition & 1 deletion Zend/tests/bug70630.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ $x = (new ReflectionFunction("substr"))->getClosure();
$x->call(new a);
?>
--EXPECTF--
Warning: Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure() in %s on line %d
Warning: Cannot rebind scope of closure created from function in %s on line %d
2 changes: 1 addition & 1 deletion Zend/tests/bug70685.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ var_dump($c);
Warning: Cannot bind method SplDoublyLinkedList::count() to object of class cls in %s on line %d
NULL

Warning: Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure() in %s on line %d
Warning: Cannot rebind scope of closure created from method in %s on line %d
NULL
23 changes: 23 additions & 0 deletions Zend/tests/bug80391.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--TEST--
Iterable not covariant to mixed
--FILE--
<?php

class A {
public function method1(): mixed {}
public function method2(): array|object {}
public function method3(iterable $x) {}
public function method4(iterable $x) {}
}

class B extends A {
public function method1(): iterable {}
public function method2(): iterable {}
public function method3(mixed $x) {}
public function method4(array|object $x) {}
}

?>
===DONE===
--EXPECT--
===DONE===
11 changes: 11 additions & 0 deletions Zend/tests/bug80404.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--TEST--
Bug #80404: Incorrect range inference result when division results in float
--FILE--
<?php

$n = 63;
var_dump((int) ($n / 120 * 100));

?>
--EXPECT--
int(52)
24 changes: 12 additions & 12 deletions Zend/tests/closure_061.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,10 @@ bindTo(new Cls, null):
Success!

bindTo(new Cls, Cls::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from function

bindTo(null, Cls::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from function

bindTo(null, stdClass::class):
Cannot bind closure to scope of internal class stdClass
Expand All @@ -139,10 +139,10 @@ bindTo(new Cls, null):
Success!

bindTo(new Cls, Cls::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from function

bindTo(null, Cls::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from function

bindTo(null, stdClass::class):
Cannot bind closure to scope of internal class stdClass
Expand All @@ -163,13 +163,13 @@ bindTo(new Cls, Cls::class):
Cannot bind an instance to a static closure

bindTo(null, null):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

bindTo(null, ClsChild::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

bindTo(null, ClsUnrelated::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

(new Cls)->method()
-------------------
Expand All @@ -187,13 +187,13 @@ bindTo(new ClsUnrelated, Cls::class):
Cannot bind method Cls::method() to object of class ClsUnrelated

bindTo(new Cls, null):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

bindTo(new Cls, ClsUnrelated::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

bindTo(new Cls, ClsChild::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

(new SplDoublyLinkedList)->count()
----------------------------------
Expand All @@ -214,10 +214,10 @@ bindTo(null, SplDoublyLinkedList::class):
Cannot unbind $this of method

bindTo(new SplDoublyLinkedList, null):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

bindTo(new SplDoublyLinkedList, ClsUnrelated::class):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
Cannot rebind scope of closure created from method

(function() {})()
-----------------
Expand Down
25 changes: 25 additions & 0 deletions Zend/tests/generators/gc_running_generator.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
--TEST--
GC on running generator
--FILE--
<?php

function gen() {
yield;
// Trigger GC while $v is being reassigned.
$ary = [new stdClass, new stdClass, new stdClass];
$ary[0]->foo = $ary;
foreach ($ary as &$v) { }
}

for ($i = 0; $i < 10000; $i++) {
// Make sure gen is registered as a GC root.
$gen = gen();
$gen2 = $gen;
unset($gen);
foreach ($gen2 as $v) {}
}

?>
===DONE===
--EXPECT--
===DONE===
19 changes: 19 additions & 0 deletions Zend/tests/live_range_phi_leak.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--TEST--
Missing live range if part of phi
--FILE--
<?php
function doThrow() {
throw new Exception("Test");
}
function test($k) {
// The 0 gives the QM_ASSIGN a non-refcounted type.
$res[$k ? $k : 0] = doThrow();
}
try {
test(new stdClass);
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
Test
26 changes: 26 additions & 0 deletions Zend/tests/lsb_023.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
--TEST--
Late Static Binding static:: calls protected / public method of child class even then
the method is private in parent class
--FILE--
<?php
class A {
public static function out() {
echo static::value(), PHP_EOL;
}

private static function value() { return 'A'; }
}
class B extends A {
protected static function value() { return 'B'; }
}
class C extends A {
public static function value() { return 'C'; }
}
A::out();
B::out();
C::out();
echo PHP_EOL;
--EXPECT--
A
B
C
25 changes: 25 additions & 0 deletions Zend/tests/lsb_024.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
--TEST--
Late Static Binding static:: accesses protected / public static variables of child
class when the variable is private in parent class
--FILE--
<?php
class A {
private static $value = 'A';

public static function out() {
echo static::$value, PHP_EOL;
}
}
class B extends A {
protected static $value = 'B';
}
class C extends A {
public static $value = 'C';
}
A::out();
B::out();
C::out();
--EXPECT--
A
B
C
2 changes: 1 addition & 1 deletion Zend/tests/named_params/undef_var.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
Passing undefined variabled to named arg
Passing undefined variable to named arg
--FILE--
<?php

Expand Down
Loading