PHP 8.1 is currently only receiving security fixes. PHP 8.1.0beta1 is not the latest version in the series, and using this release is not recommended. PHP 8.1.31 is the latest in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.1.0beta1
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Docker/Podman Containers
docker pull php:8.1.0beta1-cli-alpine
docker pull php:8.1.0beta1-cli
docker pull php:8.1.0beta1-fpm-alpine
docker pull php:8.1.0beta1-apache
docker pull php:8.1.0beta1-fpm
Commit List
Aaron Piotrowski
- Fiber ucontext support in GH-7226
Alex Dowad
- Fix conversion of Big5 and CP950 text (and add test suite) in 73c6a5b89d
- Reduce size of conversion tables for CP936 in 340164bcc9
- Fix conversion of GB18030 text (and add test suite) in 13136a575d
- Fix typo in
mbfilter.h
in 26fc7c4256
Benjamin Eberlei
- Fix #80097: Have ReflectionAttribute implement Reflector and __toString in bc39abe8c3
Ben Morss
- AVIF support for
getimagesize()
andimagecreatefromstring()
in cee33bab16
Ben Ramsey
- The master branch is now for 8.1.0beta1 in c6d4f60827
- Update versions for PHP 8.1.0beta1 in a7f59d8163
Christoph M. Becker
- Fix #81243: Too much memory is allocated for
preg_replace()
in a6b43086e6 - Fix #73226: --r[fcez] always return zero exit code in 9db3eda2cb
- exit_status is no longer a true global in 1631b96b4b
- Fix #79908: json_encode encodes negative zero as int in 717f1ed5e4
- Deprecate $num_points parameter of image(open|filled)polygon in e1285c4aa5
- Fix #72146: Integer overflow on substr_replace in 33f8dfb15a
- Fix #72595:
php_output_handler_append
illegal write access in a942cf5b02 - Fix #80849: HTTP Status header truncation in a054ef2aad
- Fix Windows debug builds in be5fd30d54
- Fix #78238: BCMath returns "-0" in bcb89c75ec
- Provide bless_tests.patch for failing tests on AppVeyor in dff3219ce0
- Fix #81206: Multiple PHP processes crash with JIT enabled in ef77d3c89f
- Revert "Fix #79908: json_encode encodes negative zero as int" in 2d2c001ca5
- Skip new preload test on Windows in 520a8e002a
David CARLIER
- Fix pointer constness warning in crc32 module on arm64 in GH-7225
David Carlier
- sockets enabling SO_MARK socket option which is relatively similar in 4c873df7d5
- getrandom support for DragonFlyBSD too in ffc30c5b8d
Derick Rethans
- Move date timezone cache destruction to post deactivate in 26b1572d37
Dmitry Stogov
- FFI::CType reflection API in a2845e32cb
- Fixed bug #81225 (Wrong result with pow operator with JIT enabled) in 9cd437138e
- Skip test on 32-bit system in ee981619ce
- Fixed bug #81249 (Intermittent property assignment failure with JIT enabled) in c0e4932816
- Avoid ASAN integer overflow warnings in 15abbea5e7
- Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with JIT) in 1e4095f03d
George Dietrich
- Fix bug #81265: getimagesize returns 0 for 256px ICO images in 8f97f82e35
George Peter Banyard
- Deprecate using the implicit default PgSQL connection in 1f42777927
- Use standard bool type instead of bool_int in 10f416f5c2
- Use standard bool type instead of boolean_e in 5e4d727f6a
- Remove unused macro in 2bf68b3c01
- Refactor conversion function in b901c0528c
- Use standard 64bit unsigned int type in 97785545cf
- Use standard 64bit signed int type in 02e48d99c9
- Drop register keyword in 282abfed95
- Make
syslog()
binary safe in 0ba155cd57 - Fix bug pointed out in feature request 81268 in 3cfcfacd36
- Fix intersection types being nullable via implicit forced nullability in 9e1c961110
- [skip-ci] Fixup UPGRADING documents in 453a5163ce
Hao Sun
- Fixed incorrec immediate encoding when using LEA optimization in c5d93aeee9
Joe Watkins
- replace phpdbg custom opcode dumper with O+ dump in GH-7227
- Fix bug #81237 comparison of fake closures doesn't work in 6a9daafed4
- Add first-class callables in d0b09a7be4
- Not serializable flag permeation in 570d9b63e9
- Drop serial denier functions in 322864b569
Kamil Tekiela
- Sccp new functions for ct in GH-7220
- Deprecate autovivification on false in 052af90b86
Marco Pivetta
- Make ReflectionProperty/Method always accessible in 6e16e1daa9
Meletis Flevarakis
- Verify exception on
ZipArchive::getExternalAttributesName
when $name is empty in GH-7230
Máté Kocsis
- Add support for final class constants in a5360e80c2
- Various
ext/spl
stub fixes in 80e5ad5a29 - Declare tentative return types for
ext/spl
- part 1 in GH-7115 - Fix some return types in
ext/spl
in d618ed0a2d - Declare tentative return types for
ext/spl
- part 2 in 6d805ed275 - Add support for the never type in
gen_stub.php
in 553574165a - Declare the $value param of
define()
as mixed in 339ce9430e - Fix some more
ext/spl
return types in fc6656e0ac - Declare tentative return types in
ext/spl
- part 3 in GH-7239 - Deprecate oci8.old_oci_close_semantics in GH-7258
- Declare tentative return types for Zend in GH-7251
- Fix some smaller formatting inconsistencies in stubs in fc0d8983d3
- Actually, abstract methods don't have a body in 7a9a37d909
- Declare tentative return types for
ext/dom
in GH-6985 - Indent stubs inside global namespace blocks in GH-7261
- Use single line phpdoc in stubs where possible in 2378f35787
Nikita Popov
- Fix use after free on compound division by zero in 62ecf54f35
- Fix constant update for shadowed private property in 58699ffcf1
- Deprecate
date_sunrise()
anddate_sunset()
in 5bb83b3778 - Deprecate IAP functions on objects in dcc8463ae5
- Deprecate calling
mb_check_encoding()
without argument in 639015845f - Deprecate FILE_BINARY and FILE_TEXT constants in 92f6e21523
- Deprecate
IntlCalendar::roll()
with bool argument in 1c50784ae7 - Deprecate mhash in bf0c1ce1a0
- Deprecate mysqli::
init()
in 625b89af2f - Deprecate
odbc_result_all()
in 1c07b11b1c - Deprecate FILTER_SANITIZE_STRING/STRIPPED in bf94010b4b
- Deprecate return by ref from void function in f0b190c32d
- Deprecate imap NIL constant in 2bc23cc6e3
- Test Laravel 8.x against PHP 7.4 in bb43aa2ed3
- Skip
bug_50755.phpt
in repeat mode in 455214d6f0 - Deprecate
strptime()
in bed7139375 - Deprecate auto_detect_line_endings in 232aa34b9f
- Don't handle unnamed arg in closure debug info in ab353a50e9
- Use function for ctype implementation in dc80ea7e38
- Use newer PHP version in community job in 8cec7db48d
- Remove ctype tests for oct/dec int literals in d60e3a2957
- Temporarily disable
imagecreatefromstring_avif.phpt
on FreeBSD in a09754b3d3 - Deprecate ctype_*() on non-string arguments in 08069165aa
- Remove leftover handling of PHP4 constructors in 2fe242db39
- Remove unnecessary property name unmangling in cdbe39b16a
- Deprecate direct access to static trait members in a80360dbed
- Deprecate filter.default in aa733e8ac8
- Fix GC of object properties HT in 5f8ed7765a
- Clean up
gc_scan()
implementation in 5bde82a442 - Don't return embedded HT from WeakMap
get_gc()
handler in e081db0410 - Return value from
ZEND_ATOL
in efbb2198d4 - Remove incorrect uses of
zend_atoi()
in 989205e95c - Remove
zend_atoi()
in GH-7232 - Use unsigned arithmetic in
zend_atol
in 26e8a3ba29 - Add upgrading note in 5f8489a11d
- Fix
php_user_filter
::filter()
return value in 67776308e2 - Check internal function type consistency in
zend_call_function
in ee65e92070 - Fix
Phar::offsetGet()
return type in 3fc3cfbad0 - Fix typo in cce31657d6
- Add limited support for new in initializers in 52d3d0d8d7
- Fix unbalanced NEW call_level in JIT in d550c8488a
- Fix leak if attribute arg evaluation fails while printing in 882289eb9e
- Deprecate SoapClient ssl_method option in 9491694903
- Deprecate
strftime()
andgmstrftime()
in 4b3615a33f - Eliminate null return value for
Normalizer::normalize()
in 5dc995df37 - Backport some intl stub changes from master in 2afbacc16d
- Remove null return type from
msgfmt_parse_message()
in 9fe4966811 - Throw from
SplObjectStorage::current()
for invalid iterator in 58f3f751ca - Throw from MultipleIterator::key/
current()
for invalid iterator in 42cb5b5fa8 - Drop incorrect cache_slot optimization for typed properties in ba8bcf3992
- Rename getStructFieldOffset/Type() parameter in 02b803a5fd
- Add exception check to
zend_jit_fetch_obj_w_slow()
in 6fd880890c - Undef slot before destroying in unset_property in ebd3a21002
- Allow objects in
define()
in 53aed48e5d IteratorIterator::getInnerIterator()
can't return null in c252420d08- Revert "
IteratorIterator::getInnerIterator()
can't return null" in 11f62c989e - Narrow
ArrayIterator::key()
return type in f556a30b92 - Fix RecursiveIteratorIterator segfault for invalid aggregate in b9ae73eee9
- Handle both WARNING and UNRESOLVED during early binding in 1bc5bd7fe2
- Fix race condition in automatic
zend_vm_gen.php
invocation in 3025126f43 - Add UPGRADING entry for socket options in 172f84bfe4
- Fix deprecation warnings in
phar.php
in 4423253700 - Add
--bless
option torun-tests.php
in bf40a933cd - Restore
zend_atoi()
in a733b1ada7 DOMNodeList::count()
cannot return false in f089e8afbdDOMNamedNodeMap::count()
cannot return false in 4cf0269e4e- Add minimial tentative types to dom in cad6144d18
- Actually add the tentative type marker in b9893c2a18
- Don't return bool from
Phar::offsetUnset()
in edb6b375dd - Don't track internal class dependencies in a837d35366
- Fix assert with attribute + first-class callable in assert in b6dcab2cbb
- Throw DomException for DOM out-of-memory error conditions in c2a58ab07d
- Add str_replace/
array_unique
to ct eval list in 273720dcf2 - Add
ZEND_ACC_NOT_SERIALIZABLE
flag in 814a932734 - Remove THREAD_LS in a4db74364d
- Set UNION bit for internal class union return type in 084d49a262
- Fix file name clash in curl_copy_handle tests in 977c3d163f
- Implement readonly properties in 6780aaa532
- Fix typo in comment in c50f4dece0
- Fix bug #81272: Fix func info for functions returning EMPTY_ARRAY in 051ff33660
- Fix type info for
pg_socket()
in b420d09f4d - Fix snmp test for ipv6 in c289f5241d
- Create persistent interned string for password algos in b0d4d6ebb4
- Duplicate possibly persistent string in phar metadata clone in 9726bc6977
- Create interned strings for internal union types in bd2cd2617b
- Fix RC_DEBUG check for IS_NULL type in 7572d9bdd3
- Remove gcov mention from release process docs in 4a8b370d64
Sara Golemon
- Bump to 8.0.10 in 7dc35ac8a7
twosee
- Remove unnecessary sockaddr memory allocation in GH-7219
Tyson Andre
- Rename FFI
getFuncArg*
togetFuncParameter*
, $arg_index->$index in GH-7236