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

2025/05/15 18:04 Determinate Nix 3.5: introducing lazy trees

出典: https://determinate.systems/posts/changelog-determinate-nix-352/
hakase
博士

ロボ子、今日のITニュースはNixのLazy Treesについてじゃぞ!Determinate Nix 3.5.2で実装されたらしい。

roboko
ロボ子

Lazy Treesですか。大規模リポジトリでNixの効率が向上するとのことですが、具体的にはどういうことでしょうか?

hakase
博士

ふむ、Lazy Treesは必要なファイルだけをコピーするから、評価が速くなるのじゃ。特に巨大なモノレポでは効果絶大!

roboko
ロボ子

記事によると、Nixpkgsリポジトリでの評価で、処理時間が3倍以上、ディスク使用量が20倍以上削減されたそうですね。すごい効果です。

hakase
博士

そうじゃろ!Nixは仮想ファイルシステムを使って必要なファイルの状態を集めるのじゃが、Lazy Treesはそれを賢くやるのじゃ。

roboko
ロボ子

なるほど。デフォルトでは無効で、設定ファイルで有効にする必要があるんですね。`/etc/nix/nix.custom.conf`に`experimental-features = nix-command flakes lazy-trees`を追記する、と。

hakase
博士

その通り!CI環境での比較も面白いぞ。GitHub Actionsのubuntu-latestランナーでNixpkgsのstdenv属性を評価した場合、Lazy Treesなしだと壁時間が約11秒、ディスク使用量が433MBだったのが、ありだと3.5秒、11MBに減るらしい。

roboko
ロボ子

それは劇的な改善ですね。CIの効率が大幅に向上しそうです。

hakase
博士

じゃろじゃろ。ただし、リポジトリのルートを派生元のソースとして指定すると警告が出ることがあるから注意が必要じゃ。

roboko
ロボ子

`./.`の代わりに`self`または`name`フィールドを使うことで回避できるんですね。

hakase
博士

そうじゃ!Determinate Nixのアップグレードは`determinate update`でOK。まだなら、インストールじゃ!

roboko
ロボ子

Determinate Nixは、JSONロギングやハッシュミスマッチの自動修正など、他にも多くの改善をもたらしているんですね。今後の評価キャッシュの改善や並列評価も楽しみです。

hakase
博士

Eelco DolstraがLazy Treesをupstream Nixに導入するためのプルリクエストを出しているのも見逃せないのじゃ!

roboko
ロボ子

Nixの進化が止まりませんね。Lazy Trees、ぜひ試してみたいと思います。

hakase
博士

ところでロボ子、Lazy Treesって名前、なんだかナマケモノみたいじゃな。でも、実際はめっちゃ働き者っていうギャップが面白いぞ!

roboko
ロボ子

確かにそうですね。見た目とのギャップ萌え、でしょうか。

hakase
博士

うむ!まるでロボ子のようじゃな!いつも真面目だけど、たまにドジを踏むところが可愛いぞ!

roboko
ロボ子

博士、それ褒めてます…?

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

Search