I got the Windows 10 anniversary update and turned on the new Windows 
subsystem for Linux.

The Julia binaries from the website load, but unfortunately don't fully 
work. I had hoped Julia might just work as I had heard many large programs 
just work, but alas, not yet. 

I tried both 0.4.6 and 0.5.0-pre Julia binaries from the website. It seems 
the subsystem returns a Not Enough Memory error whenever Julia tries to 
spawn, which it does pretty often. This seems to be the main and perhaps 
only problem preventing Julia 0.4.6 working for now. I tried defining a 
function and running it, and this caused no issues.

There are also double free or corruption errors with Julia 0.5.0. Note that 
I am only getting this in Julia 0.5.0, not anything else, e.g. Sage seems 
to work ok and passes much of its test suite without any such errors. Apart 
from the spawn issue, Julia 0.4.6 also doesn't have this problem.

I tried building Julia 0.4.6 from source and the main issue I hit was that 
pcre2 requires a stack limit of 16MB, but WSL is limited to 8MB. There is a 
build option for pcre to use heap instead of stack, but it obviously hasn't 
been maintained. It still complains it can't set the stack to the right 
limit. And ulimit refuses to increase the limit. I ended up just replacing 
the relevant test code with an empty shell script so the build could 
continue.

Also, when building LLVM and fftw it frequently corrupted the .o files, so 
some of them had to be built more than once to get a valid .o file. This 
seems to be avoidable by not doing a parallel build. But of course that 
takes a very long time.

BLAS seems to take an extremely long time to build, making building from 
source pretty much impractical on the subsystem at present. It takes many 
hours. The main problem seems to be the glacially slow filesystem. The 
compute performance seems to be isomorphic to a real Ubuntu server in the 
tests I've done, including ones that allocate lots of memory. Of course 
slow build times are not that important given that it is supposed to work 
with standard Ubuntu binaries which can be built elsewhere.

I was able to get the build to complete though and Julia 0.4.6 ran, but it 
has the same issue with spawn as with the binaries on the Julia website, 
e.g. 

julia> run(`ls`)
ERROR: could not spawn `ls`: not enough memory (ENOMEM)
 in _jl_spawn at process.jl:262
 in anonymous at process.jl:415
 in setup_stdio at ./process.jl:403
 in __spawn#58__ at ./process.jl:414
 in run at ./process.jl:530

There should be enough memory on this machine. I think the message is 
caused by some other issue.

Bill.






Reply via email to