Repository navigation
feat: support elide 1.6.0-rc.2 and make it the default - #87
Sam Gammon (sgammon) wants to merge 1 commit into
Conversation
Release candidates and releases are tagged v<version>; map the version to its tag for downloads (and in the benchmark workflow). Restore the exec bit on lib/jspawnhelper, which the archive ships without, so subprocesses started from elide java work. Gate the kapt fallback's JDK 23+ flag on the fallback JDK (JAVA_HOME), not on the JVM running the shim. Signed-off-by: Sam Gammon <sam@elide.dev>
There was a problem hiding this comment.
🟡 Changes recommended
Release-tag translation currently alters custom URL template semantics and can break BYO artifacts or mirrors.
1 open finding
What changed in this PR
Adds Elide 1.6.0-rc.2 as the default runtime and addresses compatibility issues affecting subprocesses and Kotlin fallback builds.
Changes:
- Adds release-tag mapping and updates benchmark downloads.
- Restores
jspawnhelperexecution permissions. - Detects the fallback builder’s JDK version from
JAVA_HOME.
| File | Description |
|---|---|
elide/private/versions.bzl |
Pins 1.6.0-rc.2 and maps its release tag. |
elide/private/download.bzl |
Uses release tags and fixes helper permissions. |
elide/kotlin/builder/Fallback.kt |
Detects the fallback JDK feature version. |
elide/extensions.bzl |
Updates version documentation. |
tests/versions_test.bzl |
Tests tag mapping and default integrity. |
tests/kotlin_builder/FallbackTest.kt |
Tests JDK version parsing. |
docs/extensions.md |
Regenerates extension documentation. |
.github/workflows/benchmarks.yml |
Downloads benchmarks from the mapped tag. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| url = (ctx.attr.url_template or DEFAULT_URL_TEMPLATE).format( | ||
| channel = ctx.attr.channel or DEFAULT_CHANNEL, | ||
| version = ctx.attr.version, | ||
| version = release_tag(ctx.attr.version), |
Merging this PR will degrade performance by 3.11%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | test_javac_full[elide] |
22.1 ms | 29.3 ms | -24.65% |
| ❌ | test_incremental[integration] |
1.9 s | 2.4 s | -19.42% |
| ⚡ | test_kotlinc_abi_only |
198 ms | 163.4 ms | +21.16% |
| ⚡ | test_kotlinc_full[elide] |
191.1 ms | 159.5 ms | +19.82% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing fix/elide-1.6 (b4744a4) with main (13539ef)

1.6.0-rc.2toversions.bzl(SRI from the published.sha256assets) and makes itDEFAULT_VERSION. RCs and releases are taggedv<version>, sorelease_tag()maps a version to its tag forelide_downloadand the benchmark workflow; nightlies are unchanged.elide_downloadrestores the exec bit onlib/jspawnhelper. The archive ships it0644, so every subprocess started fromelide javafailed withposix_spawn … error: 13; this broke the KotlinBuilder shim's fallback to the stock builder.Fallbackgated--sun-misc-unsafe-memory-access=allowon the shim's own JVM (Elide's, JDK 25) while the stock builder runs on the Bazel JDK (JAVA_HOME), which may be older:Unrecognized optionon JDK 21. It now reads the feature version from$JAVA_HOME/release.Verified locally on Bazel 9.2.0, linux-amd64, Elide 1.6.0-rc.2:
bazel test //tests:all //tests/kotlin_builder:all: 37/37 passe2e/integration:bazel build -- //... -//:native_app,//:HelloTestPASSED,//:appand//:kt_apprune2e/kotlin_builder:bazel build //:greeter //:annotatedsucceeds (failed before the two fixes above)tools/update_docs.shregenerateddocs/extensions.md