Mlj.jl: Local variable "N" conflicts with a static parameter

Created on 5 Aug 2019  路  3Comments  路  Source: alan-turing-institute/MLJ.jl

using MLJ fails with Julia 1.3 [alpha-1] on Mac OS with stack trace:

[ Info: Precompiling MLJ [add582a8-e3ab-11e8-2d5e-e98b27df1bc7]
ERROR: LoadError: LoadError: syntax: local variable name "N" conflicts with a static parameter
Stacktrace:
 [1] top-level scope at /Users/tlienart/.julia/packages/MLJ/XYSFt/src/composites.jl:113
 [2] include at ./boot.jl:328 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1094
 [4] include at ./Base.jl:31 [inlined]
 [5] include(::String) at /Users/tlienart/.julia/packages/MLJ/XYSFt/src/MLJ.jl:1
 [6] top-level scope at /Users/tlienart/.julia/packages/MLJ/XYSFt/src/MLJ.jl:88
 [7] include at ./boot.jl:328 [inlined]
 [8] include_relative(::Module, ::String) at ./loading.jl:1094
 [9] include(::Module, ::String) at ./Base.jl:31
 [10] top-level scope at none:2
 [11] eval at ./boot.jl:330 [inlined]
 [12] eval(::Expr) at ./client.jl:433
 [13] top-level scope at ./none:3
in expression starting at /Users/tlienart/.julia/packages/MLJ/XYSFt/src/composites.jl:113
in expression starting at /Users/tlienart/.julia/packages/MLJ/XYSFt/src/MLJ.jl:88
ERROR: Failed to precompile MLJ [add582a8-e3ab-11e8-2d5e-e98b27df1bc7] to /Users/tlienart/.julia/compiled/v1.3/MLJ/rAU56.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
 [3] _require(::Base.PkgId) at ./loading.jl:1013
 [4] require(::Base.PkgId) at ./loading.jl:911
 [5] require(::Module, ::Symbol) at ./loading.jl:906

Edit: works on 1.1, 1.2 as far as I can tell.

Edit: this is likely a bug with Julia 1.3; for the moment we won't change it though using filter(N -> !isa(N, Source), nodes(W)) instead of the filter ... do ... end syntax seems to fix the issue (that was #199) (but it shouldn't be an issue).

bug julia 1.3 low priority

Most helpful comment

I am working on a new tagged release. It should be ready in a couple of days, fingers crossed.

Thanks

All 3 comments

The PR fixes the issue locally though it's unclear to me why the initial syntax didn't work as the following works fine (which seems to be a similar construction)

function foo()
    x = [missing, 0.1, missing, 0.2]
    x_ = filter(x) do e
        !(e isa Missing)
    end
    for e in x_
        @show typeof(e)
    end
end

I cannot reproduce this on MLJ master.

I believe that it was actually fixed in https://github.com/alan-turing-institute/MLJ.jl/commit/2b1001749138963b8cfcb1b0953c2a16fc2e4d54, however a new release has not been tagged yet, which is why we see this error in MLJ 0.2.5.

@ablaom Would it be possible for you to tag a new release of MLJ?

If you're not ready to make a new release of MLJ with the current contents of master, we could instead make a hotfix. I have a pull request of the hotfix here - https://github.com/alan-turing-institute/MLJ.jl/pull/210 - you need to change the destination branch of the pull request from master to something else, like release-0.2.6.

I am working on a new tagged release. It should be ready in a couple of days, fingers crossed.

Thanks

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ChrisRackauckas picture ChrisRackauckas  路  7Comments

tlienart picture tlienart  路  6Comments

darrencl picture darrencl  路  4Comments

caseykneale picture caseykneale  路  6Comments

juliohm picture juliohm  路  7Comments