JerryI / wolfram-js-frontend

Dynamic Notebook Environment for Wolfram Language written in Javascript
https://jerryi.github.io/wljs-docs/
GNU General Public License v3.0
238 stars 8 forks source link

Linux arm64 support please #197

Open imkow opened 1 month ago

imkow commented 1 month ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like A clear and concise description of what you want to happen.

Additional context Add any other context or screenshots about the feature request here.

JerryI commented 1 month ago

Sure! Since we don't have an ARM Linux machine, we would probably need your help to build a dynamic library for sockets interface.

If you or any other users are willing to help us 🙏 please, follow the steps:

  1. clone repo https://github.com/JerryI/CSocketListener/ --branch dev2024
  2. install libuv or build it from the source
  3. edit a file Scripts/BuildLibrary.wls line 36: replace {"uv"} with a path to your libuv.so file. For ex. {"/opt/homebrew/lib/libuv.so"} line 37: replace {"/home/kirill/Desktop/Projects/libuv/include"} with a path to includes directory, where uv.h file is located.
  4. run the command wolframscript -f Scripts/BuildLibrary.wls
  5. a new folder will appear LibraryResources/7/Linux-ARM64
  6. please, share the console log and created folder with us.
imkow commented 1 month ago

I'd like to try later on

LoganJFisher commented 3 weeks ago

On this note, is there any chance that an Android app version might be on the horizon? Android is Linux-based and runs on ARM64, so this seemed like the place to ask.

JerryI commented 3 weeks ago

On this note, is there any chance that an Android app version might be on the horizon? Android is Linux-based and runs on ARM64, so this seemed like the place to ask.

There are several options. The main obstacle is Wolfram Engine.

  1. Run Wolfram Kernel and frontend on a device (haven't checked, since WL for ARM6/7 is outdated and doesn't run correctly on most android devices. ARM64 version was available only for Mac so far... Please, let is know if there is a solution)
  2. Run everything on remote server and connect via browser (WLJS Notebook works like a Jupyter Notebook, i.e. basically all stuff is available in a regular browser - see README #Server)

2nd option looks more realistic for me. We just need to rework the UI to match mobile layout.