Skip to content

Releases

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 08:01
620a961

0.11.0 (2026-11-10)

TruffleCEL 0.11.0 adopts TruffleData 0.11.0 and Elide GraalVM 25.5.5-elide.28.
Java 25 remains required. All four Maven modules release together: core, protobuf,
JSON, and the generated-adapter annotation processor.

TruffleData 0.11.0 was built with Myna 0.16.0. TruffleCEL has no direct Myna
artifact dependency and does not enable TruffleData's optional Myna cells routes.
Use the matching GraalVM .28 Maven repository and runtime when upgrading.

The benchmark charts and native-profile investigations retained in this release
were measured with their recorded earlier dependency versions. They are not
performance measurements of the new 0.11.0 dependency combination.

Features

  • deps: adopt TruffleData 0.11.0 and GraalVM elide.28 (fd7bbaa)

Benchmark documentation

  • generate validated native profile comparison tables (21db3c9)
  • qualify bounded native young generation and chart memory tradeoffs (bfebb00)
  • qualify native compiler and direct API startup profiles (9abd196)
  • qualify native heap profiles and cumulative evaluation cost (3f9d5ae)
  • qualify native heap profiles and direct Java startup (#73) (d7c6a8f)
  • retain current native phase and startup baselines (435d0ae)
  • retain native memory startup and cumulative-cost qualification (4a26a36)

Publication and provenance status

All four modules are published on Elide Maven. All CI checks passed before the dependency and release merges; the review requirement was administratively bypassed with explicit user authorization. Independent follow-up review remains outstanding.

The publication run built, tested, uploaded and verified the Maven bytes successfully. Its subsequent attestation-persistence step failed because GitHub rejected the custom build-type identifier. This release has no available signed build attestation; provenance qualification is incomplete. Published artifacts and the release tag have not been overwritten or rebuilt to replace this evidence.

The attached publication-evidence ZIP is the original run's maven-0.11.0 staging artifact. The attached verification JSON records a separate check that all twelve public JAR/source-JAR/POM files match those original outputs and their SHA-256 sidecars, and all four Maven metadata entries identify 0.11.0. These attachments are unsigned evidence, not signed provenance or an independent rebuild.

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 01:53
a7ce94f

0.10.0 (2026-11-09)

TruffleCEL 0.10.0 adopts published TruffleData 0.10.0 and completes this wave of
CEL tooling, embedding APIs, allocation reductions and regex hardening. Java 25
and Elide GraalVM 25.5.5-elide.27 remain the runtime baseline. All four Maven modules
release together: core, protobuf, JSON and the generated-adapter annotation processor.

Compatibility

RE2/J is now an optional Maven dependency. Compatibility-mode consumers must
explicitly declare com.google.re2j:re2j:1.8. Applications that accept the supported
TruffleRegex subset can opt into Cel.newBuilder().truffleRegexOnly(limit) or the
matching Polyglot options and omit RE2/J entirely. JVM and Native Image packaged
consumers verify matching and guest compilation with the JAR physically absent.
See integration and regex policy.

Functionality and fixes

  • Editable syntax trees, custom macros, parser/checker recovery, canonical AST
    interchange, copied compiler environments and application validators.
  • Lazy lexical bindings, opt-in common-subexpression elimination, conservative
    charged-operation bounds, field-level partial evaluation and qualified unknowns.
  • Environment YAML, CEL Policy compilation, embedded source offsets, source-level
    tracing, asynchronous evaluation and per-call/non-strict function bindings.
  • Reflection-free generated POJO/JavaBean/record snapshots, protobuf contexts and
    typed field-mask projections, with bounded owned snapshots and preserved extensions.
  • Correctness fixes for diagnostic/source provenance, sorting budgets, policy
    conditions, AST round trips, long unary runs and native guest-compilation boundaries.
  • Constant regex acceleration recovers after weak-handle collection in its owner
    context. Bounded caches evict one entry at a time and cache syntax-failure data
    without retaining exception stacks or weakening per-caller limits.

Performance and qualification

Evaluation contexts, binding conversion caches, shared layouts, cached-program
metadata, map snapshots and protobuf wire ingestion use less allocation or retained
storage in their documented comparisons. Scoped TruffleRegex accelerates constant
matches while retaining the tested compatibility fallback.

Fresh release measurements and charts
cover JVM/native evaluation, optimized cel-java, prepared-input controls, ingestion
allocation, and the separate compilation/image-AST comparison. Raw observations,
source/runtime/artifact identities, observed ranges and remaining memory gaps are
preserved. Timing wins do not establish universal optimality or smaller process RSS.

All 75 qualification targets pass, including conformance, packaged consumers,
allocation and native guest-JIT gates. Exact-version staging passes for all four
modules. Full-source coverage meets the unchanged 99.8% line/branch floors, and
CodSpeed classifies all 21 cases as unchanged against pre-adoption main.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 08 Nov 01:05
f47ffa6

0.9.0 (2026-11-08)

⚠ BREAKING CHANGES

  • CelException no longer extends IllegalArgumentException; callers that caught IllegalArgumentException to observe CEL failures must catch CelException (or RuntimeException).

Features

  • integrate CEL parity and TruffleData 0.9.0 (d0ef064)

Performance Improvements

  • keep compiled error paths compiled (#46) (41f889b)

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 06:57
d15fccb

0.8.0 (2026-11-07)

Build System

  • upgrade TruffleData to 0.8.0 and refresh dependencies (#21) (0cf2b4d)

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 01:19
a77a38e

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.0
  • dev.elide:trufflecel-protobuf:0.7.0
  • dev.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.

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 05 Nov 16:01
90eb6c1

0.4.1 (2026-11-05)

Bug Fixes

  • isolate source lookup and upgrade TruffleData to 0.6.0 (#14) (cbfbb22)

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 20:21
df80d0d

0.4.0 (2026-11-04)

Features

  • complete supported README capabilities (#12) (224d464)
  • dual-license TruffleCEL and establish community policies (e508358)
  • support the complete CEL conformance corpus with TruffleData 0.4.0 (9b423d3)

Bug Fixes

  • align Go SDK with updated Gazelle dependencies (334f2c6)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 04:03
431cd53

0.3.0 (2026-11-04)

Features

  • adopt TruffleData 0.3.0 and GraalVM .24 (dde52b4)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 01:33
944161e

0.2.0 (2026-11-04)

Features

  • benchmarks: compare allocation costs and fixed-work peak RSS (a44e273)
  • benchmarks: measure interpreter execution and per-process peak RSS (ad3fdcb)
  • compare CEL compilation and evaluation on JVM and Native Image (c4f0f20)
  • expose Truffle instrumentation and publish memory benchmarks (76f2851)

Bug Fixes

  • benchmarks: exclude environment setup from image frontend timings (f243780)
  • benchmarks: initialize upstream constants for image-build ASTs (e3df286)
  • benchmarks: materialize runfiles for local timing after RBE builds (64abff6)
  • release: keep Bazel module version synchronized (d3a0c42)
  • release: keep Maven versions out of Bazel dependency resolution (aa7eab5)

Performance Improvements

  • allocate only the collections each comprehension needs (456e1bc)
  • avoid argument arrays for string predicates (5bdd9be)
  • bound compilation work for scoped evaluations (325e7cb)
  • count comprehension results without retaining lists (63e1139)
  • eliminate eligible comprehension scope allocations (83d8ffc)
  • let guest compilation eliminate evaluation contexts (78a4c2c)
  • lower constant-right integer arithmetic chains (a44e445)
  • reduce integer operator and input normalization allocations (300a638)
  • reduce scalar interpreter dispatch and activation allocations (94f39d7)
  • resolve local reads to lexical scope slots (252466e)
  • reuse immutable compiler declarations (385d755)
  • reuse immutable scalar binding snapshots (d415645)
  • reuse lexer operator spellings (ede695a)
  • reuse owned snapshots for comprehension iteration (75d0941)
  • runtime: avoid map iteration during object type dispatch (4e9d35a)
  • runtime: compact small activations and reuse default compiler environment (c7b6b6a)
  • runtime: reduce field dispatch and numeric equality overhead (cd3befb)
  • runtime: reuse local binding slots and defer scope allocation (b489810)
  • skip constructor-only adapters during runtime dispatch (b4a0150)
  • use checked identifiers for single-binding lookup (65c9089)
  • validate small scalar activations without iterators (04d83d6)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 18:30
6671c2d

TruffleCEL 0.1.0 is the first stable release, aligned with TruffleData 0.1.0 and Elide GraalVM 25.5.5-elide.23.

Native protobuf integration

  • CEL values now retain a lossless TruffleData ProtoRow instead of a Java Message plus a native snapshot.
  • Binary decoding and CEL message construction use TruffleData's embedded wire codec and native builders.
  • Native presence, numeric enums (including unknown open-enum values), compact bytes, full-width unsigned integers, maps, and nested messages preserve CEL mappings.
  • ProtobufType.plan() exposes the shared native plan; input(ProtoRow) accepts rows from that plan, and Value.toBytes() encodes them directly.
  • Java-message export remains explicit. Equality, hashing, and zero checks currently materialize temporary Java messages; no message sidecar is retained. Native unknown-field access is tracked in elide-dev/truffledata#2.

Build and embedding

All three thin JARs are published at https://maven.elide.dev: dev.elide:trufflecel-core:0.1.0, dev.elide:trufflecel-protobuf:0.1.0, and dev.elide:trufflecel-json:0.1.0.

Use Java 25 and configure https://maven.elide.dev/gvm-elide/25.5.5-elide.23 for the matching GraalVM artifacts. The README includes project artwork, compilation and embedding diagrams, CEL references, and a direct stable-release installation example.

The selected conformance corpus contains 2,587 cases across 20 core and six extension suites. This release does not claim every CEL extension or protobuf AST interchange format; see the README's compatibility scope and integration guide.

Validation

  • All 16 JVM test targets pass, including 2,587 upstream conformance cases, the published-JAR consumer, and optimizing guest compilation/allocation checks.
  • Production coverage: 99.10% lines, 93.21% branches (gates: 98% / 90%).
  • Both Native Image gates pass: all 14 benchmark correctness cases and the optimizing guest-JIT smoke test, with build-time blocklist checks enabled.
  • GitHub CodSpeed simulation passes; these measurements cover native-AOT execution and are separate from guest-JIT qualification.

Release-source CI.

Release and Maven publication CI. Public binary/source JARs, POM dependencies, SHA-256 checksums, and Maven metadata were independently verified for all three modules.


0.1.0 (2026-11-03)

Features

  • adopt TruffleData 0.1.0 native protobuf rows and codec (5e053f5)

Bug Fixes

  • deps: align GraalVM toolchains and libraries with elide.23 (a42b848)