TOPSoftware > WebAssembly、多値戻り値の提案に対する作業が進行中...

Software

WebAssembly、多値戻り値の提案に対する作業が進行中

2019/11/29

Paul Krill InfoWorld

 Webブラウザー上で高速に動くバイナリフォーマット「WebAssembly」の仕様に関して、多値戻り値に対応するという提案が出されており、作業が進められている。関数が複数の値を返せるようにするという変更だ。コードサイズの抑制や新しい命令の実現といった面で効果が考えられる。

Credit: Thinkstock

 この多値戻り値の機能や実装について解説する開発者のNick Fitzgerald氏の記事を、米Mozillaの開発者向けブログとBytecode Allianceのサイトが11月21日に掲載した。それによると、現状のWebAssemblyの仕様では、関数は値を1つまでしか返せない。また、block、if、loopといった命令シーケンスも、結果のスタック値を1つまでしか生成できない。

 この制約をなくそうというのが、多値戻り値の提案だ。関数が任意の個数の値を返せるようにし、命令シーケンスも任意の個数のスタック値を生成できるようにする。インタフェース型に新たに対応するうえでも、多値戻り値の機能は必要となる。

 GitHubで公開されている機能提案の文書では、この機能の意義として、値返しのタプルや構造体の分解、複数の戻り値の効率的コンパイル、loopラベルの引数などを挙げている。

 多値戻り値が導入されても、言語の構造やテキストフォーマットにはおおむね影響は及ばない。Fitzgerald氏の記事によると、RustとWebAssemblyのツールチェーンの各種クレートや、WebAssemblyランタイム「Wasmtime」にも、多値戻り値のサポートが既に追加されている。

(了)

翻訳:内山卓則=ニューズフロント
記事原文(英語)はこちら

↑ページ先頭へ