mirror of
https://github.com/logos-co/logos-protocol.git
synced 2026-08-31 14:01:14 +00:00
Two corrections, both to claims this header makes about its own versioning. 1. It PRESCRIBED the buggy guard. The 0.5 note told codegen to write `LOGOS_PROTOCOL_VERSION_MINOR >= 5`, and two emitters duly do (logos-cpp-sdk's lidl_gen_cdylib.cpp and logos-plugin-qt's glue). At 1.0.0 the MINOR resets to 0 and every such guard silently goes false. Nothing fails to build and nothing fails to load — the definitions and the calls disappear together — so the symptom is modules quietly losing teardown and grantability, with no diagnostic anywhere. The rule now sits above the version macros, with the expanded arithmetic spelled out and a note on why it must NOT hide behind a function-like macro: the generated sources are resolved by unifdef in the backends' ABI checks, and unifdef silently no-ops on what it cannot evaluate. logos-rust-sdk already compares the (major, minor) tuple. 2. It repeated the compatibility claim already corrected in logos_module_impl.h — that the teardown pair is safe because the glue is generated alongside the module. That does not follow, and the ABI has been broken twice on the strength of it. Being generated in the same build makes the two agree on the VERSION; it says nothing about which SYMBOLS a backend's emitter writes for that version. The wrong version of this reasoning living in two headers is how it survived the first correction. Documentation only; no macro or value changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>