Skip to content

Commit 86b4019

Browse files
authored
Merge pull request #1042 from jingjingxyk/experiment-feature
Experiment feature
2 parents 4dd7154 + 31e6656 commit 86b4019

File tree

9,019 files changed

+970268
-1666479
lines changed

Some content is hidden

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

9,019 files changed

+970268
-1666479
lines changed

.gdbinit

Lines changed: 40 additions & 30 deletions
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
@@ -66,18 +66,18 @@ define dump_bt
6666
if $func
6767
if $ex->This->value.obj
6868
if $func->common.scope
69-
printf "%s->", $func->common.scope->name->val
69+
printf "%s->", (char*)$func->common.scope->name->val
7070
else
71-
printf "%s->", $ex->This->value.obj->ce.name->val
71+
printf "%s->", (char*)$ex->This->value.obj->ce.name->val
7272
end
7373
else
7474
if $func->common.scope
75-
printf "%s::", $func->common.scope->name->val
75+
printf "%s::", (char*)$func->common.scope->name->val
7676
end
7777
end
7878

7979
if $func->common.function_name
80-
printf "%s(", $func->common.function_name->val
80+
printf "%s(", (char*)$func->common.function_name->val
8181
else
8282
printf "(main"
8383
end
@@ -109,7 +109,7 @@ define dump_bt
109109
printf "%f", $zvalue->value.dval
110110
end
111111
if $type == 6
112-
____print_str $zvalue->value.str->val $zvalue->value.str->len
112+
____print_str (char*)$zvalue->value.str->val $zvalue->value.str->len
113113
end
114114
if $type == 7
115115
printf "array(%d)[%p]", $zvalue->value.arr->nNumOfElements, $zvalue
@@ -135,7 +135,7 @@ define dump_bt
135135
end
136136
if $func != 0
137137
if $func->type == 2
138-
printf "%s:%d ", $func->op_array.filename->val, $ex->opline->lineno
138+
printf "%s:%d ", (char*)$func->op_array.filename->val, $ex->opline->lineno
139139
else
140140
printf "[internal function]"
141141
end
@@ -186,7 +186,7 @@ define ____printzv_contents
186186
printf "double: %f", $zvalue->value.dval
187187
end
188188
if $type == 6
189-
printf "string: %s", $zvalue->value.str->val
189+
printf "string: %s", (char*)$zvalue->value.str->val
190190
end
191191
if $type == 7
192192
printf "array: "
@@ -208,7 +208,7 @@ define ____printzv_contents
208208
set $handle = $zvalue->value.obj.handle
209209
set $handlers = $zvalue->value.obj.handlers
210210
set $zobj = $zvalue->value.obj
211-
set $cname = $zobj->ce->name->val
211+
set $cname = (char*)$zobj->ce->name->val
212212
printf "(%s) #%d", $cname, $handle
213213
if ! $arg1
214214
if $handlers->get_properties == &zend_std_get_properties
@@ -233,7 +233,7 @@ define ____printzv_contents
233233
set $name = $p->key
234234
set $prop = (zend_property_info*)$p->val.value.ptr
235235
set $val = (zval*)((char*)$zobj + $prop->offset)
236-
printf "%s => ", $name->val
236+
printf "%s => ", (char*)$name->val
237237
printzv $val
238238
set $k = $k + 1
239239
end
@@ -318,7 +318,8 @@ define ____print_ht
318318
set $n = $n - 1
319319
end
320320

