概要

Racket言語コミュニティは8月13日、新バージョン「Racket v9.3」を公開した。今回のリリースには、racoツールへのMarkdown文書生成オプションの追加や、BSL・ISL+といった教育用言語のLanguageダイアログにおける機能パリティ達成、DrRacketの構文チェック高速化など、開発ツールの利便性と性能を高める変更が数多く盛り込まれている。リリースには28名の貢献者が参加しており、活発なコミュニティによる継続的な改善が続いている。ダウンロードは公式サイト(download.racket-lang.org)から可能だ。

開発ツールとドキュメントまわりの改善

今回の目玉の一つが、racoコマンドに追加された--doc-markdownオプションだ。これによりracoからMarkdown形式のドキュメントを直接生成できるようになり、GitHubなど外部プラットフォーム向けのドキュメント整備がしやすくなった。また教育用途で使われる#lang言語(BSL、ISL+など)は、DrRacketのLanguageダイアログにおいて他の選択肢と機能的に同等になり、推奨選択肢としての位置付けが明確化された。あわせてDrRacketでは、バックグラウンドでの式展開時にerrortrace注釈を無効化することで、構文チェックの速度が向上している。

パッケージ管理・ライブラリ・ランタイムの拡張

パッケージ管理面では、raco pkg install--adjacent-deps--destdir--attachという新しいオプションが加わり、依存関係の配置やインストール先の制御が柔軟になった。ライブラリ面では、ffi/unsafe/runtime-libがソースファイルからの相対位置でライブラリを参照できる新しい仕組みを提供する。ネットワーク周りでは、tcp-listen 0が「address in use」エラー発生時に自動的にリトライするようになり、堅牢性が向上した。さらにfile/zipパッケージでは、メモリ内のファイルソースを扱えるようになったほか、ファイル単位で圧縮の有無を制御できるメカニズムが追加されている。継続処理(continuation)関連の複数の関数についても、プロンプトタグの扱いを中心に機能強化が行われた。

パフォーマンスと今後の展望

内部的な最適化として、racket/baseが必要とするモジュール数とそのインスタンス化数が削減され、起動時のオーバーヘッド軽減につながっている。今回のリリースは大きな目玉機能を一つ打ち出すというよりも、開発ツールの使い勝手・教育用途での一貫性・ランタイムの堅牢性といった多方面にわたる地道な改善を積み重ねた内容といえる。Racketは今後もコミュニティ主導での継続的な機能拡充が見込まれ、次期バージョンでも同様に幅広い改善が期待される。