-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
Many "introspection" functions in DiffRules like DiffRules.diffrules look at the global variable DEFINED_DIFFRULES to collect information about what diff rules are defined. I think this has some issues:
- Only diff rules defined inside DiffRules.jl will be inside
DEFINED_DIFFRULES. Packages that use@define_diffulewill not be in that list. That is because side effects like adding to a global variable are not visible when modified during the time a package gets precompiled. You would have to add stuff to it in__init__for it to be visible. - Accesses are made with a symbol as an argument, for example,
DiffRules.hasdiffrule(:Base, :sin, 1). This feels to me like it should be made with a module as first argument.
I encounter this when I try to make e.g. LogExpFunctions into an extension (which makes it a separate module). I'm trying to think of ways to improve this that are backwards compatible.
devmotion
Metadata
Metadata
Assignees
Labels
No labels