Skip to content

Lazy objects #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 319 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
a400298
Add hash extension to soap dependencies (#15449)
petk Aug 16, 2024
8db3d36
Autotools: Remove redundant SAPI_SHARED assignment (#15453)
petk Aug 17, 2024
b86dfd7
Remove php_win32_init_gettimeofday declaration (#15451)
petk Aug 17, 2024
b2640ee
Autotools: Replace obsolete backticks with $(...) in apache2handler (…
petk Aug 17, 2024
0064c42
Autotools: Simplify PHP_PDO_DBLIB conditions
petk Aug 17, 2024
a3196b3
Drop support for MYSQL_TEST_SKIP_CONNECT_FAILURE (#15461)
cmb69 Aug 17, 2024
0dfafdb
Remove PHP 6 leftovers and fix mysqli tests (#15464)
kamil-tekiela Aug 17, 2024
a1b1a6c
[skip ci] Remove dead code
Girgias Aug 17, 2024
6050a99
Autotools: Sync CS in pdo_odbc (#15466)
petk Aug 17, 2024
82c4db6
Autotools: Remove PHP_LIBDIR adjustment in pdo_dblib (#15463)
petk Aug 17, 2024
41709ac
Update ext/mbstring and ext/snmp dependencies (#15469)
petk Aug 17, 2024
d472866
Drop erroneous CLEAN section
cmb69 Aug 17, 2024
7e5171d
Clean up mysqli tests (#15473)
kamil-tekiela Aug 17, 2024
8c704ab
ext/bcmath: Optimize `bcdiv` processing (#14660)
SakiTakamachi Aug 18, 2024
7fa2dbf
Drop support for MYSQL_TEST_EXPERIMENTAL (GH-15467)
cmb69 Aug 18, 2024
f16cb18
Fix ZEND_FASTCALL definition wrt. x64 Windows clang builds (GH-15425)
cmb69 Aug 18, 2024
4a77ce2
Remove unnecessary Windows specific time formatting (GH-15474)
cmb69 Aug 18, 2024
dffe25b
Autotools: Move AWK finder to PHP_INIT_BUILD_SYSTEM (#15478)
petk Aug 18, 2024
7a9120e
Avoid multiple connects in SKIPIF sections (GH-15470)
cmb69 Aug 18, 2024
ed2b456
Don't skip tests which are supposed to fail; mark them as xfail (#15472)
cmb69 Aug 18, 2024
80d7846
Add date extension to dependencies (#15475)
petk Aug 18, 2024
d713e36
ext/sockets: adding SO_BINDTOIFINDEX.
devnexen Aug 18, 2024
35ae152
Remove mysqli_change_user_get_lock.phpt (#15482)
kamil-tekiela Aug 18, 2024
3e05c86
ext/standard: Remove deprecated php_uint32 and php_int32 typedefs
Girgias Aug 17, 2024
3813ad1
Remove unused ext/standard/basic_functions.h header inclusions
Girgias Aug 17, 2024
c6e1e30
ext/standard: Throw a RequestParseBodyException instead of InvalidArg…
Girgias Aug 18, 2024
962aba3
ext/standard/mail.c: Reduce scope of some variable declarations
Girgias Aug 13, 2024
312c919
ext/standard/mail.c: change return type of php_mail() to bool
Girgias Aug 13, 2024
a171b20
ext/standard/mail.c: Move macros out of the header
Girgias Aug 12, 2024
ebfef25
ext/standard/mail.c: Move php_mail_header_value_error_type enum out o…
Girgias Aug 12, 2024
ac3cdf5
[skip ci] Add UPGRADING.INTERNALS entry for EXIT opcode
Girgias Aug 18, 2024
c316382
Remove MYSQLI_STMT_ATTR_PREFETCH_ROWS constant (#15485)
kamil-tekiela Aug 19, 2024
8f1c430
Drop mysqli_stmt_result_metadata_sqltests.phpt (#15488)
kamil-tekiela Aug 19, 2024
4baf6a6
Fix error message and add UPGRADING entry
kamil-tekiela Aug 19, 2024
6c7ff08
Drop MYSQLI_CURSOR_TYPE_FOR_UPDATE & MYSQLI_CURSOR_TYPE_SCROLLABLE (#…
kamil-tekiela Aug 19, 2024
144c086
Fix a mistake in mysqli test
kamil-tekiela Aug 19, 2024
770616b
Fix param with hooks but no visibility not treated as cpp (GH-15442)
iluuu1994 Aug 19, 2024
36b1977
Fix missing compile error when declaring hooked props on readonly cla…
iluuu1994 Aug 19, 2024
60f87f2
Fix various hooked object iterator issues (GH-15394)
iluuu1994 Aug 19, 2024
b6d7c01
Fix virtual properties in get_class_vars() (GH-15494)
iluuu1994 Aug 19, 2024
40217b2
Autotools: Move auto_cflags marker to PHP_INIT_BUILD_SYSTEM (#15487)
petk Aug 19, 2024
775ca03
ext/standard/crc32: Use zend_result return type and remove unused header
Girgias Aug 20, 2024
3ed5eee
[skip ci] Fix bug71162.phpt xfail message (GH-15506)
cmb69 Aug 20, 2024
093aee6
Merge branch 'PHP-8.2' into PHP-8.3
cmb69 Aug 20, 2024
b363a60
Merge branch 'PHP-8.3'
cmb69 Aug 20, 2024
b1211c1
Fix GH-15432: Heap corruption when querying a vector
cmb69 Aug 16, 2024
a3dbd39
Merge branch 'PHP-8.2' into PHP-8.3
cmb69 Aug 20, 2024
57f02e2
Merge branch 'PHP-8.3'
cmb69 Aug 20, 2024
9684007
Cater to raised requirement of fbclient 3.0+ for pdo_firebird (GH-15498)
cmb69 Aug 20, 2024
b75775e
Revert "Merge branch 'PHP-8.3'"
cmb69 Aug 20, 2024
6652a34
[skip ci] Fix NEWS
cmb69 Aug 20, 2024
3162ddb
Merge branch 'PHP-8.2' into PHP-8.3
cmb69 Aug 20, 2024
efe0e73
Merge branch 'PHP-8.3'
cmb69 Aug 20, 2024
3059ada
ext/standard: Improve checking of allowed_classes option (#15267)
Girgias Aug 20, 2024
588029a
[skip ci] Update NEWS/UPGRADING for allowed_classes option checks
Girgias Aug 20, 2024
89daa83
zend_max_execution_timer: fix gcc compatibility (#15447)
zeriyoshi Aug 16, 2024
a2313ce
Merge branch 'PHP-8.3'
cmb69 Aug 20, 2024
c9ea4d7
Revert "Merge branch 'PHP-8.3'"
cmb69 Aug 20, 2024
a1ab846
MySQL 9: Add support for VECTOR type (#15431)
kamil-tekiela Aug 20, 2024
c5ae122
Update UPGRADING
kamil-tekiela Aug 20, 2024
327588a
Replace OBJ_PROP_PTR_TO_NUM() with zend_get_property_info_for_slot()
iluuu1994 Aug 20, 2024
660a860
Fix GH-15501: Windows HAVE_<header>_H macros defined to 1 or undefine…
petk Aug 20, 2024
69d9c12
Fix mysqli_stmt_get_result.phpt (#15495)
kamil-tekiela Aug 20, 2024
d6113ba
fixes #13773: DatePeriod does not take microseconds into account
marc-mabe Jun 16, 2024
0f7aebb
Add NEWS entry
derickr Aug 21, 2024
cce27c6
Merged pull request #14581
derickr Aug 21, 2024
c290996
Remove MYSQLI_TYPE_INTERVAL constant
kamil-tekiela Aug 20, 2024
0775b99
Fix mysqli_fetch_field_types.phpt
kamil-tekiela Aug 20, 2024
d4263dd
Fix rename_variation12*.phpt parallel test conflicts (GH-15518)
cmb69 Aug 21, 2024
369eeb7
ext/standard/file.c: Use RETURN_BOOL() instead of if-else
Girgias Aug 21, 2024
9147687
ext/standard/file.c: Use more appropriate types
Girgias Aug 21, 2024
63841ba
Fix GH-15515: Configure error grep illegal option q (#15516)
petk Aug 21, 2024
9e63e20
Merge branch 'PHP-8.2' into PHP-8.3
petk Aug 21, 2024
c69d29e
Merge branch 'PHP-8.3'
petk Aug 21, 2024
48a18e5
Fix bug GH-15514 (Configure error: genif.sh: syntax error)
petk Aug 21, 2024
d5b5e61
Merge branch 'PHP-8.2' into PHP-8.3
petk Aug 21, 2024
602a4ac
Merge branch 'PHP-8.3'
petk Aug 21, 2024
96d572a
Zend: Add helper for "cannot be empty" ValueError
Girgias Aug 18, 2024
e7c4d54
Use new helper function for "cannot be empty" ValueErrors
Girgias Aug 18, 2024
1073814
ext/standard/exec.c: Use ZPP path modifier to check for nul bytes
Girgias Aug 18, 2024
f6c464f
ext/gettext: Remove duplicate domain length checks
Girgias Aug 18, 2024
ad84803
ext/dba: Remove duplicate check for empty mode
Girgias Aug 18, 2024
6d9a74c
ext/dom: Use standard wording for ValueError
Girgias Aug 18, 2024
997199e
ext/standard/string.c: use standard wording for ValueError in str_pad()
Girgias Aug 18, 2024
9a2fdbe
ext/mbstring: Use standard wording for ValueError
Girgias Aug 18, 2024
c811d58
ext/pcntl: Use standard wording for ValueError
Girgias Aug 18, 2024
5853cdb
Use "must not" instead of "cannot" wording
Girgias Aug 20, 2024
6b809c8
Autotools: Fix stack direction check (#15528)
petk Aug 21, 2024
ff69f33
ext/session: Warn when providing invalid values for session.gc_probab…
jorgsowa Aug 22, 2024
450740c
[skip ci] Fix typos in XFAIL reasons
cmb69 Aug 22, 2024
e5a3027
Support AVX-512 builds on Windows (GH-15159)
cmb69 Aug 22, 2024
15ea82d
ext/mysqli: Minor clean-up (#15526)
Girgias Aug 22, 2024
35fbb00
main/network: Use more appropriate types (#15511)
Girgias Aug 22, 2024
6a51062
Drop unused, but confusing macro definition (GH-15541)
cmb69 Aug 22, 2024
e7874f2
Autotools: Move Zend/zend_config.h to AC_CONFIG_COMMANDS (#15538)
petk Aug 22, 2024
4e193b4
Autotools: Move abs_srcdir and abs_builddir to init macro (#15537)
petk Aug 22, 2024
1b3c204
Autotools: Add min-version argument to PHP_PROG_PHP macro (#15477)
petk Aug 22, 2024
c79e723
Autotools: Check re2c version with AS_VERSION_COMPARE (#15465)
petk Aug 22, 2024
0c73553
Update extension skeleton .gitignore (#15542)
zeriyoshi Aug 22, 2024
f952263
Fix Solaris 10 build: missing libproc.h (#15525)
petk Aug 22, 2024
70c5e36
Revert fix for GH-14930: truncating readdir output (#15533)
bukka Aug 22, 2024
40e4892
Merge branch 'PHP-8.3'
bukka Aug 22, 2024
d6c06ed
[skip ci] Update NEWS with info about GH-14930 fix which is only in m…
bukka Aug 22, 2024
793f632
Fix NULL pointer dereference with NULL content in legacy nodes (#15546)
nielsdos Aug 23, 2024
7e45e57
Suppress deprecation notices when ext/dom properties are accessed by …
kocsismate Aug 23, 2024
8fcf34d
Remove ZEND_ACC_ABSTRACT from prop variance check
iluuu1994 Aug 23, 2024
d969540
Zend: Voidify virtual_cwd_(de)activate() (#15554)
Girgias Aug 23, 2024
062e9f9
Remove unused buffer variables (#15550)
petk Aug 23, 2024
babf18c
Autotools: Remove obsolete compiler reset (#15549)
petk Aug 23, 2024
c26e77c
ext/hash: Specialize copy function typedef
Girgias Aug 17, 2024
937c4e4
ext/hash: Make return type zend_result for serialize function typedef
Girgias Aug 17, 2024
947f72c
ext/phar: Use standard naming for PHP functions
Girgias Aug 15, 2024
009039d
ext/phar: Use size_t for string lenghts
Girgias Aug 15, 2024
03be1ac
ext/phar: Refactor part of tar.c
Girgias Aug 16, 2024
d015af6
ext/phar: Adjust return types for methods that always return true
Girgias Aug 16, 2024
81d232f
ext/phar: Move some header functions into util.c
Girgias Aug 16, 2024
20f7e08
ext/phar: Use more specialized types instead of int
Girgias Aug 16, 2024
6f98683
ext/phar: Simplify a return condition in Phar::offsetExists()
Girgias Aug 16, 2024
51bb8cf
ext/phar: Add some const qualifiers
Girgias Aug 16, 2024
d55074e
ext/phar: Use zend_string instead of char* len pair
Girgias Aug 16, 2024
f9c69bc
ext/phar: Reorganise some headers
Girgias Aug 16, 2024
7ae7b4e
Correctly specify secret instead of seed in ext/hash deprecation mess…
nielsdos Aug 23, 2024
d32b97a
Fix NULL pointer dereference with NULL content in legacy nodes in tit…
nielsdos Aug 23, 2024
9af574c
Fix GH-15551: Segmentation fault (access null pointer) in ext/dom/xml…
nielsdos Aug 23, 2024
8a00faa
Merge branch 'PHP-8.2' into PHP-8.3
nielsdos Aug 23, 2024
6a07400
Merge branch 'PHP-8.3'
nielsdos Aug 23, 2024
01c6b48
Phar offset exist issue with entry classes not based on PharFileInfo …
Girgias Aug 23, 2024
2e3132b
Autotools: Sync CS in ext/standard (#15560)
petk Aug 23, 2024
2cbde5a
Autotools: Use a no-op command in PKG_CHECK_MODULES (#15562)
petk Aug 23, 2024
dc8f18a
Fix GH-15534: Bump minimum libxml2 version to 2.9.4 (#15536)
petk Aug 23, 2024
6351468
Autotools: Replace break 2 with break (#15563)
petk Aug 23, 2024
8d12f66
Fix registration of internal readonly child classes (#15459)
kocsismate Aug 24, 2024
4b6575a
Fix GH-15565: --disable-ipv6 during compilation produces error EAI_SY…
nielsdos Aug 24, 2024
8da94cf
Merge branch 'PHP-8.2' into PHP-8.3
nielsdos Aug 24, 2024
a092bcb
Merge branch 'PHP-8.3'
nielsdos Aug 24, 2024
67aac59
Add PHP-FPM memory peak to the scoreboard
flavioheleno May 6, 2024
9c26777
FPM: Remove usage of non-existing MAX_LINE_LENGTH constant (#5634)
orlandothoeny Aug 24, 2024
c5bce0d
Deprecate disabling use_only_cookies (#13578)
kamil-tekiela Aug 24, 2024
207ae12
Autotools: Sync CS in ext/tidy (#15561)
petk Aug 24, 2024
082b964
Remove ifdefs from stub file
kamil-tekiela Aug 15, 2024
2446500
Remove unsupported mysqlnd options
kamil-tekiela Aug 15, 2024
195d59a
Remove dead code
kamil-tekiela Aug 15, 2024
cd6bac7
[ci skip] Fix mistake in UPGRADING
nielsdos Aug 25, 2024
904e8dc
Merge branch 'PHP-8.3'
nielsdos Aug 25, 2024
2ca4f31
Update Lexbor (#15573)
nielsdos Aug 25, 2024
690ce6d
Fix GH-15570: Segmentation fault (access null pointer) in ext/dom/htm…
nielsdos Aug 24, 2024
f88e32d
Autotools: Simplify adding tidy cflags (#15577)
petk Aug 25, 2024
fefa7d8
Autotools: Sync CS in ext/phar (#15586)
petk Aug 25, 2024
5947db6
Fix GH-15587: Autotools: fix configure check for aarch64 CRC32 API
bkuhls Aug 25, 2024
5c44610
Merge branch 'PHP-8.2' into PHP-8.3
petk Aug 25, 2024
3f4028d
Merge branch 'PHP-8.3'
petk Aug 25, 2024
f61aad8
[skip ci] UPGRADING: Note `Phar::setAlias()`/`setDefaultStub()` retur…
Ayesh Aug 25, 2024
555b603
mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT (#13618)
Appla Aug 26, 2024
a3b7cc2
ext/curl: Add `CURLOPT_PREREQFUNCTION` (#13255)
Ayesh Aug 26, 2024
b9b317a
Export opcache shared globals (#15543)
realFlowControl Aug 26, 2024
b839c5f
Fix building of callgraph including preloaded symbols (GH-15545)
iluuu1994 Aug 26, 2024
606eb84
Stop recording of trace when encountering hook
iluuu1994 Aug 26, 2024
f78d5cf
Allow ZEND_ACC_VIRTUAL to be used to not have property backing storag…
nielsdos Jul 27, 2024
6c63c48
Use virtual annotation in XMLReader
nielsdos Jul 27, 2024
baac01f
Improve virtual property error message
nielsdos Aug 23, 2024
fef55bc
Autotools: Fix tidy library checks (#15576)
petk Aug 26, 2024
8df557a
[RFC] Asymmetric visibility v2 (GH-15063)
iluuu1994 Aug 27, 2024
9379962
[skip ci] Add missing UPGRADING note for a-vis
iluuu1994 Aug 27, 2024
cc67220
Fixed GH-15547: curl_multi_wait expects a signed int for timeout.
devnexen Aug 22, 2024
618edb5
Merge branch 'PHP-8.2' into PHP-8.3
devnexen Aug 27, 2024
f7186a0
Merge branch 'PHP-8.3'
devnexen Aug 27, 2024
3ed884f
[ci skip] NEWS
devnexen Aug 27, 2024
8487ddb
pdo_firebird: Cleanup code (GH-15510)
sim1984 Aug 27, 2024
8f3dc78
[ci skip] Update NEWS for PHP 8.4.0 beta4
SakiTakamachi Aug 27, 2024
c4ae645
Follow-up on GH-15548: curl_multi_select.
devnexen Aug 27, 2024
f0f1724
Remove unintended ZEND_EXT_API usage (#15602)
dstogov Aug 27, 2024
eb87de1
Fix GH-15502: Crash with JIT and Excimer (#15601)
dstogov Aug 27, 2024
12b854f
Merge branch 'PHP-8.2' into PHP-8.3
dstogov Aug 27, 2024
16d4fb1
Merge branch 'PHP-8.3'
dstogov Aug 27, 2024
88393cf
Fix GH-13988: Storing DOMElement consume 4 times more memory in PHP 8…
nielsdos Aug 26, 2024
067eb8c
[ci skip] Remove confusing comments
nielsdos Aug 27, 2024
9b73d59
Avoid string duplication if possible in SimpleXMLElement::addAttribut…
nielsdos Aug 27, 2024
674ec02
Fixed the sign to be PLUS if the result is 0 (#15599)
SakiTakamachi Aug 27, 2024
a7695d1
[skip ci] Zend/tests/assert/expect_015.phpt: fix typo in test name (G…
DanielEScherzer Aug 28, 2024
7878a2c
Fix iconv_open basic test (#15611)
petk Aug 28, 2024
0f487e7
Merge branch 'PHP-8.2' into PHP-8.3
petk Aug 28, 2024
d9d49b2
Merge branch 'PHP-8.3'
petk Aug 28, 2024
4f6f4fb
Autotools: Sync CS in ext/dba (#15608)
petk Aug 28, 2024
5b482b7
Alpine/Musl nightly job (#13925)
arnaud-lb Aug 28, 2024
cd25500
Do not scan generator frames more than once (#15330)
arnaud-lb Aug 28, 2024
4db7814
[ci skip] NEWS for GH-15330
arnaud-lb Aug 28, 2024
f551a71
Merge branch 'PHP-8.2' into PHP-8.3
arnaud-lb Aug 28, 2024
0e9e591
[ci skip] NEWS for GH-15330
arnaud-lb Aug 28, 2024
bf96980
Merge branch 'PHP-8.3'
arnaud-lb Aug 28, 2024
180a5c3
[ci skip] NEWS for GH-15330
arnaud-lb Aug 28, 2024
7f37c22
Cleanup php_sxe_count_elements_helper()
nielsdos Aug 27, 2024
2fe8dd1
Remove unused parameter of php_sxe_reset_iterator()
nielsdos Aug 27, 2024
9979f47
Remove unused parameter from match_ns()
nielsdos Aug 27, 2024
51d93c1
Remove failure paths for infallible code in simplexml
nielsdos Aug 27, 2024
8347ada
Lazy objects
arnaud-lb May 19, 2023
c5901fc
Test cleanup
arnaud-lb Jul 25, 2024
36c70ee
Test cleanup
arnaud-lb Jul 25, 2024
80b4228
Fix build
arnaud-lb Aug 7, 2024
0832ea2
Hooks
arnaud-lb Aug 7, 2024
0b2f632
Fix windows build
arnaud-lb Aug 10, 2024
6460680
Fix test
arnaud-lb Aug 13, 2024
a674d55
JIT
arnaud-lb Aug 13, 2024
627de1f
Remove TODO
arnaud-lb Aug 13, 2024
a724938
Expose initializer zv to gc
arnaud-lb Aug 13, 2024
ac439e8
Add test
arnaud-lb Aug 13, 2024
bd03b05
Internal param name consistency with api
arnaud-lb Aug 13, 2024
ed7d39c
Update comment
arnaud-lb Aug 16, 2024
56d10db
Add assertion
arnaud-lb Aug 16, 2024
a509e91
Cleanup
arnaud-lb Aug 16, 2024
e8d1b9d
Rename zend_object.flags
arnaud-lb Aug 20, 2024
d7bf624
Rename zend_get_properties_no_init
arnaud-lb Aug 20, 2024
f70412c
De-dup
arnaud-lb Aug 20, 2024
89c8656
Do not serialize as N;
arnaud-lb Aug 20, 2024
c9eec20
WS / naming
arnaud-lb Aug 20, 2024
07331a4
Use zend_argument_error
arnaud-lb Aug 20, 2024
2c740fd
De-dup
arnaud-lb Aug 20, 2024
6f0a927
Improve naming: rename ce to reflection_ce
arnaud-lb Aug 20, 2024
3a3b755
RETURN_THROWS / RETURN_NULL
arnaud-lb Aug 20, 2024
0e24294
Fallback in case zend_std_write_property is overridden
arnaud-lb Aug 20, 2024
2a57a75
Remove unreachable condition
arnaud-lb Aug 20, 2024
d92db6e
Extract common logic for setRawValue / setRawValueWithoutLazyInitiali…
arnaud-lb Aug 20, 2024
81bfdb1
Do not set prop as lazy after setRawValueWithoutLazyInitialization fa…
arnaud-lb Aug 20, 2024
eace710
Extract common logic between setRawValueWithoutLazyInitialization / s…
arnaud-lb Aug 20, 2024
db0bf61
Use ZVAL_COPY_PROP
arnaud-lb Aug 20, 2024
e5af928
Add comment / extract logic
arnaud-lb Aug 20, 2024
7b4545f
Add test
arnaud-lb Aug 20, 2024
8415e9d
Rename IS_OBJ_LAZY -> IS_OBJ_LAZY_UNINITIALIZED
arnaud-lb Aug 20, 2024
e85595c
Early return
arnaud-lb Aug 20, 2024
bf20f0a
Fix null pointer deref
arnaud-lb Aug 20, 2024
f886726
Fix comparison of lazy objects
arnaud-lb Aug 20, 2024
f8df7ae
Skip zend_std_get_properties()
arnaud-lb Aug 20, 2024
23e1a4b
Remove dead code for clone handling
arnaud-lb Aug 20, 2024
33acce5
newLazy*() do not accept SKIP_DESTRUCTOR
arnaud-lb Aug 20, 2024
e25d16a
Make functions static when possible
arnaud-lb Aug 20, 2024
a31e777
Simplify assertions
arnaud-lb Aug 20, 2024
6cf6496
Prevent warning
arnaud-lb Aug 20, 2024
8841964
Check final property
arnaud-lb Aug 20, 2024
77fe4fc
Avoid redundant addref/delref
arnaud-lb Aug 20, 2024
d0c9e36
Prevent making object lazy during its initialization
arnaud-lb Aug 20, 2024
9248c39
Improve error message
arnaud-lb Aug 20, 2024
4a0eb5f
Fix build
arnaud-lb Aug 20, 2024
b960778
Rename constants
arnaud-lb Aug 20, 2024
174fe00
CS
arnaud-lb Aug 20, 2024
7f2190e
Generated file
arnaud-lb Aug 21, 2024
5864de3
Do not inline slow path
arnaud-lb Aug 21, 2024
d1a10ac
Ensure separation
arnaud-lb Aug 21, 2024
3e5c95c
Simplify
arnaud-lb Aug 21, 2024
c332fa5
Add assertion
arnaud-lb Aug 28, 2024
9114a71
Prevent compiler warning
arnaud-lb Aug 28, 2024
3b3a200
Simplify
arnaud-lb Aug 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 61 additions & 0 deletions .github/actions/apk/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: apk
runs:
using: composite
steps:
- shell: sh
run: |
set -x

apk update -q
apk add \
util-linux \
bash \
sudo \
build-base \
autoconf \
unzip \
tar \
bison \
re2c \
pkgconf \
mysql-client \
aspell-dev \
hunspell-dev \
hunspell-en \
bzip2-dev \
curl-dev \
freetype-dev \
gettext-dev \
gnu-libiconv-dev \
gmp-dev \
icu-dev \
icu-data-full \
jpeg-dev \
libffi-dev \
libpng-dev \
libsodium-dev \
libwebp-dev \
libxml2-dev \
libxpm-dev \
libxslt-dev \
libzip-dev \
oniguruma-dev \
openssl-dev \
readline-dev \
sqlite-dev \
tidyhtml-dev \
krb5-dev \
gdbm-dev \
lmdb-dev \
argon2-dev \
enchant2-dev \
enchant2-hunspell \
freetds-dev \
imap-dev \
net-snmp-dev \
openldap-dev \
unixodbc-dev \
postgresql14-dev \
tzdata \
musl-locales \
musl-locales-lang
79 changes: 79 additions & 0 deletions .github/actions/configure-alpine/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ./configure
inputs:
configurationParameters:
default: ''
required: false
skipSlow:
default: false
required: false
runs:
using: composite
steps:
- shell: bash
run: |
set -x
./buildconf --force
./configure \
--enable-option-checking=fatal \
--prefix=/usr \
--enable-phpdbg \
--enable-fpm \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
${{ inputs.skipSlow == 'false' && '--with-pgsql' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-pgsql' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-sqlite' || '' }} \
--enable-intl \
--without-pear \
--enable-gd \
--with-jpeg \
--with-webp \
--with-freetype \
--with-xpm \
--enable-exif \
--with-zip \
--with-zlib \
--enable-soap \
--enable-xmlreader \
--with-xsl \
${{ inputs.skipSlow == 'false' && '--with-tidy' || '' }} \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-iconv=/usr \
--with-curl \
--with-gettext \
--enable-sockets \
--with-bz2 \
--with-openssl \
--with-gmp \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
${{ inputs.skipSlow == 'false' && '--with-enchant=/usr' || '' }} \
--enable-sysvmsg \
--with-ffi \
--enable-zend-test \
${{ inputs.skipSlow == 'false' && '--enable-dl-test=shared' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-ldap' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-ldap-sasl' || '' }} \
--with-password-argon2 \
--with-mhash \
--with-sodium \
--enable-dba \
--with-cdb \
--enable-flatfile \
--enable-inifile \
--with-lmdb \
--with-gdbm \
${{ inputs.skipSlow == 'false' && '--with-snmp' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-unixODBC' || '' }} \
${{ inputs.skipSlow == 'false' && '--with-pdo-odbc=unixODBC,/usr' || '' }} \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
${{ inputs.skipSlow == 'false' && '--with-pdo-dblib' || '' }} \
--enable-werror \
${{ inputs.configurationParameters }}
10 changes: 10 additions & 0 deletions .github/actions/install-alpine/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Install
runs:
using: composite
steps:
- shell: bash
run: |
set -x
sudo make install
sudo mkdir -p /etc/php.d
sudo chmod 777 /etc/php.d
25 changes: 25 additions & 0 deletions .github/actions/test-alpine/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Test
inputs:
runTestsParameters:
default: ''
required: false
jitType:
default: 'disable'
required: false
runs:
using: composite
steps:
- shell: bash
run: |
set -x
export SKIP_IO_CAPTURE_TESTS=1
export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
-d opcache.jit=${{ inputs.jitType }} \
-d opcache.jit_buffer_size=64M \
-j$(nproc) \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
--show-diff \
--show-slow 1000 \
--set-timeout 120
22 changes: 22 additions & 0 deletions .github/nightly_matrix.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,26 @@ function get_macos_matrix_include(array $branches) {
return $jobs;
}

function get_alpine_matrix_include(array $branches) {
$jobs = [];
foreach ($branches as $branch) {
if ([$branch['version']['major'], $branch['version']['minor']] < [8, 4]) {
continue;
}
$jobs[] = [
'name' => '_ASAN_UBSAN',
'branch' => $branch,
'debug' => true,
'zts' => true,
'asan' => true,
'test_jit' => true,
'configuration_parameters' => "CFLAGS='-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC' LDFLAGS='-fsanitize=undefined,address -fno-sanitize=function' CC=clang-17 CXX=clang++-17",
'run_tests_parameters' => '--asan -x',
];
}
return $jobs;
}

function get_current_version(): array {
$file = dirname(__DIR__) . '/main/php_version.h';
$content = file_get_contents($file);
Expand All @@ -145,10 +165,12 @@ function get_current_version(): array {
$matrix_include = get_matrix_include($branches);
$windows_matrix_include = get_windows_matrix_include($branches);
$macos_matrix_include = get_macos_matrix_include($branches);
$alpine_matrix_include = get_alpine_matrix_include($branches);

$f = fopen(getenv('GITHUB_OUTPUT'), 'a');
fwrite($f, 'branches=' . json_encode($branches, JSON_UNESCAPED_SLASHES) . "\n");
fwrite($f, 'matrix-include=' . json_encode($matrix_include, JSON_UNESCAPED_SLASHES) . "\n");
fwrite($f, 'windows-matrix-include=' . json_encode($windows_matrix_include, JSON_UNESCAPED_SLASHES) . "\n");
fwrite($f, 'macos-matrix-include=' . json_encode($macos_matrix_include, JSON_UNESCAPED_SLASHES) . "\n");
fwrite($f, 'alpine-matrix-include=' . json_encode($alpine_matrix_include, JSON_UNESCAPED_SLASHES) . "\n");
fclose($f);
60 changes: 60 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
matrix-include: ${{ steps.set-matrix.outputs.matrix-include }}
windows-matrix-include: ${{ steps.set-matrix.outputs.windows-matrix-include }}
macos-matrix-include: ${{ steps.set-matrix.outputs.macos-matrix-include }}
alpine-matrix-include: ${{ steps.set-matrix.outputs.alpine-matrix-include }}
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -39,6 +40,65 @@ jobs:
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
ALPINE:
needs: GENERATE_MATRIX
if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.alpine-matrix-include) }}
name: "${{ matrix.branch.name }}_ALPINE_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: ubuntu-22.04
container:
image: 'alpine:3.20.1'
steps:
- name: git checkout
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch.ref }}
- name: apk
uses: ./.github/actions/apk
- name: LLVM 17 (ASAN-only)
if: ${{ matrix.asan }}
# libclang_rt.asan-x86_64.a is provided by compiler-rt, and only for clang17:
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.20
run: |
apk add clang17 compiler-rt
- name: System info
run: |
echo "::group::Show host CPU info"
lscpu
echo "::endgroup::"
echo "::group::Show installed package versions"
apk list
echo "::endgroup::"
- name: ./configure
uses: ./.github/actions/configure-alpine
with:
configurationParameters: >-
${{ matrix.configuration_parameters }}
--${{ matrix.debug && 'enable' || 'disable' }}-debug
--${{ matrix.zts && 'enable' || 'disable' }}-zts
skipSlow: ${{ matrix.asan }}
- name: make
run: make -j$(/usr/bin/nproc) >/dev/null
- name: make install
uses: ./.github/actions/install-alpine
- name: Test Tracing JIT
if: matrix.test_jit
uses: ./.github/actions/test-alpine
with:
jitType: tracing
runTestsParameters: >-
${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so
-d opcache.enable_cli=1
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}

LINUX_X64:
needs: GENERATE_MATRIX
if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
Expand Down
2 changes: 1 addition & 1 deletion EXTENSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: random
PRIMARY MAINTAINER Go Kudo <[email protected]> (2022 - 2022)
PRIMARY MAINTAINER Go Kudo <[email protected]> (2022 - 2024)
Tim Düsterhus <[email protected]> (2022 - 2024)
MAINTENANCE: Maintained
STATUS: Working
Expand Down
Loading
Loading