@@ -52,20 +52,38 @@ const ID = gensym(:id)
52
52
const META = gensym (:meta )
53
53
const METAType = Vector{TracySrcLoc}
54
54
55
- function meta (m:: Module ; autoinit:: Bool = true )
56
- if ! isdefined (m, META) || getfield (m, META) === nothing
57
- autoinit ? initmeta (m) : return nothing
55
+ @static if VERSION >= v " 1.12-DEV"
56
+ function meta (m:: Module ; autoinit:: Bool = true )
57
+ if ! isdefinedglobal (m, META)
58
+ autoinit ? invokelatest (initmeta, m) : return nothing
59
+ end
60
+ return invokelatest (getfield, m, META):: METAType
61
+ end
62
+
63
+ function initmeta (m:: Module )
64
+ if ! isdefinedglobal (m, META)
65
+ Core. eval (m, :($ META = $ (METAType ())))
66
+ Core. eval (m, :($ ID () = nothing ))
67
+ Core. eval (m, :($ Tracy. tracepoint_enabled (:: Val{$ID} , :: Val ) = true ))
68
+ end
69
+ nothing
70
+ end
71
+ else
72
+ function meta (m:: Module ; autoinit:: Bool = true )
73
+ if ! isdefined (m, META) || getfield (m, META) === nothing
74
+ autoinit ? initmeta (m) : return nothing
75
+ end
76
+ return getfield (m, META):: METAType
58
77
end
59
- return getfield (m, META):: METAType
60
- end
61
78
62
- function initmeta (m:: Module )
63
- if ! isdefined (m, META) || getfield (m, META) === nothing
64
- Core. eval (m, :($ META = $ (METAType ())))
65
- Core. eval (m, :($ ID () = nothing ))
66
- Core. eval (m, :($ Tracy. tracepoint_enabled (:: Val{$ID} , :: Val ) = true ))
79
+ function initmeta (m:: Module )
80
+ if ! isdefined (m, META) || getfield (m, META) === nothing
81
+ Core. eval (m, :($ META = $ (METAType ())))
82
+ Core. eval (m, :($ ID () = nothing ))
83
+ Core. eval (m, :($ Tracy. tracepoint_enabled (:: Val{$ID} , :: Val ) = true ))
84
+ end
85
+ nothing
67
86
end
68
- nothing
69
87
end
70
88
71
89
const modules = Set {Module} ()
@@ -112,7 +130,7 @@ function __init__()
112
130
for m in modules
113
131
for (i, srcloc) in enumerate (meta (m))
114
132
if pointer_from_objref (srcloc) == tracy_srcloc_ptr
115
- m_id = getfield ( m, ID)
133
+ m_id = invokelatest (getfield, m, ID)
116
134
old_enable = srcloc. enabled
117
135
if enable != old_enable
118
136
if old_enable == 0xFF
0 commit comments