Release Information
- Release Type
- Bug Fix Release
- Release Status
- QA Release
- Branch Status
- Upcoming Release
PHP 8.4 is a development version, and is not recommended for production use. PHP 8.4 is scheduled to reach General Availability on 2024-11-21.
PHP 8.4.1 is the latest QA release in PHP 8.4.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0alpha3
./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.4.0alpha3-cli-alpine
docker pull php:8.4.0alpha3-cli
docker pull php:8.4.0alpha3-fpm-alpine
docker pull php:8.4.0alpha3-apache
docker pull php:8.4.0alpha3-fpm
Commit List
Arnaud Le Blanc
- Use
zend_std_build_properties()
to access zend_object.properties in 1fbb666545 - Followup GH-14996 in GH-15062
- Hint the opcache shm mapping location only when JIT is enabled in 929536b697
- Fix build on platforms without JIT support in GH-15069
- Fix test on alpine/musl in GH-15072
- Fix destruction of generator running in fibers during shutdown in GH-15158
Bob Weinand
- Fix GH-13817: Segmentation fault for enabled observers after pass 4 in a18df90a8b
Calvin Buckley
- Gate SOCK_DCCP behind its own ifdef in GH-15031
Christoph M. Becker
- Drop support for OpenSSL < 1.1.0 on Windows in f590b34530
- Revert "Skip
bug45161.phpt
on Windows" in 355baf982e - Update the php-sdk-binary-tools to php-sdk-2.3.0 in 93a9a9b4a4
- Port "gd2: use existing
overflow2()
rather than ad-hoc version" in GH-15090 - Fix GH-15087
IntlChar::foldCase()
's $option is not optional in 5fbda73099 - Fix GH-15094:
php_random_default_engine()
is not C++ conforming in da72ac11f6 - Add missing cstddef include for C++ builds in ab449a7e46
- Fix type incompatibility in assignment in af789afbe8
David CARLIER
- main: update Winsock api version to 2.2 in GH-14909
- zend build making sigjmp_buf and api check as mandatory. in GH-14942
ext/pgsql
: db metadata simplification for table names. in GH-15036- Fix GH-15102:
ext/pgsql
use after free on persistent connection renewal. in GH-15115
David Carlier
ext/curl
: curl_error using curl_easy_strerror if CURLOPT_ERRORBUFFER in efd00b8ff0ext/pgsql
: pg_convert/pg_insert/pg_update/pg_delete caching regexes in ba54cebb44- sapi/fpm: retiring solaris /dev/poll support proposal in 3713c02803
ext/intl
:SpoofChecker::setAllowedChars
support in 21418b5bb5- Fix GH-14780: p(f)sockopen overflow on timeout argument in ba909d7c43
- fix GH-14785 pedantic error in 350c10d985
ext/readline
: fix global readline vars when updating rl_line_buffer in a7d856d9bf
Dmitry Stogov
- Update IR in 7b25cac32b
- Regenerate FFI parser using HEAD version of LLK in 13e9b40517
- Fix Windows build in d6efff7254
- Workaraound against false positive GCC array bounds error in GH-15078
- Fix GH-15101: _ir_RSTORE: Assertion `ctx->control' in GH-15153
Gina Peter Banyard
ext/spl
: Add ArrayObject test with property hooks in GH-15005ext/gmp
: Make GMP class final in GH-15121
Ilija Tovilo
- De-duplicate readonly property modification error message in GH-14972
- Fix indirect readonly error messages in GH-14979
- Fix comments between -> and keyword in b368db204f
- Throw error for recursive comparison, instead of fatal in GH-14989
- Compile in opcache without COMPILE_IGNORE_INTERNAL_CLASSES in GH-15025
- Fix throw in IS_IDENTICAL in JIT in GH-15103
Julien Voisin
- Add a check for required extensions in
benchmark.php
in GH-14811
Levi Morrison
- Fix warnings in session/spl in 0956267c08
LoongT4o
- Fix the JIT buffer relocation failure at the corner case in GH-11266
lwlinux
- sapi/cli/php_cli.c: fix typos in GH-15057
Michael Orlitzky
- ext/dba/tests: sort expected test output in GH-14962
Niels Dossche
- Fix references in
request_parse_body()
options array in f58a3c392f - Use fast ZPP for ParentNode manipulation methods in GH-14981
- Delete
bug78987.phpt
test in GH-14982 - Fix bug #55639: Digest autentication dont work in 911dc5b46c
- Resolve TODOs in
ext/dom
around nullable content in GH-14999 - Optimize
ext/dom
$wholeText in GH-15001 - Don't open-code string value accesses in xpath in GH-15007
- Fix trampoline leak in xpath callables in a59103feed
- Avoid duplicating the filename string when profiling in XSL in GH-15010
- Convert forgotten efree to
zend_string_release
in 81da53fccd - Cleanup
DOMAttr::isId()
in GH-15016 - Deduplicate NULL checks in
ext/dom
in GH-15015 - Add assertion to error path in
streams.c
in GH-15027 - Fix GH-15020: Memory leak in Zend/Optimizer/escape_analysis.c in 03d73182d9
- Fix GH-15023: Memory leak in Zend/zend_ini.c in 8c19efdc97
- Fix GH-15028: Memory leak in ext/phar/stream.c in 5996227f88
- Remove impossible condition in 74116a4ade
- Move stricterror fetch to
dom_child_removal_preconditions()
body in 29466223d0 - Convert more common methods in dom/node.c to fast ZPP in GH-15043
- Remove bogus tree setting code from parentnode/tree.c in GH-15044
- Fix memory leaks in
ext/tidy
basedir restriction code in 8de7ccb29b - Use OBJ_RELEASE instead of ZVAL_OBJ + zval_ptr_dtor in
php_dom.c
in GH-15052 - Factor out object creation code in
ext/tidy
in c4e1f2b4e8 - Throw instead of silently failing when creating a too long text node in 9435f4d55b
- Update Lexbor in c952f5625a
- Make more pointers const in
ext/tidy
in e736d7cd8a - Consistently check
zend_result
in the same way in 09c0455f64 - Use RETVAL_BOOL or RETURN_BOOL in
ext/tidy
in 1d045a5c97 - Fix error handling in tidy constructor in 186788f149
- Remove useless return in 9b78e5ff1c
- Fix GH-15034: Integer overflow on
stream_notification_callback
byte_max parameter with files bigger than 2GB in cfcc2a3fda - Fix GH-14286 (ffi enum type (when enum has no name) make memory leak) in c0de7214aa
- Fix passing non-finite timeout values in stream functions in fdcfd62b9b
- Fix bogus fallthrough path in
firebird_handle_get_attribute()
in b8e9c5ba6a - Fix uninitialized memory in
network.c
in 40551dd74b - Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling() in ad452086d9
- Fix CI failure after Curl update in GH-15124
- Avoid string duplications in simplexml in GH-15122
- Fix nightly failure in test variation due to number of temp variables varying when observers are enabled in 4df858602a
- Fix GH-15137: Unexpected null pointer in Zend/zend_smart_str.h in GH-15138
- Fix CI failure on macOS after Curl update in fdae7c23f0
- Fix GH-15123: var_dump doesn't actually work on XMLReader in GH-15130
Peter Kokot
- Fix xmlreader extension phpize build in 71c520c74f
- Autotools: Fix Autoconf syntax (erroneous dnl) in GH-14987
- Autotools: Expand m4_normalize sooner in GH-15018
- Autotools: Quote M4 arguments in GH-15033
- Autotools: Quote M4 arguments in GH-15045
- Autotools: Sync CS in
ext/standard
process check in GH-15049 - Add upgrading note about Autoconf cache variables in GH-14985
- Append -Wno-implicit-fallthrough flag conditionally in GH-13331
- Autotools: Fix unused result and variables warnings in flush IO check in GH-15056
- Autotools: Append rt library to FPM_EXTRA_LIBS in GH-15059
- Sync required phar dependencies in GH-15058
- Autotools: Check for crypt and cryptr with AC* macros in GH-15060
- Autotools: Normalize
ext/dom
sources in GH-15073 - Autotools: Normalize
ext/gd
sources in GH-15086 - Autotools: Normalize pcre sources in GH-15085
- Autotools: Normalize
ext/opcache
sources in GH-15083 - Autotools: Sync CS in opcache Capstone check in GH-15084
- Autotools: Quote
PHP_NEW_EXTENSION
arguments in GH-15081 - Autotools: Normalize
ext/fileinfo
sources in GH-15082 - Autotools: Normalize
ext/mbstring
installed headers in GH-15097 - Add pcre dependency as required to
ext/filter
in GH-15099 - Autotools: Quote
PHP_CONFIG_NICE
arguments in fa7ee84f0b - Autotools: Quote
PHP_ADD_LIB*
arguments in GH-15112 - Autotools: Fix rl_erase_empty_line check in GH-15109
- Autotools: Normalize DTrace sources argument in GH-15111
- Autotools: Quote macro arguments in a7f0fe1f33
- Autotools: Quote AC_CHECK_LIB arguments in GH-15116
- Autotools: Sync
PHP_SETUP_*
M4 macros in GH-15117 - Autotools: Quote M4 macro arguments in ef8e792962
- Autotools: Replace
PHP_DEF_HAVE
with AC_DEFINE_UNQUTED in GH-15119 - Autotools: Quote and fix
PHP_SELECT_SAPI
arguments in GH-15118 - Autotools: Sync CS in XML related extensions in GH-15110
- Autotools: Remove dead code in GH-15128
- Autotools: Simplify
PHP_ALWAYS_SHARED
macro in GH-15129 - Autotools: Replace
PHP_EXT_DIR
with $ext_dir in GH-15133 - Autotools: Sync
PHP_EXT_*
M4 macros in GH-15134 - Autotools: Fix
ext/standard
sources in GH-15131 - Autotools: Quote
PHP_CHECK_LIBRARY
arguments in GH-15136 - Autotools: Normalize and quote all
PHP_NEW_EXTENSION
arguments in GH-15144 - Autotools: Append hash and opcache build directories in GH-15132
- Autotools: Normalize headers arguments in GH-15149
- Autotools: Quote
PHP_ADD_SOURCES*
macros arguments in GH-15146 - Autotools: Sync shared argument CS in GH-15141
- Sync HAVE_ICONV preprocessor macro usage in GH-15148
- Remove duplicate
ZEND_ENABLE_STATIC_TSRMLS_CACHE
flag in GH-15080 - Autotools: Update skeleton extension config.m4 template in GH-15147
- Autotools: Move HAVE_DTRACE to configure.ac in GH-15160
- Autotools: Sync CS in bz2 extension in GH-15163
- Autotools: Sync CS in enchant extension in 0970fd439a
- Autotools: Fix xml extension dependency in GH-15162
- Autotools: Remove unused variable FREETYPE2_FOUND in 79af1b5280
Pol Dellaiera
- Fix: add missing
PHPAPI
in GH-15142
Saki Takamachi
- Updated firebird version in windows ci in GH-14912
ext/pdo_firebird
: Added Pdo`Firebird::ATTR_API_VERSION` in GH-14916- Fixed parent class of stub in GH-14990
ext/bcmath
: Moved macros and added a test in 3c9ab6eb71ext/pdo_firebird
: Do not implement new constants in PDO core in GH-14995ext/pdo_firebird
: Added getApiVersion() and removed from getAttribute in GH-15004- random: Optimize
Randomizer::getBytesFromString()
in GH-14894 - Zend: Add
ZEND_BYTES_SWAP32
/ZEND_BYTES_SWAP64
in GH-14910 - Fixed segmentation fault when attribute value was not set in GH-15065
round()
: Corrected test name and fixed UPGRADING in GH-14943- Update versions for PHP 8.4.0alpha3 in 5e0c372de0
Simonov Denis
- PDO_Firebird: Supported Firebird 4.0 datatypes in GH-14897