Skip to content

Commit f6d07ed

Browse files
committed
Merge branch 'master' into xxhash-update
2 parents 67a02f4 + f5240b6 commit f6d07ed

File tree

114 files changed

+953
-424
lines changed

Some content is hidden

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

114 files changed

+953
-424
lines changed

.gdbinit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ define print_cvs
4242

4343
printf "Compiled variables count: %d\n\n", $cv_count
4444
while $cv_idx < $cv_count
45-
printf "[%d] '%s'\n", $cv_idx, $cv[$cv_idx].val
45+
printf "[%d] '$%s'\n", $cv_idx, $cv[$cv_idx].val@$cv[$cv_idx].len
4646
set $zvalue = ((zval *) $cv_ex_ptr) + $callFrameSize + $cv_idx
4747
printzv $zvalue
4848
set $cv_idx = $cv_idx + 1

.github/actions/apk/action.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ runs:
77
set -x
88
99
OPCACHE_TLS_TESTS_DEPS="clang gcc binutils-gold lld"
10+
# compiler-rt provides libclang_rt.asan-x86_64.a for clang20
11+
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.22
12+
ASAN_DEPS="clang20 compiler-rt"
1013
1114
apk update -q
1215
apk add \
@@ -52,8 +55,9 @@ runs:
5255
net-snmp-dev \
5356
openldap-dev \
5457
unixodbc-dev \
55-
postgresql14-dev \
58+
postgresql-dev \
5659
tzdata \
5760
musl-locales \
5861
musl-locales-lang \
59-
$OPCACHE_TLS_TESTS_DEPS
62+
$OPCACHE_TLS_TESTS_DEPS \
63+
$ASAN_DEPS
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: ./configure (unit tests)
2+
description: Configure PHP with minimal settings for unit testing
3+
runs:
4+
using: composite
5+
steps:
6+
- shell: bash
7+
run: |
8+
set -x
9+
./buildconf --force
10+
./configure --disable-all --enable-embed=static

.github/workflows/nightly.yml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,16 @@ jobs:
9393
ALPINE:
9494
if: inputs.run_alpine
9595
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
96-
runs-on: ubuntu-22.04
96+
runs-on: ubuntu-24.04
9797
container:
98-
image: 'alpine:3.20.1'
98+
image: 'alpine:3.22'
9999
steps:
100100
- name: git checkout
101101
uses: actions/checkout@v5
102102
with:
103103
ref: ${{ inputs.branch }}
104104
- name: apk
105105
uses: ./.github/actions/apk
106-
- name: LLVM 17 (ASAN-only)
107-
# libclang_rt.asan-x86_64.a is provided by compiler-rt, and only for clang17:
108-
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.20
109-
run: |
110-
apk add clang17 compiler-rt
111106
- name: System info
112107
run: |
113108
echo "::group::Show host CPU info"
@@ -122,8 +117,8 @@ jobs:
122117
configurationParameters: >-
123118
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
124119
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
125-
CC=clang-17
126-
CXX=clang++-17
120+
CC=clang-20
121+
CXX=clang++-20
127122
--enable-debug
128123
--enable-zts
129124
skipSlow: true # FIXME: This should likely include slow extensions

.github/workflows/push.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,47 @@ env:
3232
CC: ccache gcc
3333
CXX: ccache g++
3434
jobs:
35+
ALPINE:
36+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
37+
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
38+
runs-on: ubuntu-24.04
39+
container:
40+
image: 'alpine:3.22'
41+
steps:
42+
- name: git checkout
43+
uses: actions/checkout@v5
44+
- name: apk
45+
uses: ./.github/actions/apk
46+
- name: System info
47+
run: |
48+
echo "::group::Show host CPU info"
49+
lscpu
50+
echo "::endgroup::"
51+
echo "::group::Show installed package versions"
52+
apk list
53+
echo "::endgroup::"
54+
- name: ./configure
55+
uses: ./.github/actions/configure-alpine
56+
with:
57+
configurationParameters: >-
58+
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
59+
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
60+
CC=clang-20
61+
CXX=clang++-20
62+
--enable-debug
63+
--enable-zts
64+
skipSlow: true # FIXME: This should likely include slow extensions
65+
- name: make
66+
run: make -j$(/usr/bin/nproc) >/dev/null
67+
- name: make install
68+
uses: ./.github/actions/install-alpine
69+
- name: Test Tracing JIT
70+
uses: ./.github/actions/test-alpine
71+
with:
72+
jitType: tracing
73+
runTestsParameters: >-
74+
--asan -x
75+
-d opcache.enable_cli=1
3576
LINUX_X64:
3677
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
3778
services:

