はじめに
ヿは、整数・f32浮動小数点数・固定幅128ビットSIMDのベクトルとマスク・静的文字列・関数・ループに加え、早期return、宣言された失敗の伝播と処理、レコード・和型、モジュール、region・配列・型付きポインタ、読取り参照と借用検査を扱います。関数の型・権限・失敗を明示し、関数内の型と安全な自動解放点を推論します。テストはソース内のdeftestで記述できます。ヿ製コンパイラはブラウザのWasm上で自身をコンパイルできます。通常の起動には検証済みのWasmコンパイラseedを使います。
初めて使う場合はチュートリアルを参照してください。構文、メモリモデル、現在の制限は言語仕様にあります。ホストからコンパイラやテスト実行を使うAPIはホストとAPI、コンパイラの生成・seedの更新・検証の手順は開発にあります。
ブラウザで試す
開発用にNode.js 22以降を使用します。ヿ製コンパイラのseedはWasmの固定幅SIMDを使うため、エディタと、loadSeedなどでseedを読み込むすべてのホストには、Wasmの固定幅SIMDへの対応が必要です。ヿ製コンパイラのseed自身はrelaxed命令を使いません。
npm ci
npm run dev
http://127.0.0.1:8000を開き、「コンパイル・実行」を押すとサンプルの結果 42 が表示されます。起動時にseedとソース・ホストABIの整合性を確認し、ヿ製コンパイラで入力プログラムをコンパイルします。コンパイルと実行はブラウザ内のWorkerで行い、ソースをサーバーに送信しません。生成したWasmを保存できます。
「コンパイル・実行」では通常引数・region引数を持たず、スカラー型を返す main をexportしたプログラムを実行します。複合値を返す関数もコンパイルしてWasmを保存できます。「テスト実行」ではソース内のdeftestを実行し、結果と失敗位置を表示します。テストにはmainやexportは不要です。テストの書き方を参照してください。
「停止」でWorkerを終了できます。各実行と各テストには新しいWasmインスタンスを使用し、trapしたインスタンスを再利用しません。開発サーバーはローカルの静的ファイル配信用です。examplesに実行できるソースがあります。