diff --git a/Makefile b/Makefile index c7ac7258e6120..eae914a491a08 100644 --- a/Makefile +++ b/Makefile @@ -206,7 +206,7 @@ define sysimg_builder $$(build_private_libdir)/sys$1-o.a $$(build_private_libdir)/sys$1-bc.a : $$(build_private_libdir)/sys$1-%.a : $$(build_private_libdir)/sys.ji @$$(call PRINT_JULIA, cd $$(JULIAHOME)/base && \ if ! $$(call spawn,$3) $2 -C "$$(JULIA_CPU_TARGET)" --output-$$* $$(call cygpath_w,$$@).tmp $$(JULIA_SYSIMG_BUILD_FLAGS) \ - --startup-file=no --warn-overwrite=yes --sysimage $$(call cygpath_w,$$<) -e nothing; then \ + --startup-file=no --warn-overwrite=yes --sysimage $$(call cygpath_w,$$<) $$(JULIAHOME)/contrib/generate_precompile.jl; then \ echo '*** This error is usually fixed by running `make clean`. If the error persists$$(COMMA) try `make cleanall`. ***'; \ false; \ fi ) diff --git a/base/options.jl b/base/options.jl index 4561d29965176..0abf2d55fd866 100644 --- a/base/options.jl +++ b/base/options.jl @@ -26,6 +26,7 @@ struct JLOptions warn_overwrite::Int8 can_inline::Int8 polly::Int8 + trace_compile::Int8 fast_math::Int8 worker::Int8 cookie::Ptr{UInt8} diff --git a/base/precompile.jl b/base/precompile.jl deleted file mode 100644 index 4889e1729d20e..0000000000000 --- a/base/precompile.jl +++ /dev/null @@ -1,746 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Steps to regenerate this file: -# 1. Remove all `precompile` calls -# 2. Rebuild system image -# 3. Enable TRACE_COMPILE in options.h and rebuild -# 4. Run `./julia 2> precompiles.txt` and do various things. -# 5. Run `./julia contrib/fixup_precompile.jl precompiles.txt to overwrite `precompile.jl` -# or ./julia contrib/fixup_precompile.jl --merge precompiles.txt to merge into existing -# `precompile.jl` - -let -PrecompileStagingArea = Module() -for (_pkgid, _mod) in Base.loaded_modules - if !(_pkgid.name in ("Main", "Core", "Base")) - @eval PrecompileStagingArea $(Symbol(_mod)) = $_mod - end -end -@eval PrecompileStagingArea begin -precompile(Tuple{Type{Array{Base.StackTraces.StackFrame, 1}}, UndefInitializer, Int64}) -precompile(Tuple{Type{Array{Union{Nothing, String}, 1}}, UndefInitializer, Int64}) -precompile(Tuple{Type{Base.CoreLogging.LogState}, Logging.ConsoleLogger}) -precompile(Tuple{Type{Base.Dict{Any, Any}}}) -precompile(Tuple{Type{Base.Dict{Any, Int64}}}) -precompile(Tuple{Type{Base.Dict{Char, Any}}}) -precompile(Tuple{Type{Base.Dict{Symbol, Any}}, Base.Pair{Symbol, REPL.LineEdit.Prompt}, Base.Pair{Symbol, REPL.LineEdit.Prompt}, Base.Pair{Symbol, REPL.LineEdit.Prompt}}) -precompile(Tuple{Type{Base.Dict{Symbol, Any}}, Base.Pair{Symbol, REPL.LineEdit.Prompt}, Vararg{Base.Pair{Symbol, REPL.LineEdit.Prompt}, N} where N}) -precompile(Tuple{Type{Base.Dict{Symbol, Any}}}) -precompile(Tuple{Type{Base.GC_Diff}, Base.GC_Num, Base.GC_Num}) -precompile(Tuple{Type{Base.Generator{I, F} where F where I}, typeof(Base.names), Array{Any, 1}}) -precompile(Tuple{Type{Base.IOContext{IO_t} where IO_t<:IO}, Base.GenericIOBuffer{Array{UInt8, 1}}, Base.IOStream}) -precompile(Tuple{Type{Base.IOContext{IO_t} where IO_t<:IO}, REPL.Terminals.TTYTerminal, Base.Pair{Symbol, Bool}}) -precompile(Tuple{Type{Base.InterpreterIP}, Core.CodeInfo, Ptr{Nothing}}) -precompile(Tuple{Type{Base.IteratorSize}, Array{Any, 1}}) -precompile(Tuple{Type{Base.LinearIndices{N, R} where R<:Tuple{Vararg{Base.AbstractUnitRange{Int64}, N}} where N}, Array{Method, 1}}) -precompile(Tuple{Type{Base.MIME{Symbol("text/plain")}}}) -precompile(Tuple{Type{Base.Multimedia.TextDisplay}, Base.TTY}) -precompile(Tuple{Type{Base.Order.Perm{O, V} where V<:(AbstractArray{T, 1} where T) where O<:Base.Order.Ordering}, Base.Order.ForwardOrdering, Array{Tuple{Float64, Int64}, 1}}) -precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Base.PkgId, UInt64}) -precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Int64, Int64}) -precompile(Tuple{Type{Base.PkgId}, String}) -precompile(Tuple{Type{Base.StackTraces.StackFrame}, Symbol, Symbol, Int64, Core.CodeInfo, Bool, Bool, Int64}) -precompile(Tuple{Type{Base.StackTraces.StackFrame}, Symbol, Symbol, Int64, Core.MethodInstance, Bool, Bool, Ptr{Nothing}}) -precompile(Tuple{Type{Base.StackTraces.StackFrame}, Symbol, Symbol, Int64, Nothing, Bool, Bool, Ptr{Nothing}}) -precompile(Tuple{Type{Base.SubString{T} where T<:AbstractString}, String, Int64}) -precompile(Tuple{Type{Base.Val{2}}}) -precompile(Tuple{Type{Base.Val{3}}}) -precompile(Tuple{Type{Logging.ConsoleLogger}, Base.IOStream}) -precompile(Tuple{Type{Logging.ConsoleLogger}, Base.TTY}) -precompile(Tuple{Type{Markdown.Header{1}}, Array{Any, 1}}) -precompile(Tuple{Type{Markdown.MD}, Markdown.MD, Markdown.MD}) -precompile(Tuple{Type{NamedTuple{(), T} where T<:Tuple}, Tuple{}}) -precompile(Tuple{Type{NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}}, Tuple{Bool, Symbol}}) -precompile(Tuple{Type{NamedTuple{(:bold, :color), T} where T<:Tuple}, Tuple{Bool, Symbol}}) -precompile(Tuple{Type{NamedTuple{(:create,), T} where T<:Tuple}, Tuple{Bool}}) -precompile(Tuple{Type{NamedTuple{(:merge,), T} where T<:Tuple}, Tuple{Bool}}) -precompile(Tuple{Type{NamedTuple{(:prompt_prefix, :prompt_suffix, :complete, :sticky), Tuple{String, String, Pkg.REPLMode.PkgCompletionProvider, Bool}}}, Tuple{String, String, Pkg.REPLMode.PkgCompletionProvider, Bool}}) -precompile(Tuple{Type{NamedTuple{(:prompt_prefix, :prompt_suffix, :complete, :sticky), T} where T<:Tuple}, Tuple{String, String, Pkg.REPLMode.PkgCompletionProvider, Bool}}) -precompile(Tuple{Type{NamedTuple{(:prompt_prefix, :prompt_suffix, :repl, :complete, :on_enter), Tuple{String, typeof(Base.input_color), REPL.LineEditREPL, REPL.REPLCompletionProvider, typeof(REPL.return_callback)}}}, Tuple{String, typeof(Base.input_color), REPL.LineEditREPL, REPL.REPLCompletionProvider, typeof(REPL.return_callback)}}) -precompile(Tuple{Type{NamedTuple{(:prompt_prefix, :prompt_suffix, :repl, :complete, :on_enter), T} where T<:Tuple}, Tuple{String, typeof(Base.input_color), REPL.LineEditREPL, REPL.REPLCompletionProvider, typeof(REPL.return_callback)}}) -precompile(Tuple{Type{NamedTuple{(:stderr,), Tuple{Base.IOStream}}}, Tuple{Base.IOStream}}) -precompile(Tuple{Type{REPL.LineEditREPL}, REPL.Terminals.TTYTerminal, Bool, Bool}) -precompile(Tuple{Type{REPL.LineEditREPL}, REPL.Terminals.TTYTerminal, Bool, String, String, String, String, String, Bool, Bool, Bool, Bool}) -precompile(Tuple{Type{REPL.REPLDisplay{R} where R<:REPL.AbstractREPL}, REPL.LineEditREPL}) -precompile(Tuple{Type{REPL.Terminals.TTYTerminal}, String, Base.PipeEndpoint, Base.TTY, Base.IOStream}) -precompile(Tuple{Type{REPL.Terminals.TTYTerminal}, String, Base.TTY, Base.TTY, Base.IOStream}) -precompile(Tuple{Type{REPL.Terminals.TTYTerminal}, String, Base.TTY, Base.TTY, Base.TTY}) -precompile(Tuple{Type{String}, Array{UInt8, 1}}) -precompile(Tuple{Type{UInt32}, UInt8}) -precompile(Tuple{Type{UnionAll}, TypeVar, Any}) -precompile(Tuple{getfield(Base, Symbol("#@time")), LineNumberNode, Module, Expr}) -precompile(Tuple{getfield(Base, Symbol("#kw##_spawn")), NamedTuple{(:chain,), Tuple{Nothing}}, typeof(Base._spawn), Base.Cmd, Tuple{Base.Pipe, Base.TTY, Base.IOStream}}) -precompile(Tuple{getfield(Base, Symbol("#kw##pipeline")), NamedTuple{(:stderr,), Tuple{Base.IOStream}}, typeof(Base.pipeline), Base.Cmd}) -precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, String}) -precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) -precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:bold, :color), Tuple{Bool, Symbol}}, typeof(Base.printstyled), REPL.Terminals.TTYTerminal, String}) -precompile(Tuple{getfield(Base, Symbol("#kw##printstyled")), NamedTuple{(:color,), Tuple{Symbol}}, typeof(Base.printstyled), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) -precompile(Tuple{getfield(Base, Symbol("#kw##show_trace_entry")), NamedTuple{(:prefix,), Tuple{String}}, typeof(Base.show_trace_entry), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.StackTraces.StackFrame, Int64}) -precompile(Tuple{getfield(Base, Symbol("#kw##sort!")), NamedTuple{(:by,), Tuple{typeof(REPL.REPLCompletions.completion_text)}}, typeof(Base.sort!), Array{REPL.REPLCompletions.Completion, 1}}) -precompile(Tuple{getfield(Base, Symbol("#kw##with_output_color")), NamedTuple{(:bold,), Tuple{Bool}}, typeof(Base.with_output_color), typeof(Base.print), Symbol, Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, String}) -precompile(Tuple{getfield(Base.Cartesian, Symbol("#@ncall")), LineNumberNode, Module, Int64, Symbol, Symbol, Expr}) -precompile(Tuple{getfield(Base.Cartesian, Symbol("#@nexprs")), LineNumberNode, Module, Int64, Expr}) -precompile(Tuple{getfield(Base.Meta, Symbol("#kw##parse")), NamedTuple{(:raise, :depwarn), Tuple{Bool, Bool}}, typeof(Base.Meta.parse), String, Int64}) -precompile(Tuple{getfield(Core, Symbol("#@doc")), LineNumberNode, Module, Symbol}) -precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:prompt_prefix, :prompt_suffix, :complete, :sticky), Tuple{String, String, Pkg.REPLMode.PkgCompletionProvider, Bool}}, Type{REPL.LineEdit.Prompt}, typeof(Pkg.REPLMode.promptf)}) -precompile(Tuple{getfield(Core, Symbol("#kw#Type")), NamedTuple{(:prompt_prefix, :prompt_suffix, :repl, :complete, :on_enter), Tuple{String, typeof(Base.input_color), REPL.LineEditREPL, REPL.REPLCompletionProvider, typeof(REPL.return_callback)}}, Type{REPL.LineEdit.Prompt}, String}) -precompile(Tuple{getfield(REPL, Symbol("#@repl")), LineNumberNode, Module, Base.TTY, Symbol}) -precompile(Tuple{getfield(REPL, Symbol("#kw##printmatches")), NamedTuple{(:cols,), Tuple{Int64}}, typeof(REPL.printmatches), Base.TTY, String, Array{String, 1}}) -precompile(Tuple{getfield(REPL.LineEdit, Symbol("#kw##add_nested_key!")), NamedTuple{(:override,), Tuple{Bool}}, typeof(REPL.LineEdit.add_nested_key!), Base.Dict{Char, Any}, Char, Function}) -precompile(Tuple{getfield(REPL.LineEdit, Symbol("#kw##refresh_multi_line")), NamedTuple{(:beeping,), Tuple{Bool}}, typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TTYTerminal, REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(Base.:(!=)), Char, Char}) -precompile(Tuple{typeof(Base.:(!=)), Int64, Int64}) -precompile(Tuple{typeof(Base.:(!=)), Int8, Int64}) -precompile(Tuple{typeof(Base.:(!=)), Nothing, Nothing}) -precompile(Tuple{typeof(Base.:(!=)), REPL.LineEdit.Prompt, Nothing}) -precompile(Tuple{typeof(Base.:(!=)), String, Nothing}) -precompile(Tuple{typeof(Base.:(!=)), String, String}) -precompile(Tuple{typeof(Base.:(!=)), UInt8, UInt8}) -precompile(Tuple{typeof(Base.:(*)), Base.SubString{String}, String}) -precompile(Tuple{typeof(Base.:(+)), Int64, Bool}) -precompile(Tuple{typeof(Base.:(<<)), UInt32, Int64}) -precompile(Tuple{typeof(Base.:(<=)), Int64, Int64}) -precompile(Tuple{typeof(Base.:(==)), Base.Multimedia.TextDisplay, REPL.REPLDisplay{REPL.LineEditREPL}}) -precompile(Tuple{typeof(Base.:(==)), Int8, Int64}) -precompile(Tuple{typeof(Base.:(==)), Module, Module}) -precompile(Tuple{typeof(Base.:(==)), Nothing, String}) -precompile(Tuple{typeof(Base.:(==)), REPL.REPLDisplay{REPL.LineEditREPL}, REPL.REPLDisplay{REPL.LineEditREPL}}) -precompile(Tuple{typeof(Base.:(>)), UInt64, Int64}) -precompile(Tuple{typeof(Base.:(^)), Char, Int64}) -precompile(Tuple{typeof(Base.:(|>)), Array{Any, 1}, typeof(Base.unique)}) -precompile(Tuple{typeof(Base.:(|>)), Array{Any, 1}, typeof(REPL.filtervalid)}) -precompile(Tuple{typeof(Base.CoreLogging.global_logger), Logging.ConsoleLogger}) -precompile(Tuple{typeof(Base.CoreLogging.global_logger)}) -precompile(Tuple{typeof(Base.CoreLogging.logmsg_shim), Int64, String, Nothing, Symbol, Symbol, Symbol, Int64, Array{Any, 1}}) -precompile(Tuple{typeof(Base.Docs.catdoc), Markdown.MD, Markdown.MD}) -precompile(Tuple{typeof(Base.Docs.doc), Base.Docs.Binding, Type{Union{}}}) -precompile(Tuple{typeof(Base.Docs.doc), Base.Docs.Binding}) -precompile(Tuple{typeof(Base.Docs.docm), LineNumberNode, Module, Symbol}) -precompile(Tuple{typeof(Base.Docs.formatdoc), Base.GenericIOBuffer{Array{UInt8, 1}}, Base.Docs.DocStr, String}) -precompile(Tuple{typeof(Base.Filesystem.basename), String}) -precompile(Tuple{typeof(Base.Filesystem.isdir), String}) -precompile(Tuple{typeof(Base.Filesystem.pwd)}) -precompile(Tuple{typeof(Base.Filesystem.splitdir), String}) -precompile(Tuple{typeof(Base.Filesystem.splitext), String}) -precompile(Tuple{typeof(Base.Meta.isexpr), Symbol, Symbol, Int64}) -precompile(Tuple{typeof(Base.Meta.parse), String}) -precompile(Tuple{typeof(Base.Multimedia.display), Int64}) -precompile(Tuple{typeof(Base.Multimedia.display), Markdown.MD}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Array{Float64, 1}}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Array{Float64, 2}}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Array{Int64, 1}}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Float64}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Int64}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, Markdown.MD}) -precompile(Tuple{typeof(Base.Multimedia.display), REPL.REPLDisplay{REPL.LineEditREPL}, String}) -precompile(Tuple{typeof(Base.Multimedia.pushdisplay), REPL.REPLDisplay{REPL.LineEditREPL}}) -precompile(Tuple{typeof(Base.Order.ord), typeof(Base.isless), typeof(Base.identity), Nothing, Base.Order.ForwardOrdering}) -precompile(Tuple{typeof(Base.Printf.decode_dec), Base.TTY, Float64, String, Int64, Int64, Char}) -precompile(Tuple{typeof(Base.StackTraces.lookup), Base.InterpreterIP}) -precompile(Tuple{typeof(Base.Unicode.textwidth), String}) -precompile(Tuple{typeof(Base.__atreplinit), REPL.LineEditREPL}) -precompile(Tuple{typeof(Base.__precompile__)}) -precompile(Tuple{typeof(Base._atexit)}) -precompile(Tuple{typeof(Base._compute_eltype), Type{Tuple{Int64, String}}}) -precompile(Tuple{typeof(Base._iterate), Base.Dict{Symbol, Any}, Int64}) -precompile(Tuple{typeof(Base._promote_typejoin), Type{Int64}, Type{String}}) -precompile(Tuple{typeof(Base._promote_typejoin), Type{Nothing}, Type{String}}) -precompile(Tuple{typeof(Base._promote_typejoin), Type{Union{}}, Type{Int64}}) -precompile(Tuple{typeof(Base._reformat_bt), Array{Ptr{Nothing}, 1}, Array{Any, 1}}) -precompile(Tuple{typeof(Base._similar_for), Array{Any, 1}, Type{String}, Base.Generator{Array{Any, 1}, typeof(Base.string)}, Base.HasShape{1}}) -precompile(Tuple{typeof(Base._similar_for), Array{Base.Docs.DocStr, 1}, Type{Markdown.MD}, Base.Generator{Array{Base.Docs.DocStr, 1}, typeof(Base.Docs.parsedoc)}, Base.HasShape{1}}) -precompile(Tuple{typeof(Base._similar_for), Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, Type{Array{Base.StackTraces.StackFrame, 1}}, Base.Generator{Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, typeof(Base.StackTraces.lookup)}, Base.HasShape{1}}) -precompile(Tuple{typeof(Base._spawn), Base.CmdRedirect, Tuple{Base.Pipe, Base.TTY, Base.IOStream}}) -precompile(Tuple{typeof(Base._start)}) -precompile(Tuple{typeof(Base._typed_vcat), Type{Any}, Tuple{Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{String, 1}}}) -precompile(Tuple{typeof(Base._uv_hook_close), Base.PipeEndpoint}) -precompile(Tuple{typeof(Base._uv_hook_close), Base.Process}) -precompile(Tuple{typeof(Base._uv_hook_close), Base.Timer}) -precompile(Tuple{typeof(Base.alignment), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Float64, 1}, Base.OneTo{Int64}, Base.OneTo{Int64}, Int64, Int64, Int64}) -precompile(Tuple{typeof(Base.alignment), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Float64, 2}, Base.OneTo{Int64}, Base.OneTo{Int64}, Int64, Int64, Int64}) -precompile(Tuple{typeof(Base.alignment), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Int64, 1}, Base.OneTo{Int64}, Base.OneTo{Int64}, Int64, Int64, Int64}) -precompile(Tuple{typeof(Base.alloc_buf_hook), Base.PipeEndpoint, UInt64}) -precompile(Tuple{typeof(Base.alloc_buf_hook), Base.TTY, UInt64}) -precompile(Tuple{typeof(Base.append!), Array{String, 1}, Array{String, 1}}) -precompile(Tuple{typeof(Base.arg_gen), Base.Cmd}) -precompile(Tuple{typeof(Base.arg_gen), String}) -precompile(Tuple{typeof(Base.axes), Array{Any, 1}}) -precompile(Tuple{typeof(Base.bytesavailable), Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.catch_backtrace)}) -precompile(Tuple{typeof(Base.check_open), Base.TTY}) -precompile(Tuple{typeof(Base.close), Base.Pipe}) -precompile(Tuple{typeof(Base.collect_similar), Array{Any, 1}, Base.Generator{Array{Any, 1}, typeof(Base.names)}}) -precompile(Tuple{typeof(Base.collect_to_with_first!), Array{Array{Base.StackTraces.StackFrame, 1}, 1}, Array{Base.StackTraces.StackFrame, 1}, Base.Generator{Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, typeof(Base.StackTraces.lookup)}, Int64}) -precompile(Tuple{typeof(Base.collect_to_with_first!), Array{Markdown.MD, 1}, Markdown.MD, Base.Generator{Array{Base.Docs.DocStr, 1}, typeof(Base.Docs.parsedoc)}, Int64}) -precompile(Tuple{typeof(Base.collect_to_with_first!), Array{String, 1}, String, Base.Generator{Array{Any, 1}, typeof(Base.string)}, Int64}) -precompile(Tuple{typeof(Base.collect_to_with_first!), Array{String, 1}, String, Base.Generator{Array{REPL.REPLCompletions.Completion, 1}, typeof(REPL.REPLCompletions.completion_text)}, Int64}) -precompile(Tuple{typeof(Base.convert), Type{Array{String, 1}}, Array{Any, 1}}) -precompile(Tuple{typeof(Base.convert), Type{Base.Dict{Char, V} where V}, Base.Dict{Char, Any}}) -precompile(Tuple{typeof(Base.convert), Type{Base.Dict{K, V} where V where K}, Base.Dict{String, Any}}) -precompile(Tuple{typeof(Base.convert), Type{Base.GenericIOBuffer{Array{UInt8, 1}}}, Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.convert), Type{Bool}, Bool}) -precompile(Tuple{typeof(Base.convert), Type{Int64}, Int64}) -precompile(Tuple{typeof(Base.convert), Type{Ptr{Nothing}}, Ptr{Nothing}}) -precompile(Tuple{typeof(Base.convert), Type{Ptr{Nothing}}, Ptr{UInt8}}) -precompile(Tuple{typeof(Base.convert), Type{REPL.LineEdit.InputAreaState}, REPL.LineEdit.InputAreaState}) -precompile(Tuple{typeof(Base.convert), Type{REPL.LineEdit.MIState}, REPL.LineEdit.MIState}) -precompile(Tuple{typeof(Base.convert), Type{REPL.LineEdit.Prompt}, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.convert), Type{Union{Base.UUID, Bool}}, Bool}) -precompile(Tuple{typeof(Base.convert), Type{Union{Function, String}}, String}) -precompile(Tuple{typeof(Base.convert), Type{Union{Nothing, REPL.LineEdit.Prompt}}, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.convert), Type{Union{Nothing, Type{T} where T}}, Nothing}) -precompile(Tuple{typeof(Base.copy), Array{Any, 1}}) -precompile(Tuple{typeof(Base.copy), Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.copymutable), Array{String, 1}}) -precompile(Tuple{typeof(Base.copyto!), Array{Union{Nothing, String}, 1}, Int64, Array{Nothing, 1}, Int64, Int64}) -precompile(Tuple{typeof(Base.delete!), Base.Set{Any}, Char}) -precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol, Symbol, Symbol, Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) -precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol, Symbol, Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol}}) -precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) -precompile(Tuple{typeof(Base.diff_names), Tuple{Symbol}, Tuple{Symbol}}) -precompile(Tuple{typeof(Base.display_error), REPL.Terminals.TTYTerminal, ErrorException, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.display_error), REPL.Terminals.TTYTerminal, MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.display_error), REPL.Terminals.TTYTerminal, UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.displaysize), Base.IOStream}) -precompile(Tuple{typeof(Base.displaysize), Base.TTY}) -precompile(Tuple{typeof(Base.displaysize), REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(Base.divrem), Int64, Int64}) -precompile(Tuple{typeof(Base.eachline), String}) -precompile(Tuple{typeof(Base.empty!), Array{Base.Pair{Base.PkgId, UInt64}, 1}}) -precompile(Tuple{typeof(Base.ensure_rescheduled), Task}) -precompile(Tuple{typeof(Base.eof), Base.PipeEndpoint}) -precompile(Tuple{typeof(Base.eof), Base.TTY}) -precompile(Tuple{typeof(Base.error), String}) -precompile(Tuple{typeof(Base.findlast), String, String}) -precompile(Tuple{typeof(Base.findprev), Base.Fix2{typeof(Base.in), Array{Char, 1}}, String, Int64}) -precompile(Tuple{typeof(Base.findprev), String, String, Int64}) -precompile(Tuple{typeof(Base.first), Base.OneTo{Int64}}) -precompile(Tuple{typeof(Base.first), Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.firstindex), String}) -precompile(Tuple{typeof(Base.flush), Base.IOStream}) -precompile(Tuple{typeof(Base.gc_alloc_count), Base.GC_Diff}) -precompile(Tuple{typeof(Base.gc_num)}) -precompile(Tuple{typeof(Base.get), Base.Dict{Char, Any}, Char, Nothing}) -precompile(Tuple{typeof(Base.getindex), Array{AbstractString, 1}, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.getindex), Array{AbstractString, 1}, Int64}) -precompile(Tuple{typeof(Base.getindex), Array{Any, 1}, Int32}) -precompile(Tuple{typeof(Base.getindex), Array{Int32, 1}, UInt64}) -precompile(Tuple{typeof(Base.getindex), Array{String, 1}, Int64}) -precompile(Tuple{typeof(Base.getindex), Array{UInt8, 1}, Int64}) -precompile(Tuple{typeof(Base.getindex), Base.Dict{Any, Any}, Char}) -precompile(Tuple{typeof(Base.getindex), Base.Dict{String, Any}, String}) -precompile(Tuple{typeof(Base.getindex), Base.Dict{Symbol, Any}, Symbol}) -precompile(Tuple{typeof(Base.getindex), Core.SimpleVector, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.getindex), String, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.getindex), Tuple{Base.GenericIOBuffer{Array{UInt8, 1}}, Int64}, Int64}) -precompile(Tuple{typeof(Base.getindex), Tuple{Base.StackTraces.StackFrame, Int64}, Int64}) -precompile(Tuple{typeof(Base.getindex), Tuple{Int64, Int64}, Int64}) -precompile(Tuple{typeof(Base.getindex), Tuple{Symbol, Symbol, Symbol}, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.getindex), Tuple{Symbol}, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.getindex), Tuple{Symbol}, Int64}) -precompile(Tuple{typeof(Base.getproperty), Base.CoreLogging.LogState, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Base.GC_Diff, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Base.GenericIOBuffer{Array{UInt8, 1}}, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Base.Process, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Base.StackTraces.StackFrame, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Core.CodeInfo, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Core.LineInfoNode, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Core.MethodTable, Symbol}) -precompile(Tuple{typeof(Base.getproperty), Method, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.ModalInterface, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.PrefixSearchState, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.Prompt, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.PromptState, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEdit.SearchState, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.LineEditREPL, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.Options, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.REPLHistoryProvider, Symbol}) -precompile(Tuple{typeof(Base.getproperty), REPL.Terminals.TTYTerminal, Symbol}) -precompile(Tuple{typeof(Base.haskey), Base.Dict{String, Any}, String}) -precompile(Tuple{typeof(Base.haskey), Base.Dict{Symbol, Any}, Symbol}) -precompile(Tuple{typeof(Base.haskey), Base.Dict{Symbol, Function}, Symbol}) -precompile(Tuple{typeof(Base.haskey), Base.IdDict{Any, Any}, Base.Docs.Binding}) -precompile(Tuple{typeof(Base.hvcat), Tuple{Int64, Int64}, Float64, Float64, Float64, Float64}) -precompile(Tuple{typeof(Base.identity), Char}) -precompile(Tuple{typeof(Base.in), Char, Tuple{Char, Char, Char}}) -precompile(Tuple{typeof(Base.in), String, Base.Set{Any}}) -precompile(Tuple{typeof(Base.in), String, Tuple{String, String}}) -precompile(Tuple{typeof(Base.in), Symbol, Base.Set{Any}}) -precompile(Tuple{typeof(Base.incomplete_tag), Symbol}) -precompile(Tuple{typeof(Base.indexed_iterate), Base.Pair{String, String}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Base.Pair{String, String}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Float64, 1}, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Float64, 1}, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Float64, 2}, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Float64, 2}, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Int64, 1}, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Int64, 1}, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{String, 1}, String, Bool}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{String, 1}, String, Bool}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.GenericIOBuffer{Array{UInt8, 1}}, Bool, Bool}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.GenericIOBuffer{Array{UInt8, 1}}, Bool, Bool}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.StackTraces.StackFrame, Int64}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.StackTraces.StackFrame, Int64}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{ErrorException, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{ErrorException, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Expr, Int64}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Expr, Int64}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Float64, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Float64, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Int64, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Int64, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Markdown.MD, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Markdown.MD, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Nothing, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Nothing, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{String, Nothing}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{String, Nothing}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Symbol, String, String}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Symbol, String, String}, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64, Int64}) -precompile(Tuple{typeof(Base.indexed_iterate), Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}, Int64}) -precompile(Tuple{typeof(Base.init_stdio), Ptr{Nothing}}) -precompile(Tuple{typeof(Base.isempty), Array{Base.Docs.DocStr, 1}}) -precompile(Tuple{typeof(Base.isempty), Array{String, 1}}) -precompile(Tuple{typeof(Base.isempty), Core.SimpleVector}) -precompile(Tuple{typeof(Base.isempty), NamedTuple{(), Tuple{}}}) -precompile(Tuple{typeof(Base.isempty), Nothing}) -precompile(Tuple{typeof(Base.isempty), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(Base.isempty), String}) -precompile(Tuple{typeof(Base.isequal), REPL.LineEdit.Prompt, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.isequal), String, Symbol}) -precompile(Tuple{typeof(Base.issingletontype), Type{Base.Regex}}) -precompile(Tuple{typeof(Base.iterate), Array{AbstractString, 1}, Int64}) -precompile(Tuple{typeof(Base.iterate), Array{AbstractString, 1}}) -precompile(Tuple{typeof(Base.iterate), Array{Base.StackTraces.StackFrame, 1}, Int64}) -precompile(Tuple{typeof(Base.iterate), Array{Base.StackTraces.StackFrame, 1}}) -precompile(Tuple{typeof(Base.iterate), Array{REPL.LineEdit.TextInterface, 1}, Int64}) -precompile(Tuple{typeof(Base.iterate), Array{REPL.LineEdit.TextInterface, 1}}) -precompile(Tuple{typeof(Base.iterate), Base.Dict{String, String}, Int64}) -precompile(Tuple{typeof(Base.iterate), Base.Dict{String, String}}) -precompile(Tuple{typeof(Base.iterate), Base.OneTo{Int64}, Int64}) -precompile(Tuple{typeof(Base.iterate), Base.OneTo{Int64}}) -precompile(Tuple{typeof(Base.iterate), Nothing}) -precompile(Tuple{typeof(Base.iterate), Tuple{Int64, Int64}, Int64}) -precompile(Tuple{typeof(Base.iterate), Tuple{Int64, Int64}}) -precompile(Tuple{typeof(Base.last), Base.OneTo{Int64}}) -precompile(Tuple{typeof(Base.lastindex), Array{AbstractString, 1}}) -precompile(Tuple{typeof(Base.lastindex), Array{String, 1}}) -precompile(Tuple{typeof(Base.lastindex), Core.SimpleVector}) -precompile(Tuple{typeof(Base.lastindex), String}) -precompile(Tuple{typeof(Base.lastindex), Tuple{Symbol}}) -precompile(Tuple{typeof(Base.leading_ones), UInt8}) -precompile(Tuple{typeof(Base.length), Array{AbstractString, 1}}) -precompile(Tuple{typeof(Base.length), Array{Int32, 1}}) -precompile(Tuple{typeof(Base.length), Array{Symbol, 1}}) -precompile(Tuple{typeof(Base.length), Tuple{DataType, DataType}}) -precompile(Tuple{typeof(Base.map), typeof(Base.names), Array{Any, 1}}) -precompile(Tuple{typeof(Base.merge), Base.Dict{String, Any}, Base.Dict{String, Any}}) -precompile(Tuple{typeof(Base.merge), NamedTuple{(), Tuple{}}, NamedTuple{(), Tuple{}}}) -precompile(Tuple{typeof(Base.min), Int64, Int64}) -precompile(Tuple{typeof(Base.nextind), String, Int64}) -precompile(Tuple{typeof(Base.occursin), Base.Regex, Base.SubString{String}}) -precompile(Tuple{typeof(Base.occursin), String, String}) -precompile(Tuple{typeof(Base.open), Base.CmdRedirect, String, Base.TTY}) -precompile(Tuple{typeof(Base.open), String, String}) -precompile(Tuple{typeof(Base.poptask)}) -precompile(Tuple{typeof(Base.position), Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.precompilableerror), LoadError, Bool}) -precompile(Tuple{typeof(Base.preserve_handle), Base.Timer}) -precompile(Tuple{typeof(Base.prevind), String, Int64}) -precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, Base.UUID}) -precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, String, Base.SubString{String}, String}) -precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, String, String, String, String, String, String, String}) -precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, Type{Int64}}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Base.SubString{String}}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Char, String, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Char}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Module, String, Symbol}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, Symbol, String, Int32}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String, Symbol}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Symbol}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, Char, String, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, Char}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, String, String, String, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, String, Type{Module}}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, String}) -precompile(Tuple{typeof(Base.print), Base.IOContext{REPL.Terminals.TTYTerminal}, Type{Module}}) -precompile(Tuple{typeof(Base.print), Base.IOStream, Char}) -precompile(Tuple{typeof(Base.print), Base.IOStream, String}) -precompile(Tuple{typeof(Base.print), Base.TTY, Char}) -precompile(Tuple{typeof(Base.print), Base.TTY, String}) -precompile(Tuple{typeof(Base.print), REPL.Terminals.TTYTerminal, String}) -precompile(Tuple{typeof(Base.print_matrix_row), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Float64, 1}, Array{Tuple{Int64, Int64}, 1}, Int64, Base.OneTo{Int64}, String}) -precompile(Tuple{typeof(Base.print_matrix_row), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Float64, 2}, Array{Tuple{Int64, Int64}, 1}, Int64, Base.OneTo{Int64}, String}) -precompile(Tuple{typeof(Base.print_matrix_row), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Int64, 1}, Array{Tuple{Int64, Int64}, 1}, Int64, Base.OneTo{Int64}, String}) -precompile(Tuple{typeof(Base.print_to_string), Type{Any}}) -precompile(Tuple{typeof(Base.println), Base.TTY}) -precompile(Tuple{typeof(Base.println), REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(Base.println), String}) -precompile(Tuple{typeof(Base.promote_eltype), Array{Symbol, 1}, Array{String, 1}}) -precompile(Tuple{typeof(Base.promote_eltype), Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{String, 1}}) -precompile(Tuple{typeof(Base.push!), Array{Base.Docs.DocStr, 1}, Base.Docs.DocStr}) -precompile(Tuple{typeof(Base.push!), Array{Base.Docs.MultiDoc, 1}, Base.Docs.MultiDoc}) -precompile(Tuple{typeof(Base.push!), Array{Base.Pair{Base.PkgId, UInt64}, 1}, Base.Pair{Base.PkgId, UInt64}}) -precompile(Tuple{typeof(Base.push!), Array{Char, 1}, Char}) -precompile(Tuple{typeof(Base.push!), Array{Symbol, 1}, Symbol}) -precompile(Tuple{typeof(Base.push!), Array{Tuple{String, Int64}, 1}, Tuple{String, Int64}}) -precompile(Tuple{typeof(Base.push!), Base.Set{Any}, Char}) -precompile(Tuple{typeof(Base.push!), Base.Set{Any}, Tuple{Module, String, Float64}}) -precompile(Tuple{typeof(Base.push!), Base.Set{REPL.REPLCompletions.Completion}, REPL.REPLCompletions.PackageCompletion}) -precompile(Tuple{typeof(Base.push!), Base.Set{String}, Base.SubString{String}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Array{Float64, 1}, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Array{Float64, 2}, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Array{Int64, 1}, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{ErrorException, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Float64, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Int64, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Markdown.MD, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Nothing, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{String, Nothing}}) -precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}}) -precompile(Tuple{typeof(Base.rand), Int64, Int64}) -precompile(Tuple{typeof(Base.rand), Int64}) -precompile(Tuple{typeof(Base.rand), Random.RandomDevice, Type{UInt32}, Int64}) -precompile(Tuple{typeof(Base.rand)}) -precompile(Tuple{typeof(Base.read!), Base.GenericIOBuffer{Array{UInt8, 1}}, Array{UInt8, 1}}) -precompile(Tuple{typeof(Base.read), Base.TTY, Type{UInt8}}) -precompile(Tuple{typeof(Base.readuntil), Base.PipeEndpoint, Char}) -precompile(Tuple{typeof(Base.readuntil), Base.TTY, String}) -precompile(Tuple{typeof(Base.readuntil), REPL.Terminals.TTYTerminal, String}) -precompile(Tuple{typeof(Base.reinterpret), Type{Char}, UInt32}) -precompile(Tuple{typeof(Base.replace), Base.SubString{String}, Base.Pair{Base.Regex, String}}) -precompile(Tuple{typeof(Base.resize!), Array{Tuple{String, Int64}, 1}, Int64}) -precompile(Tuple{typeof(Base.rethrow)}) -precompile(Tuple{typeof(Base.seek), Base.GenericIOBuffer{Array{UInt8, 1}}, Int64}) -precompile(Tuple{typeof(Base.setindex!), Array{Any, 1}, Array{String, 1}, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.setindex!), Array{Any, 1}, Array{Symbol, 1}, Base.UnitRange{Int64}}) -precompile(Tuple{typeof(Base.setindex!), Array{Base.StackTraces.StackFrame, 1}, Base.StackTraces.StackFrame, Int64}) -precompile(Tuple{typeof(Base.setindex!), Array{Method, 1}, Method, Int64}) -precompile(Tuple{typeof(Base.setindex!), Array{String, 1}, String, Int64}) -precompile(Tuple{typeof(Base.setindex!), Array{Symbol, 1}, Symbol, Int64}) -precompile(Tuple{typeof(Base.setindex!), Array{Union{Nothing, String}, 1}, String, Int64}) -precompile(Tuple{typeof(Base.setindex!), Base.Dict{Any, Any}, Char, Char}) -precompile(Tuple{typeof(Base.setindex!), Base.Dict{Any, Any}, Char, String}) -precompile(Tuple{typeof(Base.setindex!), Base.Dict{Any, Any}, Module, Symbol}) -precompile(Tuple{typeof(Base.setindex!), Base.Dict{Any, Any}, Type{Union{}}, Symbol}) -precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, REPL.LineEdit.Prompt, Symbol}) -precompile(Tuple{typeof(Base.setindex!), Base.RefValue{Bool}, Bool}) -precompile(Tuple{typeof(Base.setproperty!), Base.Iterators.Stateful{Tuple{String, String}, Any}, Symbol, Tuple{String, Int64}}) -precompile(Tuple{typeof(Base.setproperty!), Base.Process, Symbol, Ptr{Nothing}}) -precompile(Tuple{typeof(Base.setproperty!), Base.Process, Symbol, Symbol}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.MIState, Symbol, Symbol}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}, Symbol, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PrefixSearchState, Symbol, Int64}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PrefixSearchState, Symbol, REPL.LineEdit.MIState}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PrefixSearchState, Symbol, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PrefixSearchState, Symbol, String}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.Prompt, Symbol, Base.Dict{Char, Any}}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PromptState, Symbol, Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.PromptState, Symbol, REPL.LineEdit.InputAreaState}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.SearchState, Symbol, Bool}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEdit.SearchState, Symbol, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.setproperty!), REPL.LineEditREPL, Symbol, Bool}) -precompile(Tuple{typeof(Base.setproperty!), REPL.REPLHistoryProvider, Symbol, Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.setproperty!), REPL.REPLHistoryProvider, Symbol, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, Array{String, 1}}) -precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, String}) -precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, Type{Any}}) -precompile(Tuple{typeof(Base.show), Base.GenericIOBuffer{Array{UInt8, 1}}, UInt64}) -precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Array{Any, 1}}) -precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Int64}) -precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) -precompile(Tuple{typeof(Base.show), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, typeof(OldPkg.dir)}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Array{Float64, 1}}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Array{Float64, 2}}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Array{Int64, 1}}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Float64}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Int64}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, Markdown.MD}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Base.MIME{Symbol("text/plain")}, String}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Int64}) -precompile(Tuple{typeof(Base.show), Base.IOContext{REPL.Terminals.TTYTerminal}, Type{Module}}) -precompile(Tuple{typeof(Base.show_datatype), Base.IOContext{REPL.Terminals.TTYTerminal}, Type{Module}}) -precompile(Tuple{typeof(Base.show_tuple_as_call), Base.IOContext{REPL.Terminals.TTYTerminal}, Symbol, Type{Tuple{typeof(Base.require), Module, Symbol}}}) -precompile(Tuple{typeof(Base.showerror), Base.IOContext{REPL.Terminals.TTYTerminal}, ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.showerror), Base.IOContext{REPL.Terminals.TTYTerminal}, ErrorException, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.showerror), Base.IOContext{REPL.Terminals.TTYTerminal}, MethodError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.showerror), Base.IOContext{REPL.Terminals.TTYTerminal}, UndefVarError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}}) -precompile(Tuple{typeof(Base.similar), Array{Any, 1}, Type{Nothing}, Tuple{Base.OneTo{Int64}}}) -precompile(Tuple{typeof(Base.similar), Array{Base.Docs.DocStr, 1}, Type{Markdown.MD}, Tuple{Base.OneTo{Int64}}}) -precompile(Tuple{typeof(Base.similar), Array{REPL.REPLCompletions.Completion, 1}, Type{String}, Tuple{Base.OneTo{Int64}}}) -precompile(Tuple{typeof(Base.similar), Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, Type{Array{Base.StackTraces.StackFrame, 1}}, Tuple{Base.OneTo{Int64}}}) -precompile(Tuple{typeof(Base.similar), Type{Array{Method, N} where N}, Tuple{Base.OneTo{Int64}}}) -precompile(Tuple{typeof(Base.sizeof), String}) -precompile(Tuple{typeof(Base.skip_deleted_floor!), Base.Dict{Symbol, Any}}) -precompile(Tuple{typeof(Base.sort!), Array{Int64, 1}, Base.Sort.QuickSortAlg, Base.Order.Perm{Base.Order.ForwardOrdering, Array{Tuple{Float64, Int64}, 1}}}) -precompile(Tuple{typeof(Base.start), Nothing}) -precompile(Tuple{typeof(Base.startswith), Base.SubString{String}, String}) -precompile(Tuple{typeof(Base.startswith), String, Char}) -precompile(Tuple{typeof(Base.stream_wait), Base.Timer, Base.Condition}) -precompile(Tuple{typeof(Base.string), String, Nothing, String, String, String, Int64}) -precompile(Tuple{typeof(Base.string), String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Base.VersionNumber, String, String, String, String, String, String, String, String, String, String, String, String, String, String}) -precompile(Tuple{typeof(Base.string), String, Type{Int64}}) -precompile(Tuple{typeof(Base.string), Type{Any}}) -precompile(Tuple{typeof(Base.strip), String}) -precompile(Tuple{typeof(Base.take!), Base.Channel{Any}}) -precompile(Tuple{typeof(Base.take!), Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(Base.task_done_hook), Task}) -precompile(Tuple{typeof(Base.time_print), UInt64, Int64, Int64, Int64}) -precompile(Tuple{typeof(Base.truncate), Base.GenericIOBuffer{Array{UInt8, 1}}, Int64}) -precompile(Tuple{typeof(Base.try_yieldto), typeof(Base.ensure_rescheduled), Base.RefValue{Task}}) -precompile(Tuple{typeof(Base.tuple_type_head), Type{Tuple{Vararg{Int64, N}} where N}}) -precompile(Tuple{typeof(Base.tuple_type_tail), Type{Tuple{Vararg{Int64, N}} where N}}) -precompile(Tuple{typeof(Base.typed_vcat), Type{Any}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{String, 1}}) -precompile(Tuple{typeof(Base.typeinfo_eltype), Type{Any}}) -precompile(Tuple{typeof(Base.typesof), Int64, Int64}) -precompile(Tuple{typeof(Base.unique), Array{Any, 1}}) -precompile(Tuple{typeof(Base.unlock), Base.Threads.RecursiveTatasLock}) -precompile(Tuple{typeof(Base.unpreserve_handle), Base.Timer}) -precompile(Tuple{typeof(Base.unsafe_convert), Type{Ptr{Int64}}, Base.Threads.Atomic{Int64}}) -precompile(Tuple{typeof(Base.unsafe_convert), Type{Ptr{Nothing}}, Ptr{Nothing}}) -precompile(Tuple{typeof(Base.unsafe_convert), Type{Ptr{UInt64}}, Base.Threads.Atomic{UInt64}}) -precompile(Tuple{typeof(Base.unsafe_write), Base.Pipe, Ptr{UInt8}, UInt64}) -precompile(Tuple{typeof(Base.unsafe_write), Base.TTY, Ptr{UInt8}, Int32}) -precompile(Tuple{typeof(Base.unsafe_write), Base.TTY, Ptr{UInt8}, UInt64}) -precompile(Tuple{typeof(Base.uvfinalize), Base.PipeEndpoint}) -precompile(Tuple{typeof(Base.uvfinalize), Base.Process}) -precompile(Tuple{typeof(Base.uvfinalize), Base.TTY}) -precompile(Tuple{typeof(Base.uvfinalize), Base.Timer}) -precompile(Tuple{typeof(Base.vcat), Array{Any, 1}, String, String}) -precompile(Tuple{typeof(Base.vcat), Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}, Array{Base.StackTraces.StackFrame, 1}}) -precompile(Tuple{typeof(Base.vcat), Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{Symbol, 1}, Array{String, 1}}) -precompile(Tuple{typeof(Base.vcat), Markdown.MD, Markdown.MD}) -precompile(Tuple{typeof(Base.vcat), Markdown.MD}) -precompile(Tuple{typeof(Base.vect), Symbol, Vararg{Symbol, N} where N}) -precompile(Tuple{typeof(Base.wait), Base.Condition}) -precompile(Tuple{typeof(Base.wait), Base.Timer}) -precompile(Tuple{typeof(Base.wait)}) -precompile(Tuple{typeof(Base.write), Base.GenericIOBuffer{Array{UInt8, 1}}, String}) -precompile(Tuple{typeof(Base.write), Base.IOStream, Array{UInt8, 1}}) -precompile(Tuple{typeof(Base.write), Base.Pipe, String}) -precompile(Tuple{typeof(Base.write), Base.Process, String}) -precompile(Tuple{typeof(Base.write), Base.TTY, Char}) -precompile(Tuple{typeof(Base.write), Base.TTY, String}) -precompile(Tuple{typeof(Base.write), Base.TTY, UInt8}) -precompile(Tuple{typeof(Base.write), REPL.Terminals.TTYTerminal, String}) -precompile(Tuple{typeof(Base.write), REPL.Terminals.TerminalBuffer, Base.Missing}) -precompile(Tuple{typeof(Base.write), REPL.Terminals.TerminalBuffer, String}) -precompile(Tuple{typeof(Core.Compiler.:(!=)), Type{Any}, Core.Compiler.Const}) -precompile(Tuple{typeof(Core.Compiler.getindex), Array{DataType, 1}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Array{Bool, 0}}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Array{String, 1}}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Broadcast.DefaultArrayStyle{0}, typeof(Base.identity), Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Colon}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.Multimedia.display)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.__atreplinit)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.display_error)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.show)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(REPL.helpmode)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Base.Val{1}, Union}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Char, Char}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Core.Compiler.IndexLinear, Array{Bool, 0}}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Nothing, Nothing}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Nothing, typeof(Base.replace), Nothing}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{QuoteNode, Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{String, Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Symbol, Bool}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{Symbol, GlobalRef}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.:(*)), Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.Multimedia.display), Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.convert), Int64}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.convert), typeof(Base.getindex), typeof(Base.setindex!)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.getindex), typeof(Base.setindex!)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.open_flags)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Tuple{typeof(Base.setindex!)}, Int64}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, Char, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, Core.Compiler.Argument, Core.Compiler.Argument, Core.SSAValue, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, Core.SSAValue, Int64, Core.SSAValue, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, Core.SSAValue, String, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, Int64, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Core.SSAValue, UInt8, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, Tuple{Symbol}, Tuple{Symbol, Symbol, Symbol, Symbol, Symbol, Symbol, Symbol}}) -precompile(Tuple{typeof(Core.Compiler.getindex), Type{Any}, getfield(Markdown, Symbol("#kw##print_wrapped")), Core.SSAValue, Core.SSAValue, Core.SSAValue, Core.Compiler.Argument, Core.SSAValue}) -precompile(Tuple{typeof(Core.Compiler.instanceof_tfunc), Any}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Array{Bool, 0}}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Array{String, 1}}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Broadcast.DefaultArrayStyle{0}, typeof(Base.identity), Int64}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Colon}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.Multimedia.display)}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.__atreplinit)}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.display_error)}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(Base.show)}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.invokelatest), typeof(REPL.helpmode)}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Base.Val{1}, Union}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Char, Char}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Core.Compiler.IndexLinear, Array{Bool, 0}}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Nothing, Nothing}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Nothing, typeof(Base.replace), Nothing}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Symbol, Bool}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{Symbol, GlobalRef}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{typeof(Base.:(*)), Int64}}) -precompile(Tuple{typeof(Core.Compiler.length), Tuple{typeof(Base.open_flags)}}) -precompile(Tuple{typeof(Core.Compiler.rewrap_unionall), Any, Any}) -precompile(Tuple{typeof(Core.Compiler.vect), Type{typeof(typeassert)}}) -precompile(Tuple{typeof(Distributed.flush_gc_msgs), Distributed.Worker}) -precompile(Tuple{typeof(Distributed.flush_gc_msgs)}) -precompile(Tuple{typeof(Distributed.terminate_all_workers)}) -precompile(Tuple{typeof(LibGit2.ensure_initialized)}) -precompile(Tuple{typeof(LibGit2.initialize)}) -precompile(Tuple{typeof(Logging.__init__)}) -precompile(Tuple{typeof(Logging.default_metafmt), Base.CoreLogging.LogLevel, Module, Symbol, Symbol, String, Int64}) -precompile(Tuple{typeof(Logging.default_metafmt), Base.CoreLogging.LogLevel, Nothing, Symbol, Symbol, String, Int64}) -precompile(Tuple{typeof(Markdown.ansi_length), Base.SubString{String}}) -precompile(Tuple{typeof(Markdown.ansi_length), String}) -precompile(Tuple{typeof(Markdown.footnote_link), Base.GenericIOBuffer{Array{UInt8, 1}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.link), Base.GenericIOBuffer{Array{UInt8, 1}}, Markdown.MD}) -precompile(Tuple{typeof(Markdown.term), Base.IOContext{REPL.Terminals.TTYTerminal}, Markdown.Code, Int64}) -precompile(Tuple{typeof(Markdown.term), Base.IOContext{REPL.Terminals.TTYTerminal}, Markdown.Header{1}, Int64}) -precompile(Tuple{typeof(Markdown.term), Base.IOContext{REPL.Terminals.TTYTerminal}, Markdown.HorizontalRule, Int64}) -precompile(Tuple{typeof(Markdown.term), Base.IOContext{REPL.Terminals.TTYTerminal}, Markdown.MD, Int64}) -precompile(Tuple{typeof(Markdown.term), Base.IOContext{REPL.Terminals.TTYTerminal}, Markdown.Paragraph, Int64}) -precompile(Tuple{typeof(Markdown.terminline), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Array{Any, 1}}) -precompile(Tuple{typeof(Markdown.terminline), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Markdown.Code}) -precompile(Tuple{typeof(Markdown.terminline), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Markdown.Link}) -precompile(Tuple{typeof(Markdown.terminline), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, String}) -precompile(Tuple{typeof(Markdown.terminline_string), Base.IOContext{Base.GenericIOBuffer{Array{UInt8, 1}}}, Array{Any, 1}}) -precompile(Tuple{typeof(Markdown.terminline_string), Base.IOContext{REPL.Terminals.TTYTerminal}, Array{Any, 1}}) -precompile(Tuple{typeof(OldPkg.dir)}) -precompile(Tuple{typeof(Pkg.REPLMode.create_mode), REPL.LineEditREPL, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(Pkg.REPLMode.repl_init), REPL.LineEditREPL}) -precompile(Tuple{typeof(REPL.LineEdit.accept_result), REPL.LineEdit.MIState, REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.activate), REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}, REPL.LineEdit.SearchState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.activate), REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}, REPL.LineEdit.PrefixSearchState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.activate), REPL.LineEdit.Prompt, REPL.LineEdit.MIState, REPL.Terminals.TTYTerminal, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.activate), REPL.LineEdit.Prompt, REPL.LineEdit.PromptState, REPL.Terminals.TTYTerminal, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.activate), REPL.LineEdit.Prompt, REPL.LineEdit.PromptState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.activate_region), REPL.LineEdit.MIState, Symbol}) -precompile(Tuple{typeof(REPL.LineEdit.buffer), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.buffer), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.cancel_beep), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.cancel_beep), REPL.LineEdit.PrefixSearchState}) -precompile(Tuple{typeof(REPL.LineEdit.cancel_beep), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.cancel_beep), REPL.LineEdit.SearchState}) -precompile(Tuple{typeof(REPL.LineEdit.commit_changes), REPL.Terminals.TTYTerminal, REPL.Terminals.TerminalBuffer}) -precompile(Tuple{typeof(REPL.LineEdit.common_prefix), Array{String, 1}}) -precompile(Tuple{typeof(REPL.LineEdit.complete_line), REPL.LineEdit.PromptState, Int64}) -precompile(Tuple{typeof(REPL.LineEdit.complete_line), REPL.REPLCompletionProvider, REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.deactivate), REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}, REPL.LineEdit.SearchState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.deactivate), REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}, REPL.LineEdit.PrefixSearchState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.deactivate), REPL.LineEdit.Prompt, REPL.LineEdit.PromptState, REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.LineEdit.deactivate_region), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.deactivate_region), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.default_enter_cb), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.edit_abort), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.edit_backspace), REPL.LineEdit.PromptState, Bool, Bool}) -precompile(Tuple{typeof(REPL.LineEdit.edit_delete), Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(REPL.LineEdit.edit_delete), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.edit_insert), Base.GenericIOBuffer{Array{UInt8, 1}}, Base.SubString{String}}) -precompile(Tuple{typeof(REPL.LineEdit.edit_splice!), REPL.LineEdit.PromptState, Base.Pair{Int64, Int64}, String}) -precompile(Tuple{typeof(REPL.LineEdit.eval), Module, Expr}) -precompile(Tuple{typeof(REPL.LineEdit.history_next_prefix), REPL.LineEdit.PrefixSearchState, REPL.REPLHistoryProvider, String}) -precompile(Tuple{typeof(REPL.LineEdit.history_prev_prefix), REPL.LineEdit.PrefixSearchState, REPL.REPLHistoryProvider, String}) -precompile(Tuple{typeof(REPL.LineEdit.init_state), REPL.Terminals.TTYTerminal, REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.init_state), REPL.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface}) -precompile(Tuple{typeof(REPL.LineEdit.init_state), REPL.Terminals.TTYTerminal, REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.is_region_active), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.keymap), REPL.LineEdit.PrefixSearchState, REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.keymap), REPL.LineEdit.SearchState, REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.keymap_data), REPL.LineEdit.PrefixSearchState, REPL.LineEdit.PrefixHistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.keymap_data), REPL.LineEdit.SearchState, REPL.LineEdit.HistoryPrompt{REPL.REPLHistoryProvider}}) -precompile(Tuple{typeof(REPL.LineEdit.match_input), Base.Dict{Char, Any}, REPL.LineEdit.MIState, Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(REPL.LineEdit.match_input), Base.Dict{Char, Any}, REPL.LineEdit.MIState, REPL.Terminals.TTYTerminal, Array{Char, 1}, Base.Dict{Char, Any}}) -precompile(Tuple{typeof(REPL.LineEdit.match_input), Base.Dict{Char, Any}, REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.match_input), Function, REPL.LineEdit.MIState, REPL.Terminals.TTYTerminal, Array{Char, 1}, Base.Dict{Char, Any}}) -precompile(Tuple{typeof(REPL.LineEdit.mode), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.options), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.options), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.pop_undo), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.prompt_string), typeof(Base.input_color)}) -precompile(Tuple{typeof(REPL.LineEdit.push_undo), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TTYTerminal, REPL.LineEdit.PrefixSearchState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TTYTerminal, REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TTYTerminal, REPL.LineEdit.SearchState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal, Base.GenericIOBuffer{Array{UInt8, 1}}, REPL.LineEdit.InputAreaState, String}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal, REPL.LineEdit.PrefixSearchState}) -precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TerminalBuffer, REPL.Terminals.TTYTerminal, REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.region_active), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.replace_line), REPL.LineEdit.MIState, String}) -precompile(Tuple{typeof(REPL.LineEdit.replace_line), REPL.LineEdit.PromptState, Base.GenericIOBuffer{Array{UInt8, 1}}}) -precompile(Tuple{typeof(REPL.LineEdit.reset_state), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.reset_state), REPL.LineEdit.PrefixSearchState}) -precompile(Tuple{typeof(REPL.LineEdit.reset_state), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.reset_state), REPL.LineEdit.SearchState}) -precompile(Tuple{typeof(REPL.LineEdit.reset_state), REPL.REPLHistoryProvider}) -precompile(Tuple{typeof(REPL.LineEdit.run_interface), REPL.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface, REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.set_action!), REPL.LineEdit.MIState, Symbol}) -precompile(Tuple{typeof(REPL.LineEdit.setmark), REPL.LineEdit.MIState, Bool}) -precompile(Tuple{typeof(REPL.LineEdit.setup_prefix_keymap), REPL.REPLHistoryProvider, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(REPL.LineEdit.setup_search_keymap), REPL.REPLHistoryProvider}) -precompile(Tuple{typeof(REPL.LineEdit.show_completions), REPL.LineEdit.PromptState, Array{String, 1}}) -precompile(Tuple{typeof(REPL.LineEdit.terminal), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.LineEdit.terminal), REPL.LineEdit.PrefixSearchState}) -precompile(Tuple{typeof(REPL.LineEdit.terminal), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.LineEdit.terminal), REPL.LineEdit.SearchState}) -precompile(Tuple{typeof(REPL.REPLCompletions.completion_text), REPL.REPLCompletions.PackageCompletion}) -precompile(Tuple{typeof(REPL.REPLCompletions.completions), String, Int64, Module}) -precompile(Tuple{typeof(REPL.REPLCompletions.get_type), Symbol, Module}) -precompile(Tuple{typeof(REPL.REPLCompletions.get_value), Symbol, Module}) -precompile(Tuple{typeof(REPL.Terminals.beep), REPL.LineEdit.MIState}) -precompile(Tuple{typeof(REPL.Terminals.beep), REPL.LineEdit.PromptState, Float64, Float64, Float64}) -precompile(Tuple{typeof(REPL.Terminals.beep), REPL.LineEdit.SearchState}) -precompile(Tuple{typeof(REPL.Terminals.cmove_col), REPL.Terminals.TTYTerminal, Int64}) -precompile(Tuple{typeof(REPL.Terminals.cmove_down), REPL.Terminals.TTYTerminal, Int64}) -precompile(Tuple{typeof(REPL.Terminals.hascolor), REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.Terminals.width), REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.banner), REPL.Terminals.TTYTerminal, REPL.Terminals.TTYTerminal}) -precompile(Tuple{typeof(REPL.ends_with_semicolon), String}) -precompile(Tuple{typeof(REPL.eval), Module, Expr}) -precompile(Tuple{typeof(REPL.eval), Module, String}) -precompile(Tuple{typeof(REPL.eval_user_input), Any, REPL.REPLBackend}) -precompile(Tuple{typeof(REPL.eval_user_input), Expr, REPL.REPLBackend}) -precompile(Tuple{typeof(REPL.filtervalid), Array{Any, 1}}) -precompile(Tuple{typeof(REPL.fuzzysort), String, Array{String, 1}}) -precompile(Tuple{typeof(REPL.helpmode), Base.TTY, String}) -precompile(Tuple{typeof(REPL.helpmode), String}) -precompile(Tuple{typeof(REPL.hist_from_file), REPL.REPLHistoryProvider, Base.IOStream, String}) -precompile(Tuple{typeof(REPL.insert_hlines), Base.TTY, Markdown.MD}) -precompile(Tuple{typeof(REPL.lookup_doc), Symbol}) -precompile(Tuple{typeof(REPL.mode_idx), REPL.REPLHistoryProvider, REPL.LineEdit.Prompt}) -precompile(Tuple{typeof(REPL.prepare_next), REPL.LineEditREPL}) -precompile(Tuple{typeof(REPL.print_response), REPL.LineEditREPL, ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, Bool, Bool}) -precompile(Tuple{typeof(REPL.print_response), REPL.LineEditREPL, Markdown.MD, Nothing, Bool, Bool}) -precompile(Tuple{typeof(REPL.print_response), REPL.Terminals.TTYTerminal, ArgumentError, Array{Union{Ptr{Nothing}, Base.InterpreterIP}, 1}, Bool, Bool, Nothing}) -precompile(Tuple{typeof(REPL.print_response), REPL.Terminals.TTYTerminal, Markdown.MD, Nothing, Bool, Bool, Nothing}) -precompile(Tuple{typeof(REPL.repl), Base.TTY, Symbol}) -precompile(Tuple{typeof(REPL.repl_latex), Base.TTY, String}) -precompile(Tuple{typeof(REPL.repl_search), Base.TTY, String}) -precompile(Tuple{typeof(REPL.reset), REPL.LineEditREPL}) -precompile(Tuple{typeof(REPL.return_callback), REPL.LineEdit.PromptState}) -precompile(Tuple{typeof(REPL.run_repl), REPL.LineEditREPL, typeof(x->nothing)}) -precompile(Tuple{typeof(REPL.send_to_backend), Expr, Base.Channel{Any}, Base.Channel{Any}}) -precompile(Tuple{typeof(REPL.send_to_backend), Expr, REPL.REPLBackendRef}) -precompile(Tuple{typeof(REPL.send_to_backend), String, Base.Channel{Any}, Base.Channel{Any}}) -precompile(Tuple{typeof(REPL.send_to_backend), String, REPL.REPLBackendRef}) -precompile(Tuple{typeof(REPL.send_to_backend), Symbol, Base.Channel{Any}, Base.Channel{Any}}) -precompile(Tuple{typeof(REPL.send_to_backend), Symbol, REPL.REPLBackendRef}) -precompile(Tuple{typeof(REPL.setup_interface), REPL.LineEditREPL, Bool, Array{Base.Dict{Any, Any}, 1}}) -precompile(Tuple{typeof(REPL.setup_interface), REPL.LineEditREPL, Bool, Base.Dict{Any, Any}}) -precompile(Tuple{typeof(REPL.setup_interface), REPL.LineEditREPL}) -precompile(Tuple{typeof(REPL.start_repl_backend), Base.Channel{Any}, Base.Channel{Any}}) -precompile(Tuple{typeof(Random.__init__)}) -precompile(Tuple{typeof(eval), Module, Expr}) -end -end diff --git a/base/sysimg.jl b/base/sysimg.jl index fe9fefe2ca136..ca791acbaaa22 100644 --- a/base/sysimg.jl +++ b/base/sysimg.jl @@ -521,9 +521,9 @@ let :SuiteSparse, :Distributed, :SharedArrays, - :Pkg, :Test, :REPL, + :Pkg, :Statistics, ] @@ -921,11 +921,9 @@ Base.init_load_path() # want to be able to find external packages in userimg.jl let tot_time_userimg = @elapsed (Base.isfile("userimg.jl") && Base.include(Main, "userimg.jl")) -tot_time_precompile = Base.is_primary_base_module ? (@elapsed Base.include(Base, "precompile.jl")) : 0.0 - tot_time_base = (Base.end_base_include - Base.start_base_include) * 10.0^(-9) -tot_time = tot_time_base + Base.tot_time_stdlib[] + tot_time_userimg + tot_time_precompile +tot_time = tot_time_base + Base.tot_time_stdlib[] + tot_time_userimg println("Sysimage built. Summary:") print("Total ─────── "); Base.time_print(tot_time * 10^9); print(" \n"); @@ -934,7 +932,6 @@ print("Stdlibs: ──── "); Base.time_print(Base.tot_time_stdlib[] * 10^9); if isfile("userimg.jl") print("Userimg: ──── "); Base.time_print(tot_time_userimg * 10^9); print(" "); show(IOContext(stdout, :compact=>true), (tot_time_userimg / tot_time) * 100); println("%") end -print("Precompile: ─ "); Base.time_print(tot_time_precompile * 10^9); print(" "); show(IOContext(stdout, :compact=>true), (tot_time_precompile / tot_time) * 100); println("%") end empty!(LOAD_PATH) diff --git a/contrib/add_license_to_files.jl b/contrib/add_license_to_files.jl index 1aa05af96e452..b2c731ea2a4e4 100644 --- a/contrib/add_license_to_files.jl +++ b/contrib/add_license_to_files.jl @@ -30,7 +30,6 @@ const excludedirs = [ const skipfiles = [ "../contrib/add_license_to_files.jl", - "../contrib/fixup_precompile.jl", # files to check - already copyright # see: https://github.com/JuliaLang/julia/pull/11073#issuecomment-98099389 "../base/special/trig.jl", diff --git a/contrib/fixup_precompile.jl b/contrib/fixup_precompile.jl deleted file mode 100644 index f1139a68e9bbe..0000000000000 --- a/contrib/fixup_precompile.jl +++ /dev/null @@ -1,70 +0,0 @@ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -function needs_USE_GPL_LIBS(s::String) - occursin("CHOLMOD", s) && return true - return false -end - -const HEADER = """ -# This file is a part of Julia. License is MIT: https://julialang.org/license - -# Steps to regenerate this file: -# 1. Remove all `precompile` calls -# 2. Rebuild system image -# 3. Enable TRACE_COMPILE in options.h and rebuild -# 4. Run `./julia 2> precompiles.txt` and do various things. -# 5. Run `./julia contrib/fixup_precompile.jl precompiles.txt to overwrite `precompile.jl` -# or ./julia contrib/fixup_precompile.jl --merge precompiles.txt to merge into existing -# `precompile.jl` -""" - -function fixup_precompile(new_precompile_file; merge=false) - old_precompile_file = joinpath(Sys.BINDIR, "..", "..", "base", "precompile.jl") - precompile_statements = Set{String}() - - for file in [new_precompile_file; merge ? old_precompile_file : []] - for line in eachline(file) - line = strip(line) - # filter out closures, which might have different generated names in different environments - occursin(r"#[0-9]", line) && continue - # Other stuff than precompile statements might have been written to STDERR - startswith(line, "precompile(Tuple{") || continue - # Ok, add the line - push!(precompile_statements, line) - end - end - - open(old_precompile_file, "w") do f - println(f, HEADER) - println(f, """ - let - PrecompileStagingArea = Module() - for (_pkgid, _mod) in Base.loaded_modules - if !(_pkgid.name in ("Main", "Core", "Base")) - @eval PrecompileStagingArea \$(Symbol(_mod)) = \$_mod - end - end - @eval PrecompileStagingArea begin""") - for statement in sort(collect(precompile_statements)) - isgpl = needs_USE_GPL_LIBS(statement) - isgpl && print(f, "if Base.USE_GPL_LIBS\n ") - println(f, statement) - isgpl && println(f, "end") - end - println(f, "end\nend") - end - if merge - "Merged $new_precompile_file into $old_precompile_file" - else - "Overwrite $old_precompile_file with $new_precompile_file" - end -end - -if length(ARGS) == 1 - fixup_precompile(joinpath(pwd(), ARGS[1])) -elseif length(ARGS) == 2 - @assert ARGS[1] == "--merge" - fixup_precompile(joinpath(pwd(), ARGS[2]); merge = true) -else - error("invalid arguments") -end diff --git a/contrib/generate_precompile.jl b/contrib/generate_precompile.jl new file mode 100644 index 0000000000000..c3afebf842e20 --- /dev/null +++ b/contrib/generate_precompile.jl @@ -0,0 +1,67 @@ +Base.__init__() + +function create_precompile_file() + println("Generating precompile statements...") + t = time() + + sysimg = joinpath(dirname(Sys.BINDIR), "lib", "julia", "sys") + tmp = tempname() + if haskey(Base.loaded_modules, Base.PkgId(Base.UUID("3fa0cd96-eef1-5676-8a61-b3b8758bbffb"), "REPL")) + setup = """ + @async while true + sleep(0.01) + if isdefined(Base, :active_repl) + exit(0) + end + end + """ + # Record precompile statements when starting a julia session with a repl + run(pipeline(`$(Base.julia_cmd()) --sysimage $sysimg.ji --trace-compile=yes -O0 --banner=no --startup-file=no -e $setup -i`; stderr=tmp)) + + # Replay a REPL script + repl_replay = joinpath(@__DIR__, "precompile_replay.jl") + if isfile(repl_replay) + run(pipeline(`$(Base.julia_cmd()) --sysimage $sysimg.ji --trace-compile=yes -O0 --startup-file=no $repl_replay`; stderr=tmp, append=true)) + end + else + # No REPL, just record the startup + run(pipeline(`$(Base.julia_cmd()) --sysimage $sysimg.ji --trace-compile=yes -O0 --startup-file=no -e0`; stderr=tmp)) + end + + isfile(tmp) || return + + # Replace the FakeTermiaal with a TTYYerminal and filter out everything we compiled in Main + precompiles = readlines(tmp) + new_precompiles = Set{String}() + for statement in precompiles + startswith(statement, "precompile(Tuple{") || continue + statement = replace(statement, "FakeTerminals.FakeTerminal" => "REPL.Terminals.TTYTerminal") + (occursin(r"Main.", statement) || occursin(r"FakeTerminals.", statement)) && continue + push!(new_precompiles, statement) + end + + write(tmp, join(sort(collect(new_precompiles)), '\n')) + # Load the precompile statements + let + PrecompileStagingArea = Module() + for (_pkgid, _mod) in Base.loaded_modules + if !(_pkgid.name in ("Main", "Core", "Base")) + @eval PrecompileStagingArea $(Symbol(_mod)) = $_mod + end + end + + Base.include(PrecompileStagingArea, tmp) + @eval PrecompileStagingArea begin + # Could startup with REPL banner instead but it is a bit visually noisy, so just precompile it here. + precompile(Tuple{typeof(REPL.banner), REPL.Terminals.TTYTerminal, REPL.Terminals.TTYTerminal}) + end + + end + + print("Precompile statements generated in "), Base.time_print((time() - t) * 10^9) + println() + return +end + +create_precompile_file() + diff --git a/contrib/precompile_replay.jl b/contrib/precompile_replay.jl new file mode 100644 index 0000000000000..b1bfd6308f48a --- /dev/null +++ b/contrib/precompile_replay.jl @@ -0,0 +1,67 @@ +Base.__init__() + +import REPL +include(joinpath(Sys.STDLIB, "REPL", "test", "FakeTerminals.jl")) +import .FakeTerminals.FakeTerminal +include(joinpath(Sys.STDLIB, "REPL", "test", "fake_repl.jl")) + +const CTRL_C = '\x03' +const UP_ARROW = "\e[A" +const DOWN_ARROW = "\e[B" + +# TODO: Have a utility to generate this from a real REPL session? +precompile_script = """ +2+2 +println("Hello World") +@time 1+1 +?reinterpret +;pwd +using Ra\t$CTRL_C +\\alpha\t$CTRL_C +\e[200~paste here ;)\e[201~"$CTRL_C +$UP_ARROW$DOWN_ARROW +123\b\b\b$CTRL_C +f(x) = x03 +f(1,2) +[][1] +""" + + +function run_repl() + # Writing ^C to the repl will cause sigint, so let's not die on that + ccall(:jl_exit_on_sigint, Cvoid, (Cint,), 0) + + fake_repl() do stdin_write, stdout_read, repl + repl.specialdisplay = REPL.REPLDisplay(repl) + repl.history_file = false + + repltask = @async begin + REPL.run_repl(repl) + end + + global inc = false + global b = Condition() + global c = Condition() + mod = @__MODULE__ + let cmd = "\"Hello REPL\"" + write(stdin_write, "$mod.inc || wait($mod.b); r = $cmd; notify($mod.c); r\r") + end + inc = true + notify(b) + wait(c) + + write(stdin_write, precompile_script) + + s = readavailable(stdout_read) + + # Close REPL ^D + write(stdin_write, '\x04') + Base._wait(repltask) + + nothing + end + ccall(:jl_exit_on_sigint, Cvoid, (Cint,), 1) +end + + +run_repl() \ No newline at end of file diff --git a/src/gf.c b/src/gf.c index 8a108087bee43..3851807632dd6 100644 --- a/src/gf.c +++ b/src/gf.c @@ -1097,13 +1097,13 @@ static jl_method_instance_t *jl_mt_assoc_by_type(jl_methtable_t *mt, jl_datatype if (entry != NULL) { jl_method_t *m = entry->func.method; if (!jl_has_call_ambiguities((jl_value_t*)tt, m)) { -#ifdef TRACE_COMPILE - if (!jl_has_free_typevars((jl_value_t*)tt)) { - jl_printf(JL_STDERR, "precompile("); - jl_static_show(JL_STDERR, (jl_value_t*)tt); - jl_printf(JL_STDERR, ")\n"); + if (jl_options.trace_compile) { + if (!jl_has_free_typevars((jl_value_t*)tt)) { + jl_printf(JL_STDERR, "precompile("); + jl_static_show(JL_STDERR, (jl_value_t*)tt); + jl_printf(JL_STDERR, ")\n"); + } } -#endif if (!mt_cache) { intptr_t nspec = (mt == jl_type_type_mt ? m->nargs + 1 : mt->max_args + 2); jl_compilation_sig(tt, env, m, nspec, &newparams); diff --git a/src/jloptions.c b/src/jloptions.c index 147e0b8a28c7f..9d2a30e2d0fa7 100644 --- a/src/jloptions.c +++ b/src/jloptions.c @@ -55,6 +55,11 @@ jl_options_t jl_options = { 0, // quiet 0, // method overwrite warning 1, // can_inline JL_OPTIONS_POLLY_ON, // polly +#ifdef TRACE_COMPILE + 1, // trace_compile +#else + 0, // trace_compile +#endif JL_OPTIONS_FAST_MATH_DEFAULT, 0, // worker NULL, // cookie @@ -159,6 +164,7 @@ JL_DLLEXPORT void jl_parse_opts(int *argcp, char ***argvp) opt_warn_overwrite, opt_inline, opt_polly, + opt_trace_compile, opt_math_mode, opt_worker, opt_bind_to, @@ -215,6 +221,7 @@ JL_DLLEXPORT void jl_parse_opts(int *argcp, char ***argvp) { "warn-overwrite", required_argument, 0, opt_warn_overwrite }, { "inline", required_argument, 0, opt_inline }, { "polly", required_argument, 0, opt_polly }, + { "trace-compile", required_argument, 0, opt_trace_compile }, { "math-mode", required_argument, 0, opt_math_mode }, { "handle-signals", required_argument, 0, opt_handle_signals }, // hidden command line options @@ -567,6 +574,15 @@ JL_DLLEXPORT void jl_parse_opts(int *argcp, char ***argvp) jl_errorf("julia: invalid argument to --polly (%s)", optarg); } break; + case opt_trace_compile: + if (!strcmp(optarg,"yes")) + jl_options.trace_compile = 1; + else if (!strcmp(optarg,"no")) + jl_options.trace_compile = 0; + else { + jl_errorf("julia: invalid argument to --trace-compile (%s)", optarg); + } + break; case opt_math_mode: if (!strcmp(optarg,"ieee")) jl_options.fast_math = JL_OPTIONS_FAST_MATH_OFF; diff --git a/src/julia.h b/src/julia.h index e5b1d86e1251e..24a99a4b14368 100644 --- a/src/julia.h +++ b/src/julia.h @@ -1794,6 +1794,7 @@ typedef struct { int8_t warn_overwrite; int8_t can_inline; int8_t polly; + int8_t trace_compile; int8_t fast_math; int8_t worker; const char *cookie; diff --git a/stdlib/REPL/src/REPL.jl b/stdlib/REPL/src/REPL.jl index e2784dd8fd6f2..7ace23ccfd266 100644 --- a/stdlib/REPL/src/REPL.jl +++ b/stdlib/REPL/src/REPL.jl @@ -179,7 +179,7 @@ struct REPLBackendRef response_channel::Channel end -function run_repl(repl::AbstractREPL, consumer::Function = x->nothing) +function run_repl(repl::AbstractREPL, @nospecialize(consumer = x -> nothing)) repl_channel = Channel(1) response_channel = Channel(1) backend = start_repl_backend(repl_channel, response_channel) diff --git a/stdlib/REPL/test/fake_repl.jl b/stdlib/REPL/test/fake_repl.jl new file mode 100644 index 0000000000000..ea6de10dbc1b2 --- /dev/null +++ b/stdlib/REPL/test/fake_repl.jl @@ -0,0 +1,49 @@ + +using Test + +function kill_timer(delay) + # Give ourselves a generous timer here, just to prevent + # this causing e.g. a CI hang when there's something unexpected in the output. + # This is really messy and leaves the process in an undefined state. + # the proper and correct way to do this in real code would be to destroy the + # IO handles: `close(stdout_read); close(stdin_write)` + test_task = current_task() + function kill_test(t) + # **DON'T COPY ME.** + # The correct way to handle timeouts is to close the handle: + # e.g. `close(stdout_read); close(stdin_write)` + schedule(test_task, "hard kill repl test"; error=true) + print(stderr, "WARNING: attempting hard kill of repl test after exceeding timeout\n") + end + return Timer(kill_test, delay) +end + +# REPL tests +function fake_repl(@nospecialize(f); options::REPL.Options=REPL.Options(confirm_exit=false)) + # Use pipes so we can easily do blocking reads + # In the future if we want we can add a test that the right object + # gets displayed by intercepting the display + input = Pipe() + output = Pipe() + err = Pipe() + Base.link_pipe!(input, reader_supports_async=true, writer_supports_async=true) + Base.link_pipe!(output, reader_supports_async=true, writer_supports_async=true) + Base.link_pipe!(err, reader_supports_async=true, writer_supports_async=true) + + repl = REPL.LineEditREPL(FakeTerminal(input.out, output.in, err.in), true) + repl.options = options + + hard_kill = kill_timer(900) # Your debugging session starts now. You have 15 minutes. Go. + f(input.in, output.out, repl) + t = @async begin + close(input.in) + close(output.in) + close(err.in) + end + @test read(err.out, String) == "" + #display(read(output.out, String)) + #print(read(output.out, String)) + Base._wait(t) + close(hard_kill) + nothing +end \ No newline at end of file diff --git a/stdlib/REPL/test/repl.jl b/stdlib/REPL/test/repl.jl index 01a1d426a2b2e..491ffc057a601 100644 --- a/stdlib/REPL/test/repl.jl +++ b/stdlib/REPL/test/repl.jl @@ -15,53 +15,7 @@ include(joinpath(BASE_TEST_PATH, "testenv.jl")) include("FakeTerminals.jl") import .FakeTerminals.FakeTerminal - - -function kill_timer(delay) - # Give ourselves a generous timer here, just to prevent - # this causing e.g. a CI hang when there's something unexpected in the output. - # This is really messy and leaves the process in an undefined state. - # the proper and correct way to do this in real code would be to destroy the - # IO handles: `close(stdout_read); close(stdin_write)` - test_task = current_task() - function kill_test(t) - # **DON'T COPY ME.** - # The correct way to handle timeouts is to close the handle: - # e.g. `close(stdout_read); close(stdin_write)` - schedule(test_task, "hard kill repl test"; error=true) - print(stderr, "WARNING: attempting hard kill of repl test after exceeding timeout\n") - end - return Timer(kill_test, delay) -end - -# REPL tests -function fake_repl(@nospecialize(f); options::REPL.Options=REPL.Options(confirm_exit=false)) - # Use pipes so we can easily do blocking reads - # In the future if we want we can add a test that the right object - # gets displayed by intercepting the display - input = Pipe() - output = Pipe() - err = Pipe() - Base.link_pipe!(input, reader_supports_async=true, writer_supports_async=true) - Base.link_pipe!(output, reader_supports_async=true, writer_supports_async=true) - Base.link_pipe!(err, reader_supports_async=true, writer_supports_async=true) - - repl = REPL.LineEditREPL(FakeTerminal(input.out, output.in, err.in), true) - repl.options = options - - hard_kill = kill_timer(900) # Your debugging session starts now. You have 15 minutes. Go. - f(input.in, output.out, repl) - t = @async begin - close(input.in) - close(output.in) - close(err.in) - end - @test read(err.out, String) == "" - #display(read(output.out, String)) - Base._wait(t) - close(hard_kill) - nothing -end +include("fake_repl.jl") # Writing ^C to the repl will cause sigint, so let's not die on that ccall(:jl_exit_on_sigint, Cvoid, (Cint,), 0)