概要
- OxCaml はJane Streetが開発する OCaml拡張版
- パフォーマンス指向 プログラミングに特化した機能追加
- 安全性・利便性・予測可能性 を重視した設計思想
- 既存のOCaml互換性 と進化する言語体験の両立
- 実験的利用とフィードバック を歓迎するオープンソースプロジェクト
OxCamlとは何か
- OxCaml は、Jane Streetが運用する OCamlコンパイラの拡張セット
- パフォーマンス重視 のプログラム開発を支援する実験的プラットフォーム
- OCaml本体への機能還元 を目指し、将来的な本家統合を視野
- 既存のOCamlプログラム はそのままOxCamlでも動作可能
- OCamlの進化形 として、使いやすさと生産性を維持
設計目標
- 安全性 :プログラマの生産性向上と正確なコード提供
- 利便性 :型推論の維持と、過度な注釈を強いない操作性
- 予測可能性 :コードの挙動やパフォーマンスを型レベルで明示
- 必要な場面だけ で追加機能を利用できる「 pay-as-you-go」設計
- OCamlらしさ を損なわず、基本設計思想を尊重
主な拡張機能
- Fearless concurrency
- 型システム拡張による データ競合の静的排除
- Layouts
- メモリ上のデータ配置 をプログラマが明示的に指定
- SIMD命令 へのネイティブアクセス
- Control over allocation
- アロケーション制御 でGC負荷軽減・キャッシュ効率向上
- Quality of life
- ポリモーフィックパラメータ
- Include functor
- ラベル付きタプル
- イミュータブル配列
- 日常開発を便利にする各種拡張
OxCamlの利用方法
- オープンソース として公開、研究者や実験的ユーザーを歓迎
- 拡張機能の安定性・後方互換性は未保証 (ただしOCamlとの互換性は維持)
- 標準ツールセット を改良して提供
- dune や opam 互換のパッケージ管理
- LSP-server によるエディタ統合
- ソースコード整形・ドキュメント生成 ツール
- Jane Street製ライブラリ の2形態提供
- OCaml本家用 (拡張機能除去済み)
- OxCaml用 (拡張機能フル活用)
- 一部拡張は消去不可 のため、OxCaml専用ライブラリも存在
- 本家OCamlへの拡張統合後、互換ライブラリも順次提供予定