NixConf読書会#8
NixConf読書会 第8回
開催概要
日時: 2025-03-02 (日) 20:00
場所: nix-ja Discord #読書会
対象: NAME
commit hash: 7daee98dd85539a25440feaac0cb8ad4e461253f
読書中メモ
以下、メモ(気づいたことや感想など)を自由に書いていってください
default.nix、inheritの嵐だkuuote.icon
default.nix#L44-L100: 最初は結構ここ見るとよいか? peacock0803sz.icon
strings.nix#L54: Sphinx + MySTの記法だpeacock0803sz.icon
debug.nix#L173: traceSeqなんてあったんだ(自力で書いてた)kuuote.icon
traceしてもthunk出てくるので評価してほしいみたいなやつですkuuote.icon
ascii-table.nix どこで使ってるんだsatler.iconREAD
strings.nix#L967satler.icon
escapeCとかに使われてるぽいなsatler.icon
strings.nix#L11: ここでimportされてるなkuuote.icon
strings.nix#L455-L463: 正規表現で文字列展開してるのすごいな... peacock0803sz.icon
strings.nix#L666: Pathの正規化なんてあったのか peacock0803sz.icon
strings.nix#L1198: toShellVar のシェル変数に突っ込むやつも実装がここにあるのか peacock0803sz.icon
NixOSとかhome-managerとか覗いてるとちょいちょい使われてるの見るkuuote.icon
licenses.nix: 大事だ。あとlib.mapAttrsのいい使い方 satler.icon
strings.nix#L1688-L1723: versionOlder / versionAtLeast バージョン文字列の比較できる関数あるのいいな peacock0803sz.icon
versions.nixみてそれはないんだって思ってけどそっちにあったのかsatler.icon
strings.nix#L2823-L2923: レーベンシュタイン距離を計算する関数まであるのかww peacock0803sz.icon
何に使うんだ…kuuote.icon
typoのsuggestとかっぽい。customisation.nix#L260 satler.icon
はえーkuuote.icon
trivial.nix#L131: pipe = builtins.foldl' (x: f: f x); だけで定義終わるの面白いkuuote.icon
pipe自身の使い方もそうだけど、カリー化の本領を見ている気持ちkuuote.icon
lists.nix#L850-L888: Pythonが母語なのでrange関数あると安心してしまうpeacock0803sz.icon
lists.nix#L957-L1013: groupByみたいなクエリ言語っぽい関数まであるのか。すげえなpeacock0803sz.icon
lists.nix#L1120-L1236: 深さ優先探索(DFS), toposortもあった peacock0803sz.icon
attrsets.nix#L1491: テクい。というか固定長の配列しかないと大変そうだなぁkuuote.icon
README見てたと思ったらhaskellのページ見てた。名前のつけ方みたいな話だったtositada.icon
attrsets.nix#L150-L232: 結構組み込みデータ型にパス関連の関数生えているの、流石という感あるなpeacock0803sz.icon
attrsets.nix#L65: これ、自作したんだけどあったのか…kuuote.icon
作る前にlib漁らないといかんなkuuote.icon
customisation.nix#L426-L479: hydra用の関数 hydraJobもここにあるのか
libにそういうのあるのNix感あるな(語彙力)kuuote.icon
customisation.nix#L481-L733: makeScope / makeScopeWithSplicing のスコープ作るやつは関数型言語っぽいなpeacock0803sz.icon
derivations.nix#L24-L170: lazyDerivationって遅延評価させるやつかな。これも関数型言語っぽい定義だし、結構ドキュメント書いてあるので今度本気で読みたいな peacock0803sz.icon
meta.nix: これなんだと思ったらライセンス名とか対応プラットフォーム取ってくるの関数だったりが入っているのか peacock0803sz.icon
メモの書式ガイド
NOTE: 各自で好きにファイルを辿る形式のため、順番は整理する必要ありません。
先頭に [path/to/file.nix] のようにファイル名(+行範囲)
GitHubの場合は <hash> があるとmaster/mainブランチが更新されてもURL先の内容が変わらないのでオススメ
TIPS: (ブラウザでGitHubを見ている場合) 回の最初に最終コミットのページから「Browse files」を押下し、以後は別タブでザッピングすると便利です
行末に発言者を「( + 自分の名前」または「アイコン記法」で明記する
アイコン記法について
自分のアイコン(+プロフィールページへのリンク)をCtrl + iで挿入できるConsenseの機能
FYI: Cosense(Scrapbox)の記法については以下を参照してください