Skip to content

Conversation

@aviatesk
Copy link
Member

Exercises the complete lowering pipeline during precompilation with a sample code thunks to create method and type definitions.

This precompilation is enabled by default but can be disabled by setting the JULIA_LOWERING_PRECOMPILE environment variable to false-cy, which may be useful during development.

Ideally we'd like to use Preferences.jl for this configuration, but my understanding is that JuliaLowering aims to be self-contained and should not add dependencies other than JuliaSyntax.

Exercises the complete lowering pipeline during precompilation with a
sample code thunks to create method and type definitions.

This precompilation is enabled by default but can be disabled by setting
the `JULIA_LOWERING_PRECOMPILE` environment variable to false-cy, which
may be useful during development.

Ideally we'd like to use Preferences.jl for this configuration, but
my understanding is that JuliaLowering aims to be self-contained and
should not add dependencies other than JuliaSyntax.
aviatesk added a commit to aviatesk/JETLS.jl that referenced this pull request Jun 14, 2025
Use the `aviatesk/JuliaLowering.jl#avi/JETLS` branch which
combines the following JL branches:
- [`mlechu:fix-nightly`](JuliaLang/JuliaLowering.jl#10)
- [`aviatesk:avi/precompile`](JuliaLang/JuliaLowering.jl#14)

This is a temporary solution until these branches are merged
into JL#master.

This enables JL precompilation and significantly improves
JETLS startup time (even when JETLS `precompile_workload` is
set to `false`).
aviatesk added a commit to aviatesk/JETLS.jl that referenced this pull request Jun 14, 2025
Use the `aviatesk/JuliaLowering.jl#avi/JETLS` branch which
combines the following JL branches:
- [`mlechu:fix-nightly`](JuliaLang/JuliaLowering.jl#10)
- [`aviatesk:avi/precompile`](JuliaLang/JuliaLowering.jl#14)

This is a temporary solution until these branches are merged
into JL#master.

This enables JL precompilation and significantly improves
JETLS startup time (even when JETLS `precompile_workload` is
set to `false`).
@c42f
Copy link
Member

c42f commented Jul 21, 2025

Looks good. Thanks for adding the option to turn it off as well :)

We can only add dependencies (like Preferences.jl) if we have some plan to vendor them into the compiler when JuliaLowering becomes part of the core compiler code. So I agree it's best to avoid them for now if there's an easy alternative.

@c42f c42f merged commit 5416caa into JuliaLang:main Jul 21, 2025
@aviatesk aviatesk deleted the avi/precompile branch August 6, 2025 09:46
adienes pushed a commit to adienes/julia that referenced this pull request Nov 20, 2025
…uliaLang/JuliaLowering.jl#14)

Exercises the complete lowering pipeline during precompilation with a
sample code thunks to create method and type definitions.

This precompilation is enabled by default but can be disabled by setting
the `JULIA_LOWERING_PRECOMPILE` environment variable to false-cy, which
may be useful during development.

Ideally we'd like to use Preferences.jl for this configuration, but
my understanding is that JuliaLowering aims to be self-contained and
should not add dependencies other than JuliaSyntax.
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