|
| 1 | +# Version 1.0.0 (Mar 2024) |
| 2 | +* Initial open-source release. |
| 3 | + |
| 4 | +# Version 1.0.1 (Mar 2024) |
| 5 | +* Comment and/or doc changes. In particular central code example in README had some problems. |
| 6 | +* Eliminate ipc_.../CHANGELOG since no VERSION/releases for those repos. |
| 7 | + |
| 8 | +# Version 1.0.2 (Mar 2024) |
| 9 | +* Comment and/or doc changes. |
| 10 | +* Style refactor (small): Encouraging `static_assert(false)` over `#error`. Encouraging `if constexpr` over SFINAE. |
| 11 | + |
| 12 | +# Version 2.0.0 (Feb 2025) |
| 13 | +* Internally to SHM-jemalloc use vaddr space less aggressively, avoiding eventual fatal error despite not-high SHM RAM use. |
| 14 | + * Direct or indirect (such as via `ipc::transport::struc::Channel`) use of SHM-jemalloc could trigger this problem. |
| 15 | + * SHM-classic (`ipc::shm::classic`) was not affected. |
| 16 | +* `ipc::transport::sync_io::Native_socket_stream` and `Blob_stream_mq_sender`: Internal fix to avoid mayhem with user access (`epoll_ctl(DEL)` in particular) of central FDs within these objects, after disconnect/error detected but before object destroyed. |
| 17 | +* `ipc::transport::struc::[sync_io::]Channel`: Internal fix to avoid potential crash (or tripped `assert()` if enabled) when issuing messages around the time when a session ends due to the opposing process, e.g., exiting. |
| 18 | + * Issue affected only sessions backed by SHM-jemalloc (`ipc::session::shm::arena_lend::jemalloc`). |
| 19 | + * Sessions backed by SHM-classic (`ipc::session::shm::classic`) and non-zero-copy sessions (`ipc::session`) were not affected. |
| 20 | +* Fix `ipc_shm_arena_lend` CMake build-break bug when one specified no (empty) jemalloc API prefix when building jemalloc (dependency). Also nearby: |
| 21 | + * ipc_shm_arena_lend CMake-build knob `JEMALLOC_PREFIX`: rename to `FLOW_IPC_JEMALLOC_PREFIX` to avoid collision with same-named variable elsewhere. |
| 22 | + * ipc_shm_arena_lend CMake-build knobs `JEMALLOC_LIB` and `JEMALLOC_INCLUDE_PATH`: rename to `JEMALLOC_LIBRARIES` and `JEMALLOC_INCLUDEDIR`, respectively, because these names are already used by the default auto-searcher. |
| 23 | + * Internally improve build script when searching for jemalloc install. |
| 24 | +* Bug fix in `Bipc_mq_handle` wait-based APIs exception-throwing form. |
| 25 | + * Only direct use of some of these APIs by user (currently unlikely) was affected. Indirect use via other APIs was not affected. |
| 26 | +* `ipc::shm::arena_lend_jemalloc::Ipc_arena::construct<T>(bool use_cache, ...)` overload: Remove and replace (with `construct_thread_cached()`) this API due to potential overload ambiguity for some `T`s. |
| 27 | + * `Ipc_arena` public super-class `Shm_pool_collection` also had a `construct()` with potentially ambiguous signature; rename to `construct_maybe_thread_cached()`. |
| 28 | +* C++20 mode build and GitHub-CI-pipeline support. C++17 remains the main/minimal mode, but we now ensure user can build/use in C++20 mode also. |
| 29 | +* Dependency bump: Boost v1.84 to 1.87. |
| 30 | +* Minor dead-code removal from build script(s). |
| 31 | +* Flow v2.0.0 has gained a unit test suite similar to Flow-IPC and now houses various common test utilities, so they are removed here, and instead we reuse them from their new location in Flow. |
| 32 | +* In test/demo programs using the new (albeit optional) `flow::log::Config::init_component_to_union_idx_mapping()` arg in the now-recommended way. |
| 33 | +* Minor test/demo code fixes. |
| 34 | +* GitHub CI pipeline: Tweak to get gcc-13 builds to work again (GitHub changed preinstalled packages). |
| 35 | +* Comment and/or doc changes. |
| 36 | + |
| 37 | +## Submodule repository `flow` |
| 38 | +* Release v2.0.0 (previously: v1.0.2). |
| 39 | + |
| 40 | +## API notes |
| 41 | +* New APIs: |
| 42 | + * `ipc::shm::arena_lend::jemalloc::Ipc_arena::construct_thread_cached()`: replaces removed `construct(true, ...)`. |
| 43 | + * `ipc::shm::arena_lend::jemalloc::Shm_pool_collection::construct_maybe_thread_cached()`: replaces removed `construct()`. |
| 44 | + * Error codes: `ipc::transport::struc::shm::error::S_SERIALIZE_FAILED_SESSION_HOSED` and `S_DESERIALIZE_FAILED_SESSION_HOSED`, when working with `ipc::transport::struc` APIs in SHM-jemalloc-backed channel. |
| 45 | +* Breaking changes: |
| 46 | + * Removed `ipc::shm::arena_lend::jemalloc::Ipc_arena::construct(bool use_cache)`. |
| 47 | + * For `use_cache = true`, call `construct_thread_cached()` (new). |
| 48 | + * For `use_cache = false`, call `construct(Ctor_args&&... args)`. |
| 49 | + * Renamed `ipc::shm::arena_lend::jemalloc::Shm_pool_collection::construct()` to `maybe_thread_caching()`. |
| 50 | + * `ipc_shm_arena_lend`: Build script: renamed optional cache-settings: |
| 51 | + * `JEMALLOC_PREFIX` to `FLOW_IPC_JEMALLOC_PREFIX` |
| 52 | + * `JEMALLOC_LIB` to `JEMALLOC_LIBRARIES` |
| 53 | + * `JEMALLOC_INCLUDE_PATH` to `JEMALLOC_INCLUDEDIR` |
0 commit comments