Skip to content

Broken with Julia 1.12-beta3 #695

@eschnett

Description

@eschnett

I cannot use GPUCompiler with Julia 1.12-beta3:

$ julia +beta
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.12.0-beta3 (2025-05-12)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org release
|__/                   |

(@v1.12) pkg> activate --temp
  Activating new project at `/var/folders/gb/x5lhfpj15ln66g6br549tz5m0000gs/T/jl_s5IRm2`

(jl_s5IRm2) pkg> add GPUCompiler
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
    Updating `/private/var/folders/gb/x5lhfpj15ln66g6br549tz5m0000gs/T/jl_s5IRm2/Project.toml`
  [61eb1bfa] + GPUCompiler v1.4.0
    Updating `/private/var/folders/gb/x5lhfpj15ln66g6br549tz5m0000gs/T/jl_s5IRm2/Manifest.toml`
  [fa961155] + CEnum v0.5.0
  [e2ba6199] + ExprTools v0.1.10
  [61eb1bfa] + GPUCompiler v1.4.0
  [692b3bcd] + JLLWrappers v1.7.0
  [929cbde3] + LLVM v9.3.1
  [aea7be01] + PrecompileTools v1.3.2
  [21216c6a] + Preferences v1.4.3
  [6c6a2e73] + Scratch v1.2.1
  [e689c965] + Tracy v0.1.4
  [dad2f222] + LLVMExtra_jll v0.0.35+0
  [ad6e5548] + LibTracyClient_jll v0.9.1+6
  [0dad84c5] + ArgTools v1.1.2
  [56f22d72] + Artifacts v1.11.0
  [2a0f44e3] + Base64 v1.11.0
  [ade2ca70] + Dates v1.11.0
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching v1.11.0
  [b77e0a4c] + InteractiveUtils v1.11.0
  [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0
  [4af54fe1] + LazyArtifacts v1.11.0
  [b27032c2] + LibCURL v0.6.4
  [76f85450] + LibGit2 v1.11.0
  [8f399da3] + Libdl v1.11.0
  [56ddb016] + Logging v1.11.0
  [d6f4376e] + Markdown v1.11.0
  [ca575930] + NetworkOptions v1.3.0
  [44cfe95a] + Pkg v1.12.0
  [de0858da] + Printf v1.11.0
  [9a3f8284] + Random v1.11.0
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization v1.11.0
  [f489334b] + StyledStrings v1.11.0
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [cf7118a7] + UUIDs v1.11.0
  [4ec0a83e] + Unicode v1.11.0
  [deac9b47] + LibCURL_jll v8.11.1+1
  [e37daf67] + LibGit2_jll v1.9.0+0
  [29816b5a] + LibSSH2_jll v1.11.3+1
  [14a3606d] + MozillaCACerts_jll v2025.2.25
  [458c3c95] + OpenSSL_jll v3.5.0+0
  [83775a58] + Zlib_jll v1.3.1+2
  [8e850ede] + nghttp2_jll v1.64.0+1
  [3f19e933] + p7zip_jll v17.5.0+2
  ✗ GPUCompiler
Precompiling packages finished.
  0 dependencies successfully precompiled in 8 seconds. 38 already precompiled.
  1 dependency errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

julia> err
PkgPrecompileError: The following 1 direct dependency failed to precompile:

GPUCompiler

Failed to precompile GPUCompiler [61eb1bfa-7361-4325-ad38-22787b887f55] to "/Users/eschnett/.julia/compiled/v1.12/GPUCompiler/jl_sUYdGh".
ERROR: LoadError: MethodError: no method matching collectinvokes!(::Vector{Core.CodeInstance}, ::Core.CodeInfo)
The function `collectinvokes!` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  collectinvokes!(::Compiler.CompilationQueue, ::Core.CodeInfo, ::Vector{Compiler.VarState}; invokelatest_queue)
   @ Base ~/.julia/juliaup/julia-1.12.0-beta3+0.aarch64.apple.darwin14/share/julia/Compiler/src/typeinfer.jl:1311

Stacktrace:
  [1] ci_cache_populate(interp::GPUCompiler.GPUInterpreter, cache::Compiler.WorldView{Compiler.InternalCodeCache}, mi::Core.MethodInstance, min_world::UInt64, max_world::UInt64)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/jlgen.jl:504
  [2] compile_method_instance(job::GPUCompiler.CompilerJob)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/jlgen.jl:597
  [3] macro expansion
    @ ~/.julia/packages/Tracy/GcShf/src/tracepoint.jl:158 [inlined]
  [4] irgen(job::GPUCompiler.CompilerJob)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/irgen.jl:4
  [5] macro expansion
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:172 [inlined]
  [6] macro expansion
    @ ~/.julia/packages/Tracy/GcShf/src/tracepoint.jl:158 [inlined]
  [7] emit_llvm(job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:171
  [8] emit_llvm(job::GPUCompiler.CompilerJob)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:154
  [9] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:95
 [10] compile_unhooked
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:80 [inlined]
 [11] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:67
 [12] compile
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:55 [inlined]
 [13] #143
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/precompile.jl:35 [inlined]
 [14] JuliaContext(f::GPUCompiler.var"#143#144"{GPUCompiler.CompilerJob{GPUCompiler.NativeCompilerTarget, GPUCompiler.var"##282".DummyCompilerParams}}; kwargs::@Kwargs{})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:34
 [15] JuliaContext(f::Function)
    @ GPUCompiler ~/.julia/packages/GPUCompiler/1cGqD/src/driver.jl:25
 [16] macro expansion
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/precompile.jl:34 [inlined]
 [17] macro expansion
    @ ~/.julia/packages/PrecompileTools/Z8SWe/src/workloads.jl:73 [inlined]
 [18] macro expansion
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/precompile.jl:25 [inlined]
 [19] macro expansion
    @ ~/.julia/packages/PrecompileTools/Z8SWe/src/workloads.jl:121 [inlined]
 [20] top-level scope
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/precompile.jl:118
 [21] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:304
 [22] top-level scope
    @ ~/.julia/packages/GPUCompiler/1cGqD/src/GPUCompiler.jl:51
 [23] include(mod::Module, _path::String)
    @ Base ./Base.jl:303
 [24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base ./loading.jl:2974
 [25] top-level scope
    @ stdin:5
 [26] eval(m::Module, e::Any)
    @ Core ./boot.jl:489
 [27] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2820
 [28] include_string
    @ ./loading.jl:2830 [inlined]
 [29] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:326
 [30] _start()
    @ Base ./client.jl:561
in expression starting at /Users/eschnett/.julia/packages/GPUCompiler/1cGqD/src/precompile.jl:3
in expression starting at /Users/eschnett/.julia/packages/GPUCompiler/1cGqD/src/GPUCompiler.jl:1
in expression starting at stdin:

This is on

julia> versioninfo()
Julia Version 1.12.0-beta3
Commit faca79b503a (2025-05-12 06:47 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: macOS (arm64-apple-darwin24.0.0)
  CPU: 12 × Apple M3 Pro
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, apple-m3)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 6 virtual cores)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions