mirror of
https://github.com/logos-messaging/nim-ffi.git
synced 2026-06-20 16:29:31 +00:00
2.8 KiB
2.8 KiB
Changelog
All notable changes to this project are documented in this file.
[0.2.0] - 2026-05-20
Major release introducing CBOR-based wire format, multi-language binding generation (C++, Rust, CDDL), CI hardening with sanitizers, and several robustness fixes around context lifetime and memory safety.
Added
- CBOR serialization as the FFI wire format (#23).
- C++ binding generator with end-to-end tests driven by CMake/CTest (#15, #27).
- Rust binding generator for simplified FFI authoring (#15).
- CDDL schema generator for the FFI types (#24).
- CI pipeline: first GitHub Actions workflow (#12), parallel test execution (#26), and AddressSanitizer / UndefinedBehaviorSanitizer / ThreadSanitizer jobs (#34).
- Tests run under both
--mm:orcand--mm:refc(#20).
Changed
- FFI contexts now use a fixed-size array instead of dynamically allocated slots, so creating many contexts no longer exhausts file descriptors (#14).
- Removed the redundant
ffiTypemacro; theffimacro is now the single authoring entry point (#22). - Dropped
CatchableErrorusage in favour of more specific exception types (#19).
Fixed
- Context buffer overflow when handling large payloads (#21).
- Several memory leaks in request dispatch, context creation/destruction,
and
handleResunder ARC/ORC; tightened lock initialization and resource cleanup (#11). - macOS dylibs are now built with a relocatable
install_nameinstead of hard-coded paths (#8).
[0.1.3] - 2026-01-23
Fixed
- Properly import and re-export
chroniclesso downstream packages get the logging macros transitively.
[0.1.2] - 2026-01-23
Fixed
- Re-export
chroniclesandstd/tableswhen theffimodule is imported, so generated code resolves these symbols at the call site.
[0.1.1] - 2026-01-23
Initial tagged release.
Added
- Core
ffimacro for declaring procs exposed across the FFI boundary. FFIContextwith a dedicated worker thread, request dispatch, and a watchdog with configurable timeout (#7).- License files updated to comply with Logos licensing requirements.