WebAssemblyランタイムの制限を突破:ZeroPerlの非同期実装
2025-02-11
ほとんどのWebAssemblyランタイムでexnrefのサポートが不足しているためZeroPerlが使用できず、不満を感じていた著者は、文句を言う代わりに問題を解決することにしました。BinaryenのAsyncify機能を活用することで、setjmpの代替をスクラッチから実装し、libsetjmpの互換性の問題を回避しました。公式ライブラリを削除し、アセンブリコードを書き、wasm-optで最適化した後、ZeroPerlはWasmer、Wasmtime、その他のWebAssemblyランタイムで正常に動作するようになりました。このブレークスルーにより、完全にサンドボックス化され、自己完結型のPerl WebAssemblyモジュールが実現しました。
開発