Problems installing owl package

I’m running ocaml 4.14.0. I’m running on Debian. I prepared like this:

apt install libopenblas-base \
                libopenblas-dev \ 
                liblapack-dev \
                liblapacke-dev

Then:

opam install owl

However something seems to be wrong because (utop):

utop # #require "owl";;
Cannot load required shared library dllowl_stubs.
Reason: ./dllowl_stubs.so: ./dllowl_stubs.so: undefined symbol: LAPACKE_dtpmqrt.

I’ve posted it as a Github issue on the owl repository but I wondered if anyone perhaps ran into this issue and how they fixed it?

This is a common issue, and is a problem with the LAPACKE that Debian uses.

1 Like

Thank you – the solution for me ended up being pinning the repo to the github version which seems to fix it. I had to install owl-zoo/plplot/top separately – I think the documentation needs updating on several points. I’ve submitted some issues about it.

This package is very impressive and its the only show in town for well supported numerical computing on OCaml it seems. However us more pedestrian users would really appreciate (a) up to date documentation, and (b) a more robust on-ramp. I mean that constructively because I suspect many “let’s give OCaml for data science a try” journeys will end with Joe data scientist giving up battling the idiosyncrasies of the installation process.

4 Likes

I agree completely. It is a pretty decent substitute for numpy though.

The fix is part of the PR to allow for clean linux arm and apple M1 installation: Support Arm64 by mseri · Pull Request #609 · owlbarn/owl · GitHub
The master branch contains also a fix for ocaml 4.14 by @ryanrhymes, so that will appear once it is released.

Somehow the linking on debian was fixed but got broken in a spurious commit in the release of 1.0.2.

To try that out:

opam pin -n git+https://github.com/mseri/owl.git#arm64
opam pin remove owl-top owl-zoo # if you are not on ocaml 4.14
opam install owl

If you are on x86 and ocaml 4.13, you may as well install an older owl, for example opam install owl.1.0.1 should work fine.

You will need also eigen 0.3.1 which was released on the opam repository recently (or manually opam pin -n git+https://github.com/mseri/eigen.git#fix-0.3.0)

1 Like

As for the documentation, I agree. I know that @ryanrhymes and @j.zhao are working on it and some introductory and advanced books, so I hope it is just a matter of time

Thank you for being so proactive. Will be using owl lots in the coming weeks, I’ll send PRs as I go for the documentation, so hopefully I can be useful to you.

2 Likes