Skip to content

Commit

Permalink
Remove Compat.jl dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
adrhill committed Sep 4, 2024
1 parent f8d1397 commit aae032a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
2 changes: 0 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ version = "1.7.1"

[deps]
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"

[weakdeps]
Expand All @@ -18,7 +17,6 @@ ADTypesEnzymeCoreExt = "EnzymeCore"

[compat]
ChainRulesCore = "1.0.2"
Compat = "3.47, 4.10"
EnzymeCore = "0.5.3,0.6,0.7"
julia = "1.6"

Expand Down
35 changes: 24 additions & 11 deletions src/ADTypes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
module ADTypes

using Base: @deprecate
using Compat: @compat # for `public`

"""
AbstractADType
Expand Down Expand Up @@ -47,28 +46,42 @@ export AutoChainRules,
AutoTapir,
AutoTracker,
AutoZygote
@compat public AbstractMode
@compat public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode
@compat public mode
@compat public Auto

# Sparse Automatic Differentiation
export AutoSparse
@compat public dense_ad

# Sparsity detection
export AbstractSparsityDetector
export jacobian_sparsity, hessian_sparsity
@compat public sparsity_detector
@compat public NoSparsityDetector
@compat public KnownJacobianSparsityDetector, KnownHessianSparsityDetector

# Matrix coloring
export AbstractColoringAlgorithm
export column_coloring, row_coloring, symmetric_coloring
@compat public coloring_algorithm
@compat public NoColoringAlgorithm

# legacy exports are taken care of by @deprecated

# Define public interface
# To avoid a dependency on Compat.jl, this uses a trick suggested by Lilith Hafner:
# https://discourse.julialang.org/t/is-compat-jl-worth-it-for-the-public-keyword/119041/2
if VERSION >= v"1.11.0-DEV.469"
# Automatic Differentiation
eval(Meta.parse("public AbstractMode"))
eval(Meta.parse("public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode"))
eval(Meta.parse("public mode"))
eval(Meta.parse("public Auto"))

# Sparse Automatic Differentiation
eval(Meta.parse("public dense_ad"))

# Sparsity detection
eval(Meta.parse("public sparsity_detector"))
eval(Meta.parse("public NoSparsityDetector"))
eval(Meta.parse("public KnownJacobianSparsityDetector"))
eval(Meta.parse("public KnownHessianSparsityDetector"))

# Matrix coloring
eval(Meta.parse("public NoColoringAlgorithm"))
eval(Meta.parse("public coloring_algorithm"))
end

end

0 comments on commit aae032a

Please sign in to comment.