JuliaApproximation / DomainSets.jl

A Julia package for describing domains as continuous sets of elements
MIT License
72 stars 12 forks source link

I cannot precompile DomainSets #46

Closed charlierch closed 5 years ago

charlierch commented 5 years ago

I am completely new to Julia. I have started it because I have heard some pretty good things about the package ApproxFun. I am eager to try but unfortunately so far I cannot make it run on my laptop.

I am using Julia 1.0.2 My computer has 8,00 RAM My operating system is Windows 7

I have no problem adding Approxfun:

input: import Pkg; Pkg.add(“ApproxFun”) Pkg.status()

output: Resolving package versions… Updating C:\Users\charlierch.julia\environments\v1.0\Project.toml [28f2ccd6] + ApproxFun v0.11.1 Updating C:\Users\charlierch.julia\environments\v1.0\Manifest.toml [621f4979] + AbstractFFTs v0.4.1 [28f2ccd6] + ApproxFun v0.11.1 [fbd15aa5] + ApproxFunBase v0.1.3 [59844689] + ApproxFunFourier v0.1.2 [b70543e2] + ApproxFunOrthogonalPolynomials v0.2.0 [f8fcb915] + ApproxFunSingularities v0.1.0 [aae01518] + BandedMatrices v0.9.3 [8e7c35d0] + BlockArrays v0.9.1 [ffab5731] + BlockBandedMatrices v0.4.4 [00ebfdb7] + CSTParser v0.6.1 [49dc2e85] + Calculus v0.5.0 [717857b8] + DSP v0.5.2 [5b8099bc] + DomainSets v0.1.0 [fa6b7ba4] + DualNumbers v0.6.2 [7a1cc6ca] + FFTW v0.2.4 [442a2c76] + FastGaussQuadrature v0.3.3 [057dd010] + FastTransforms v0.5.0 [1a297f60] + FillArrays v0.6.3 [7c893195] + HierarchicalMatrices v0.1.4 [4858937d] + InfiniteArrays v0.1.1 [8197267c] + IntervalSets v0.3.1 [5078a376] + LazyArrays v0.9.0 [898213cb] + LowRankApprox v0.2.3 [1914dd2f] + MacroTools v0.5.1 [a3b82374] + MatrixFactorizations v0.0.4 [4d1e1d77] + Nullables v0.0.8 [f27b6e38] + Polynomials v0.5.2 [92933f4c] + ProgressMeter v1.0.0 [c751599d] + ToeplitzMatrices v0.5.0 [0796e94c] + Tokenize v0.5.5 [9abbd945] + Profile Status C:\Users\charlierch.julia\environments\v1.0\Project.toml [28f2ccd6] ApproxFun v0.11.1 [7073ff75] IJulia v1.14.1 [91a5bcdd] Plots v0.26.0 [276daf66] SpecialFunctions v0.7.2 [37e2e46d] LinearAlgebra

However I have a problem with “using ApproxFun”

input: using ApproxFun

output: ┌ Info: Precompiling ApproxFun [28f2ccd6-bb30-5033-b560-165f7b14dc2f] └ @ Base loading.jl:1192 ERROR: LoadError: LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107 in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\DomainSets.jl:152 ERROR: LoadError: Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji. Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840 [9] include at .\boot.jl:317 [inlined] [10] include_relative(::Module, ::String) at .\loading.jl:1044 [11] include(::Module, ::String) at .\sysimg.jl:29 [12] top-level scope at none:2 [13] eval at .\boot.jl:319 [inlined] [14] eval(::Expr) at .\client.jl:393 [15] top-level scope at .\none:3 in expression starting at C:\Users\charlierch.julia\packages\ApproxFun\f2ab0\src\ApproxFun.jl:4

Failed to precompile ApproxFun [28f2ccd6-bb30-5033-b560-165f7b14dc2f] to C:\Users\charlierch.julia\compiled\v1.0\ApproxFun\jGqLz.ji.

Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840

It seems the StackOverflowError is related to DomainSets. I have no problem with the installation of this package separately:

