- Xeus-Octave अब JupyterLite kernel ecosystem का हिस्सा बन गया है, जिससे ब्राउज़र में सीधे GNU Octave कोड चलाना संभव हो गया है
- GNU Octave एक Matlab-compatible open source scientific computing language है, और इस प्रोजेक्ट में इसे WebAssembly (WASM) वातावरण में चलने के लिए port किया गया है
- Fortran-आधारित कोड और BLAS/LAPACK dependencies से जुड़ी समस्याओं को हल करने के लिए LLVM Flang, Emscripten, Netlib LAPACK को मिलाकर एक custom toolchain का उपयोग किया गया
- क्योंकि LLVM अभी Fortran common symbol (Common Block) को support नहीं करता, इसलिए अस्थायी patch से इसे फिलहाल संभाला गया है और आगे LLVM 22 में आधिकारिक support आने की योजना है
- इससे JupyterLite में R के बाद Octave का support भी जुड़ गया है, और ब्राउज़र-आधारित scientific programming ecosystem के विस्तार की दिशा में यह एक महत्वपूर्ण कदम है
Xeus-Octave और WebAssembly porting का overview
- Xeus-Octave एक Jupyter kernel है जो ब्राउज़र में GNU Octave कोड चलाने देता है, और इसे emscripten-forge के जरिए package किया गया है
- GNU Octave एक free और open source language है जो Matlab scripts को सीधे चला सकता है
- इस integration के बाद इसे JupyterLite में बिना अलग installation के तुरंत इस्तेमाल किया जा सकता है
- पहले विकसित किए गए Xeus-R-Lite की तरह, इसमें भी Fortran code compilation toolchain (LLVM Flang + Emscripten) का उपयोग किया गया है
- Octave की mathematical operations dependencies के लिए OpenBLAS की जगह Netlib LAPACK चुना गया, ताकि build compatibility बेहतर हो
WebAssembly build process की तकनीकी चुनौतियाँ
- Fortran common block (Common Symbol Block) support की समस्या के कारण LLVM में build error आया
- LLVM v20 का Wasm streamer common symbol को implement नहीं करता, इसलिए code modification की जरूरत पड़ी
- QuantStack टीम और Serge Guelton के सहयोग से LLVM में अस्थायी patch लगाया गया, जो इसे weak symbol की तरह handle करता है
- आधिकारिक support LLVM v22 release में शामिल होने की उम्मीद है, और फिलहाल patched LLVM version Linux के लिए उपलब्ध कराया गया है
- Octave में भी WASM target के अनुरूप GUI features को disable करने और Fortran function signatures को unify करने जैसे बदलाव किए गए
Xeus-Octave integration और demo
- build पूरा होने के बाद, सिर्फ emscripten-forge recipe जोड़कर JupyterLite में Xeus-Octave चलाना संभव हो गया
- Xeus-Octave, C++-आधारित Jupyter kernel framework Xeus पर बना है, जो ब्राउज़र में Octave commands चलाने और visualization करने देता है
आगे की योजना
- अगले चरण में, Octave package ecosystem को conda-forge और emscripten-forge में integrate करने की योजना है
- Octave की
pkg utility को browser environment के अनुसार ढालकर conda environment में installation process परिभाषित किया जाएगा
- इससे ब्राउज़र-आधारित scientific और mathematical programming environment और मजबूत होने की संभावना है
प्रमुख योगदानकर्ता और पृष्ठभूमि
- प्रमुख डेवलपर Isabel Paredes QuantStack से हैं, और उन्होंने पहले R language और ROS framework के WebAssembly porting पर काम किया है
- Emscripten-forge का नेतृत्व Thorsten Beier करते हैं, और इसमें Anutosh Bhat, Martin Renou सहित कई contributors शामिल हैं
- JupyterLite का रखरखाव Jeremy Tuloup और Xeus का रखरखाव Johan Mabille के नेतृत्व में हो रहा है
- Xeus-Octave को Giulio Girardi और Antoine Prouvost ने विकसित किया है
1 टिप्पणियां
Hacker News राय