diff --git a/Project.toml b/Project.toml index 1ff522a82..af3b030ab 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ChainRulesCore" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "0.9.40" +version = "0.9.41" [deps] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" diff --git a/src/ChainRulesCore.jl b/src/ChainRulesCore.jl index 35ff8ffe1..48c2be9e4 100644 --- a/src/ChainRulesCore.jl +++ b/src/ChainRulesCore.jl @@ -30,4 +30,6 @@ include("rules.jl") include("rule_definition_tools.jl") include("ruleset_loading.jl") +include("precompile.jl") + end # module diff --git a/src/precompile.jl b/src/precompile.jl new file mode 100644 index 000000000..ba4e72c8d --- /dev/null +++ b/src/precompile.jl @@ -0,0 +1 @@ +precompile(_package_hook, (Base.PkgId,)) diff --git a/src/ruleset_loading.jl b/src/ruleset_loading.jl index 2b8b91cea..aa40fae26 100644 --- a/src/ruleset_loading.jl +++ b/src/ruleset_loading.jl @@ -1,7 +1,8 @@ # Infastructure to support generating overloads from rules. +_package_hook(::Base.PkgId) = refresh_rules() function __init__() # Need to refresh rules when a package is loaded - push!(Base.package_callbacks, pkgid -> refresh_rules()) + push!(Base.package_callbacks, _package_hook) end # Holds all the hook functions that are invokes when a new rule is defined