Maxima.jl icon indicating copy to clipboard operation
Maxima.jl copied to clipboard

Windows 10 WSL: stuck on "using Maxima"

Open bernwo opened this issue 6 years ago • 1 comments

Hi, I am moving all of my developments from windows to Linux because Linux is just more convenient. I am using WSL. Version information can be found below.

I installed maxima first before running using Maxima.jl sudo apt install maxima

I checked that the bash accepts maxima and I was able to enter maxima terminal from bash. I also tried julia> run(`maxima`) and I was able to enter the maxima terminal as well.

I then installed Maxima.jl with Pkg.add("Maxima") and ran using Maxima in the julia terminal, and this is the output: julia> using Maxima [ Info: Precompiling Maxima [e6386f5f-9a8a-5a5d-a605-d2d61207ca5a] WARNING: could not import Base.expand into Maxima

The julia terminal was stuck here for hours and the windows task manager shows 0% cpu usage for the julia process. I ended up interrupting it by doing CTRL+C because it clearly wasn't going anywhere. If I try to run using Maxima again, the julia terminal gets stuck indefinitely again.

This is the output when I interrupt it: Stacktrace: [1] process_events at ./libuv.jl:98 [inlined] [2] wait() at ./event.jl:246 [3] wait(::Condition) at ./event.jl:46 [4] wait_readbyte(::Base.PipeEndpoint, ::UInt8) at ./stream.jl:345 [5] #readuntil#491 at ./stream.jl:836 [inlined] [6] #readuntil at ./none:0 [inlined] [7] readuntil_string at ./io.jl:632 [inlined] [8] #readuntil#289(::Bool, ::Function, ::Base.PipeEndpoint, ::Char) at ./io.jl:636 [9] #readuntil#267 at ./io.jl:635 [inlined] [10] readuntil at ./io.jl:233 [inlined] [11] read(::Maxima.MaximaSession) at /home/bern/.julia/packages/Maxima/p6qVJ/src/server.jl:49 [12] mcall(::Maxima.MExpr) at /home/bern/.julia/packages/Maxima/p6qVJ/src/mexpr.jl:261 [13] mcall(::String) at /home/bern/.julia/packages/Maxima/p6qVJ/src/mexpr.jl:298 [14] #Load#24(::Cmd, ::Function) at /home/bern/.julia/packages/Maxima/p6qVJ/src/setup.jl:32 [15] Load() at /home/bern/.julia/packages/Maxima/p6qVJ/src/setup.jl:9 [16] __init__() at /home/bern/.julia/packages/Maxima/p6qVJ/src/setup.jl:6 [17] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:633 [18] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:713 [19] _require(::Base.PkgId) at ./loading.jl:937 [20] require(::Base.PkgId) at ./loading.jl:858 [21] require(::Module, ::Symbol) at ./loading.jl:853 [22] eval(::Module, ::Any) at ./boot.jl:328 [23] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:85 [24] macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:117 [inlined] [25] (::getfield(REPL, Symbol("##26#27")){REPL.REPLBackend})() at ./task.jl:259

I am not sure what I am doing wrong, is there a fix for this?

Where I got my julia from: https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.1-linux-x86_64.tar.gz

Version Info:

  • julia 1.1.1
  • WSL Ubuntu 18.04.2 LTS
  • Maxima.jl 0.1.0
  • maxima 5.41.0
  • Windows 10 Pro build 18362.267

bernwo avatar Aug 01 '19 19:08 bernwo

Hey! Sorry for the slow reply. I know I had this working on WSL at one point. Unfortunately, I don't have access to a Windows box at the moment so I won't be able to push this much further without some help.

A peak behind the curtain might help us figure this out together:

  • Maxima.jl switches based on the operating system type. What does julia give you for Sys.iswindows() in WSL?
  • The hang is related opening a pipe and probably hearing nothing back from Maxima. I should probably add a timeout for this type of scenerio. The strange thing is that it doesn't fail when launching maxima in the background...

Have you tried the new WSL 2? Might be better?

nsmith5 avatar Aug 18 '19 03:08 nsmith5