[JuliaLowering] Restore partial Julia 1.12 compatibility#62367
Conversation
299427a to
4ff2c5a
Compare
mlechu
left a comment
There was a problem hiding this comment.
LGTM. JuliaSyntax CI is complaining that isdefinedglobal isn't defined, but feel free to merge once that's fixed.
|
If we're trying to maintain 1.12 compat this much, should we add a CI job for it? |
|
Sure, I wouldn't mind. We probably shouldn't if @aviatesk plans to change the julia version JETLS uses in the immediate future though |
Recent JuliaLowering changes unconditionally referenced runtime features that are unavailable on Julia 1.12. This prevented JuliaLowering and JuliaSyntax from loading or lowering code on that release (esp. in JETLS). Guard `Core.MacroSource`, `Core.TypeEqOf`, and `jl_lowering_world` behind availability checks, falling back to `Core.Typeof` and direct invocation where needed. The `include_string` precompile workload remains restricted to newer runtimes because its evaluation path is incompatible with Julia 1.12. Keep the preceding lowering-only workloads enabled there: they do not evaluate lowered code, still exercise the basic lowering pipeline, and remain usable on Julia 1.12.
4ff2c5a to
6505d0d
Compare
|
Well, JuliaLowering is not in a state where it supports v1.12. So a full JuliaLowering test job cannot currently pass on 1.12 because most of the suite executes the lowered output through The v1.12 compatibility needed for JETLS is narrower, and if JL can be loaded and the basic parse-to-lowered-IR pipeline works, that is sufficient for JETLS’s purposes. |
JuliaLang/julia#62367 restores enough compatibility for JETLS to load and precompile JuliaLowering on Julia 1.12, although currently there is no system to detect future regressions, as discussed in the PR. So this commit adds Linux x86_64 matrix jobs for Julia 1.12 and 1.13 that load JuliaLowering with `JULIA_LOWERING_PRECOMPILE=true`, without persisting compiled caches, ensuring each job exercises precompilation. This also registers the new JuliaLowering group in the launch pipeline renderer. Note that the full test suite executes lowered code and requires newer runtime support, so it cannot be used for this minimum compatibility coverage. Co-Authored-By: GPT-5.6 Sol <noreply@openai.com>
|
I submitted a PR for julia-buildkite to add a new JuliaLowering minimum compatibility test job: JuliaCI/julia-buildkite#566 |
JuliaLang/julia#62367 restores enough compatibility for JETLS to load and precompile JuliaLowering on Julia 1.12, although currently there is no system to detect future regressions, as discussed in the PR. So this commit adds Linux x86_64 matrix jobs for Julia 1.12 and 1.13 that load JuliaLowering with `JULIA_LOWERING_PRECOMPILE=true`, without persisting compiled caches, ensuring each job exercises precompilation. This also registers the new JuliaLowering group in the launch pipeline renderer. Note that the full test suite executes lowered code and requires newer runtime support, so it cannot be used for this minimum compatibility coverage. Co-Authored-By: GPT-5.6 Sol <noreply@openai.com>
Recent JuliaLowering changes unconditionally referenced runtime features that are unavailable on Julia 1.12. This prevented JuliaLowering and JuliaSyntax from loading or lowering code on that release (esp. in JETLS).
Guard
Core.MacroSource,Core.TypeEqOf, andjl_lowering_worldbehind availability checks, falling back toCore.Typeofand direct invocation where needed.The
include_stringprecompile workload remains restricted to newer runtimes because its evaluation path is incompatible with Julia 1.12. Keep the preceding lowering-only workloads enabled there: they do not evaluate lowered code, still exercise the basic lowering pipeline, and remain usable on Julia 1.12.