Learn.jl
Learn.jl copied to clipboard
Move PenaltyFunctions and LearningStrategies from build.jl to REQUIRE
(since they've been registered).
I'm not familiar with the JuliaML ecosystem yet, but I believe this is the correct thing to do, given that Pkg.build("Learn") currently gives:
WARNING: PenaltyFunctions is registered in METADATA... it shouldn't be in /home/rdeits/.julia/v0.6/Learn/deps/build.jl
WARNING: LearningStrategies is registered in METADATA... it shouldn't be in /home/rdeits/.julia/v0.6/Learn/deps/build.jl
Looks like PenaltyFunctions.jl is v0.6-only. Is the plan to move all of Learn up to v0.6 too?
Sooner or later. It will be a while before I devote attention to things like Learn.jl. Currently I am more concerned with implementing the back-end functionality
Ok, no problem. Just figured I'd try to fix the situation if I could 😉
Thanks for that! Any support is appreciated. Looks like CI is broken given the 0.5 / 0.6 conflict. Does this change work locally for you?
I'd be ok merging this
Cloning and building Learn.jl works with this PR on Julia v0.6 (but fails for v0.5) locally. But actually trying to do using Learn fails because Transformations isn't working for me. using Transformations gives:
julia> using Transformations
INFO: Precompiling module Transformations.
WARNING: could not import OnlineStats.Variances into Transformations
WARNING: deprecated syntax "abstract LearnableParams" at /home/rdeits/.julia/v0.6/Transformations/src/params.jl:3.
Use "abstract type LearnableParams end" instead.
WARNING: deprecated syntax "abstract Node{T,N}" at /home/rdeits/.julia/v0.6/Transformations/src/nodes.jl:3.
Use "abstract type Node{T,N} end" instead.
WARNING: deprecated syntax "typealias SumNode{T,N} InputNode{:+,T,N}" at /home/rdeits/.julia/v0.6/Transformations/src/nodes.jl:96.
Use "SumNode{T,N} = InputNode{:+,T,N}" instead.
WARNING: deprecated syntax "typealias ProdNode{T,N} InputNode{:*,T,N}" at /home/rdeits/.julia/v0.6/Transformations/src/nodes.jl:104.
Use "ProdNode{T,N} = InputNode{:*,T,N}" instead.
WARNING: deprecated syntax "typealias CatNode{T,N} InputNode{:cat,T,N}" at /home/rdeits/.julia/v0.6/Transformations/src/nodes.jl:114.
Use "CatNode{T,N} = InputNode{:cat,T,N}" instead.
ERROR: LoadError: LoadError: UndefVarError: Variances not defined
Stacktrace:
[1] include_from_node1(::String) at ./loading.jl:552
[2] include(::String) at ./sysimg.jl:14
[3] include_from_node1(::String) at ./loading.jl:552
[4] include(::String) at ./sysimg.jl:14
[5] anonymous at ./<missing>:2
while loading /home/rdeits/.julia/v0.6/Transformations/src/inputnorm.jl, in expression starting on line 6
while loading /home/rdeits/.julia/v0.6/Transformations/src/Transformations.jl, in expression starting on line 176
ERROR: Failed to precompile Transformations to /home/rdeits/.julia/lib/v0.6/Transformations.ji.
Stacktrace:
[1] compilecache(::String) at ./loading.jl:686
[2] _require(::Symbol) at ./loading.jl:473
[3] require(::Symbol) at ./loading.jl:386
OnlineStats.Variances no longer exists. I didn't know Transformations was using it.
Most of these affected packages were Tom's brain childs and haven't been updated in a while, since he stepped back a bit from Julia.
I want to update them again, but this will surely take me a while, since I have other packages on my agenda first
If you feel like you have some time and interest to give parts of these problems a shot I'd appreciate the help and promise quick reviews
No problem! I'll see what I can do (I've just started some research which may involve playing with neural nets in Julia, so I've got a lot of learning to do). I'll keep trying to fix things as I come across them.
@joshday any hints about how to go about fixing this in Transformations?
It looks like it's only used in inputnorm.jl. Commenting it out until someone needs it is probably fine since it's already broken. OnlineStats went through some breaking changes since this was written and rewriting InputNorm from scratch is probably easiest than trying to patch it up.
@joshday done, thanks!