Files
julia/Compiler
Jeff Bezanson 4eec0db407 fix effects of special fields that can change between processes (#61595)
These fields are technically mutable, but inference knows they are never
actually mutated. However, they can change between processes since
staticdata.c has special handling to relocate them. fixes #61590
2026-05-01 15:34:37 +09:00
..

The Compiler module

This directory maintains the implementation of the Julia compiler.

Through a bootstrapping process, it is bundled into the Julia runtime as Base.Compiler.

You can also use this Compiler module as the Compiler standard library by following the steps below.

How to use

To utilize this Compiler.jl standard library, you need to declare it as a dependency in your Project.toml as follows:

Project.toml

[deps]
Compiler = "807dbc54-b67e-4c79-8afb-eafe4df6f2e1"

[compat]
Compiler = "0.1"

With the setup above, the special placeholder version (v0.1) will be installed by default.1

If needed, you can switch to a custom implementation of the Compiler module by running

pkg> dev /path/to/Compiler.jl # to use a local implementation

or

pkg> add https://url/of/Compiler/branch # to use a remote implementation

This feature is particularly useful for developing or experimenting with alternative compiler implementations.

Note

The Compiler.jl standard library is available starting from Julia v1.10. However, switching to a custom compiler implementation is supported only from Julia v1.12 onwards.

Warning

When using a custom, non-Base version of Compiler implementation, it may be necessary to run InteractiveUtils.@activate Compiler to ensure proper functionality of certain reflection utilities.


  1. Currently, only version v0.1 is registered in the General registry. ↩︎