プログラミング言語SML#解説 4.2.0版
3 SML#の概要

3.5 SML#第4.2.0版の機能と制限

我々開発チームは第3.1節でのべた機能をすべて 開発しSML#開発開始時に目標とした機能を実現しています. 第4.2.0版にその殆どが含まれていますが,以下の制約があります.

  1. 1.

    ターゲットアーキテクチャ. 現在のSML#コンパイラは,Intelアーキテクチャ(x86_64) およびarm64アーキテクチャ向けのコードのみ生成可能です. オペレーティングシステムもLinuxおよびmacOSのみの対応です. それ以外のアーキテクチャやOSへの対応は将来の課題です.

  2. 2.

    最適化. 現在のバージョンでは,インライニングや定数の伝播などの基本的な最 適化のみを装備しています. 将来の版では,より高度な最適化を実装し,他の最適化コンパイラに 比肩する速度が得られると期待しています.

  3. 3.

    arm64版の制限. arm64アーキテクチャへの対応は実験的です. x86_64でできることがarm64ではできないことがあります. 例えば,MLの関数をCに渡すコードをコンパイルするとき, arm64版macOSでは以下のLLVMエラーが発生することがあります.

       LLVM ERROR: INIT_TRAMPOLINE operation is only supported on Linux
    

    この制限は将来の版で解消される予定です.