.github/workflows/unit-tests.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Unit Tests
2+
on:
3+
push:
4+
paths:
5+
- 'main/network.c'
6+
- 'tests/unit/**'
7+
- '.github/workflows/unit-tests.yml'
8+
branches:
9+
- master
10+
pull_request:
11+
paths:
12+
- 'main/network.c'
13+
- 'tests/unit/**'
14+
- '.github/workflows/unit-tests.yml'
15+
branches:
16+
- '**'
17+
workflow_dispatch: ~
18+
19+
permissions:
20+
contents: read
21+
22+
concurrency:
23+
group: ${{ github.workflow }}-${{ github.event.pull_request.url || github.run_id }}
24+
cancel-in-progress: true
25+
26+
env:
27+
CC: ccache gcc
28+
CXX: ccache g++
29+
30+
jobs:
31+
UNIT_TESTS:
32+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
33+
name: UNIT_TESTS_LINUX_X64
34+
runs-on: ubuntu-24.04
35+
timeout-minutes: 20
36+
steps:
37+
- name: git checkout
38+
uses: actions/checkout@v4
39+
40+
- name: Install dependencies
41+
run: |
42+
set -x
43+
sudo apt-get update
44+
sudo apt-get install -y \
45+
libcmocka-dev \
46+
autoconf \
47+
gcc \
48+
make \
49+
unzip \
50+
bison \
51+
re2c \
52+
locales \
53+
ccache
54+
55+
- name: ccache
56+
uses: hendrikmuhs/[email protected]
57+
with:
58+
key: "unit-tests-${{hashFiles('main/php_version.h')}}"
59+
append-timestamp: false
60+
save: ${{ github.event_name != 'pull_request' }}
61+
62+
- name: ./configure (minimal build)
63+
uses: ./.github/actions/configure-unit-tests
64+
65+
- name: make libphp.a
66+
run: |
67+
set -x
68+
make -j$(/usr/bin/nproc) >/dev/null
69+
70+
- name: Run unit tests
71+
run: |
72+
set -x
73+
cd tests/unit
74+
make test
75+

NEWS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@ PHP NEWS
55
- Core:
66
. Added first-class callable cache to share instances for the duration of the
77
request. (ilutov)
8+
. It is now possible to use reference assign on WeakMap without the key
9+
needing to be present beforehand. (nielsdos)
810

911
- Intl:
1012
. Added IntlNumberRangeFormatter class to format an interval of two numbers
1113
with a given skeleton, locale, collapse type and identity fallback.
1214
(BogdanUngureanu)
1315

16+
- Standard:
17+
. Fixed bug GH-19926 (reset internal pointer earlier while splicing array
18+
while COW violation flag is still set). (alexandre-daubois)
19+
1420
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

UPGRADING

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ PHP 8.6 UPGRADE NOTES
2323
2. New Features
2424
========================================
2525

26+
- Core:
27+
. It is now possible to use reference assign on WeakMap without the key
28+
needing to be present beforehand.
29+
2630
- Intl:
2731
. Added IntlNumberRangeFormatter class to format an interval of two numbers with a given skeleton, locale, IntlNumberRangeFormatter::COLLAPSE_AUTO, IntlNumberRangeFormatter::COLLAPSE_NONE, IntlNumberRangeFormatter::COLLAPSE_UNIT, IntlNumberRangeFormatter::COLLAPSE_ALL collapse and
2832
IntlNumberRangeFormatter::IDENTITY_FALLBACK_SINGLE_VALUE, IntlNumberRangeFormatter::IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE, IntlNumberRangeFormatter::IDENTITY_FALLBACK_APPROXIMATELY and
@@ -84,3 +88,6 @@ PHP 8.6 UPGRADE NOTES
8488
========================================
8589
14. Performance Improvements
8690
========================================
91+
92+
- JSON:
93+
. Improve performance of encoding arrays and objects.

UPGRADING.INTERNALS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ PHP 8.6 INTERNALS UPGRADE NOTES
2020
. The misnamed ZVAL_IS_NULL() has been removed. Use Z_ISNULL() instead.
2121
. New zend_class_entry.ce_flags2 and zend_function.fn_flags2 fields were
2222
added, given the primary flags were running out of bits.
23+
. The zval_is_true() alias of zend_is_true() has been removed. Call
24+
zend_is_true() directly instead.
2325

2426
========================
2527
2. Build system changes

Zend/Optimizer/zend_func_info.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#define ZEND_FUNC_JIT_ON_PROF_REQUEST (1<<14) /* used by JIT */
4040
#define ZEND_FUNC_JIT_ON_HOT_COUNTERS (1<<15) /* used by JIT */
4141
#define ZEND_FUNC_JIT_ON_HOT_TRACE (1<<16) /* used by JIT */
42-
42+
#define ZEND_FUNC_JITED (1<<17) /* used by JIT */
4343

4444
typedef struct _zend_func_info zend_func_info;
4545
typedef struct _zend_call_info zend_call_info;

0 commit comments

Comments
 (0)