321-
if $ht->u.v.flags & 4
321+
set $packed = $ht->u.v.flags & 4
322+
if $packed
322323
printf "Packed"
323324
else
324325
printf "Hash"
@@ -329,36 +330,45 @@ define ____print_ht
329330
set $i = 0
330331
set $ind = $ind + 1
331332
while $i < $num
332-
set $p = (Bucket*)($ht->arData + $i)
333+
if $packed
334+
set $val = (zval*)($ht->arPacked + $i)
335+
set $key = (zend_string*)0
336+
set $h = $i
337+
else
338+
set $bucket = (Bucket*)($ht->arData + $i)
339+
set $val = &$bucket->val
340+
set $key = $bucket->key
341+
set $h = $bucket->h
342+
end
333343
set $n = $ind
334-
if $p->val.u1.v.type > 0
344+
if $val->u1.v.type > 0
335345
while $n > 0
336346
printf " "
337347
set $n = $n - 1
338348
end
339349
printf "[%d] ", $i
340-
if $p->key
341-
____print_str $p->key->val $p->key->len
350+
if $key
351+
____print_str (char*)$key->val $key->len
342352
printf " => "
343353
else
344-
printf "%d => ", $p->h
354+
printf "%d => ", $h
345355
end
346356
if $arg1 == 0
347-
printf "%p\n", (zval *)&$p->val
357+
printf "%p\n", $val
348358
end
349359
if $arg1 == 1
350-
set $zval = (zval *)&$p->val
360+
set $zval = $val
351361
____printzv $zval 1
352362
end
353363
if $arg1 == 2
354-
printf "%s\n", (char*)$p->val.value.ptr
364+
printf "%s\n", (char*)$val->value.ptr
355365
end
356366
if $arg1 == 3
357-
set $func = (zend_function*)$p->val.value.ptr
358-
printf "\"%s\"\n", $func->common.function_name->val
367+
set $func = (zend_function*)$val->value.ptr
368+
printf "\"%s\"\n", (char*)$func->common.function_name->val
359369
end
360370
if $arg1 == 4
361-
set $const = (zend_constant *)$p->val.value.ptr
371+
set $const = (zend_constant *)$val->value.ptr
362372
____printzv $const 1
363373
end
364374
end
@@ -413,15 +423,15 @@ define ____print_inh_class
413423
printf "final "
414424
end
415425
end
416-
printf "class %s", $ce->name->val
426+
printf "class %s", (char*)$ce->name->val
417427
if $ce->parent != 0
418-
printf " extends %s", $ce->parent->name->val
428+
printf " extends %s", (char*)$ce->parent->name->val
419429
end
420430
if $ce->num_interfaces != 0
421431
printf " implements"
422432
set $tmp = 0
423433
while $tmp < $ce->num_interfaces
424-
printf " %s", $ce->interfaces[$tmp]->name->val
434+
printf " %s", (char*)$ce->interfaces[$tmp]->name->val
425435
set $tmp = $tmp + 1
426436
if $tmp < $ce->num_interfaces
427437
printf ","
@@ -433,10 +443,10 @@ end
433443

434444
define ____print_inh_iface
435445
set $ce = $arg0
436-
printf "interface %s", $ce->name->val
446+
printf "interface %s", (char*)$ce->name->val
437447
if $ce->num_interfaces != 0
438448
set $ce = $ce->interfaces[0]
439-
printf " extends %s", $ce->name->val
449+
printf " extends %s", (char*)$ce->name->val
440450
else
441451
set $ce = 0
442452
end
@@ -472,11 +482,11 @@ end
472482

473483
define print_pi
474484
set $pi = (zend_property_info *)$arg0
475-
set $initial_offset = ((uint32_t)(zend_uintptr_t)(&((zend_object*)0)->properties_table[(0)]))
485+
set $initial_offset = ((uint32_t)(uintptr_t)(&((zend_object*)0)->properties_table[(0)]))
476486
set $ptr_to_val = (zval*)((char*)$pi->ce->default_properties_table + $pi->offset - $initial_offset)
477487
printf "[%p] {\n", $pi
478488
printf " offset = %p\n", $pi->offset
479-
printf " ce = [%p] %s\n", $pi->ce, $pi->ce->name->val
489+
printf " ce = [%p] %s\n", $pi->ce, (char*)$pi->ce->name->val
480490
printf " flags = 0x%x (", $pi->flags
481491
if $pi->flags & 0x100
482492
printf "ZEND_ACC_PUBLIC"
@@ -598,7 +608,7 @@ define print_zstr
598608
set $maxlen = $zstr->len
599609
end
600610
printf "string(%d) ", $zstr->len
601-
____print_str $zstr->val $zstr->len $maxlen
611+
____print_str (char*)$zstr->val $zstr->len $maxlen
602612
printf "\n"
603613
end
604614

