Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Precompilation failure #16

Closed
blegat opened this issue Mar 15, 2017 · 9 comments
Closed

Precompilation failure #16

blegat opened this issue Mar 15, 2017 · 9 comments

Comments

@blegat
Copy link

blegat commented Mar 15, 2017

Precompilation of StochasticDiffEq.jl fails both on the latest tagged version and on master

julia> Pkg.update()
...
julia> using StochasticDiffEq
INFO: Precompiling module StochasticDiffEq.
ERROR: LoadError: LoadError: UndefVarError: @compat not defined
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
while loading /home/blegat/.julia/v0.5/StochasticDiffEq/src/algorithms.jl, in expression starting on line 5
while loading /home/blegat/.julia/v0.5/StochasticDiffEq/src/StochasticDiffEq.jl, in expression starting on line 21
ERROR: Failed to precompile StochasticDiffEq to /home/blegat/.julia/lib/v0.5/StochasticDiffEq.ji.
 in eval_user_input(::Any, ::Base.REPL.REPLBackend) at ./REPL.jl:64
 in macro expansion at ./REPL.jl:95 [inlined]
 in (::Base.REPL.##3#4{Base.REPL.REPLBackend})() at ./event.jl:68

julia> Pkg.checkout("StochasticDiffEq")
INFO: Checking out StochasticDiffEq master...
INFO: Pulling StochasticDiffEq latest master...
INFO: No packages to install, update or remove

julia> using StochasticDiffEq
INFO: Precompiling module StochasticDiffEq.
ERROR: LoadError: LoadError: UndefVarError: @compat not defined
 in macro expansion; at ./none:2 [inlined]
 in anonymous at ./<missing>:?
while loading /home/blegat/.julia/v0.5/StochasticDiffEq/src/algorithms.jl, in expression starting on line 5
while loading /home/blegat/.julia/v0.5/StochasticDiffEq/src/StochasticDiffEq.jl, in expression starting on line 21
ERROR: Failed to precompile StochasticDiffEq to /home/blegat/.julia/lib/v0.5/StochasticDiffEq.ji.
 in eval_user_input(::Any, ::Base.REPL.REPLBackend) at ./REPL.jl:64
 in macro expansion at ./REPL.jl:95 [inlined]
 in (::Base.REPL.##3#4{Base.REPL.REPLBackend})() at ./event.jl:68
@tpoisot
Copy link

tpoisot commented Mar 15, 2017

Same here.

@ChrisRackauckas
Copy link
Member

This on release? How could release change?

@ChrisRackauckas
Copy link
Member

Oh... @mauro3 , I think this is related to the use of compat in Parameters.jl

@ChrisRackauckas
Copy link
Member

Pkg.pin("Parameters",v"0.6.0") is a temporary fix. I'll put in a PR to METADATA for an upper bound and that will make release work again. However, this seems to be a deeper packaging issue that may require some discussion with @tkelman for a better solution. I'll post what's going on to Discourse soon and link it here.

@tpoisot
Copy link

tpoisot commented Mar 15, 2017

@ChrisRackauckas good call on all points. On the other hand, nothing is 1.0 yet, so breakage is expected to happen.

@ChrisRackauckas
Copy link
Member

This is a more systemic problem about how macros work with the packaging system. It's clear with the example. The change in Parameters requires its dependencies, and not just itself, to require Compat. That's the weird breakage.

@ChrisRackauckas
Copy link
Member

Here's a description of the bug: https://discourse.julialang.org/t/nested-macros-bypass-package-dependencies/2683

As noted, easy fix... but I wanted to get it documented first because this is something I want to avoid in the future. I'll do the METADATA PRs right now.

@ChrisRackauckas
Copy link
Member

METADATA PR to fix it is here:

JuliaLang/METADATA.jl#8343

@ChrisRackauckas
Copy link
Member

Should be fixed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants