Skip to content

Commit a8782ec

Browse files
authored
Merge branch 'php:master' into true-async-api
2 parents 818cd16 + 8d116a4 commit a8782ec

File tree

110 files changed

+1127
-373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+1127
-373
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,13 @@ tmp-php.ini
294294
/junit.out.xml
295295
/.ccache/
296296

297+
# ------------------------------------------------------------------------------
298+
# Editor configuration directories
299+
# ------------------------------------------------------------------------------
300+
/.idea/
301+
/.vscode/
302+
/.zed/
303+
297304
# ------------------------------------------------------------------------------
298305
# Additional test build files
299306
# ------------------------------------------------------------------------------

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ PHP NEWS
7474
- DOM:
7575
. Added Dom\Element::$outerHTML. (nielsdos)
7676
. Added Dom\Element::insertAdjacentHTML(). (nielsdos)
77+
. Added $children property to ParentNode implementations. (nielsdos)
7778

7879
- Enchant:
7980
. Added enchant_dict_remove_from_session(). (nielsdos)

README.md

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ blog to the most popular websites in the world. PHP is distributed under the
1515
[PHP License v3.01](LICENSE).
1616

1717
[![Push](https://github.com/php/php-src/actions/workflows/push.yml/badge.svg)](https://github.com/php/php-src/actions/workflows/push.yml)
18-
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/php.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:php)
18+
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/php.svg)](https://issues.oss-fuzz.com/issues?q=project:php)
1919

2020
## Documentation
2121

@@ -42,28 +42,50 @@ a default build, you will additionally need libxml2 and libsqlite3.
4242

4343
On Ubuntu, you can install these using:
4444

45-
sudo apt install -y pkg-config build-essential autoconf bison re2c \
46-
libxml2-dev libsqlite3-dev
45+
```shell
46+
sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev
47+
```
4748

4849
On Fedora, you can install these using:
4950

50-
sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel
51+
```shell
52+
sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel
53+
```
54+
55+
On MacOS, you can install these using `brew`:
56+
57+
```shell
58+
brew install autoconf bison re2c iconv libxml2 sqlite
59+
```
60+
61+
or with `MacPorts`:
62+
63+
```shell
64+
sudo port install autoconf bison re2c libiconv libxml2 sqlite3
65+
```
5166

5267
Generate configure:
5368

54-
./buildconf
69+
```shell
70+
./buildconf
71+
```
5572

5673
Configure your build. `--enable-debug` is recommended for development, see
5774
`./configure --help` for a full list of options.
5875

59-
# For development
60-
./configure --enable-debug
61-
# For production
62-
./configure
76+
```shell
77+
# For development
78+
./configure --enable-debug
79+
# For production
80+
./configure
81+
```
6382

64-
Build PHP. To speed up the build, specify the maximum number of jobs using `-j`:
83+
Build PHP. To speed up the build, specify the maximum number of jobs using the
84+
`-j` argument:
6585

66-
make -j4
86+
```shell
87+
make -j4
88+
```
6789

6890
The number of jobs should usually match the number of available cores, which
6991
can be determined using `nproc`.
@@ -74,23 +96,33 @@ PHP ships with an extensive test suite, the command `make test` is used after
7496
successful compilation of the sources to run this test suite.
7597

7698
It is possible to run tests using multiple cores by setting `-jN` in
77-
`TEST_PHP_ARGS`:
99+
`TEST_PHP_ARGS` or `TESTS`:
78100

79-
make TEST_PHP_ARGS=-j4 test
101+
```shell
102+
make TEST_PHP_ARGS=-j4 test
103+
```
80104

81105
Shall run `make test` with a maximum of 4 concurrent jobs: Generally the maximum
82106
number of jobs should not exceed the number of cores available.
83107

108+
Use the `TEST_PHP_ARGS` or `TESTS` variable to test only specific directories:
109+
110+
```shell
111+
make TESTS=tests/lang/ test
112+
```
113+
84114
The [qa.php.net](https://qa.php.net) site provides more detailed info about
85115
testing and quality assurance.
86116

87117
## Installing PHP built from source
88118

89119
After a successful build (and test), PHP may be installed with:
90120

91-
make install
121+
```shell
122+
make install
123+
```
92124

93-
Depending on your permissions and prefix, `make install` may need super user
125+
Depending on your permissions and prefix, `make install` may need superuser
94126
permissions.
95127

96128
## PHP extensions

UPGRADING

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ PHP 8.5 UPGRADE NOTES
185185

186186
- DOM:
187187
. Added Dom\Element::$outerHTML.
188+
. Added $children property to Dom\ParentNode implementations.
188189

189190
- EXIF:
190191
. Add OffsetTime* Exif tags.

UPGRADING.INTERNALS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ PHP 8.5 INTERNALS UPGRADE NOTES
5050
2. Build system changes
5151
========================
5252

53+
- Abstract
54+
. Preprocessor macro SIZEOF_PTRDIFF_T has been removed.
55+
5356
- Windows build system changes
5457
. SAPI() and ADD_SOURCES() now suport the optional `duplicate_sources`
5558
parameter. If truthy, no rules to build the object files are generated.
@@ -69,6 +72,7 @@ PHP 8.5 INTERNALS UPGRADE NOTES
6972
. Autoconf macro PHP_DEF_HAVE has been removed (use AC_DEFINE).
7073
. Autoconf macro PHP_OUTPUT has been removed (use AC_CONFIG_FILES).
7174
. Autoconf macro PHP_TEST_BUILD has been removed (use AC_* macros).
75+
. Preprocessor macro HAVE_PTRDIFF_T has been removed.
7276

7377
========================
7478
3. Module changes

Zend/zend_portability.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,8 @@ extern "C++" {
496496

497497
#ifdef ZEND_WIN32
498498
#define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size))
499+
#elif defined(HAVE_MEMSET_EXPLICIT)
500+
#define ZEND_SECURE_ZERO(var, size) memset_explicit((var), 0, (size))
499501
#else
500502
#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size))
501503
#endif

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,6 @@ AC_CHECK_TYPES([socklen_t], [], [], [
454454
dnl These are defined elsewhere than stdio.h.
455455
PHP_CHECK_SIZEOF([intmax_t], [0])
456456
PHP_CHECK_SIZEOF([ssize_t], [8])
457-
PHP_CHECK_SIZEOF([ptrdiff_t], [8])
458457

459458
dnl Check stdint types (must be after header check).
460459
PHP_CHECK_STDINT_TYPES
@@ -565,6 +564,7 @@ AC_CHECK_FUNCS(m4_normalize([
565564
memmem
566565
mempcpy
567566
memrchr
567+
memset_explicit
568568
mkstemp
569569
mmap
570570
nice

ext/curl/curl.stub.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
const CURLOPT_AUTOREFERER = UNKNOWN;
1414
/**
1515
* @var int
16-
* @deprecated has no effect since 5.1.2
1716
* @cvalue CURLOPT_BINARYTRANSFER
1817
*/
18+
#[\Deprecated(since: '8.4', message: 'as it had no effect since 5.1.2')]
1919
const CURLOPT_BINARYTRANSFER = UNKNOWN;
2020
/**
2121
* @var int

ext/curl/curl_arginfo.h

Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/curl/interface.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
6666
#endif
6767

68+
#include "zend_attributes.h"
6869
#include "curl_arginfo.h"
6970

7071
ZEND_DECLARE_MODULE_GLOBALS(curl)

0 commit comments

Comments
 (0)