-
Notifications
You must be signed in to change notification settings - Fork 8
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 extensionAccessorsLinearAlgebra 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
function _materializer(xs) T = Tables.materializer(xs) return T isa Type ? T : _materializer(typeof(xs)) end
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 toSplittablesTestingbut 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
Metadata
Assignees
Labels
No labels