File libmultiprocess.changes of Package libmultiprocess
-------------------------------------------------------------------
Sun Oct 12 16:55:30 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20251007:
* doc: fix typos
* test: Fix tsan race in thread busy test
* ci: Use tsan-instrumented cap'n proto in sanitizers job
* test: Fix failing exception check in new thread busy test
* test: Use KJ_LOG instead of std::cout for logging
* ci: Use tsan-instrumented libcxx in sanitizers job
* Logging: Pass LogData struct to logging callback
* Logging: reclassify remaining log messages
* Logging: Break out expensive log messages and classify them as Trace
* Logging: Use new logging macros
* Logging: Disable logging if messsage level is less than the requested level
* Logging: add log levels to mirror Core's
* Logging: Disable moving or copying Logger
* Logging: Add an EventLoop constructor to allow for user-specified log options
* test In|Out parameter
* test default PassField impl handles output parameters
* test: simultaneous IPC calls using same thread
* Fix crash on simultaneous IPC calls using the same thread
* doc: Precision and typos
* doc: Where possible, remove links to ryanofsky/bitcoin/
* util: Add helpful error message when failing to execute file
* bug: fix ProxyClient<Thread> deadlock if disconnected as IPC call is returning
* Use try_emplace in SetThread instead of threads.find
* Use std::optional in ConnThreads to allow shortening locks
* doc: describe ThreadContext struct and synchronization requirements
* proxy-io.h: add Waiter::m_mutex thread safety annotations
* ci: Use -Wthread-safety not -Wthread-safety-analysis
* Add .gitignore
* ci: Test minimum cmake version in olddeps job
* ci: output CMake version in CI script
* eventloop: add `LogOptions` struct
* cmake: capnproto pkg missing helpful error
* cmake: check for Cap'n Proto / Clang / C++20 incompatibility
* cmake: search capnproto in package mode only
* doc: correct the build instructions for example
* ci: Add macos and freebsd task
* ci: Bump all tasks to actions/checkout@v5
* ci: Remove ancient and problematic -lstdc++fs in mpexample
* Add missing thread include
* ci: Add openbsd
* cmake, doc: Add check for CVE-2022-46149
* ci: Add olddeps job to test old dependencies versions
* mpgen: Work around c++20 / capnproto 0.8 incompatibility
* build: require CapnProto 0.7.0 or better
* doc: fix typos
* doc: fix DrahtBot LLM Linter error
* type-context: revert client disconnect workaround
* proxy-types: fix UndefinedBehaviorSanitizer: null-pointer-use
* mptest: fix MemorySanitizer: use-of-uninitialized-value
* proxy-io: fix race conditions in disconnect callback code
* proxy-io: fix race conditions in ProxyClientBase cleanup handler
* doc: Add note about Waiter::m_mutex and interaction with the EventLoop::m_mutex
* refactor: Rename ProxyClient cleanup_it variable
* refactor: rename ProxyClient<Thread>::m_cleanup_it
* mptest: fix race condition in TestSetup constructor
* ci: add thread sanitizer job
* ci: rename configs to .bash
* ci: add copyright to bash scripts
* ci: export LC_ALL
* ci: add gnu32 cross-compiled 32-bit build
* doc: fix typo found by DrahtBot
* clang-tidy: drop 'bitcoin-*' check
* ci: test libc++ instead of libstdc++ in one job
* type-context: disable clang-tidy UndefinedBinaryOperatorResult error
* proxy-types: fix clang-tidy EnumCastOutOfRange error
* proxy-types: fix clang-tidy StackAddressEscape error
* ci: add github actions jobs testing gcc, clang-20, clang-tidy, and iwyu
* iwyu: fix add/remove include errors
* util: fix clang-tidy modernize-use-equals-default error
* type-number: fix clang-tidy modernize-use-nullptr error
* proxy-types: fix clang-tidy bugprone-use-after-move error
* proxy-types: fix clang-tidy bugprone-use-after-move error
* proxy-types: fix clang-tidy bugprone-use-after-move error
* mpgen: disable clang-tidy misc-no-recursion error
* tidy: copy clang-tidy file from bitcoin core
* test: Test disconnects during IPC calls
* Prevent IPC server crash if disconnected during IPC call
* Prevent EventLoop async cleanup thread early exit during shutdown
* doc: Document ProxyClientBase destroy_connection option
* Improve IPC client disconnected exceptions
* refactor: Add clang thread safety annotations to EventLoop
* refactor: Remove DestructorCatcher and AsyncCallable
* refactor: Drop addClient/removeClient methods
* refactor: Use EventLoopRef instead of addClient/removeClient
* refactor: Add ProxyContext EventLoop* member
* proxy-io.h: Add EventLoopRef RAII class handle addClient/removeClient refcounting
* proxy-io.h: Add more detailed EventLoop comment
* test: Add test coverage for client & server disconnections
-------------------------------------------------------------------
Fri Jun 20 17:19:17 UTC 2025 - marec@detebe.org
- revert to rev58
-------------------------------------------------------------------
Thu Jun 12 17:04:31 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250611:
* test: Add coverage for type-function.h
* type-function.h: Fix CustomBuildField overload
* scripted-diff: Remove copyright year (ranges)
-------------------------------------------------------------------
Fri May 30 08:30:11 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250529:
* clang-tidy: Suppress bitcoin-nontrivial-threadlocal error
* clang-tidy: Fix bugprone-move-forwarding-reference error
* clang-tidy: Fix bugprone-move-forwarding-reference errors
-------------------------------------------------------------------
Thu May 15 18:45:29 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250515:
* doc: Fix error string typo
-------------------------------------------------------------------
Thu May 15 16:43:32 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250515:
* use ranges transform
* make member function const
* replace custom tuple unpacking code with `std::apply`
* replace SFINAE trick with `if constexpr`
-------------------------------------------------------------------
Sat Apr 12 12:02:55 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250331:
* Switch `MP_INCLUDE_DIR` to global property
* doc: rename from chaincodelabs to bitcoin-core
* Bump minimum required cmake to 3.12
* cmake: Avoid including CTest if not top level project
* bugfix: Do not lock EventLoop::mutex after EventLoop is done
* refactor: Avoid using std::format
* refactor: Remove locale-dependent function calls
* scripted-diff: s/Libmultiprocess_EXTERNAL_MPGEN/MPGEN_EXECUTABLE/g
* refactor: Fix `-Wsign-compare` compiler warning
* clang-tidy: Suppress `performance-enum-size` check warning
* clang-tidy: Fix `readability-container-size-empty` check
* clang-tidy: Fix `readability-avoid-return-with-void-value` check
* clang-tidy: Fix `readability-avoid-nested-conditional-operator` check
* clang-tidy: Fix `performance-unnecessary-value-param` check
* clang-tidy: Fix `misc-use-internal-linkage` check
* clang-tidy: Fix `misc-include-cleaner` check
* clang-tidy: Fix `misc-const-correctness` check
* clang-tidy: Fix `modernize-type-traits` check
* clang-tidy: Suppress `bugprone-empty-catch` check warning
* clang-tidy: Fix `bugprone-crtp-constructor-accessibility` check
* clang-tidy: Disable `performance-avoid-endl` check
* clang-tidy: Disable `misc-use-anonymous-namespace` check
* CTest: Module must be included at the top level
* Avoid `-Wundef` compiler warnings
* util: fix -Wpessimizing-move warning
* cmake: EXTERNAL_MPGEN cleanups
* cleanup: initialize vars in the EventLoop constructor in the correct order
* build: add option for external mpgen binary
* cmake: Simplify capnp include handling
* cmake: Suppress compiler warnings from capnproto headers
* build: don't clobber user/superproject c++ version
* doc: Fix broken markdown links
* cmake: Support being included with add_subdirectory
* move: add mp/type-data.h
* cmake: Define and use MP_INCLUDE_DIR variable
* moveonly: add mp/type-chrono.h
* moveonly: add mp/type-threadmap.h
* moveonly: add mp/type-decay.h
* moveonly: add mp/type-exception.h
* moveonly: add mp/type-void.h
* moveonly: add mp/type-message.h
* moveonly: add mp/type-struct.h
* moveonly: add mp/type-function.h
* moveonly: add mp/type-interface.h
* moveonly: add mp/type-char.h
* moveonly: add mp/type-string.h
* moveonly: add mp/type-number.h
* moveonly: add mp/type-tuple.h
* moveonly: add mp/type-pair.h
* moveonly: add mp/type-map.h
* moveonly: add mp/type-set.h
* moveonly: add mp/type-vector.h
* moveonly: add mp/type-pointer.h
* moveonly: add mp/type-optional.h
* moveonly: add mp/type-context.h
* refactor: Rename ReadDestValue to ReadDestUpdate
* Fix debian "libatomic not found" error in downstream builds
* Fix "disconnected: write(m_post_fd, &buffer, 1): Broken pipe" EventLoop shutdown races.
* fix startAsyncThread comment
* refactor: Add CleanupRun function to dedup clean list code
* refactor, moveonly: order lambda move captures first
* util: Get rid of unused Discard struct
* proxy-types Drop JoinPromises function
-------------------------------------------------------------------
Thu Jan 16 18:25:32 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250116:
* ProxyClientBase: avoid static_cast to partially destructed object
-------------------------------------------------------------------
Tue Jan 14 18:19:05 UTC 2025 - marec@detebe.org
- Update to version 0.0_git20250113:
* test: Add coverage for enum/int conversions
* ProxyClientBase: avoid static_cast to partially constructed object
* proxy-types.h: add static_assert to detect when an int fields is too small to hold an enum value
-------------------------------------------------------------------
Sat Oct 19 12:07:12 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20241016:
* bugfix: prevent null pointer dereference in server if client disconnects during method call
* cmake: avoid libatomic not found error on debian
* bugfix: prevent double delete segfault in server if client disconnects during method call
-------------------------------------------------------------------
Thu Oct 03 17:40:45 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20241003:
* shutdown bugfix: destroy RPC system before running cleanup callbacks
-------------------------------------------------------------------
Mon Sep 30 16:31:34 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240930:
* Add missing include to util.h
-------------------------------------------------------------------
Fri Sep 13 05:44:26 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240912:
* doc: Add internal design section
-------------------------------------------------------------------
Tue Sep 10 05:36:49 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240909:
* cmake: add target_capnp_sources headers target
-------------------------------------------------------------------
Wed Aug 21 14:59:00 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240821:
* example: Add missing thread.join() call so example can exit cleanly
* doc: Add comments for socket descriptor handling when forking
* example: Remove manual client adding
-------------------------------------------------------------------
Wed Aug 14 14:36:01 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240809:
* Bugfix: Clean up ThreadContext pointers when Connection is destroyed
* types: Add Custom{Build,Read,Pass}Message hooks
* Fix $Proxy.wrap mapping for empty structs with no fields
* cmake: Fix package configuration file
-------------------------------------------------------------------
Thu Jun 13 20:17:48 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240613:
* doc: Document shutdown sequences better
-------------------------------------------------------------------
Thu Jun 13 16:11:45 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240613:
* connection: run async cleanups in LIFO not FIFO order
* doc: Improve ProxyServerCustom class documentation
* proxy-types: Fix missing space in server destroy log print
* doc: Document FunctionTraits/ProxyMethodTraits classes
* doc: Document ProxyClient construct/destroy methods
* doc: Document clientInvoke/serverInvoke functions
* doc: Add comment on serverInvoke ReplaceVoid usage
* doc: Add comments to mp.Context PassField function on updating g_thread_context
* doc: Add comments to mp.Context PassField function on mp.Context.thread lookup
-------------------------------------------------------------------
Tue Apr 02 09:35:05 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240401:
* cmake: Combine installed packages
* cmake: CMakeLists.txt cleanup
-------------------------------------------------------------------
Sat Mar 30 09:55:43 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240329:
* cmake: rename new packages and module introduced in #95 and #96
* cmake, refactor: Rename target export files
* cmake: Configure `LibmultiprocessGen` package
* cmake: Configure `Libmultiprocess` package
* cmake, refactor: Use `target_capnp_sources` for examples
* cmake, refactor: Use `target_capnp_sources` for `mptest` target
* cmake: Add `LibmultiprocessMacros` module
-------------------------------------------------------------------
Mon Jan 22 17:37:14 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240122:
* Fix support for vector<bool> serialization with libc++
-------------------------------------------------------------------
Fri Jan 19 19:29:51 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240118:
* util: Drop Bind, BindTuple, ComposeFn, GetFn, and ThrowFn helpers
-------------------------------------------------------------------
Thu Jan 11 20:09:42 UTC 2024 - marec@detebe.org
- Update to version 0.0_git20240111:
* pkgconfig: Use @CMAKE_INSTALL_LIBDIR@ variable
* pkgconfig: Drop -std=c++17 compile flag
-------------------------------------------------------------------
Sat Nov 18 09:07:55 UTC 2023 - marec@detebe.org
- Update to version 0.0_git20231117:
* mpgen: Avoid deprecated SchemaParser::parseDiskFile call
* Remove deprecated kj::mvCapture calls to avoid warnings
-------------------------------------------------------------------
Thu Sep 28 15:31:11 UTC 2023 - marec@detebe.org
- Update to version 0.0_git20230927:
* Add support for vector<bool> serialization
-------------------------------------------------------------------
Wed Sep 20 16:48:31 UTC 2023 - marec@detebe.org
- Update to version 0.0_git20230919:
* Remove naming requirement for std::pair/std::tuple
-------------------------------------------------------------------
Thu Feb 16 18:31:23 UTC 2023 - marec@detebe.org
- Update to version 0.0_git20230215:
* clang-tidy: Fix `readability-make-member-function-const` check
* clang-tidy: Fix `performance-unnecessary-value-param` check
* clang-tidy: Fix `performance-inefficient-vector-operation` check
* clang-tidy: Fix `performance-faster-string-find` check
* clang-tidy: Fix `modernize-use-nullptr` check
* clang-tidy: Fix `modernize-use-equals-default` check
* clang-tidy: Fix `modernize-use-emplace` check
* clang-tidy: Fix `modernize-return-braced-init-list` check
* clang-tidy: Suppress `bugprone-suspicious-semicolon` check warning
* Add option to run `clang-tidy` with compiler
* Avoid passing some function arguments by value
* Install Exports for custom `install-{lib,bin}` targets
* Use `GNUInstallDirs` module
-------------------------------------------------------------------
Sun Oct 09 13:13:07 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20221004:
* build: Fix missing Cap'n Proto include directories
* Add ReadDestTemp function to make it easier to call ReadField with less boilerplate
-------------------------------------------------------------------
Tue Sep 20 15:37:22 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220919:
* doc: Fix mpgen usage string
* refactor: Do not shadow `InvokeContext::connection` member
-------------------------------------------------------------------
Wed Sep 14 14:23:00 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220913:
* Add `install-bin` target
* Add `install-lib` target
* Install `proxy.capnp` with `mpgen` target
-------------------------------------------------------------------
Thu Sep 01 15:54:48 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220831:
* Drop unneeded include directory
* Make `mpgen` target independent from `multiprocess` one
* Use defined `CXX_STANDARD` for environment introspection
* Fix check for `pthread_threadid_np`
-------------------------------------------------------------------
Tue Aug 30 08:37:00 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220829:
* Fix CMake minimum required version
-------------------------------------------------------------------
Mon Jan 10 17:40:04 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220109:
* Fix typos
-------------------------------------------------------------------
Mon Jan 03 20:37:29 UTC 2022 - marec@detebe.org
- Update to version 0.0_git20220103:
* Fix clang "unknown warning group" errors
-------------------------------------------------------------------
Fri Dec 31 09:02:21 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20211230:
* Replace ThreadMap Passfield override with generic count(0) override
* Inline last AUTO_RETURN uses and remove macro
* Consolidate PassField function to remove AUTO_RETURN uses
* Replace output.init AUTO_RETURN uses with decltype(auto)
* Replace AUTO_RETURN uses with decltype(auto)
* Fix mptest link error caused by missing kj-async dependency
-------------------------------------------------------------------
Wed Dec 22 07:21:31 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20211221:
* Avoid delete-non-abstract-non-virtual-dtor warnings for mp::ProxyCallbackImpl
* Avoid delete-non-abstract-non-virtual-dtor warnings
* Disable clang suggest-override warnings for proxy clients
-------------------------------------------------------------------
Tue Oct 26 16:59:02 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20211025:
* Fix std::move compiler warning
* doc/install.md: add cmake to brew install command
-------------------------------------------------------------------
Sun Aug 01 16:26:19 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20210720:
* Add documentation about interface definitions
* Split up README.md
-------------------------------------------------------------------
Thu Mar 18 17:23:28 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20210317:
* Add standalone example with 3 processes
-------------------------------------------------------------------
Tue Mar 16 18:09:13 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20210315:
* Move test/src/ files one level up
* gen.cpp: Check local includes before install includes
* util: fix LogEscape bug
* doc: add note on vats
* doc: fix various typos
* README: add kj explainer
-------------------------------------------------------------------
Fri Jan 29 06:35:38 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20210128:
* Drop hardcoded #include lines in generated files
* Add ProxyTypeRegister typeid map
* Add cleanup callbacks to ProxyContext
* refactor: Move connection field to ProxyContext struct
* Generate ProxyType traits for interface types
-------------------------------------------------------------------
Sat Jan 16 15:06:02 UTC 2021 - marec@detebe.org
- Update to version 0.0_git20201217:
* Avoid depending on argument default constructors
* Disable GCC suggest-override warnings for proxy clients
* Add "extends" inherited method support
* Add "make check" target to build and run tests
* Fix README.md markdown
* Add comment saying how to fix clientInvoke missing Proxy.Context assert
* Add shared_ptr ownership and lifetime support
* Add saveCallback / callbackSaved test setup
* Add support for passing shared_ptrs without extending lifetime
* Add CustomReadField priority param for more flexibility and consistency with CustomBuildField
-------------------------------------------------------------------
Sat Jan 16 14:48:06 UTC 2021 - marec <marec@detebe.org>
- initial package build