Skip to content

Switch to CompilerCaching.jl#794

Draft
maleadt wants to merge 5 commits into
mainfrom
tb/compilercaching
Draft

Switch to CompilerCaching.jl#794
maleadt wants to merge 5 commits into
mainfrom
tb/compilercaching

Conversation

@maleadt
Copy link
Copy Markdown
Member

@maleadt maleadt commented May 12, 2026

Will be a breaking release. Sadly also drops 1.10.

maleadt and others added 4 commits May 10, 2026 08:33
Drop the hand-rolled CodeCache, on-disk kernel cache, and various
pre-1.11 compatibility shims; route inference and CI lookup through
CompilerCaching.CacheView with consumer-defined results structs
attached to each CodeInstance.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previously partitioned only by `typeof(target)`, which collided across
target instances that produce different IR (e.g. different macOS,
SM arch, or CPU features). Folding the full target and params into
the token matches the spirit of `runtime_slug`, while staying within
the inference-determinant scope of the docstring.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds optional `bitcode`/`bitcode!` hooks on the consumer's `results_type`.
When opted in, `emit_function!` reads renamed per-function bitcode from
the cached CI on a hit, and writes it on a miss. Cross-session
persistence rides on package precompilation; a small session-local
assembled-module cache (keyed by `(cache_owner, opaque_pointers)`) keeps
the within-session fast path.

Drops the `runtime_slug` interface — `cache_owner` now subsumes its role
of identifying compatible IR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vchuravy
Copy link
Copy Markdown
Member

Sadly also drops 1.10.

That's unfortunate and will likely mean that we will have to maintain the prior version of GPUCompiler until there is a new LTS.

@maleadt
Copy link
Copy Markdown
Member Author

maleadt commented May 12, 2026

will likely mean that we will have to maintain the prior version of GPUCompiler until there is a new LTS.

I'm not convinced that's needed. As long as there's no breaking releases in the back-ends, users can simply use different versions of say CUDA.jl 6.x depending on which Julia version they're using. And for critical features I'd rather they request backports over there rather than maintaining multiple compiler stacks.

@vchuravy
Copy link
Copy Markdown
Member

The issue is that for Enzyme we won't be able to drop 1.10 support (due to DiffEq and so forth) and there the situation is less stable than for the GPU backends.

@maleadt
Copy link
Copy Markdown
Member Author

maleadt commented May 13, 2026

Grmbl. I'll try to come up with something that keeps 1.10 working then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants