Problems using LsqFit inside a module

Hello all!

Thank you very much for this space.

I found a problem using LsqFit within a module in Julia 1.8.5 installed on Ubuntu 22.04.
If I create a simple module as as in the following MWE, I got long list of warnings all which indicated:
** incremental compilation may be fatally broken for this module **.

module A

using LsqFit

end 

Here I paste the complete list of warnings:

[ Info: Precompiling A [top-level]
WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:inv4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:loghalf}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrthalfπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrt2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrt3}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:invsqrt2}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:fourinvπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:logtwo}) in module IrrationalConstants at irrationals.jl:175 overwritten in module StatsFuns at irrationals.jl:182.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:invsqrt2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:invπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:logπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:log4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:quartπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:inv2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrt2}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:twoπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:halfπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:twoinvπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrt4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:sqrtπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:fourπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition Type##kw(Any, Type{Base.MPFR.BigFloat}, Base.Irrational{:log2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:inv4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:loghalf}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrthalfπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrt2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrt3}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:invsqrt2}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:fourinvπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:logtwo}) in module IrrationalConstants at irrationals.jl:175 overwritten in module StatsFuns at irrationals.jl:182.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:invsqrt2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:invπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:logπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:log4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:quartπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:inv2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrt2}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:twoπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:halfπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:twoinvπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrt4π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:sqrtπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:fourπ}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Base.MPFR.BigFloat})(Base.Irrational{:log2π}) in module IrrationalConstants at irrationals.jl:182 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:inv4π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:fourπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:loghalf}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrt2π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrthalfπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrt3}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:invsqrt2}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:fourinvπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:logtwo}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:invsqrt2π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:invπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:logπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:log4π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:quartπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:inv2π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrt2}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:twoπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:halfπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:twoinvπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrt4π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:sqrtπ}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float32})(Base.Irrational{:log2π}) in module IrrationalConstants at irrationals.jl:192 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:fourπ}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:inv4π}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:loghalf}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:sqrt2π}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:sqrthalfπ}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:sqrt3}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:invsqrt2}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:fourinvπ}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:logtwo}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:invsqrt2π}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:invπ}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:logπ}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition (::Type{Float64})(Base.Irrational{:log4π}) in module IrrationalConstants at irrationals.jl:191 overwritten in module StatsFuns on the same line (check for duplicate calls to `include`).
  ** incremental compilation may be fatally broken for this module **

Could you help me to solve this issue?

Thanks a lot

I can’t reproduce on v1.8.5 or v1.9.0-rc2.

(tmp) julia> module A
             using LsqFit
             end
Main.A

(tmp) julia> using .A

(tmp) julia> A.curve_fit
curve_fit (generic function with 6 methods)

(tmp) julia>

Thank you for answer me @mbaz.

I have the problem if I save the module in a text file and I try to load it as indicated below:

push!(LOAD_PATH, "MY_PATH")
using A

It just happen the first time that I tried to use the module after saving a change. For example, if I added a comment to the module A:

module A 
# 
using LsqFit
end 

If I create the module inside the Julia REPL and then load it, it does not generates the warnings. I do not understand why.

Thanks again!

I suggest trying with an empty environment. Start with:

pkg> activate --temp
  Activating new project at `/tmp/jl_WL5BkO`

pkg> st
Status `/tmp/jl_WL5BkO/Project.toml` (empty project)

pkg> add LsqFit
[...]

pkg> st
Status `/tmp/jl_WL5BkO/Project.toml`
  [2fda8390] LsqFit v0.13.0

pkg>

and then try using your module again. If it works, then it’s possible there’s an incompatibility between LsqFit and some other package (possibly MPFR.jl).

Thanks again.

I tried and it works. However, reading the warnings I received it seems that incompatibility can be related to StatsFuns in my case.

The warnings indicates: overwritten in module StatsFuns on the same line (check for duplicate calls to 'include').

It works for me with just LsqFit and StatsFuns installed. You may need to try installing (in a temporary, clean environment) different combinations of the packages you’re using until you identify those that are incompatible.