GNU Octave Meets JupyterLite: Compute Anywhere, Anytime (blog.jupyter.org)

🤖 AI Summary
QuantStack and collaborators announced Xeus‑Octave, a JupyterLite kernel that runs GNU Octave (the open-source Matlab-compatible numerical language) directly in the web browser via WebAssembly. This brings full client-side Octave execution to JupyterLite, enabling lightweight, serverless notebooks for teaching, demos, reproducible research, and interactive exploration without installation. Xeus‑Octave joins the growing JupyterLite kernel ecosystem (following Xeus‑R‑Lite) and broadens access to math-heavy workflows in constrained or secure environments. Porting Octave required a custom WebAssembly toolchain (LLVM Flang + Emscripten) to handle extensive Fortran code and numeric libraries. A key hurdle was Fortran common blocks used by internal libraries (e.g., odepack); LLVM v20 lacked common-symbol linkage so the team temporarily patched LLVM to treat common symbols as weak/external to allow successful builds. BLAS/LAPACK dependencies were resolved using emscripten-forge packages — Netlib LAPACK was chosen over OpenBLAS for fewer build issues. Other changes included disabling Octave GUI pieces and harmonizing Fortran signatures. A proper LLVM upstream fix is progressing (targeted in LLVM v22), and next steps include packaging Octave packages for conda‑forge and emscripten‑forge to streamline in-browser package installs and grow the Octave ecosystem.
Loading comments...
loading comments...