Skip to content

ci: add -Wextra-semi to llvm config - #341

Merged
ryanofsky merged 1 commit into
bitcoin-core:masterfrom
fanquake:llvm_extra_semi
Aug 12, 2026
Merged

ryanofsky merged 1 commit into
bitcoin-core:masterfrom
fanquake:llvm_extra_semi

Conversation

@fanquake

Copy link
Copy Markdown
Member

Followup to #332

@DrahtBot

DrahtBot commented Aug 12, 2026 •

Copy link
Copy Markdown

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline and AI policy for information on the review process.

Type Reviewers
ACK hebasto
Stale ACK ryanofsky

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

@hebasto hebasto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK d44db15.

@DrahtBot

Copy link
Copy Markdown

🐙 This pull request conflicts with the target branch and needs rebase.

@ryanofsky ryanofsky left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review ACK d44db15

(was about to merge this but it needs rebase after #339)

@fanquake

Copy link
Copy Markdown
Member Author

but it needs rebase after #339)

Rebased.

@hebasto hebasto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-ACK b3b134e.

@DrahtBot
DrahtBot requested a review from ryanofsky August 12, 2026 12:43
@ryanofsky
ryanofsky merged commit 8dab0d4 into bitcoin-core:master Aug 12, 2026
13 checks passed
@fanquake
fanquake deleted the llvm_extra_semi branch August 12, 2026 13:01
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Aug 20, 2026
d0eea62c58 ci: add Windows cross-compilation config using MinGW and Wine
ae6cf017d4 test: Add TCP SocketListener and Windows compat to socketlistener.h
1938c199d7 util: make pthreads optional on Windows to enable MSVC builds
97011d4008 util: Fix Windows SpawnProcess hang when child exits before connecting to named pipe
7861351f24 util: Add Windows support
ee09c2b269 util: Add Windows CommandLineFromArgv escaping function
860e2ffb5c util, test: guard Unix-only code for Windows build
c79b49afe1 util, test: Replace UnixListener with SocketListener
15aa914f03 util, test: Add CloseSocket, use SocketId
be5f87655a util: Improve SpawnProcess API and documentation
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: d0eea62c58928f9660b8dc5541a62ea395c565ef
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Aug 20, 2026
d0eea62c58 ci: add Windows cross-compilation config using MinGW and Wine
ae6cf017d4 test: Add TCP SocketListener and Windows compat to socketlistener.h
1938c199d7 util: make pthreads optional on Windows to enable MSVC builds
97011d4008 util: Fix Windows SpawnProcess hang when child exits before connecting to named pipe
7861351f24 util: Add Windows support
ee09c2b269 util: Add Windows CommandLineFromArgv escaping function
860e2ffb5c util, test: guard Unix-only code for Windows build
c79b49afe1 util, test: Replace UnixListener with SocketListener
15aa914f03 util, test: Add CloseSocket, use SocketId
be5f87655a util: Improve SpawnProcess API and documentation
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: d0eea62c58928f9660b8dc5541a62ea395c565ef
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Aug 21, 2026
d0eea62c58 ci: add Windows cross-compilation config using MinGW and Wine
ae6cf017d4 test: Add TCP SocketListener and Windows compat to socketlistener.h
1938c199d7 util: make pthreads optional on Windows to enable MSVC builds
97011d4008 util: Fix Windows SpawnProcess hang when child exits before connecting to named pipe
7861351f24 util: Add Windows support
ee09c2b269 util: Add Windows CommandLineFromArgv escaping function
860e2ffb5c util, test: guard Unix-only code for Windows build
c79b49afe1 util, test: Replace UnixListener with SocketListener
15aa914f03 util, test: Add CloseSocket, use SocketId
be5f87655a util: Improve SpawnProcess API and documentation
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: d0eea62c58928f9660b8dc5541a62ea395c565ef
vmta added a commit to umkoin/umkoin that referenced this pull request Sep 11, 2026
2dba13047 Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8 ci: use LLVM 23 in Bitcoin Core CI
7bac69de1 Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82 Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f19 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e pull latest .clang-tidy from downstream
5c49666a1 refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81 refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a81d Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba99582b Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
00923922a Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb3 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280 ci: bump cmake version to 4.3.4 in newdeps job
fa101113b refactor: Enable readability-container-contains
81f824b02 doc: Update Cap'n Proto version to match minimum
fa30e2093 ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da ci: add cmake debug output
f2e8df82e Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c046 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e263 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda ci: rename CI-internal variables to use CI_ prefix
fe1b8339f ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc839f proxy: fix data race between server request threads and disconnect handling
275c8eefd Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162fb8 Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b136782a ci: Add -Wtrailing-whitespace to default config
2f4be9ec6 refactor: Remove trailing whitespace
2448d282c cmake: add type-unordered-set.h and version.h to public headers
b3fc922ee ci: add newdeps job testing newest versions of cmake and capnproto
390b5f901 Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588d1 proxy: fix BuildList to use non-const iteration for interface types
e18ca520f Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c doc: note construct() call in valid init interface test
b9c36c617 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e63 test: drop unnecessary KJ_EXPECT(true)
113f1d4d2 test: join server thread unconditionally in connect tests
44bc4630b test: drop mp:: prefixes in connect tests
038d33eb3 test: share DefaultLogHandler between test files
b54a16330 test: drop TestSetup socket members in connect tests
70467c5a7 test: add m_ prefix to TestSetup members in connect tests
cc260f252 test: replace capnp fix link with upstream PR
137a6e4e0 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bd Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed ci: add -Wextra-semi to llvm config
bdd0cd694 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a0976 ci: add -Wmissing-noreturn
636aaff57 refactor: add missing [[noreturn]] attributes
cc11c2b1b Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c7 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98 Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f2 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e78 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79e Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b0 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5 test: Cover OS thread names for worker, pool, and async threads
648a18589 proxy: Name threads spawned by the event loop
49834b260 ci: add -Wextra-semi to default config
fae9a637e example: Remove unused kj/async.h include
bb473690c Fix error handling when creating clients
44d191420 Add test coverage for ConnectStream
231361ae5 Correct stale UnixListener doc comment
060c1a50d Extract `UnixListener` class to a dedicated file
62f25af06 test: check ReadList return value
ce51d7372 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd13 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab5 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f662 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2b Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a31 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f10 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a67 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0 Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b1162 util: kill and reap child on SpawnProcess error
4a56c1837 util: report back child error to parent and throw
a9e70dbe7 ci: Add NetBSD release 11.0
2d33b14fb ci: Switch to default compiler on NetBSD 9.4
36f740027 ci: Drop NetBSD release 9.4
bd508311b refactor: Drop stray semicolons after function definitions
788f17a85 Remove code for Cap'n Proto versions before 0.9
7402affd0 ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf634356 ci: Compile with minimum supported g++-11 in olddeps
fa47449af cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764d cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d refactor: memcpy -> std::ranges::copy
e1dcc6eb1 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f625597 type-number: exclude bool from the integral overload
8d6d46494 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d25 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e6 test: cover immediate client disconnects for `ListenConnections`
36c6c6352 doc: Document reference-counted EventLoop lifetime
3a997e113 Fix startup race in mpexample
f5c15ce33 Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737 ci: Switch back to Bitcoin Core's master branch
86b481050 refactor: access ThreadContext through CurrentThread()
eea9c64f6 cmake: Fix stale codegen when mpgen binary changes
a26a08496 cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6f test: allow custom log handler in `ListenSetup`
1e0c7ff9a util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a3 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b5 test: Fix typo in listen_tests.cpp
ce865a9ba refactor: Directly use value in CustomBuildField
3f221b5bf Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
e8de5c7b6 Merge bitcoin-core/libmultiprocess#305: refactor: memcpy to std::ranges::copy to work around ubsan warn
1b0f60560 doc: Remove trailing whitespace
d8f8ca311 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d8 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba6852020 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d4781 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e5 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411cc proxy: Call shutdownWrite() in Connection destructor
38312ad19 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742 proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d7 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb7 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26 util, refactor: Do not fork() and exec() separately
1389cf313 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b util, refactor: Add SocketId type alias and use it
be46a3520 util, refactor: Add ProcessId type alias and use it
91a78db78 doc: Bump version 13 > 14
9307e68e5 Merge bitcoin-core/libmultiprocess#306: doc: Bump version 12 > 13
fac7b9b7f refactor: memcpy to std::ranges::copy to work around ubsan warn
1bd702560 Merge bitcoin-core/libmultiprocess#297: test: add map serialization round-trip coverage
438fdd243 doc: Bump version 12 > 13
28e056576 Merge bitcoin-core/libmultiprocess#269: proxy: add local connection limit to ListenConnections
39a10ce89 proxy: add local connection limit to ListenConnections()
43172f52d test: add dedicated ListenConnections coverage
033f81219 doc/version: Bump version 11 > 12
463d073cb test: rename vBool to vector_bool
16bf05dea Merge bitcoin-core/libmultiprocess#302: refactor: rename EventLoop::m_num_clients to m_num_refs
dd537da9e Merge bitcoin-core/libmultiprocess#301: test: recursive async IPC calls and cleanups
400291de0 Merge bitcoin-core/libmultiprocess#299: ci: remove libevent from Core CIs
092be515a Merge bitcoin-core/libmultiprocess#285: Add ReadList helper
5b617880c Merge bitcoin-core/libmultiprocess#283: Add `makePool` method on `ThreadMap`
d49983041 refactor: rename EventLoop::m_num_clients to m_num_refs
6450345c9 type: reserve first when reading std::unordered_set
4d0f8db5f proxy: add ReadList helper and dedup map/set/vector read handlers
0e49d9118 Add `makePool` method on `ThreadMap`
5519f7f94 test: recursive async IPC calls
a29ceff40 ci: remove libevent from Core CIs
85df23384 test: add mapStringInt to foo.capnp to cover map serialization and deserialization
fa2c56ec2 ci: Bump channel to nixos-26.05
8412fcdc6 Merge bitcoin-core/libmultiprocess#295: Mark Waiter m_cv as guarded by m_mutex
1593ee2d1 Merge bitcoin-core/libmultiprocess#294: test: Add passDouble smoke test
9885d7dd3 Merge bitcoin-core/libmultiprocess#286: proxy-client: fix TSan data race in clientDestroy
fa35501c4 Mark Waiter m_cv as guarded by m_mutex
faaedb11f test: Add passDouble smoke test
733c64318 Merge bitcoin-core/libmultiprocess#292: type-number: fix clang-tidy modernize-use-nullptr
9cc3479ab Merge bitcoin-core/libmultiprocess#291: cmake: Add `mp_headers` custom target
201abd9e3 Merge bitcoin-core/libmultiprocess#289: cmake: make target_capnp_sources use CURRENT dirs
99820c8ae Merge bitcoin-core/libmultiprocess#279: doc: Add comments to FIELD_* constants in proxy.h
73b985540 Merge bitcoin-core/libmultiprocess#278: doc: Fix and expand design.md
e7e91b2e2 Merge bitcoin-core/libmultiprocess#277: Add std::unordered_set support and a helper BuildList to dedup list build handlers
91a951f59 tidy fix: modernize-use-nullptr
16362f42d cmake: Add `mp_headers` custom target
615a94fe3 cmake: document ONLY_CAPNP option in target_capnp_sources
90982f75c mpgen: iwyu changes required by previous commit
25bb3e67f proxy-client: fix TSan data race in clientDestroy
620f297f3 cmake: make target_capnp_sources use CURRENT dirs
9de4b885a test: use camelCase + $Proxy.name for FooStruct fields
011b91793 type: add std::unordered_set support
20d19b964 proxy: add BuildList helper and dedup map/set/vector build handlers
e863c6cdf doc: Add comments to FIELD_* constants in proxy.h
18db0ab95 doc: Fix and expand design.md

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2dba130478ab71a745fe96c5726719fe357e6d17
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Sep 28, 2026
2dba130478 Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c7 Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8c ci: use LLVM 23 in Bitcoin Core CI
7bac69de1f Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb3 Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82a Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f197 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e3 pull latest .clang-tidy from downstream
5c49666a1d refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81e refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a81da Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba99582b3 Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
00923922ac Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb32 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280b ci: bump cmake version to 4.3.4 in newdeps job
fa101113b5 refactor: Enable readability-container-contains
81f824b025 doc: Update Cap'n Proto version to match minimum
fa30e2093c ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da2 ci: add cmake debug output
f2e8df82ed Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c0468 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e2632 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda9 ci: rename CI-internal variables to use CI_ prefix
fe1b8339f0 ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc839f2 proxy: fix data race between server request threads and disconnect handling
275c8eefdf Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162fb83 Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b136782af ci: Add -Wtrailing-whitespace to default config
2f4be9ec6e refactor: Remove trailing whitespace
2448d282cc cmake: add type-unordered-set.h and version.h to public headers
b3fc922ee4 ci: add newdeps job testing newest versions of cmake and capnproto
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588d1a proxy: fix BuildList to use non-const iteration for interface types
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2dba130478ab71a745fe96c5726719fe357e6d17
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Sep 28, 2026
2dba130478 Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c7 Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8c ci: use LLVM 23 in Bitcoin Core CI
7bac69de1f Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb3 Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82a Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f197 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e3 pull latest .clang-tidy from downstream
5c49666a1d refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81e refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a81da Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba99582b3 Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
00923922ac Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb32 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280b ci: bump cmake version to 4.3.4 in newdeps job
fa101113b5 refactor: Enable readability-container-contains
81f824b025 doc: Update Cap'n Proto version to match minimum
fa30e2093c ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da2 ci: add cmake debug output
f2e8df82ed Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c0468 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e2632 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda9 ci: rename CI-internal variables to use CI_ prefix
fe1b8339f0 ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc839f2 proxy: fix data race between server request threads and disconnect handling
275c8eefdf Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162fb83 Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b136782af ci: Add -Wtrailing-whitespace to default config
2f4be9ec6e refactor: Remove trailing whitespace
2448d282cc cmake: add type-unordered-set.h and version.h to public headers
b3fc922ee4 ci: add newdeps job testing newest versions of cmake and capnproto
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588d1a proxy: fix BuildList to use non-const iteration for interface types
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2dba130478ab71a745fe96c5726719fe357e6d17
Sjors added a commit to Sjors/sv2-tp that referenced this pull request Sep 28, 2026
2dba130478 Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c7 Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8c ci: use LLVM 23 in Bitcoin Core CI
7bac69de1f Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb3 Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82a Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f197 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e3 pull latest .clang-tidy from downstream
5c49666a1d refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81e refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a81da Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba99582b3 Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
00923922ac Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb32 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280b ci: bump cmake version to 4.3.4 in newdeps job
fa101113b5 refactor: Enable readability-container-contains
81f824b025 doc: Update Cap'n Proto version to match minimum
fa30e2093c ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da2 ci: add cmake debug output
f2e8df82ed Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c0468 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e2632 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda9 ci: rename CI-internal variables to use CI_ prefix
fe1b8339f0 ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc839f2 proxy: fix data race between server request threads and disconnect handling
275c8eefdf Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162fb83 Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b136782af ci: Add -Wtrailing-whitespace to default config
2f4be9ec6e refactor: Remove trailing whitespace
2448d282cc cmake: add type-unordered-set.h and version.h to public headers
b3fc922ee4 ci: add newdeps job testing newest versions of cmake and capnproto
390b5f901f Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588d1a proxy: fix BuildList to use non-const iteration for interface types
e18ca520f4 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c6 doc: note construct() call in valid init interface test
b9c36c6175 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e635 test: drop unnecessary KJ_EXPECT(true)
113f1d4d28 test: join server thread unconditionally in connect tests
44bc4630bc test: drop mp:: prefixes in connect tests
038d33eb31 test: share DefaultLogHandler between test files
b54a163308 test: drop TestSetup socket members in connect tests
70467c5a72 test: add m_ prefix to TestSetup members in connect tests
cc260f2526 test: replace capnp fix link with upstream PR
137a6e4e03 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bde Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed8 ci: add -Wextra-semi to llvm config
bdd0cd6941 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09764 ci: add -Wmissing-noreturn
636aaff576 refactor: add missing [[noreturn]] attributes
cc11c2b1b4 Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c77 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98a Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f25 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e785 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c9 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79ef Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b08 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5b test: Cover OS thread names for worker, pool, and async threads
648a18589c proxy: Name threads spawned by the event loop
49834b2609 ci: add -Wextra-semi to default config
fae9a637e3 example: Remove unused kj/async.h include
bb473690c9 Fix error handling when creating clients
44d191420c Add test coverage for ConnectStream
231361ae5a Correct stale UnixListener doc comment
060c1a50d0 Extract `UnixListener` class to a dedicated file
62f25af06c test: check ReadList return value
ce51d73725 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd132 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab54 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6625 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb5 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2bc Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a314 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f107 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a673 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0a Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c1 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11624 util: kill and reap child on SpawnProcess error
4a56c1837a util: report back child error to parent and throw
a9e70dbe77 ci: Add NetBSD release 11.0
2d33b14fb0 ci: Switch to default compiler on NetBSD 9.4
36f7400277 ci: Drop NetBSD release 9.4
bd508311b5 refactor: Drop stray semicolons after function definitions
788f17a850 Remove code for Cap'n Proto versions before 0.9
7402affd0c ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343562 ci: Compile with minimum supported g++-11 in olddeps
fa47449afe cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764de cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d7 refactor: memcpy -> std::ranges::copy
e1dcc6eb18 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e2 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f5 type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255975 type-number: exclude bool from the integral overload
8d6d464948 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d254 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e69 test: cover immediate client disconnects for `ListenConnections`
36c6c63520 doc: Document reference-counted EventLoop lifetime
3a997e113c Fix startup race in mpexample
f5c15ce33f Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737f ci: Switch back to Bitcoin Core's master branch
86b4810501 refactor: access ThreadContext through CurrentThread()
eea9c64f6e cmake: Fix stale codegen when mpgen binary changes
a26a08496b cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6ff test: allow custom log handler in `ListenSetup`
1e0c7ff9a5 util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a31 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b52 test: Fix typo in listen_tests.cpp
ce865a9ba8 refactor: Directly use value in CustomBuildField
3f221b5bfd Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605606 doc: Remove trailing whitespace
d8f8ca3119 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad4 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d83 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520203 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47811 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e52 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411ccc proxy: Call shutdownWrite() in Connection destructor
38312ad191 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742a proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d73 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb79 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26c util, refactor: Do not fork() and exec() separately
1389cf3132 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b6 util, refactor: Add SocketId type alias and use it
be46a35203 util, refactor: Add ProcessId type alias and use it
91a78db780 doc: Bump version 13 > 14
fa2c56ec27 ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2dba130478ab71a745fe96c5726719fe357e6d17
fanquake pushed a commit to bitcoin/bitcoin that referenced this pull request Nov 5, 2026
acded1aafae Merge bitcoin-core/libmultiprocess#365: proxy-io: Generalize ConnectStream / ServeStream for use in tests
98f609ac50f Merge bitcoin-core/libmultiprocess#389: refactor: Enable modernize-use-scoped-lock
ee06487d861 refactor: Enable modernize-use-scoped-lock
263139f41dd Merge bitcoin-core/libmultiprocess#387: ci: use newer `actions/*` versions
388e37c5bc7 Merge bitcoin-core/libmultiprocess#386: gen: make `AccessorType` static
81e55578047 Merge bitcoin-core/libmultiprocess#383: ci: Compile capnproto with GCC in gnu32 job
c8ca0c0f6f1 ci: add -Wmissing-declarations to default.bash
3edd64840d0 Merge bitcoin-core/libmultiprocess#379: type: Accept any comparator, hash, and allocator in container fields
641c78ecacb ci: add -Wmissing-prototypes to LLVM config
52a028c8b78 gen: make AccessorType static
796dd742414 Merge bitcoin-core/libmultiprocess#380: .clang-tidy: Enable additional checks
b1816a8d02a Merge bitcoin-core/libmultiprocess#362: Enable `-Wunused`
cf2164ba0e2 ci: make curl fail more loudly
0bce5ed7a41 ci: use newer actions/ versions
ee8e64b87bc ci: add -Wunused to CI configs
fd75dc66964 refactor: use requires clauses instead of SFINAE enable parameters
0e6fffa8117 refactor: remove unused code
fabc4901269 .clang-tidy: Enable additional modernize checks
89bccd849ee Merge bitcoin-core/libmultiprocess#381: ci: Fix OpenBSD job
04a0465d67a ci: Compile capnproto with GCC in gnu32 job
1b742cfbbd7 ci: Fix OpenBSD job
a4fa10754c7 .clang-tidy: Enable additional checks not in upstream Bitcoin Core
7460e35896b .clang-tidy: Enable checks from upstream Bitcoin Core
9a42d0065d9 type: Accept any comparator, hash, and allocator in container fields
2e7812a5a1e Merge bitcoin-core/libmultiprocess#370: Fix Bitcoin Core build errors from libmultiprocess headers
686bccf766f Merge bitcoin-core/libmultiprocess#371: cmake: Fix silent include-what-you-use failures
f0a14754ef4 cmake: Show include-what-you-use diagnostics when it fails
92127a984a4 cmake: Pass -w to include-what-you-use
3577d23f616 ci: Enable -Wundef in default and llvm jobs
debd42955ea proxy-types: Avoid -Wundef error when KJ_NO_EXCEPTIONS is not defined
326ccfc2f87 test: simplify TestSetup using ServeStream/ConnectStream
6fd2a9c90e1 Merge bitcoin-core/libmultiprocess#367: mpgen: Change Cap'n Proto link order to fix undefined references in static builds
a8c64c7faa5 ci: Enable -Wunused-const-variable in GCC jobs
e46876545b4 proxy-io: add destroy_connection parameter to ServeStream and ConnectStream
701449c1657 util: Make SocketError inline constexpr
01808baa188 proxy-io: let ServeStream take ownership of init object
034e0d21b51 proxy-io: add EventLoop::incomingConnections()
f1042b1a60e Merge bitcoin-core/libmultiprocess#366: ci: Compile with minimum supported g++-10 in olddeps
a6ecdc113ff Merge bitcoin-core/libmultiprocess#364: util: Error out at compile time if KJ_NO_EXCEPTIONS is set
56cfdaa884e Change CapnProto library linkage for mpgen
fa5633467af ci: Compile with minimum supported g++-10 in olddeps
4a1f400f8b7 util: Error out at compile time if KJ_NO_EXCEPTIONS is set
2dba130478a Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c7b Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8c8 ci: use LLVM 23 in Bitcoin Core CI
7bac69de1fc Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb32 Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82ae Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f1972 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e3e pull latest .clang-tidy from downstream
5c49666a1d8 refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81e2 refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a8 Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba9958 Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
0092392 Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb326 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280bf ci: bump cmake version to 4.3.4 in newdeps job
fa10111 refactor: Enable readability-container-contains
81f824b doc: Update Cap'n Proto version to match minimum
fa30e20 ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da22 ci: add cmake debug output
f2e8df8 Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c0 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e2 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda9b ci: rename CI-internal variables to use CI_ prefix
fe1b8339f00 ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc83 proxy: fix data race between server request threads and disconnect handling
275c8ee Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162f Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b13678 ci: Add -Wtrailing-whitespace to default config
2f4be9e refactor: Remove trailing whitespace
2448d28 cmake: add type-unordered-set.h and version.h to public headers
b3fc922 ci: add newdeps job testing newest versions of cmake and capnproto
390b5f9 Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588 proxy: fix BuildList to use non-const iteration for interface types
e18ca52 Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c785 doc: note construct() call in valid init interface test
b9c36c6 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e test: drop unnecessary KJ_EXPECT(true)
113f1d4 test: join server thread unconditionally in connect tests
44bc463 test: drop mp:: prefixes in connect tests
038d33e test: share DefaultLogHandler between test files
b54a163 test: drop TestSetup socket members in connect tests
70467c5 test: add m_ prefix to TestSetup members in connect tests
cc260f2 test: replace capnp fix link with upstream PR
137a6e4 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4 Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134e ci: add -Wextra-semi to llvm config
bdd0cd6 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a09 ci: add -Wmissing-noreturn
636aaff refactor: add missing [[noreturn]] attributes
cc11c2b Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df6 Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb7 Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790 ci: Update `capnproto` prerequisites on NetBSD
9f25ffc test: Cover OS thread names for worker, pool, and async threads
648a185 proxy: Name threads spawned by the event loop
49834b2 ci: add -Wextra-semi to default config
fae9a63 example: Remove unused kj/async.h include
bb47369 Fix error handling when creating clients
44d1914 Add test coverage for ConnectStream
231361a Correct stale UnixListener doc comment
060c1a5 Extract `UnixListener` class to a dedicated file
62f25af test: check ReadList return value
ce51d73 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64a Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f6 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9 Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108 Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d67817 Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b11 util: kill and reap child on SpawnProcess error
4a56c18 util: report back child error to parent and throw
a9e70db ci: Add NetBSD release 11.0
2d33b14 ci: Switch to default compiler on NetBSD 9.4
36f7400 ci: Drop NetBSD release 9.4
bd50831 refactor: Drop stray semicolons after function definitions
788f17a Remove code for Cap'n Proto versions before 0.9
7402aff ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf6343 ci: Compile with minimum supported g++-11 in olddeps
fa47449 cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b76 cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e0 refactor: memcpy -> std::ranges::copy
e1dcc6e Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df0 type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f6255 type-number: exclude bool from the integral overload
8d6d464 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84 test: cover immediate client disconnects for `ListenConnections`
36c6c63 doc: Document reference-counted EventLoop lifetime
3a997e1 Fix startup race in mpexample
f5c15ce Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c7 ci: Switch back to Bitcoin Core's master branch
86b4810 refactor: access ThreadContext through CurrentThread()
eea9c64 cmake: Fix stale codegen when mpgen binary changes
a26a084 cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba test: allow custom log handler in `ListenSetup`
1e0c7ff util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6 util, refactor: Add ChildFail helper for post-fork child errors
17eab90 test: Fix typo in listen_tests.cpp
ce865a9 refactor: Directly use value in CustomBuildField
3f221b5 Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
1b0f605 doc: Remove trailing whitespace
d8f8ca3 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14 ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba68520 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d47 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411 proxy: Call shutdownWrite() in Connection destructor
38312ad proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d7 proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3 cmake: Bump minimum required Cap'n Proto version to 0.9
652934f util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a util, refactor: Do not fork() and exec() separately
1389cf3 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f0 util, refactor: Add SocketId type alias and use it
be46a35 util, refactor: Add ProcessId type alias and use it
91a78db doc: Bump version 13 > 14
fa2c56e ci: Bump channel to nixos-26.05

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: acded1aafae12ce57d3d5a6ce3beb6870805f469
fanquake added a commit to bitcoin-core/gui that referenced this pull request Nov 5, 2026
…nunix platform support and fix race conditions

d5f7524 doc: Bump minimum required Cap'n Proto version to 0.9.2 (Ryan Ofsky)
4898199 build: suppress -Wc++23-lambda-attributes in warn_interface (Ryan Ofsky)
270f5db Squashed 'src/ipc/libmultiprocess/' changes from e8de5c7b68e..acded1aafae (Ryan Ofsky)

Pull request description:

  The changes can be verified by running `test/lint/git-subtree-check.sh src/ipc/libmultiprocess` as described in [developer notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#subtrees) and [lint instructions](https://github.com/bitcoin/bitcoin/tree/master/test/lint#git-subtree-checksh).

  Changes since last subtree update (#35720):

  - Adds support for nonunix platforms, making API changes that are not backwards compatible ([#274](bitcoin-core/libmultiprocess#274)). Follow-ups add a `CurrentThread()` accessor matching compatibility code in [bitcoin/bitcoin#35084](bitcoin/bitcoin#35084) ([#323](bitcoin-core/libmultiprocess#323)) and remove code for Cap'n Proto versions before 0.9 ([#331](bitcoin-core/libmultiprocess#331)).
  - Fixes a data race between IPC calls running on worker threads and disconnects, found by Antithesis ([#349](bitcoin-core/libmultiprocess#349)).
  - Fixes a use-after-free when a socket disconnects before `ConnectStream` connects, and leaks and hangs when a client `construct()` call throws ([#298](bitcoin-core/libmultiprocess#298)).
  - Fixes a race where file descriptors from `SpawnProcess` could leak into processes forked at the same time by other threads, by clearing `FD_CLOEXEC` in the child after forking ([#311](bitcoin-core/libmultiprocess#311)).
  - Makes `SpawnProcess` report `exec` failures back to the parent and throw, reaping the child ([#312](bitcoin-core/libmultiprocess#312)).
  - Adds support for `std::chrono::time_point` fields ([#303](bitcoin-core/libmultiprocess#303)) and for serializing lists of interface objects that need to be moved from ([#304](bitcoin-core/libmultiprocess#304)), both needed by [bitcoin/bitcoin#10102](bitcoin/bitcoin#10102).
  - Accepts container fields and parameters with any comparator, hash, and allocator types, like Bitcoin Core's `GCSFilter::ElementSet`, needed by [bitcoin/bitcoin#29409](bitcoin/bitcoin#29409) ([#379](bitcoin-core/libmultiprocess#379)).
  - Finds the `capnp` tool in vcpkg and Windows builds, needed by [bitcoin/bitcoin#32387](bitcoin/bitcoin#32387) ([#317](bitcoin-core/libmultiprocess#317)).
  - Adds a `destroy_connection` option to `ServeStream` and `ConnectStream`, lets `ServeStream` take ownership of the init object and return the new server and its connection, and adds an `EventLoop::incomingConnections()` accessor, simplifying test setup in both repositories and needed by [bitcoin/bitcoin#35932](bitcoin/bitcoin#35932) ([#365](bitcoin-core/libmultiprocess#365)).
  - Replaces `EventLoop::post()` with `sync()` taking a `kj::FunctionParam`, avoiding a heap allocation per call ([#347](bitcoin-core/libmultiprocess#347)).
  - Names threads spawned by the event loop so they can be told apart in tools and logs ([#324](bitcoin-core/libmultiprocess#324)).
  - Fixes warnings that Bitcoin Core enables or plans to enable: adds `[[noreturn]]` attributes for `-Wmissing-noreturn` ([#339](bitcoin-core/libmultiprocess#339), for [bitcoin/bitcoin#35911](bitcoin/bitcoin#35911)), and fixes `-Wunused` ([#362](bitcoin-core/libmultiprocess#362), for [bitcoin/bitcoin#36167](bitcoin/bitcoin#36167)), `-Wunused-const-variable` and `-Wundef` ([#370](bitcoin-core/libmultiprocess#370)), and `-Wmissing-prototypes` ([#386](bitcoin-core/libmultiprocess#386), for [bitcoin/bitcoin#36743](bitcoin/bitcoin#36743)) warnings.
  - Fails at compile time with a suggested workaround when Cap'n Proto misdetects exception support (`KJ_NO_EXCEPTIONS`), as happens on NetBSD ([#364](bitcoin-core/libmultiprocess#364)).
  - Build improvements: fixes stale generated code when the `mpgen` binary changes ([#316](bitcoin-core/libmultiprocess#316)), fixes `mpgen` link order for static Cap'n Proto builds ([#367](bitcoin-core/libmultiprocess#367)), links `mpgen` against `kj-async` instead of `capnp-rpc` ([#327](bitcoin-core/libmultiprocess#327)), shows Cap'n Proto `find_package` diagnostics ([#325](bitcoin-core/libmultiprocess#325)), installs `type-unordered-set.h` and `version.h` ([#350](bitcoin-core/libmultiprocess#350)), and shows include-what-you-use errors instead of failing silently ([#371](bitcoin-core/libmultiprocess#371)).
  - Test, CI, documentation, and minor code improvements: fix for a startup race in the example program ([#315](bitcoin-core/libmultiprocess#315)), new test for immediate client disconnects in `ListenConnections` ([#310](bitcoin-core/libmultiprocess#310)), `ReadList` return value check ([#338](bitcoin-core/libmultiprocess#338)), connect test race fix ([#343](bitcoin-core/libmultiprocess#343)) and cleanups ([#344](bitcoin-core/libmultiprocess#344)), `std::ranges::copy` follow-ups ([#307](bitcoin-core/libmultiprocess#307)), trailing whitespace removal ([#345](bitcoin-core/libmultiprocess#345)), Cap'n Proto version documentation fix ([#357](bitcoin-core/libmultiprocess#357)), clang-tidy updates ([#358](bitcoin-core/libmultiprocess#358), [#360](bitcoin-core/libmultiprocess#360), [#380](bitcoin-core/libmultiprocess#380), [#389](bitcoin-core/libmultiprocess#389)), new CI job testing newer cmake and Cap'n Proto versions ([#212](bitcoin-core/libmultiprocess#212), [#359](bitcoin-core/libmultiprocess#359)), CI coverage for the minimum supported g++ ([#330](bitcoin-core/libmultiprocess#330), [#366](bitcoin-core/libmultiprocess#366)), new CI warnings ([#332](bitcoin-core/libmultiprocess#332), [#341](bitcoin-core/libmultiprocess#341)), CI parallelism ([#334](bitcoin-core/libmultiprocess#334), [#356](bitcoin-core/libmultiprocess#356)), CI diagnostics ([#351](bitcoin-core/libmultiprocess#351), [#352](bitcoin-core/libmultiprocess#352)), Nix and LLVM updates ([#296](bitcoin-core/libmultiprocess#296), [#363](bitcoin-core/libmultiprocess#363)), NetBSD and OpenBSD CI fixes ([#321](bitcoin-core/libmultiprocess#321), [#340](bitcoin-core/libmultiprocess#340), [#381](bitcoin-core/libmultiprocess#381)), building Cap'n Proto with GCC in the 32-bit CI job to avoid an ABI mismatch ([#383](bitcoin-core/libmultiprocess#383)), and GitHub Actions updates ([#387](bitcoin-core/libmultiprocess#387)).

  The second commit suppresses the clang `-Wc++23-lambda-attributes` warning, which the new `[[noreturn]]` lambda attribute in `mp/proxy-types.h` triggers in C++20 builds. Since #31507 the Windows build uses clang-cl, so the same flag covers it.

  The third commit updates the minimum Cap'n Proto version in `doc/dependencies.md` to 0.9.2 (1.0 with Clang). This update raises libmultiprocess's own minimum from 0.7 to 0.9 (bitcoin-core/libmultiprocess#331), and libmultiprocess rejects 0.9.0 and 0.9.1 for CVE-2022-46149 and, with Clang 16 or newer, every version before 1.0.

ACKs for top commit:
  fanquake:
    ACK d5f7524
  willcl-ark:
    ACK d5f7524

Tree-SHA512: 4064944f4d8bb6c1665ddc7d5fae838492235d7dfdafab88b19b687ff6892460a3f450b90a145b287866330c569b862d748c941a70c65abc7f273ef13e490fd7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants