Bug 425695 - Julia backend does not find sys.so
Summary: Julia backend does not find sys.so
Status: RESOLVED FIXED
Alias: None
Product: cantor
Classification: Applications
Component: julia-backend (show other bugs)
Version: 20.08
Platform: Neon Linux
: NOR normal
Target Milestone: ---
Assignee: Nikita Sirgienko
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-08-23 01:58 UTC by samcaspar
Modified: 2020-09-09 21:04 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 20.08.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description samcaspar 2020-08-23 01:58:41 UTC
SUMMARY
Julia backend will 'open' a worksheet, but will fail to return.
Diagnosed bug by running cantor from command line. See that it fails to find 'sys.so' in {julia binary path}/../lib/x86_64-linux-gnu/julia/

Perhaps I have an uncommon julia install, I installed with jill:
https://github.com/johnnychen94/jill.py


STEPS TO REPRODUCE
1. Install julia 1.4 with jill
2. Install cantor + cantor-backend-julia
3. Open a julia cantor worksheet, try to run '1+2'

OBSERVED RESULT
No return value etc.

EXPECTED RESULT
Julia will return 3 :)

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE Neon
KDE Plasma Version: 5.19.4
KDE Frameworks Version: 5.73.0
Qt Version: 5.14.2

ADDITIONAL INFORMATION
Julia-1.4.1

WORKAROUND:
copy sys.so file to where cantor expects it to be (create directories etc.)
Comment 1 Nikita Sirgienko 2020-09-09 21:02:55 UTC
Well, I now understand, what cause the problem.
Cantor Julia backend uses Julia C API and this API requests path to some internal file (the "sys.so" file, which you mentioned before). Julia also provide method for getting path (but relative) to this file.
Cantor, using information from settings, create absolute path and pass the path to julia code.
The problem is, that cantor-backend-julia have been builded with system julia (I suppose, there is package "julia" in KDE Neon repos). But you pass path to local installation from jill. And relative paths to this internal file don't equal.
Cantor julia backend uses "../lib/x86_64-linux-gnu/julia/" from system julia installation (from system library libjulia.so, I suppose), but for in-one-dir julia installation from jill you actually need a path "../lib/julia" (and if you manually build Cantor with Julia backend for this jill installation, then this proper path will be used and passed from Juila C API).
But I have added some code for working with situation like this, so it will work in future Cantor versions. And have a more proper problem message, if there is a problem with this internal file.
Comment 2 Nikita Sirgienko 2020-09-09 21:04:32 UTC
Git commit 76c6c50126b469181856ff6ff17a9ef19c382ada by Nikita Sirgienko.
Committed on 09/09/2020 at 21:03.
Pushed by sirgienko into branch 'release/20.08'.

[Julia] Add some code for working with wrong path to Julia internal file "sys.so"
FIXED-IN: 20.08.2

M  +31   -4    src/backends/julia/juliaserver/juliaserver.cpp
M  +2    -1    src/backends/julia/juliaserver/juliaserver.h
M  +23   -1    src/backends/julia/juliasession.cpp

https://invent.kde.org/education/cantor/commit/76c6c50126b469181856ff6ff17a9ef19c382ada