@@ -13,7 +13,7 @@ finally
1313 Base. _track_dependencies[] = true
1414end
1515
16- let
16+ function repl_workload ()
1717 # these are intentionally triggered
1818 allowed_errors = [
1919 " BoundsError: attempt to access 0-element Vector{Any} at index [1]" ,
175175 nothing
176176end
177177
178- precompile (Tuple{typeof (Base. setindex!), Base. Dict{Any, Any}, Any, Int})
179- precompile (Tuple{typeof (Base. delete!), Base. Set{Any}, String})
180- precompile (Tuple{typeof (Base.:(== )), Char, String})
181- precompile (Tuple{typeof (Base. reseteof), Base. TTY})
178+ # Copied from PrecompileTools.jl
179+ let
180+ function check_edges (node)
181+ parentmi = node. mi_info. mi
182+ for child in node. children
183+ childmi = child. mi_info. mi
184+ if ! (isdefined (childmi, :backedges ) && parentmi ∈ childmi. backedges)
185+ precompile (childmi. specTypes)
186+ end
187+ check_edges (child)
188+ end
189+ end
190+
191+ if Base. generating_output () && Base. JLOptions (). use_pkgimages != 0
192+ Core. Compiler. Timings. reset_timings ()
193+ Core. Compiler. __set_measure_typeinf (true )
194+ try
195+ repl_workload ()
196+ finally
197+ Core. Compiler. __set_measure_typeinf (false )
198+ Core. Compiler. Timings. close_current_timer ()
199+ end
200+ roots = Core. Compiler. Timings. _timings[1 ]. children
201+ for child in roots
202+ precompile (child. mi_info. mi. specTypes)
203+ check_edges (child)
204+ end
205+ precompile (Tuple{typeof (Base. setindex!), Base. Dict{Any, Any}, Any, Int})
206+ precompile (Tuple{typeof (Base. delete!), Base. Set{Any}, String})
207+ precompile (Tuple{typeof (Base.:(== )), Char, String})
208+ precompile (Tuple{typeof (Base. reseteof), Base. TTY})
209+ end
210+ end
182211
183212end # Precompile
0 commit comments