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

Conflict with ConstructionBaseIntervalSetsExt #7

Closed
oschulz opened this issue Aug 13, 2024 · 3 comments
Closed

Conflict with ConstructionBaseIntervalSetsExt #7

oschulz opened this issue Aug 13, 2024 · 3 comments

Comments

@oschulz
Copy link

oschulz commented Aug 13, 2024

Is ConstructionBaseExtras still active, or has it been deprecated by the new ConstructionBase extensions?

I ran into this while running the Accessors tests (CC @aplavin ).

With the current versions of ConstructionBaseExtras and IntervalSets

pkg> st ConstructionBaseExtras IntervalSets
Status `/tmp/jl_UsXb5e/Project.toml`
  [914cd950] ConstructionBaseExtras v0.1.1
  [8197267c] IntervalSets v0.7.10
julia> import ConstructionBaseExtras, IntervalSets

Precompiling ConstructionBaseExtras...
Info Given ConstructionBaseExtras was explicitly requested, output will be shown live 
WARNING: Method definition constructorof(Type{var"#s1"} where var"#s1"<:(IntervalSets.Interval{L, R, T} where T)) where {L, R} in module ConstructionBaseIntervalSetsExt at /user/.julia/packages/ConstructionBase/Am9w7/ext/ConstructionBaseIntervalSetsExt.jl:6 overwritten in module ConstructionBaseExtras at /user/.julia/packages/ConstructionBaseExtras/cy4E1/src/intervalsets.jl:3.
ERROR: Method overwriting is not permitted during Module precompilation. Use `__precompile__(false)` to opt-out of precompilation.
  ? ConstructionBaseExtras
[ Info: Precompiling ConstructionBaseExtras [914cd950-b775-4282-9f32-54fc4544c321] 
WARNING: Method definition constructorof(Type{var"#s1"} where var"#s1"<:(IntervalSets.Interval{L, R, T} where T)) where {L, R} in module ConstructionBaseIntervalSetsExt at /user/.julia/packages/ConstructionBase/Am9w7/ext/ConstructionBaseIntervalSetsExt.jl:6 overwritten in module ConstructionBaseExtras at /user/.julia/packages/ConstructionBaseExtras/cy4E1/src/intervalsets.jl:3.
ERROR: Method overwriting is not permitted during Module precompilation. Use `__precompile__(false)` to opt-out of precompilation.
┌ Info: Skipping precompilation due to precompilable error. Importing ConstructionBaseExtras [914cd950-b775-4282-9f32-54fc4544c321].
└   exception = Error when precompiling module, potentially caused by a __precompile__(false) declaration in the module.

since both ConstructionBaseIntervalSetsExt and ConstructionBaseExtras define

ConstructionBase.constructorof(::Type{<:Interval{L, R}}) where {L, R} = Interval{L, R}
@aplavin
Copy link
Member

aplavin commented Aug 26, 2024

Note that this warning doesn't affect any actual behavior.
Fixed on Accessors side by JuliaObjects/Accessors.jl#156 by only installing ConstructionBaseExtras on Julia 1.8-.

@aplavin aplavin closed this as completed Aug 26, 2024
@oschulz
Copy link
Author

oschulz commented Aug 26, 2024

Thanks @aplavin !

@rafaqz
Copy link
Member

rafaqz commented Aug 26, 2024

There may still be a few packages around that are using ConstructionBaseExtras.jl, especially if you're not on the latest version of everything.

ConstructionBaseExtras.jl is definately deprecated, Ive just added a note to the readme making this explicit.

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