1 ポイント 投稿者 GN⁺ 2023-12-19 | 1件のコメント | WhatsAppで共有
  • Wasm3 は高速な WebAssembly インタープリタであり、汎用 WASM ランタイムを目指しているが、新機能の開発を停止し、最小メンテナンス段階に入る
  • 開発者はロシアの侵攻で自宅が破壊された後、新機能開発を続けられなくなったとし、プロジェクトは維持しつつ、届いた Pull Request を確認・マージしていくと明らかにした
  • wasm3WebAssembly spec testsuite を通過しており、多くの WASI アプリを実行でき、最小限実用的なシステム要件はコード約 64KB、RAM 約 10KB
  • x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa, ARC32 などの複数アーキテクチャと、Linux, Windows, OS X, FreeBSD, Android, iOS, MCU, ブラウザ、自分自身の実行まで対応
  • インタープリタ方式は、実行ファイルサイズ、メモリ使用量、起動遅延、移植性、セキュリティ、統合のしやすさで利点があり、iOS や WebAssembly 自体のようにランタイムでコードページを生成できない環境では JIT を使えない

メンテナンス状況の変化

  • Wasm3 は 最小メンテナンス段階に入る
    • 新機能の開発を続けるのは難しい状況
    • プロジェクトは維持され、届いた Pull Request は積極的に確認・マージする予定
    • コミュニティの貢献がこれまで以上に重要になる
  • 開発者は、ロシアの侵攻で自宅が破壊された後、現在は新機能開発を続けられないと述べている

Wasm3 が提供するもの

実行環境と要件

  • wasm3WebAssembly spec testsuite を通過している
  • 多くの WASI アプリを実行できる
  • 最小限実用的なシステム要件は以下の通り
    • コード: 約 64KB
    • RAM: 約 10KB
  • 対応アーキテクチャの範囲は広い
    • x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa, ARC32 など
  • 対応プラットフォームと環境も多様
    • Linux, Windows, OS X, FreeBSD, Android, iOS
    • OpenWrt, Yocto, Buildroot ベースのルーター・モデム
    • Raspberry Pi, Orange Pi などの SBC
    • Arduino, ESP8266, ESP32, Particle などの MCU
    • ブラウザ上で WebAssembly 自体を使って実行可能
    • wasm3wasm3 を実行する セルフホスティング も可能

WebAssembly 機能のサポート

  • サポートされる WebAssembly 提案機能
    • Import/Export of Mutable Globals
    • Non-trapping float-to-int conversions
    • Sign-extension operators
    • Multi-value
    • Bulk memory operations は 一部サポート
    • Custom page size
  • 追加機能
    • 構造化された実行トレース
    • Big-Endian システムのサポート
    • Wasm および WASI のセルフホスティング
    • Gas metering
    • 線形メモリ制限: 64KiB 未満
  • まだ進行中または未サポートの項目もある
    • 進行中: Multiple memories, Reference types
    • 未サポート: Tail call optimization, Fixed-width SIMD, Exception handling, Stack Switching

インタープリタを選ぶ理由と組み込み WASM

  • 速度が常に最重要要件とは限らず、インタープリタ方式には多くの場面で利点がある
    • ランタイム実行ファイルサイズ、メモリ使用量、起動遅延を改善できる
    • 移植性とセキュリティを達成・維持しやすい
    • Wasm3 のようなシンプルなライブラリは既存プロジェクトにコンパイル・統合しやすく、ビルドは数秒で完了する
  • 一部プラットフォームでは JIT を使用できない
    • iOS と WebAssembly 自体では、ランタイムに実行コードページを生成できない
  • 組み込みデバイスで WASM を実行する理由も示されている
    • Wasm3 は研究プロジェクトとして始まり、さまざまな環境でエンジンを評価することも研究の一部
    • MCU ですでに Lua, JS, Python, Lisp などが動作している状況では、WebAssembly も代替になり得る
    • WebAssembly はツールチェーンの分離と、完全にサンドボックス化された、よく定義され予測可能な環境を提供する
    • 実用的な事例として edge computing、スクリプティング、プラグインシステム、IoT rules、スマートコントラクトなどがある

参考資料とライセンス

1件のコメント

 
GN⁺ 2023-12-19
Hacker News のコメント
  • OPです。質問があれば答える用意があります
    • Wasmプロジェクトとは関係ありませんが、あなたと友人・家族が無事であることを願っています。ウクライナに栄光あれ、占領者は出ていけ
    • 初期の NAFO メンバーとして応援しています
      匿名アカウントなので自慢のように感じずに言えますが、寄付をし、荒らしを通報し、偽情報に対抗し、政治家に圧力をかけるなど、できることをしてきました。それでもウクライナの人々にはまだ借りがあるように感じています
      あなたは一人ではありませんし、ほかの人たちにも、政治家に働きかけたり、民間人や前線の英雄たちを寄付で支援したり、偽情報を通報したりするような小さな行動をしてほしいと思います
    • 今は安全ですか?
    • 休む時間や楽しいことをする余裕はありますか、それともずっとストレスを抱えたままですか?
  • Wasm3側のTwitter投稿に、より詳しい背景があります: https://x.com/wasm3_engine/status/1736712528883769670?s=20
  • 正直、この知らせは悲しいです。Wasm3 は性能面で先行していた優れたWasmインタプリタで、ネイティブより約3〜5倍遅いものの、一般的なWasmインタプリタよりは約3倍高速でした
    Volodymyrがロシアによるウクライナ侵攻の中でもプロジェクトを維持しようと奮闘している間、どうか持ちこたえてほしいですし、戦争が早く終わることを願っています
    • 同意します。最高の WASMインタプリタ の一つで、あちこちで入手できる一部のランタイムよりも優れていると思います
      性能は非常に高く、アーキテクチャとコードの美しさも確かに印象的です
  • 説明はこうです。ロシアが侵攻し、自宅が破壊されたため、Wasm3 は最小限のメンテナンス段階に入り、新機能開発は続けられないものの、プロジェクトを存続させるために寄せられるPull Requestは積極的にレビューしてマージする、という内容です
    リンク先のツイートは2022年9月のもので、破壊された家の映像を示し、支援したい人に寄付を呼びかけています
    • これはひどい。Slava Ukraini
    • 雨や雪を防ぐには、その家にはできるだけ早く 新しい屋根 が必要に見えます
    • 今ごろまでには、ロシア国内の誰かがPutinを排除してくれることを本当に期待していました。彼をそれほど好いていない人はかなり多いはずだと思います
      EUはウクライナを支援するために、もっと多くの現金を拠出すべきです