オリジナルとの対応

コマンドライン引数

オリジナルdune 対応版mincaml-rs
./min-caml ./adderdune exec mincaml -- ./addercargo run -- -i ./adder.ml -o ./adder.wasm

モジュール

オリジナルmincaml-rs概要
syntax.mlsyntax構文定義
lexer.mllparser::lexer字句解析器
parser.mlyparser::parser構文解析器
type.mlty構文木のための型定義
typing.mltyping型推論
-ir_typed_ast型推論後の構文木
kNormal.mlir_knorm::{syntax, lowering}K 正規化
alpha.mltyping::name_res, ir_knorm::alpha_rename名前解決 (α 変換)
beta.mlir_knorm_passes::beta_convertβ 簡約
assoc.mlir_knorm_passes::let_flattenA 正規化
inline.mlir_knorm_passes::inliningインライン化
constFold.mlir_knorm_passes::constant_fold定数畳み込み
elim.mlir_knorm_passes::eliminate_unused不要な束縛の除去
closure.mlir_closure::{syntax, lowering}クロージャ変換
main.mlmainmain 関数
x86/emit.ml, ..codegen_wasmアーキテクチャ固有のコード生成

データ型の要素

オリジナルmincaml-rs
Unit, Int,..Const(LitKind)
Neg, FNegUnary
Add, ..Binary
PutSet
ExtArray,ExtFunApp-
Let, LetTuple, LetRecLet