PHP 8.1 is currently only receiving security fixes. PHP 8.1.0RC2 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.0RC2
./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.0RC2-cli-alpine
docker pull php:8.1.0RC2-cli
docker pull php:8.1.0RC2-fpm-alpine
docker pull php:8.1.0RC2-apache
docker pull php:8.1.0RC2-fpm
Commit List
Bob Weinand
- Fix #81435 Observer current_observed_frame may point to an old (overwritten) frame in 12b0f1b7cc
Christoph M. Becker
- Fix #81407: shmop_open won't attach and causes php to crash in f3d24af74f
- Use
--EXTENSIONS--
section for new test in cb5a4ed920 - Fix #81424: PCRE2 10.35 JIT performance regression in a2471383fe
Derick Rethans
- Fixed typo in a6d50d21d9
- The PHP 7.4 branch is for PHP 7.4.25 now in 95a943e2f0
Dmitry Stogov
- Avoid class name validation if it's already have IS_STR_CLASS_NAME_MAP_PTR flag in c7fdf9c139
- JIT: Fixed call to
zend_free_compiled_variables()
in 66f8866a62 - Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array) in cbc925e510
- JIT: Update run_time_cache slot in
zend_jit_find_func
helper in d4ed6b635f - JIT: eliminate check for undefined constant if there is a persistent constant in 1bb6cf5396
- JIT: improved code for protected properties access in aed94e2ca8
- JIT: prefer string reallocation instead of allocation/memcpy/deallocation in 7fcb45dffa
- Fixed ARM JIT failure introduced in d4ed6b63 in 487eface86
- JIT: fixed MUL+SEND optimization when MUL throws an exception in 06275d940c
- Properly check if BIND_STATIC may throw in ebd1a0a656
George Peter Banyard
- Fix param name order for
Phar::copy()
in 0d0c9acafb
Hao Sun
- JIT: Fixed exit from CALL VM with GCC Global Register Variables in cfb21e8dc1
Jakub Zelenka
- Make OpenSSL tests less dependent on system config in 43f0141d74
Kamil Tekiela
- typo in d4ea11d0dc
Máté Kocsis
- Properly escape the default value of string properties and enum cases in 4483ecf5a9
- Revert unintended tentative return type change in 194f1f095f
- Fix forgotten test in 805f2b9803
- Fix default value of $flags in
idn_to_ascii()
andidn_to_utf8()
in d5aed7b0e3 - Fix the return type of
ftp_raw()
in GH-7466 - Add more specific array return type hints for various extensions - part 3 in GH-7467
- Add more specific array return type hints for various extensions - part 4 in GH-7469
- Improve class synopsis root element generation in f588764292
- Fix class synopsis generation for interfaces in 4c9892d1e3
- Remove extra space before param default values in a5e5483439
- Fix documentation generation when legacy arginfo is generated in 73063db5c8
- Change
gen-stub.php
togen_stub.php
in help text in ea9f943d33
Nikita Popov
- Fully qualify ReturnTypeWillChange in deprecation message in 3eeeeeb104
- Don't overwrite unwind exception in 85b80c5aaf
- Fix jump after
zend_jit_invalid_property_assign()
in b0e16f0e4f - Save register before throwing undef var notice in e22fb46127
- Apply fix to ARM JIT as well in f2bb739eeb
- Check whether expected types are present for compound op jit in bac054dbf3
- Also make sure binary op operands can't be undef in 8c3d33a054
- Check that POST_INC/DEC has use in DFA optimization in 5cae6b9b0d
- Allow using readonly as function name in 76348f3378
- Handle undef value in assign_dim jit in e7663785a7
- Reset CE cache slots on opcache reset in 86d470f3e0
- Fix JIT call chain check without call opcode in 133afe8591
- BIND_STATIC may throw in b610dce079
- Try to fix test in ba03c5fb4c
- Use wildcard for error message in 5d702e33a2
- Fix BIND_STATIC may_throw check in 1b376b06fb
- Fix func/class name use after free on opcache OOM condition in 10e9f6b340
- Fix memory leak in array unpack with refcounted numeric string key in 260d2acdb4
- Mark ASSIGN result as UNUSED in SCCP in fa3d603ba2
- Check for no uses before removing result operand in 54bbee96ba
- Fix JIT for recursive call with too few args in 10bbff8758
- Apply fix for ARM JIT as well in 25588878bc
Patrick Allaert
- Preparing for 8.1.0RC2 in d6d6491153
- Prepare for PHP 8.1.0RC2 in 73e79dd8bd
Remi Collet
- Fix #80833
ZipArchive::getStream
doesn't use setPassword in a6ffd8d1e9 - NEWS + bump zip version in fde24e4db0
- NEWS in e9228a6a39
- fix [-Wmaybe-uninitialized] build warnings in 6ee96f095a
- Don't rely on libgd unused constants in b3646440b1
Sara Golemon
- Prep for 8.0.12 in 5e1e4a8963
Tim Starling
- Fix O(N) performance of
DOMNode::replaceChild()
andDOMNode::removeChild()
in 781e6b4d21
Tyson Andre
- Fix inconsistency in true/false/null constant resolution when opcache is not used in GH-7441
- Fix #81429: Handle resizing in
SplFixedArray::offsetSet
in GH-7487
Viktor
- Fix #81433:
DOMElement::setIdAttribute()
called twice may remove ID in 424c265478