Open
Description
Transducers should reduce their dependencies, as pointed in the zulip channel. some cases are LinearAlgebra
, Test
and Markdown
, here is an analysis on those dependencies, (done by calling Pkg.why
and looking at each pkg code)
LinearAlgebra:
Transducers → Accessors → ConstructionBase → LinearAlgebra
Transducers → Accessors → LinearAlgebra
Transducers → Adapt → LinearAlgebra
Transducers → BangBang → Accessors → ConstructionBase → LinearAlgebra
Transducers → BangBang → Accessors → LinearAlgebra
Transducers → BangBang → ConstructionBase → LinearAlgebra
Transducers → BangBang → LinearAlgebra
Transducers → ConstructionBase → LinearAlgebra
Transducers → MicroCollections → Accessors → ConstructionBase → LinearAlgebra
Transducers → MicroCollections → Accessors → LinearAlgebra
Transducers → MicroCollections → BangBang → Accessors → ConstructionBase → LinearAlgebra
Transducers → MicroCollections → BangBang → Accessors → LinearAlgebra
Transducers → MicroCollections → BangBang → ConstructionBase → LinearAlgebra
Transducers → MicroCollections → BangBang → LinearAlgebra
Transducers → SplittablesBase → Setfield → ConstructionBase → LinearAlgebra
Transducers → Tables → LinearAlgebra
filtering for duplicates:
ConstructionBase → LinearAlgebra
Accessors → LinearAlgebra
Adapt → LinearAlgebra
BangBang → LinearAlgebra
Tables → LinearAlgebra
the situation is the following:
ConstructionBase
: uses linear algebra for some constructors, ConstructionBase should be defining an extensionAdapt
: needs linear algebra, transducers should define an extensionAccessors
LinearAlgebra loaded via ext (EDIT: code is loaded unconditionally, see Errors in extensions during precompilation JuliaObjects/Accessors.jl#127)BangBang
: /~https://github.com/JuliaFolds2/BangBang.jl/blob/master/src/linearalgebra.jl .I don't know what to do about this, seems exported functionality.Tables
: loads linear algebra (i dont't know where), and transducers seems to use it (?):Lines 28 to 31 in d264b62
Test
Transducers → Accessors → InverseFunctions → Test
Transducers → Accessors → Test
Transducers → BangBang → Accessors → InverseFunctions → Test
Transducers → BangBang → Accessors → Test
Transducers → MicroCollections → Accessors → InverseFunctions → Test
Transducers → MicroCollections → Accessors → Test
Transducers → MicroCollections → BangBang → Accessors → InverseFunctions → Test
Transducers → MicroCollections → BangBang → Accessors → Test
Transducers → SplittablesBase → Test
filtering duplicates:
InverseFunctions → Test
Accessors → Test
SplittablesBase → Test
the situation here is the following:
InverseFunctions
: exports test functionality (fixed by Make Test a weak dependency JuliaMath/InverseFunctions.jl#52)Accessors
: loaded via ext (EDIT: code is loaded unconditionally, see Errors in extensions during precompilation JuliaObjects/Accessors.jl#127) (being worked on in Don't make Test a dependency JuliaObjects/Accessors.jl#164)SplittablesBase
: there is some testing functionality (that was being moved toSplittablesTesting
but the code still recides in SplittablesBase. the best option here would be to make a breaking release, moving all the testing code to SplittablesTesting (that would also require moving SplittablesTesting to JuliaFolds2
Markdown:
Transducers → Accessors → InverseFunctions → Test → InteractiveUtils → Markdown
Transducers → Accessors → MacroTools → Markdown
Transducers → Accessors → Markdown
Transducers → Accessors → Test → InteractiveUtils → Markdown
Transducers → BangBang → Accessors → InverseFunctions → Test → InteractiveUtils → Markdown
Transducers → BangBang → Accessors → MacroTools → Markdown
Transducers → BangBang → Accessors → Markdown
Transducers → BangBang → Accessors → Test → InteractiveUtils → Markdown
Transducers → Markdown
Transducers → MicroCollections → Accessors → InverseFunctions → Test → InteractiveUtils → Markdown
Transducers → MicroCollections → Accessors → MacroTools → Markdown
Transducers → MicroCollections → Accessors → Markdown
Transducers → MicroCollections → Accessors → Test → InteractiveUtils → Markdown
Transducers → MicroCollections → BangBang → Accessors → InverseFunctions → Test → InteractiveUtils → Markdown
Transducers → MicroCollections → BangBang → Accessors → MacroTools → Markdown
Transducers → MicroCollections → BangBang → Accessors → Markdown
Transducers → MicroCollections → BangBang → Accessors → Test → InteractiveUtils → Markdown
Transducers → SplittablesBase → Setfield → MacroTools → Markdown
Transducers → SplittablesBase → Test → InteractiveUtils → Markdown
filtering for duplicates
Test → InteractiveUtils → Markdown
MacroTools → Markdown
Accessors → Markdown
Transducers → Markdown
Test
: if we remove that dependency, we handle this for free- MacroTools: used as direct dependency, i don't know where 😬
- Accessors: used in their init file
- Transducers: used as direct dependency
Metadata
Assignees
Labels
No labels