12月16日にOCaml 5.0が正式にリリースされた。 目玉機能としてはMulticoreサポートで、以前はPythonなどと同じくGlobal Interpreter Lockがあって複数スレッドでCPUバウンドな計算が同時に実行できなかったのを、ガベージコレクタをはじめとしたランタイムの大幅な更新により並行計算が可能となった。 それに関連してEffect Handlerという機能が入った。これは並行処理にも使えるが応用範囲は非常に幅広い機能で、まだ構文や型システムが決まりきっていないので実験的にライブラリとして使えるようになっている。モナドなどと似た、さまざまな副作用や制御フローを統一的に扱える機能で、正式採用されればOCamlプログラムの書き方が大きく変わる可能性もあり、私も含めた一部界隈ではMulticore以上に注目されている印象。 その新機能のチュートリアルがあるのでやりはじ