diff --git a/src/precompile.jl b/src/precompile.jl index 83810a7..767d876 100644 --- a/src/precompile.jl +++ b/src/precompile.jl @@ -2,8 +2,8 @@ using Random function _precompile_() ccall(:jl_generating_output, Cint, ()) == 1 || return nothing - normedtypes = (N0f8, N0f16) # precompiled Normed types - realtypes = (Float16, Float32, Float64, Int) # types for mixed Normed/Real operations + normedtypes = (N0f8,) # N0f8 is most common and accelerates others, too + realtypes = (Float16, Float32, Float64, Int) # types for mixed Normed/Real operations for T in normedtypes for f in (+, -, abs, eps) # unary operations precompile(Tuple{typeof(f),T}) @@ -29,5 +29,12 @@ function _precompile_() precompile(Tuple{typeof(convert),Type{T},S}) precompile(Tuple{typeof(convert),Type{S},T}) end + # display in the terminal, into pipes and into buffers (e.g. `repr`) + for IOT in (IOContext{Base.TTY}, IOContext{Base.PipeEndpoint}, IOContext{IOBuffer}, IOBuffer) + precompile(Tuple{typeof(show),IOT,T}) + precompile(Tuple{typeof(print),IOT,T}) + precompile(Tuple{typeof(show),IOT,MIME"text/plain",T}) + precompile(Tuple{typeof(show),IOT,MIME"text/plain",Vector{T}}) + end end end