input: Pkg.add(“DomainSets”) Pkg.status()

output: Resolving package versions… Updating C:\Users\charlierch.julia\environments\v1.0\Project.toml [5b8099bc] + DomainSets v0.1.0 Updating C:\Users\charlierch.julia\environments\v1.0\Manifest.toml [no changes] Status C:\Users\charlierch.julia\environments\v1.0\Project.toml [28f2ccd6] ApproxFun v0.11.1 [5b8099bc] DomainSets v0.1.0 [7073ff75] IJulia v1.14.1 [91a5bcdd] Plots v0.26.0 [276daf66] SpecialFunctions v0.7.2 [37e2e46d] LinearAlgebra

But again I face the problem with “using DomainSets”

input: using DomainSets

output: ┌ Info: Precompiling DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] └ @ Base loading.jl:1192 ERROR: LoadError: LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107 in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\DomainSets.jl:152

Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji.

Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840

In the error messages I have written above, there is ERROR: LoadError: Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji.

But when I go in the folder Users\charlierch.julia\compiled\v1.0\DomainSets, there is no file at all. I guess I should have ksPnB.ji but there is nothing.

I have tried several times Pkg.remove("ApproxFun"), Pkg.add("DomainSets"), and then using DomainSets, but the same problem persists.

Many thanks in advance for your help !

dlfivefifty commented 5 years ago

It looks like there’s a missing upper bound.

Try running Pkg.update() so you are using the latest version ApproxFun v0.11.2

charlierch commented 5 years ago

Many thanks for this super quick answer. I have tried this

input: Pkg.update()

output: Updating registry at C:\Users\charlierch\.julia\registries\General Updating git-repo https://github.com/JuliaRegistries/General.git Resolving package versions... Updating C:\Users\charlierch\.julia\environments\v1.0\Project.toml [no changes] Updating C:\Users\charlierch\.julia\environments\v1.0\Manifest.toml [no changes]

input: Pkg.status()

output: Status C:\Users\charlierch\.julia\environments\v1.0\Project.toml [28f2ccd6] ApproxFun v0.11.1 [7073ff75] IJulia v1.18.1 [91a5bcdd] Plots v0.26.0 [276daf66] SpecialFunctions v0.7.2 [37e2e46d] LinearAlgebra

I still get ApproxFun v0.11.1. I have played a bit with Pkg.rm("ApproxFun"), Pkg.add("ApproxFun"), Pkg.update() but still I have ApproxFun v0.11.1, I don't know why, with the same problem with DomainSets.

vincentcp commented 5 years ago

You will have to wait untill the Julia Registry accepted the new ApproxFun version. https://github.com/JuliaRegistries/General/pull/2270

dlfivefifty commented 5 years ago

Oh sorry didn’t realise it hadn’t been merged yet

charlierch commented 5 years ago

So I have managed to update the package into the version v0.11.2, but I still have the same problem. Thanks in advance your for your help !

input: Pkg.update()

output: Updating registry at C:\Users\charlierch\.julia\registries\General Updating git-repo https://github.com/JuliaRegistries/General.git [1mFetching: [========================================>] 100.0 %.0 % [=======> ] 17.3 % ] 25.2 %Fetching: [==================> ] 42.6 %Fetching: [====================> ] 49.1 %> ] 66.3 %] 73.4 %=====================================> ] 90.7 % Resolving package versions... Installed FFMPEG ───── v0.2.2 Installed DataAPI ──── v1.0.0 Installed IJulia ───── v1.19.0 Installed LazyArrays ─ v0.9.1 Installed StatsBase ── v0.32.0 Installed ApproxFun ── v0.11.2 Installed GR ───────── v0.41.0 Updating C:\Users\charlierch\.julia\environments\v1.0\Project.toml [28f2ccd6] ↑ ApproxFun v0.11.1 ⇒ v0.11.2 [7073ff75] ↑ IJulia v1.18.1 ⇒ v1.19.0 Updating C:\Users\charlierch\.julia\environments\v1.0\Manifest.toml [28f2ccd6] ↑ ApproxFun v0.11.1 ⇒ v0.11.2 [9a962f9c] + DataAPI v1.0.0 [c87230d0] ↑ FFMPEG v0.2.1 ⇒ v0.2.2 [28b8d3ca] ↑ GR v0.40.0 ⇒ v0.41.0 [7073ff75] ↑ IJulia v1.18.1 ⇒ v1.19.0 [5078a376] ↑ LazyArrays v0.9.0 ⇒ v0.9.1 [2913bbd2] ↑ StatsBase v0.31.0 ⇒ v0.32.0 Building IJulia → C:\Users\charlierch\.julia\packages\IJulia\cwvsj\deps\build.log Building FFMPEG → C:\Users\charlierch\.julia\packages\FFMPEG\9JQpZ\deps\build.log Building GR ────→ C:\Users\charlierch\.julia\packages\GR\ZI5OE\deps\build.log

