Skip to content

Commit afb9f1d

Browse files
oscardssmithoscarddssmith
andauthored
fix precompile on 1.12 (#2498)
Co-authored-by: oscarddssmith <oscar.smith@juliacomputing.com>
1 parent 6b1cacf commit afb9f1d

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

src/rules/jitrules.jl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1770,12 +1770,17 @@ end
17701770
end
17711771

17721772
# Create specializations
1773-
setfield!(typeof(runtime_generic_fwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1774-
setfield!(typeof(runtime_generic_augfwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1775-
setfield!(typeof(runtime_generic_rev).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1776-
setfield!(typeof(runtime_iterate_fwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1777-
setfield!(typeof(runtime_iterate_augfwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1778-
setfield!(typeof(runtime_iterate_rev).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1773+
if !isdefined(Core, :GlobalMethods) # pre https://github.com/JuliaLang/julia/pull/58131
1774+
set_fn_max_args(f) = setfield!(typeof(f).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
1775+
else
1776+
set_fn_max_args(f) = setfield!(typeof(f).name, :max_args, fieldtype(Core.TypeName, :max_args)(512), :monotonic)
1777+
end
1778+
set_fn_max_args(runtime_generic_fwd)
1779+
set_fn_max_args(runtime_generic_augfwd)
1780+
set_fn_max_args(runtime_generic_rev)
1781+
set_fn_max_args(runtime_iterate_fwd)
1782+
set_fn_max_args(runtime_iterate_augfwd)
1783+
set_fn_max_args(runtime_iterate_rev)
17791784
# for (N, Width) in Iterators.product(0:30, 1:10)
17801785
# eval(func_runtime_generic_fwd(N, Width))
17811786
# eval(func_runtime_generic_augfwd(N, Width))

src/rules/typeunstablerules.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -424,10 +424,10 @@ end
424424
)
425425
end
426426

427-
setfield!(typeof(runtime_newstruct_augfwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
428-
setfield!(typeof(runtime_newstruct_rev).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
429-
setfield!(typeof(runtime_tuple_augfwd).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
430-
setfield!(typeof(runtime_tuple_rev).name.mt, :max_args, fieldtype(Core.MethodTable, :max_args)(512), :monotonic)
427+
set_fn_max_args(runtime_newstruct_augfwd)
428+
set_fn_max_args(runtime_newstruct_rev)
429+
set_fn_max_args(runtime_tuple_augfwd)
430+
set_fn_max_args(runtime_tuple_rev)
431431
# for (N, Width) in Iterators.product(0:30, 1:10)
432432
# eval(func_runtime_newstruct_augfwd(N, Width))
433433
# eval(func_runtime_newstruct_rev(N, Width))

0 commit comments

Comments
 (0)