.github/workflows/linux-aarch64.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ jobs:
117117
composer install --no-interaction --no-autoloader --no-scripts --profile --no-dev
118118
composer dump-autoload --optimize --profile --no-dev
119119
120-
php prepare.php --with-static-pie +inotify +apcu +ds +xlswriter +ssh2 +pgsql +uuid
120+
php prepare.php --with-static-pie --with-libavif +inotify +apcu +ds +xlswriter +ssh2 +pgsql +uuid
121121
122122
bash make-install-deps.sh
123123
@@ -131,10 +131,12 @@ jobs:
131131
run: |
132132
./bin/swoole-cli -v
133133
./bin/swoole-cli -m
134+
./bin/swoole-cli --ri curl
134135
./bin/swoole-cli --ri gd
136+
./bin/swoole-cli --ri imagick
135137
./bin/swoole-cli --ri swoole
136138
./bin/swoole-cli --ri pgsql
137-
ldd ./bin/swoole-cli
139+
{ ldd ./bin/swoole-cli ; } || { echo $? ; }
138140
file ./bin/swoole-cli
139141
readelf -h ./bin/swoole-cli
140142
APP_VERSION=$(./bin/swoole-cli -v | awk '{print $2}')

.github/workflows/linux-x86_64.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ jobs:
142142
composer install --no-interaction --no-autoloader --no-scripts --profile --no-dev
143143
composer dump-autoload --optimize --profile --no-dev
144144
145-
php prepare.php --with-static-pie +inotify +apcu +ds +xlswriter +ssh2 +pgsql +uuid
145+
php prepare.php --with-static-pie --with-libavif +inotify +apcu +ds +xlswriter +ssh2 +pgsql +uuid
146146
147147
bash make-install-deps.sh
148148
@@ -163,10 +163,12 @@ jobs:
163163
run: |
164164
./bin/swoole-cli -v
165165
./bin/swoole-cli -m
166+
./bin/swoole-cli --ri curl
166167
./bin/swoole-cli --ri gd
168+
./bin/swoole-cli --ri imagick
167169
./bin/swoole-cli --ri swoole
168170
./bin/swoole-cli --ri pgsql
169-
ldd ./bin/swoole-cli
171+
{ ldd ./bin/swoole-cli ; } || { echo $? ; }
170172
file ./bin/swoole-cli
171173
readelf -h ./bin/swoole-cli
172174
APP_VERSION=$(./bin/swoole-cli -v | awk '{print $2}')

.github/workflows/macos-aarch64.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ on: [ push, pull_request ]
44

55
jobs:
66
macos-aarch64:
7-
if: 1
8-
runs-on: macos-14
7+
runs-on: macos-15
98
# macos-latest (macos-14) 变更了 CPU 架构,由 x86_64 变更为 arm64
109
# macos-14 CPU 架构 arm64
1110
# macos-13 CPU 架构 x86_64
@@ -106,7 +105,7 @@ jobs:
106105
composer install --no-interaction --no-autoloader --no-scripts --profile
107106
composer dump-autoload --optimize --profile
108107
109-
php prepare.php --without-docker=1 +apcu +ds +xlswriter +ssh2 +pgsql +uuid
108+
php prepare.php --without-docker=1 --with-libavif +apcu +ds +xlswriter +ssh2 +pgsql +uuid
110109
111110
- name: Build
112111
run: |
@@ -124,7 +123,9 @@ jobs:
124123
run: |
125124
./bin/swoole-cli -v
126125
./bin/swoole-cli -m
126+
./bin/swoole-cli --ri curl
127127
./bin/swoole-cli --ri gd
128+
./bin/swoole-cli --ri imagick
128129
./bin/swoole-cli --ri swoole
129130
./bin/swoole-cli --ri pgsql
130131
file ./bin/swoole-cli

