RIDDL 1.27.0 Released
RIDDL 1.27.0 is now available.
release riddl compiler
RIDDL 1.27.0 is now available. This release of the RIDDL compiler and language tooling includes the following changes:
What’s New
What’s New
This release makes RIDDL’s AST → JSON serialization (root2Json, introduced
in 1.26.0) lossless, complete, and deterministic. It matters most to consumers
who round-trip models through JSON — notably AI training-data generation, where
the JSON must faithfully and reproducibly represent the model.
Improvements
root2Jsonis now lossless and complete. It is reimplemented on RIDDL’sHierarchyPassinfrastructure, so it visits every node in the model by construction. Entity state machines with multiple states — each with its own nested handlers — now round-trip in full, as do command/event/query/result messages defined inside entities, repositories, projectors, adaptors, and streamlets. Previously a multi-state entity collapsed to a single state and processor-defined messages were dropped, leaving dangling references when the JSON was read back. The entireriddl-modelscorpus (187 models) now round-trips throughparseJson(root2Json(...))with zero new validation errors — up from 0 of 187 clean.
Bug Fixes
- Deterministic JSON round-trip. The AST↔JSON mapping is now a true fixed
point: serialize a model to JSON, read it back to an AST, and re-serialize —
the two JSON documents are byte-identical. As part of this, an unbounded
Stringnow serializes with its canonicalString(0,255)bounds made explicit (matching the defaultsparseJsonalready applies), so repeated round-trips are stable. The 1.26.0 JSON input-tolerance defaults are unchanged.
Internal
- New fidelity tests: a JVM corpus test over all 187
riddl-models.bastfiles (asserting both JSON-identity and validation-parity), and a cross-platform (JVM/JS/Native) idempotence test on an inline multi-state model. - The hand-written
JsonSerializeris replaced byJsonifierPass.
Compatibility: Fully backward compatible. parseJson still accepts the
singular entity state alongside the new states array. No public API removed.