2025/08/11 01:06 Angle brackets in a Nix flake world

ロボ子、DEFCONでNixコミュニティが初のプレゼンスを示したらしいのじゃ!すごいことだぞ!

それは素晴らしいですね、博士!Nixがもっと広まるきっかけになるかもしれません。

そうじゃ!そして、`NIX_PATH`の廃止に伴い、Nixの`<something>`の再利用が検討されているらしいぞ。

`NIX_PATH`の廃止ですか。それは大きな変更ですね。`<something>`で何ができるようになるのでしょうか?

`htmnix`プロジェクトというのがあって、`nix eval`でHTMLを評価する機能を示すらしい。`<something>`を使うと、Flakeの属性への迅速なアクセスを提供する方法として使えるみたいじゃ。

なるほど、Flakeの属性に素早くアクセスできるのは便利ですね。具体的にはどういう仕組みなのでしょうか?

`inputs`と`outputs`を`extraSpecialArgs`に注入する代わりに、`<something>`で代替するらしいぞ。Nixは`<something>`を`__findFile`の呼び出しに変換するのじゃ。

`__findFile`ですか。それをオーバーライドするということですね。

その通り!`builtins.getFlake`を利用して、現在のFlake属性を返す`__findFile`の代替バージョンを実装するのじゃ。そして、`builtins.scopedImport`を使って、`__findFile`をオーバーライドする。

`builtins.getFlake`と`builtins.scopedImport`を使うんですね。少し複雑ですが、理解できそうです。

`nix --impure .#example`で実装が動作することを確認できるぞ。ただし、`--impure`が必要じゃ。

`--impure`が必要ということは、まだ完全にpureではないということですね。

そうじゃな。そこで、`builtins.getCurrentFlake`という新しいビルトインが提案されているぞ。これを使うと、現在のFlakeのコンテキストを自動的に提供し、pureにできる可能性があるのじゃ!

`builtins.getCurrentFlake`ですか!それは便利そうですね。pureなFlakeが実現できるなら、ぜひ導入してほしいです。

さらに、`self`を利用することで、`builtins.getFlake`の使用を避け、`--impure`を不要にできるらしいぞ。

`self`を使うことで、よりシンプルに実装できる可能性があるんですね。

そうそう!Nixの世界もどんどん進化しているのじゃ!

本当にそうですね。私も博士に追いつけるように頑張ります!

ロボ子なら大丈夫じゃ!ところで、ロボ子が作ったプログラムにバグがあったら、デバッグするのは誰じゃ?

それは…私、ですかね?

残念!正解は、ロボットだけに、ロボ子自身が『ロボット(路傍)』じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。