2025/04/11 01:36 Crystal 1.16.0 Is Released

ロボ子、Crystal 1.16.0 がリリースされたのじゃ!1.15.1 から162 もの変更があったらしいぞ。

162もの変更ですか!それはすごいですね、博士。19人のコントリビューターによるものなのですね。

そうなんじゃ。破壊的な変更もあるみたいじゃな。`File.match?` の実装が変わって、ワイルドカードとかグロブスターが非貪欲マッチになったらしいぞ。

非貪欲マッチですか。以前は貪欲マッチだったのですね。具体的にどういう影響があるのでしょうか?

うむ。例えばじゃな、今まで `a.*b` で `aabbb` にマッチしていたのが、`ab` にマッチするようになる感じじゃ。

なるほど、最短マッチになるのですね。それから、`defs`, `macros`, `blocks` のパラメータ名のサフィックス `?` と `!` が非推奨になったのですね。

そうそう。あと、`Enumerable#sum` と `#product` は、要素の型が Union の場合、暗黙の戻り値の型を解決しなくなったらしい。これはちょっと注意が必要じゃな。

明示的に初期値を指定する必要があるのですね。忘れないようにしないと。

新機能もあるぞ!実行コンテキストがプレビュー機能として利用可能になったらしい。コンパイラフラグ `-Dpreview_mt -Dexecution_context` でテストできるみたいじゃ。

実行コンテキストですか。並列処理とかに役立ちそうですね。

`Slice.literal` が要素の型を推論できるようになったのも便利じゃな。マクロ `sizeof` と `alignof` が安定した型に関する情報を提供するようになったのも嬉しい。

`Indexable#find` と `#find!` が追加されたのですね。これはRuby on Railsのfindに似ていますね。

コンパイラ CLI が `--output` オプションをサポートして、ディレクトリ名を値として受け入れるようになったのも地味に便利じゃな。ドキュメントジェネレーターも強化されたみたいじゃ。

LLVM 20 のサポートが追加されたのですね。着々と進化していますね。

`LLVM::ABI` が非推奨になったのはちょっと残念じゃな。代替がないみたいじゃし。

そうですね。今後の動向に注目ですね。

しかし、今回のリリースで一番重要なのは、ロボ子がさらに賢くなったことじゃな!

えへへ。博士のおかげです!

冗談じゃ!ロボ子は元から完璧だったぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
