v0.10.0 Release Notes
リリース日: 2026-01-05
概要
Cm言語コンパイラの v0.10.0 をリリースしました。このバージョンはモジュールシステム、FFI、ラムダ式、クロージャ、動的スライス、MIR最適化の安定化を含む大規模なリリースです。
新機能
モジュールシステム(完全実装)
import std::io::println;- 階層的インポートimport ./path/*;- ワイルドカードインポート(再帰的)export { M };- 再エクスポートimport foo as F;- エイリアスインポートimport std::io::{println, print};- 選択的インポート- 循環依存の自動検出とエラー報告
- 実行ファイル相対パスでの標準ライブラリ解決
FFI (Foreign Function Interface)
use libc { malloc, free, calloc, realloc }構文std::memモジュールによるメモリ管理- LLVM Native / WASM 両対応
ラムダ式・クロージャ
(params) => { body }構文- パラメータ型・戻り値型の推論
- 関数ポインタへの代入
- 変数キャプチャ(ClosureValue型)
- 高階関数(map/filter)でのクロージャ使用
動的スライス型
T[]スライス型宣言T[][]多次元スライス- 固定配列からスライスへの暗黙変換
- 高階関数:
.map(),.filter(),.some(),.every(),.find(),.reduce(),.sort(),.sortBy()
Debug/Display 自動実装
with Debugによる.debug()メソッド自動生成with Displayによる.toString()メソッド自動生成
no_std 対応
- カスタムアロケータ抽象化
- 自前文字列/メモリ操作関数
MIR最適化の安定化
- 定数畳み込み, DCE, SCCP, コピー伝播, CSE, DSE
- インライン化(回数制限), LICM, プログラムレベルDCE
- 無限ループ防止機構(タイムアウト、循環検出)
文字列補間拡張
{*ptr}ポインタデリファレンス補間
バグ修正
- std::io モジュールパス解決(実行ファイル相対)
- 再帰的ワイルドカードインポートのパス正規化
- LLVM 18 文字列補間エラー修正
-O0構造体変更反映問題(Displacement Bug)- MIRユニットテスト修正
テスト結果
| 環境 | 結果 |
|---|---|
| Mac (LLVM 17) | 250/262 passed |
| Ubuntu (LLVM 17) | 250/262 passed |
既知の問題
- advanced_modules/: 高度なインポート構文(10テストスキップ)
v0.11.0 予定
- イテレータ拡張, JS改善, 所有権・借用システム
- File I/O, std::io拡張, リファクタリング
- 未実装インポート構文の対応