.github/workflows/macos-x86_64.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on: [ push, pull_request ]
55
jobs:
66
macos-x86_64:
77
if: 1
8-
runs-on: macos-13
8+
runs-on: macos-15-intel
99
# macos-latest (macos-14) 变更了 CPU 架构,由 x86_64 变更为 arm64
1010
# macos-14 CPU 架构 arm64
1111
# macos-13 CPU 架构 x86_64
@@ -106,7 +106,7 @@ jobs:
106106
composer install --no-interaction --no-autoloader --no-scripts --profile --no-dev
107107
composer dump-autoload --optimize --profile --no-dev
108108
109-
php prepare.php --without-docker=1 +apcu +ds +xlswriter +ssh2 +pgsql +uuid
109+
php prepare.php --without-docker=1 --with-libavif +apcu +ds +xlswriter +ssh2 +pgsql +uuid
110110
111111
- name: Build
112112
run: |
@@ -124,7 +124,9 @@ jobs:
124124
run: |
125125
./bin/swoole-cli -v
126126
./bin/swoole-cli -m
127+
./bin/swoole-cli --ri curl
127128
./bin/swoole-cli --ri gd
129+
./bin/swoole-cli --ri imagick
128130
./bin/swoole-cli --ri swoole
129131
./bin/swoole-cli --ri pgsql
130132
file ./bin/swoole-cli

.github/workflows/windows-cygwin.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
key: ${{ runner.os }}-build-pool-cache
4343

4444
- name: Install Cygwin
45-
uses: cygwin/cygwin-install-action@v2
45+
uses: cygwin/cygwin-install-action@v6
4646
with:
4747
site: https://mirrors.kernel.org/sourceware/cygwin/
4848
# with:
@@ -62,7 +62,7 @@ jobs:
6262
# 备注:github action 在 windows 上执行命令默认的 shell 是 powershell,如果要使用其它shell , 需要手动指定,例如此也可以使用 bash 来安装 cygwin packages
6363
if: 1
6464
run: |
65-
Copy-Item -Path "C:\setup.exe" -Destination "${{ github.workspace }}\setup-x86_64.exe"
65+
Copy-Item -Path "d:\setup.exe" -Destination "${{ github.workspace }}\setup-x86_64.exe"
6666
cmd /c .\sapi\quickstart\windows\cygwin-build\install-cygwin.bat
6767
6868
- name: Install re2c
@@ -74,6 +74,8 @@ jobs:
7474
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o pipefail -o igncr {0}
7575
run: |
7676
bash ./sapi/scripts/msys2/install-libzip.sh
77+
bash ./sapi/scripts/msys2/install-libyuv.sh
78+
bash ./sapi/scripts/msys2/install-libavif.sh
7779
7880
- name: Prepare
7981
shell: C:\cygwin\bin\bash.EXE --noprofile --norc -e -o pipefail -o igncr {0}
@@ -100,7 +102,9 @@ jobs:
100102
run: |
101103
./bin/swoole-cli -v
102104
./bin/swoole-cli -m
103-
./bin/swoole-cli --ri pdo_pgsql
105+
./bin/swoole-cli --ri curl
106+
./bin/swoole-cli --ri gd
107+
./bin/swoole-cli --ri imagick
104108
./bin/swoole-cli --ri swoole
105109
./bin/swoole-cli -r "echo PHP_VERSION;"
106110
ldd ./bin/swoole-cli

.github/workflows/windows-msys2.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66

77
jobs:
88
windows-msys2:
9-
if: 1
9+
if: 0
1010
runs-on: windows-2022
1111
steps:
1212
- name: Show Environment Info
@@ -88,6 +88,7 @@ jobs:
8888
run: |
8989
./bin/swoole-cli.exe -v
9090
./bin/swoole-cli.exe -m
91+
./bin/swoole-cli.exe --ri curl
9192
./bin/swoole-cli.exe --ri swoole
9293
./bin/swoole-cli.exe -r "echo PHP_VERSION;"
9394
ldd ./bin/swoole-cli.exe

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ tmp-php.ini
311311
/ext/inotify
312312
/ext/swoole_tracker_agent
313313
/ext/loader8
314+
/ext/swoole
314315
/ext/ds
315316
/ext/xlswriter
316317
/ext/uuid

0 commit comments

Comments
 (0)