Input: using ApproxFun

Output: ┌ Info: Precompiling ApproxFun [28f2ccd6-bb30-5033-b560-165f7b14dc2f] └ @ Base loading.jl:1192 ERROR: LoadError: LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107 in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\DomainSets.jl:152 ERROR: LoadError: Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji. Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840 [9] include at .\boot.jl:317 [inlined] [10] include_relative(::Module, ::String) at .\loading.jl:1044 [11] include(::Module, ::String) at .\sysimg.jl:29 [12] top-level scope at none:2 [13] eval at .\boot.jl:319 [inlined] [14] eval(::Expr) at .\client.jl:393 [15] top-level scope at .\none:3 in expression starting at C:\Users\charlierch.julia\packages\ApproxFun\bb76t\src\ApproxFun.jl:4

Failed to precompile ApproxFun [28f2ccd6-bb30-5033-b560-165f7b14dc2f] to C:\Users\charlierch.julia\compiled\v1.0\ApproxFun\jGqLz.ji.

Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840

dlfivefifty commented 5 years ago

Does using DomainSets work?

dlfivefifty commented 5 years ago

@daanhb I vaguely remember you seeing this before?

charlierch commented 5 years ago

Unfortunately no. Still the same error message as in my first post. Thanks for your help

Input: using DomainSets

Output: ┌ Info: Precompiling DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] └ @ Base loading.jl:1192 ERROR: LoadError: LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107 in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\DomainSets.jl:152

Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji.

Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840

dlfivefifty commented 5 years ago

OK this looks a lot like https://github.com/JuliaLang/julia/issues/31861

What's your versioninfo()?

charlierch commented 5 years ago

input: versioninfo()

output: Julia Version 1.0.2 Commit d789231e99 (2018-11-08 20:11 UTC) Platform Info: OS: Windows (x86_64-w64-mingw32) CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-6.0.0 (ORCJIT, ivybridge)

dlfivefifty commented 5 years ago

I just added Appveyor tests and it works on all varients of Windows:

https://ci.appveyor.com/project/dlfivefifty/domainsets-jl/builds/26365508

I suggest you wipe your .julia folder and try fresh: call ] add DomainSets; using DomainSets and see if that works

charlierch commented 5 years ago

How could I wipe my Julia folder ? Do I need to do something more than ] add DomainSets; ?

Thanks a lot for all your help. It seems have the same problem

input: ] add DomainSets;

output: Resolving package versions... Updating C:\Users\charlierch\.julia\environments\v1.0\Project.toml [no changes] Updating C:\Users\charlierch\.julia\environments\v1.0\Manifest.toml [no changes]

There is no change apparently

input: using DomainSets

output: ┌ Info: Precompiling DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] └ @ Base loading.jl:1192 ERROR: LoadError: LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107 in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\DomainSets.jl:152

Failed to precompile DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] to C:\Users\charlierch.julia\compiled\v1.0\DomainSets\ksPnB.ji.

