PHP 8.0 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 8.0.0beta1 is not recommended. PHP 8.0.30 is the latest version in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.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.0.0beta1-cli-alpine
docker pull php:8.0.0beta1-cli
docker pull php:8.0.0beta1-fpm-alpine
docker pull php:8.0.0beta1-apache
docker pull php:8.0.0beta1-fpm
Commit List
Andrea Faulds
- Permit trailing whitespace in numeric strings in f759936591
Benjamin Eberlei
- Consolidate Parameter Names For
ext/dom
in 8a6bc6767d - Consolidate Parameter Names For
ext/simplexml
in eaeceb3293 - Add opcache.jit=tracing|function values, make on/yes/true synonym for tracing in 53ef244923
Christopher Jones
- Update NEWS in 30073ac645
- Fix cut/paste error in expected test output in b2d1736de8
- Make test decimal to binary conversion expectation more tolerant in 99d2b24b15
Christoph M. Becker
- Disable tracing JIT on AppVeyor in a986933dde
- Fix minor memory leak of CG(script_encoding_list) in c1a80e075a
- Fix brittle test in 6b99a8be4d
- Fix build in 1e938e8eba
- Fix #79884:
PHP_CONFIG_FILE_PATH
is meaningless in 15efb96d4c - Fix #78236: convert error on receiving variables when duplicate [ in fc4d462e94
- Fix #77932: File extensions are case-sensitive in 6f18d7e2f9
- Fix #79806:
realpath()
erroneously resolves link to link in d5b59b4303 - Revert "Fix #79806:
realpath()
erroneously resolves link to link" in 1aeff522b8 - Fix #79806:
realpath()
erroneously resolves link to link in c756f82c02 - Fix #73060: php failed with error after temp folder cleaned up in 9a744c66e7
- Prevent test case from stalling in f8792443a2
- Revert "Merge branch 'PHP-7.3' into PHP-7.4" in 826b90a5f0
- Fix #73060: php failed with error after temp folder cleaned up in 2bcc419800
- Amendment to OPcache base file removal in d95c53834c
- Fix #79919: Stack use-after-scope in
define()
in 1e0bc6e30f - Fix #79797: Use of freed hash key in the phar_parse_zipfile function in 7355ab8176
- Fix #79877: getimagesize function silently truncates after a null byte in ff577b04c0
- Enable libxml entity loader test case on Windows in d4b32e82c8
- Fix #79797: Use of freed hash key in the phar_parse_zipfile function in 9c3171f019
- Fix #79877: getimagesize function silently truncates after a null byte in 4d2560dd6a
- Fix #79797: Use of freed hash key in the phar_parse_zipfile function in 775385df0e
- Fix #79877: getimagesize function silently truncates after a null byte in 05c5c93705
- Fix fix for bug #79877 for PHP 8 in b9171d8a93
- Fix Windows build in bfdbb90d30
Côme Chilliet
- Updated NEWS in 1ba88355d7
David Carlier
- Check for
shm_open()
in libroot to support Haiku in 118fa69e70 - Fix opcache JIT on NetBSD with PaX in 362194165a
Derick Rethans
- More consistent parameter names for date/time functions in e96e4ac726
- PHP-7.4 is 7.4.10-dev now in 877a351ea8
- Another pass of improving
ext/date
argument names in f66627abff - Last pass of 'More consistent parameter names for date/time functions' in cdc8523300
- Mention that an API bump must be done with RC1 in d66a6ba58a
- Fixed bug #60302:
DateTime::createFromFormat
should newstatic()
, not newself()
in 90434d7fe3
Deus Kane
- Fixed bug #79897: Promoted constructor params with attribs cause crash in f475edc2f1
Dik Takken
- Bump libxml version requirement 2.7.6 => 2.9.0 in 691a09f291
- Deprecate
libxml_disable_entity_loader()
in e0fa48f69d
Dmitry Stogov
- Fixed support for 64-bit constants in e527478c3d
- Use different temporary register in bb9e3dd6cc
- Switch to tracing JIT by default in 447a098ebb
- Disable JIT for PHPDBG in 047474c3b4
- Avoid recording of uninitialized variable in be0d912674
- Fix type recording and side exit information for FEFETCH* instructions in 7686118212
- Switch to tracing JIT by default in 0e1e991a89
- Fixed bug #79864 (JIT segfault in Symfony OptionsResolver) in b44169e9dd
- Fix deoptimization info and corresponding memory leaks in b5e2b64adc
- Prevent incorrect trasing JIT TSSA usage for
range()
result type inference in 2940839d28 - Separate and fix deoptimization code generator in c9434a4af2
- Reserve WIN64 shadow space in bc1d7b6040
- Revert "Disable tracing JIT on AppVeyor" in d05e88250a
- Avoid register reloading in b0c3ca0e52
- Fixed DynASM failure in 62ca6b567c
- Revert "Fixed DynASM failure" in f6164b8407
- Fixed 32-bit build in 7de23662df
- We track only arguments of user functions on abstract stack in 14400b50d3
- Don't record "fake" closures in 96a1b409df
- Allow keeping result of FETCH_DIM_R in CPU register in b3e51b7675
- Cleanup abstract test usage in bc4201f6b7
- Result of branching opcode in side trace is unknown in 0ef8e0c115
- Fixed memory leaks in 9aa5967a5f
- type in comment in d9f5c44d5f
- Fixed incorrect reference counting (we shouldn't skip ADDREF for IS_CV result) in c56c19cec3
- Prevent setting of incorrect continuation counters in 52cebf65f8
- Properly cleanup in case of abort because too many functions in single trace in 8d773a768f
- More accurate checks to eliminate reloading in 04c3e3182a
- Remove unused fields in b23188962e
- Fixed incorrect abstract stack size calculation in fbb18e4409
- Correct assertion in ee00f51e0a
- Fixed incorrect side exit opline of "fake" init_fcall guard in 274131e4af
- Update abstarct stack before guard to keep proper type in side trace in 226617d358
- Always record
ZEND_JIT_TRACE_START
andZEND_JIT_TRACE_END
in fd56fd2279 - Avoid redundand EX(opline) initialization in 2dbb4ecfa1
- Replace
ZEND_JIT_TRACE_MAX_EXIT_COUNTERS
constant by opcache.jit_max_exit_counters configuration directive in 8a42f357bf - Move asserts to better places in f41bceb94e
- Prevent incorrect optimization in 251e667488
- Check for EG(exception) after leaving function frame in 2a72778e2d
- Fixed incorrect reuse of exit_point in 99ee73e6a9
- Merge common "cold" part in 4b4869ffe3
- Use inline function instead of macro in 709925a03a
- Fixed live-range interval construction (close all frames) in 5f2adfb690
- Temporary disable abstract test usage for inferring previous type of variables (previous value may be in CPU register and type of the stack slot may be inconsistent) in 0ef0ea5810
- Fixed bug #79888 (Incorrect execution with JIT enabled) in 02fae1fc53
- Load ptoper IP value in 9e80558047
- Fixed temporary register usage in 44384dfb3e
- Don't skip fcall guard for method calls from trait in 713d3ea4e6
- Force type update if the previous value was in register only in bbbccf0811
- Skip tests leaking because of preloading failure in 41de27ecc2
- Fixed memory leaks caused by incorrect AVOID_REFCOUNTING flag in 8b43976483
- Clear result type for exit point caused by JMPZ_EX/NZ_EX in 28eaad0969
- We check result type guard in FETCH_DIM_R/IS only if index is long or string in 8ea9e1ae4c
- Fixed JIT when result of ASSIGN is in register, but the original variable might need to be destroyed in b3e12325f6
Gabriel Caruso
- Next is PHP 8.0.0beta1 in d9227a1b44
- Ensure correct signatures for magic methods in e3d06fc79d
- Update API version numbers in 1ab4d0e6b7
- Update versions for PHP 8.0.0beta1 in c93a94a55b
George Peter Banyard
- Some cleanup in OCI8 extension for PHP 8 in 0d146cb3eb
- Use ZPP callable check for
oci_register_taf_callback()
in 7a3375a08c - Refactor user streams to use ZPP class check in 73e070a614
- Implement 'Saner Numeric Strings' RFC: in b2248789ed
- Warning to ValueError promotion in Intl extension Part 1 in f78a091014
- ValueError for empty path in stream code in c3105a1f8d
- Promote empty filename to ValueError in BZ2 extension in 4095c0a28d
- Change leftover RETURN_FALSE to RETURN_THROWS() from 4095c0a in 0ba31e19c6
- Throw ValueError on empty tag in
enchant_broker_request_dict()
in 9a71d47d73
George Wang
- Security: update to LiteSpeed SAPI v7.7 to address an buffer overflow, and some log message tunings in c39f5fe94e
- Address some compiler warnings in 293d2f99f1
Graham Campbell
- Removed space from
bug55086.phpt
in f3a43e85e7
Gregor Harlan
- datetime: new format "p", same as "P" but returning "Z" for UTC in a6e3ce4fd6
Ilija Tovilo
- Implement nullsafe ?-> operator in 9bf119832d
Jakub Zelenka
- FPM: Add pm.status_listen option in 44c7128fb7
Levi Morrison
- Default assert.exception to 1 in 853eb8373f
Máté Kocsis
- Cleanup argument handling of Zend functions and methods in 5770b66722
- Improve argument types and names in
ext/ctype
in 69a5c561d0 - Add the Z_PARAM_PATH_OR_NULL() and Z_PARAM_ZVAL_OR_NULL() macros in 70a3a909cd
- Cleanup argument handling in
ext/reflection
in 8664ff7ae1 - Fix
microtime()
test in f62ec5cf6c - Fix UNKNOWN default values in
ext/mbstring
andext/gd
in ac0da090ae - Add a few missing parameter types in stubs in 0d330e1a02
- Add missing RETURN_THROWS() in 5f25618f83
- Fix the default value handling of
imagegif()
in d94d426f60 - Document the signature change of
zend_get_closure_method_def()
in 02b03df91a - Get rid of empty function entries in ec22e5aa38
- Convert resources to objects in
ext/openssl
in 9f44eca6b6 - Add a few missing types to stubs in bdacd2ae8f
- Convert the $ttl parameter of
ldap_exop_refresh()
to int in 156c1806db - Improve a few parameter names in
ext/spl
in 6ba24e9615 - Add a bunch of missing argument types to stubs in 79981a394e
- Fix stub hash of
ext/ldap
in 6b7e2f0d15 - Promote warnings to exceptions in
ext/gettext
,ext/sysvmsg
andext/xml
in 4c89ed61fb - Convert resources to objects in
ext/sockets
in 77172c220a - Add upgrading note for the resource to object migration in
ext/sockets
in 71bfa5344a - Fix posix test in 040b5e727a
- Cleanup snmp after resource to object migration in 2d32b633b2
- Fix Socket related tests on Windows in ae34a6539f
Nikita Popov
- Remove null from highlight_* return types in be9c5daf28
- Fix readline test after callback changes in da4262df6f
- Fix
mb_ereg_search
* arg and func info in 33ddc3bb96 - Remove some redundant func info in e4c1366b63
- Adjust Doctrine workaround in community job in 6e09a3e203
- Stricter verification of func info against arg info in 3a9036ac54
- Make ReflectionGenerator final in b3ea6ce720
- Move SOAP_SERVER_BEGIN_CODE() after zpp in ae81549048
- Fix
UConvert::getErrorMessage()
leak on zpp failure in 4ce9571978 - Add stubs for PDO SQLite extension methods in 1afcced1f0
- Add stubs for PDO PGSql extension methods in 4dd8fec073
- Separate call and soapCall implementations in ac56ca0dcc
- Check for redundant func info in ae2b214be2
- Check for missing arginfo arguments in 38fb1f8383
- Run arginfo / zpp mismatch tests for methods as well in c9881fde7a
- Fix arg/func info in f7f557926e
- Fix incorrect initialization in
date_sunrise()
in 1d4e229ab7 - Tweak
zend_test
arginfo/zpp in df2749da70 - Give
zend_pass_function
an arginfo in e079e753dc - Fixed bug #79881 in 657a832a77
- Move checks after zpp in
opcache_is_script_cached()
in eb04cb5f20 - Mark
zend_jit_patch
memory accesses as unaligned in aaedbde8b4 - Drop no-op
dasm_growpc()
call in f90c735957 - Check dual_it validity in
CallbackFilterIterator::accept()
in e6ae1bf489 - Improved number to string comparison semantics in acbf7802af
- Treat namespaced names as single token in 7a3dcc3e33
- php.ini cleanup in 9250abfb04
- Accept unsigned instead of enum pdo_attribute_type in 5febd633b9
- Try to fix 32-bit NTS build in b6b6e76937
- Fix some clang warnings in 545928e4b8
- Remove no longer needed stdint compatibility defines in 93594862f4
- Cleanup SPL instantiation code in dc30e1d812
- Simplify user_stream_create_object in a1ab7bbc3a
- Use
zend_call_method
in SoapFault::__toString() in 86882060ab - Make nested ternary without parentheses a compile error in 0a5b7c81b7
- Avoid UNKNOWN default in
PDO::query()
in 7eec281b5e - Validate collator earlier during sort in 27ad19c3e8
- Fix bug #79108 in d65d3f5298
- Support class+mask union for internal argument in 1f8a93abaa
- Add AST export support for nullsafe operator in 3b5b288127
- Fix null pointer deref in
compile_return()
in 08e6c20955 - JIT internal functions with return type in debug mode in 6d97e7f0e9
- Emit diagnostic on
dasm_link()
failure in e0aa2724c3 - Fix verify type jit for complex type masks in f9f6123941
- Automatically enable DASM_CHECKS in debug mode in d4c30ff99b
- Remove unused func_info variable in dc1a6dc0de
- Fix use-after-free when nullsafe used with constant LHS in 5303bcdd32
- Fix typo in test in c434bbb344
- Try to fix laravel PHP 8 incompatibility in 9eb7990085
- Move patch to right place in 213494f55d
- Fix STR_OR_OBJ_OF_TYPE stringable handling in 993be4b9bf
- Fix test in 99c48a2477
- Remove
PHP_CHECK_GCC_ARG()
in e2f39f84e2 - Fix bug #79900 in c206c742d6
- Fix leak with nullsafe operator with constant LHS in ee7eecf321
- Consider op1 literal of FETCH_OBJ_R in 57ad5b3432
- Run function JIT tests in nightly build in 34fe1b91f6
- Update azure macos builds to 10.15 in 62cd52a41a
- Increase timeout on asan job in 849c7415b5
- Check non-zero in
is_power_of_two()
in 3690a805c1 - Remove some dead code in RECV type inference in ce22cf5198
- Remove unused recv_arg_info from func_info in 104b7addc4
- Add type inference support for RECV_VARIADIC in 9dacc85251
- Remove more unused func_info fields in 47e4001976
- Make check in RECV_VARIADIC more precise in a6e63b42c3
- Also run function jit tests on macos in 91a1747ef7
- Update i386 job to Ubuntu 20.04 in d3a9e1503f
- Implement named parameters in d92229d8c7
- Bump timeout again in c10a406500
- Bump timeouts, again in 00743f3fae
- Fix handling of nullsafe method in
empty()
in a4c015b4b2 - Enforce __set_state() parameter type in 5d4659c25c
- Fix bug #79925 in bb8b95be63
- Convert SPL illegal offset type into TypeError in 7a4b594c6f
- Don't suppress notices in rfc1867 tests in b891adea8d
- Promote "undefined array key" notice to warning in c48b745f00
- Fix bug #79924 in 8b4da1774f
- Manually build re2c on macos in 9bbe236f6a
XFAIL
status-listen FPM test in 4644a3ed8a- Add compatibility define for
PHP_CHECK_GCC_ARG
in 442cf83b5c - Relax precision in hypot test in feba69ce2d
- Relax precision in atan test in 300d108a0e
Paweł Tomulik
- fix memory leaks in ext/ldap/ldap.c in efe6d96b45
- fix memory leaks in ext/ldap/ldap.c in fef5a9e502
Remi Collet
- add
ZipArchive::CM_XZ
constant (in upcoming libzip 1.8.0) in 42226fcf03 - bump version to 7.2.34-dev in 6b8ffdbdeb
Rowan Tommins
- Make http stream wrapper advertise HTTP/1.1 by default in f9f769d4b9
Santiago M. Mola
- Fix #79895: support = in
PHP_CHECK_GCC_ARG
m4 macro in e767ca60a0 - set -ex on travis/compile.sh in fdf6b0fefe
- Fix #79923: fix socket_set_option_bindtodevice test in 65713aaddd
Stanislav Malyshev
- Update NEWS in 07aeb9171d
tangl163
- Drop the unneeded pointer casting in 7d4ae7fa23
Theodore Brown
- Implement Shorter Attribute Syntax in 470d1696d9
- Improve wording and spelling consistency in UPGRADING in e8c4ae83cb
- Minor grammar/consistency fixes in upgrade guide in e2b4687403
twosee
- Export
zend_register_error_notify_callback()
withZEND_API
in e29ee65ec0 - Change type of max_num_args to uint32_t in a65ec4c2db
- Fix warnings of strict-prototypes in 6e92487f66
- Handle bindto error in 0b8c83f593
Tyson Andre
- Support optional comma in closure use list in 4cf8b6f1c9
- [RFC] Make string length for getTraceAsString() configurable in 07db64156e
- Allow overriding completion in
auto_prepend_file
in 97f10fc341 - [RFC] Only unserialize Phar metadata when getMetadata() is called in 0c238ede01