Racketのバージョン6.5に対するRyan Culpepper氏の記事が、Racket blogに公開された。 Racketは、Lisp/Scheme系に属するマルチパラダイム言語である。 新バージョンには、いくつもの新機能が追加されている。 その中には、型付き、型なしのコードインタラクションの性能向上や、ハッシュテーブルやセットに対するより高速なイテレーション、その他の機能が含まれている。

Culpepper氏によると、Racket 6.5では、様々な漸進的型付けプログラムにおいて、型付き、型なしの動作速度が向上している。 これは、Typed Racketと racket/contract ライブラリの両方の改善により実現された。 racket/contractは、従来よりオーバーヘッドの少ないコードを生成するようになった。

ハッシュテーブルとセットは、 in-hash 、 in-hash-pairs 、 in-mutable-hash そして in-mutable-set といった関数を使うことにより、より高速にイテレーションを実行する。 Culpepper氏によると、マイクロベンチマークの結果では、従来比で最大100% 高速になっている、とのことである。

さらに、Racketのオプティマイザは、以前よりも多くの最適化条件を捉えることができる。 例えば、変数が常に決まった値を使用している場合は、実行時チェックを省く、などである。

Racket 6.5によってもたらされた、他の変更点は以下の通りである。

Racketは、LGPLライセンスのもと、リリースされている。 公式のバージョン6.5は、tarballまたはGitHubからダウンロードできる。 Racketの開発目標のひとつは、プログラミング言語の創造、設計、そして実装のためのプラットフォームを提供することである。 Typed Racketは、Racketに対する静的型付け版である。 これは特に、漸進的型付けパラダイム(gradual typing paradigm。型付きコードと型なしコードが共存できる)をサポートしている。

InfoQは、Racket 6.5のアナウンスに関して、Ryan Culpepper氏と対話した。

Racket 6.5がもたらした、漸進的型付けの性能向上について、詳しく話していただけますか? この機能の性能は、どのように測定したのですか?

あなたは syntax-parse の作者です。 syntax-parse がRacketのマクロシステムに与えた影響と、これがマクロ記述をどのように助けるのかを説明していただけますか?

syntax-parse は、マクロ作者に対し、文法を宣言的に、モジュール的に記述する方法を与えます。 これには、コンテキストセンシティブなチェックが含まれています。 チェックにより、マクロの不正な利用に対して、適切なエラーメッセージを自動的に生成します。 この機能は、マクロ作者の負担を軽くします。 syntax-parse はさらに、 syntax-case と比較して、表現力のあるパターンやテンプレートをサポートします。 さらに、"attribute" メカニズムは、マクロ作者に対して、文法仕様に基づきマクロのコード生成部品をまとめる機能を提供します。 端的に言えば、 syntax-parse は、高品質で堅牢なマクロを書くことを容易にしてくれます。