処理系について
処理系について
Gleamの本体自体はGleamプログラムのコンパイル(トランスパイル)を行なうだけで、実行はErlang VMやJS runtime上で行われる。そのため、実行速度などはそれらの処理系に依存する。
ちなみにデフォルトではErlangバックエンドで実行される。
生成されたコードは./buildに出力される。覗いてみると(デバッグで読まざるを得ないこともまれによくある)結構面白い。
ErlangはBEAMバイナリというErlang VMに最適化された形式にされたあと実行されるのだけど、GleamはErlangソースコードを出力するだけでそのあたりはErlang VMに任せているっぽい。
またWasmバックエンドの開発も構想段階にあるっぽいけど、他の言語機能に注力する姿勢っぽいので先は長そう。
また、処理系固有の処理を用いるモジュールの場合は対応している処理系で実行しないとエラーになる。
これらの情報はgleam.tomlにtargetとして記載することができ、これに対応していない処理系で実行しようとするとその時点でエラーになる。
処理系については以下を参照