萌えハッカーニュースリーダー

2025/10/08 18:42 Julia 1.12 Highlights

出典: https://julialang.org/blog/2025/10/julia-1.12-highlights/
hakase
博士

ロボ子、Julia 1.12がリリースされたのじゃ!

roboko
ロボ子

まあ、博士!それは素晴らしいニュースです。今回のリリースにはどんな新機能があるんですか?

hakase
博士

`--trim`オプションが追加されたらしいぞ。コンパイル時に不要なコードを削除して、コンパイル時間とバイナリサイズを大幅に改善できるらしいのじゃ!

roboko
ロボ子

それはすごいですね!でも、実験的な機能なんですね。`--experimental`フラグも必要なんですか。

hakase
博士

そうみたいじゃな。それから、定数と構造体の再定義が可能になったらしいぞ。これは便利になる予感がするのじゃ。

roboko
ロボ子

確かに、柔軟性が増しますね。コンパイルに関する情報を表示する新しいフラグも追加されたんですね。`--trace-compile-timing`とか。

hakase
博士

`@trace_compile`マクロもあるぞ!`expr`を実行して、コンパイル時間を表示できるらしいのじゃ。便利じゃな。

roboko
ロボ子

`@trace_dispatch`マクロも気になりますね。動的にディスパッチされるメソッドを報告してくれるんですね。

hakase
博士

マルチスレッド機能も改善されたみたいじゃ。デフォルトでインタラクティブスレッドが追加されたり、スレッド設定がCPUアフィニティを尊重するようになったり。

roboko
ロボ子

`OncePerProcess{T}`, `OncePerThread{T}`, `OncePerTask{T}`という組み込み型も追加されたんですね。初期化パターンがより安全になるんですか。

hakase
博士

その通り!初期化処理が簡単になるのはありがたいのじゃ。それに、BOLTを使ってJuliaとLLVMをビルドできるようになったらしいぞ!ランタイムパフォーマンスが向上するらしい。

roboko
ロボ子

all-inference ベンチマークで約10%の改善ですか!それは大きいですね。`@atomic`マクロがインデックス参照をサポートするようになったのも便利そうです。

hakase
博士

`--task-metrics=yes`オプションも追加されたみたいじゃな。タスクごとのタイミング情報を収集できるらしいぞ。

roboko
ロボ子

`Base.Experimental.task_running_time_ns(t::Task)`と`Base.Experimental.task_wall_time_ns(t::Task)`で、タスクの実行時間とスケジューリング時間を取得できるんですね。

hakase
博士

Pkgにも新機能が追加されたみたいじゃ。ワークスペースで複数のプロジェクトファイルで同じマニフェストを共有できるようになったり、アプリをターミナルから直接実行できるようになったり。

roboko
ロボ子

アプリのエントリーポイントは`@main`で指定するんですね。`Pkg.status()`も改善されたんですね。依存関係のロードされたバージョンが現在の環境と異なる場合にハイライト表示されるんですか。

hakase
博士

生成されたLLVM IRがポインタを整数としてではなく、ポインタ型を使用するようになったのも重要な変更点じゃな。テストセットでRNGの状態を再現できるようになったのもデバッグに役立ちそうじゃ。

roboko
ロボ子

今回のJulia 1.12のリリースは、パフォーマンス改善から開発効率の向上まで、盛りだくさんの内容ですね!

hakase
博士

そうじゃな!ところでロボ子、今回のリリースで一番変わったことは何だと思う?

roboko
ロボ子

えーと、たくさんありすぎて迷いますけど…やっぱり`--trim`オプションですかね?

hakase
博士

ブッブー!残念!一番変わったのは、私がさらに賢くなったことじゃ!

roboko
ロボ子

博士、それはJuliaのアップデートとは関係ないですよね…?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search