Repository navigation
v0.7.0
TruffleCEL 0.7.0 adds reusable activation snapshots, prepared protobuf access, and lower-overhead ordinary map evaluation. All published modules now depend on TruffleData 0.7.0 where applicable. Java 25 and Elide GraalVM 25.5.5-elide.24 remain required.
Input contract change
Program.evaluate(Map) and test(Map) borrow caller inputs. Keep bindings and reachable data unchanged until evaluation returns, including during host callbacks. Changes between calls are observed. Conversion and bounds checks happen when a binding is read; unused invalid bindings are no longer eagerly rejected. Use Activation.snapshot for eager validation and isolation, and reuse snapshots explicitly when appropriate. See the integration guide.
Runtime and compatibility
- Prepared scalar, repeated, nested and supported well-known protobuf field access, with generic fallbacks.
- Owned internal collection storage avoids redundant normalization copies.
- Complete upstream conformance coverage through the shipped protobuf adapter, including wrapper, Any, JSON, null and equality fixes.
- Reusable activation snapshots retain independent evaluation state and support Native Image build-time preparation.
- TruffleData core, JDBC, protobuf and protobuf-runtime pins advance together to 0.7.0; publication POMs and lockfile agree.
Performance evidence and limits
The borrowed-input report compares both TruffleCEL execution modes with optimized cel-java on a dedicated Threadripper host. Both modes win all six measured fresh-map JVM fixtures and the three measured native fixtures. These measurements used TruffleData 0.6.0; they do not claim an additional speedup from upgrading to 0.7.0. Maps/regex allocation, ingestion costs and a small repeated-field diagnostic regression remain documented gaps. Historical measurements and raw evidence are preserved.
Maven
Published at maven.elide.dev:
dev.elide:trufflecel-core:0.7.0dev.elide:trufflecel-protobuf:0.7.0dev.elide:trufflecel-json:0.7.0
Validation
All 31 JVM test targets pass, including the full conformance corpus and publication consumers. Production coverage is 99.91% of lines and 99.89% of branches. Linux native guest-JIT, representative execution and build-time snapshot gates pass without relaxed allocation or compilation limits. PR and main CI also pass security, dependency review and the CodSpeed regression checks.