- Xeus-Octave kini resmi bergabung ke ekosistem kernel JupyterLite, sehingga kode GNU Octave bisa dijalankan langsung di browser
- GNU Octave adalah bahasa komputasi ilmiah open-source yang kompatibel dengan Matlab, dan proyek ini mem-porting-nya agar berjalan di lingkungan WebAssembly (WASM)
- Untuk mengatasi kode berbasis Fortran dan masalah dependensi BLAS/LAPACK, digunakan toolchain kustom yang menggabungkan LLVM Flang, Emscripten, dan Netlib LAPACK
- Karena LLVM masih belum mendukung simbol umum Fortran (Common Block), masalah ini sementara diatasi dengan patch sederhana, dengan dukungan resmi direncanakan hadir di LLVM 22
- Dengan ini, dukungan JupyterLite meluas dari R hingga Octave, menandai langkah penting dalam perluasan ekosistem pemrograman ilmiah berbasis browser
Gambaran umum porting Xeus-Octave dan WebAssembly
- Xeus-Octave adalah kernel Jupyter yang memungkinkan menjalankan kode GNU Octave di browser, dan dipaketkan melalui emscripten-forge
- GNU Octave adalah bahasa gratis dan open-source yang dapat menjalankan skrip Matlab secara langsung
- Integrasi ini memungkinkan penggunaan langsung di lingkungan JupyterLite tanpa instalasi terpisah
- Dengan pendekatan yang mirip seperti Xeus-R-Lite yang dikembangkan sebelumnya, proyek ini memakai toolchain untuk kompilasi kode Fortran (LLVM Flang + Emscripten)
- Untuk pustaka dependensi operasi matematika Octave, dipilih Netlib LAPACK alih-alih OpenBLAS demi meningkatkan kompatibilitas build
Tantangan teknis dalam proses build WebAssembly
- Masalah dukungan blok umum Fortran (Common Symbol Block) menyebabkan error build di LLVM
- Wasm streamer di LLVM v20 belum mengimplementasikan simbol umum, sehingga diperlukan modifikasi kode
- Melalui kolaborasi tim QuantStack dan Serge Guelton, LLVM diberi patch sederhana untuk menanganinya sebagai weak symbol
- Dukungan resmi dijadwalkan masuk dalam rilis LLVM v22, dan versi LLVM yang sudah dipatch saat ini telah dipublikasikan untuk Linux
- Octave sendiri juga dimodifikasi agar sesuai dengan target WASM, termasuk menonaktifkan fitur GUI dan menyatukan signature fungsi Fortran
Integrasi dan demo Xeus-Octave
- Setelah build selesai, Xeus-Octave dapat dijalankan di JupyterLite hanya dengan menambahkan recipe emscripten-forge
- Xeus-Octave dibangun di atas framework kernel Jupyter berbasis C++ Xeus, sehingga perintah Octave bisa dijalankan dan divisualisasikan di browser
Rencana selanjutnya
- Pada tahap berikutnya, ada rencana untuk mengintegrasikan ekosistem paket Octave ke conda-forge dan emscripten-forge
- Utilitas
pkg milik Octave akan disesuaikan untuk lingkungan browser guna mendefinisikan proses instalasi di dalam lingkungan conda
- Dengan demikian, lingkungan pemrograman ilmiah dan matematika berbasis browser diperkirakan akan menjadi semakin kuat
Kontributor utama dan latar belakang
- Pengembang utama Isabel Paredes dari QuantStack sebelumnya menangani porting WebAssembly untuk bahasa R dan framework ROS
- Emscripten-forge dipimpin oleh Thorsten Beier, dengan partisipasi sejumlah kontributor seperti Anutosh Bhat dan Martin Renou
- JupyterLite dipelihara dengan Jeremy Tuloup sebagai tokoh utama, sementara Xeus dipelihara dengan fokus pada Johan Mabille
- Xeus-Octave dikembangkan oleh Giulio Girardi dan Antoine Prouvost
1 komentar
Pendapat Hacker News