Hello, I am having difficulty running the Open Street Map for Agents.jl. In particular, CairoMakie does not compile, leading to the error below. I received the same error on Windows. The error also persists after downgrading CairoMakie to 0.11.x.
The newer versions of CairoMakie and OSMMakie could be tried on Agents.jl main, but it does not seem to be passing tests.
Any advice would be greatly appreciated.
Error
ERROR: The following 1 direct dependency failed to precompile:
CairoMakie
Failed to precompile CairoMakie [13f3f980-e62b-5c42-98c6-ff1f3baf88f0] to "/home/itsdfish/.julia/compiled/v1.12/CairoMakie/jl_s6OAaT".
ERROR: LoadError: FieldError: type Core.TypeName has no field `mt`, available fields: `name`, `module`, `singletonname`, `names`, `atomicfields`, `constfields`, `wrapper`, `Typeofwrapper`, `cache`, `linearcache`, `partial`, `hash`, `max_args`, `n_uninitialized`, `flags`, `cache_entry_count`, `max_methods`, `constprop_heuristic`
Stacktrace:
[1] getproperty(x::Core.TypeName, f::Symbol)
@ Base ./Base_compiler.jl:54
[2] func2string(func::typeof(MakieCore.linesegments))
@ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:9
[3] plotkey(::Type{MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}})
@ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:40
[4] plotkey(::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
@ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:41
[5] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol, default::Nothing)
@ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:237
[6] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol)
@ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:234
[7] draw_atomic(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::Union{MakieCore.Lines, MakieCore.LineSegments})
@ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/primitives.jl:6
[8] draw_plot(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
@ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:135
[9] cairo_draw(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Makie.Scene)
@ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:49
[10] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE})
@ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/screen.jl:375
[11] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE}, format::Makie.ImageStorageFormat)
@ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:391
[12] colorbuffer(fig::Makie.FigureAxisPlot, format::Makie.ImageStorageFormat; update::Bool, backend::Module, screen_config::@Kwargs{})
@ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:475
[13] colorbuffer
@ ~/.julia/packages/Makie/Y3ABD/src/display.jl:466 [inlined]
[14] colorbuffer(fig::Makie.FigureAxisPlot)
@ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:466
[15] top-level scope
@ ~/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:6
[16] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:307
[17] top-level scope
@ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:11
[18] macro expansion
@ ~/.julia/packages/PrecompileTools/gn08A/src/workloads.jl:73 [inlined]
[19] macro expansion
@ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:15 [inlined]
[20] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:307
[21] top-level scope
@ ~/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:37
[22] include(mod::Module, _path::String)
@ Base ./Base.jl:306
[23] 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:3024
[24] top-level scope
@ stdin:5
[25] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[26] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2870
[27] include_string
@ ./loading.jl:2880 [inlined]
[28] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:315
[29] _start()
@ Base ./client.jl:550
in expression starting at /home/itsdfish/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:4
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:10
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:1
in expression starting at stdin:
Version Info
(zombie_outbreak) pkg> st
Status `~/.julia/dev/sandbox/zombie_outbreak/Project.toml`
[46ada45e] Agents v6.2.10
⌃ [13f3f980] CairoMakie v0.12.18
⌃ [76b6901f] OSMMakie v0.0.10
[9a3f8284] Random v1.11.0
Info Packages marked with ⌃ have new versions available and may be upgradable.
Julia Version 1.12.4
Commit 01a2eadb047 (2026-01-06 16:56 UTC)
Build Info:
Official https://julialang.org release
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 16 × AMD Ryzen 7 7700X 8-Core Processor
WORD_SIZE: 64
LLVM: libLLVM-18.1.7 (ORCJIT, znver4)
GC: Built with stock GC
Threads: 8 default, 1 interactive, 8 GC (on 16 virtual cores)
Environment:
JULIA_EDITOR = code
JULIA_VSCODE_REPL = 1
JULIA_NUM_THREADS = 8