Stacktrace: [1] error(::String) at .\error.jl:33 [2] macro expansion at .\logging.jl:311 [inlined] [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1190 [4] macro expansion at .\logging.jl:309 [inlined] [5] _require(::Base.PkgId) at .\loading.jl:947 [6] require(::Base.PkgId) at .\loading.jl:858 [7] macro expansion at .\logging.jl:309 [inlined] [8] require(::Module, ::Symbol) at .\loading.jl:840

dlfivefifty commented 5 years ago

Just rename C:\Users\charlierch.julia to something else

charlierch commented 5 years ago

Ok thanks. I have just done that. I now get a slighlty different error message.

Input: ] add DomainSets;

Output: Cloning default registries into C:\Users\charlierch.julia\registries Cloning registry General from "https://github.com/JuliaRegistries/General.git" [1mFetching: [========================================>] 99.9 %0.0 %Fetching: [=> ] 0.2 %> ] 23.9 %39.3 %Fetching: [=========================> ] 60.4 %Fetching: [==============================> ] 73.1 %======================================> ] 93.7 % Resolving package versions... Installed IntervalSets ─ v0.3.1 Installed Compat ─────── v2.1.0 Installed DomainSets ─── v0.1.0 Installed StaticArrays ─ v0.11.0 Updating C:\Users\charlierch\.julia\environments\v1.0\Project.toml [5b8099bc] + DomainSets v0.1.0 Updating C:\Users\charlierch\.julia\environments\v1.0\Manifest.toml [34da2185] + Compat v2.1.0 [5b8099bc] + DomainSets v0.1.0 [8197267c] + IntervalSets v0.3.1 [90137ffa] + StaticArrays v0.11.0 [2a0f44e3] + Base64 [ade2ca70] + Dates [8bb1440f] + DelimitedFiles [8ba89e20] + Distributed [b77e0a4c] + InteractiveUtils [76f85450] + LibGit2 [8f399da3] + Libdl [37e2e46d] + LinearAlgebra [56ddb016] + Logging [d6f4376e] + Markdown [a63ad114] + Mmap [44cfe95a] + Pkg [de0858da] + Printf [3fa0cd96] + REPL [9a3f8284] + Random [ea8e919c] + SHA [9e88b42a] + Serialization [1a1011a3] + SharedArrays [6462fe0b] + Sockets [2f01184e] + SparseArrays [10745b16] + Statistics [8dfed614] + Test [cf7118a7] + UUIDs [4ec0a83e] + Unicode

Input: using DomainSets

Output: ┌ Info: Precompiling DomainSets [5b8099bc-c8ec-5219-889f-1d9e522a28bf] └ @ Base loading.jl:1192 ┌ Warning: Module Compat with build ID 988448258025333 is missing from the cache. │ This may mean Compat [34da2185-b29b-5c13-b0c7-acf172513d20] does not support precompilation but is imported by a module that does. └ @ Base loading.jl:947 ┌ Warning: Module Compat with build ID 988448258025333 is missing from the cache. │ This may mean Compat [34da2185-b29b-5c13-b0c7-acf172513d20] does not support precompilation but is imported by a module that does. └ @ Base loading.jl:947 ┌ Info: Precompiling IntervalSets [8197267c-284f-5f27-9208-e0e47529a953] └ @ Base loading.jl:1192 ┌ Warning: Module Compat with build ID 988448258025333 is missing from the cache. │ This may mean Compat [34da2185-b29b-5c13-b0c7-acf172513d20] does not support precompilation but is imported by a module that does. └ @ Base loading.jl:947

LoadError: StackOverflowError: in expression starting at C:\Users\charlierch.julia\packages\DomainSets\D8lcW\src\spaces\productspace.jl:107

And now there is a new built .julia folder

dlfivefifty commented 5 years ago

This is beyond my ability to debug since we can't reproduce. The only other suggestion would be to try Julia v1.1.

charlierch commented 5 years ago

Ok I ll do that. Thanks for your help and patience. This has been great

charlierch commented 5 years ago

Sorry for the delay in my answer. I have just tried, out of desperation, to uninstall Julia and reinstall the latest version 1.2.0, as you suggested. Surprisingly now everything works fine ! The package is remarkable and I am now very happy to be able to use it.

Thanks a lot for all your help !

dlfivefifty commented 5 years ago

Glad to hear!