| 10 Jul 2022 | 
 K900 | I'd love to see it happen but it's so much coordination work and I'm already burned out as is | 15:35:48 | 
 kevincox |  Well you store the while tree but 99% is the same as last time so it compresses just like any other blob with a 1-line change.  | 15:35:49 | 
 infinisil |  K900: This team should help with that :D  | 15:36:20 | 
 Alyssa Ross | that's true, but I don't compression will help as much as just not having to re-store something in the first place | 15:36:25 | 
 Alyssa Ross | additionally, it means diffing the whole tree rather than diffing three smaller tries | 15:36:47 | 
 Alyssa Ross | for which compression is an anti-optimisation | 15:37:09 | 
 infinisil |   Problem: This is the list of <=2 letter attribute names in pkgs.*: 
[ "R" "ag" "ao" "at" "b4" "bb" "bc" "cl" "cv" "db" "di" "ed" "em" "es" "et" "f2" "f3" "fd" "fq" "fx" "gd" "gh" "gn" "go" "gt" "gv" "gx" "h" "h2" "h3" "hr" "ht" "hy" "i3" "ii" "io" "ir" "iv" "iw" "ix" "j" "jc" "jd" "jl" "jo" "jp" "jq" "jx" "k6" "kn" "ko" "kt" "lf" "lr" "lv" "ly" "m4" "mc" "mg" "mm" "mr" "mu" "mx" "n3" "nb" "ne" "nq" "oh" "oq" "ox" "p4" "pn" "ps" "pt" "pv" "rc" "rq" "rr" "rs" "rt" "rw" "rx" "s6" "sd" "sl" "so" "sq" "st" "su" "sx" "t" "td" "tk" "tm" "ts" "tv" "tz" "ua" "up" "uq" "v8" "vc" "vp" "ws" "wt" "wv" "xa" "xd" "xe" "xh" "xv" "xz" "yi" "yj" "yq" "z3" "zk" "zx" "zz" ]
 
  | 15:37:46 | 
 Alyssa Ross | infinisil: you can choose the prefixes based on some criteria apart from length, that's fine | 15:38:25 | 
 Alyssa Ross | e.g. I saw some package list (maybe from Debian?) that mostly had one letter prefixes but also had a ones for "liba", "libb", etc. | 15:38:49 | 
 infinisil | If we want to do auto-calling of these packages, then the attribute name should be determined from the file path though 🤔 | 15:39:27 | 
 Alyssa Ross | this doesn't prevent that? | 15:39:43 | 
 Alyssa Ross | attr name is just the last component of the path | 15:39:49 | 
 infinisil | Ah I see | 15:39:54 | 
 Alyssa Ross | "pkgs/prefixed/libg/libgit2" | 15:40:24 | 
 Alyssa Ross | https://sources.debian.org/ is what I was thinking of | 15:40:52 | 
 infinisil |  For e.g. R, how about pkgs/prefixed/R/R/R/default.nix?  | 15:41:41 | 
 infinisil | Or would that be too weird | 15:41:53 | 
 Alyssa Ross | if we say there are always exactly two levels, that's fine | 15:42:22 | 
 kevincox |   In reply to @infinisil:matrix.org If we want to do auto-calling of these packages, then the attribute name should be determined from the file path though 🤔  Technically the other way around. With the attribute name we need to be able to find the file.  | 15:44:42 | 
 kevincox |  Maybe both if we need to support iteration.  | 15:44:55 | 
 Alyssa Ross | Hydra needs to be able to iterate | 15:45:21 | 
 kevincox |  So we need to be able to go both ways. Otherwise we still need to construct the full attrs for every eval.  | 15:46:02 | 
 infinisil | It's very easy to go both ways | 15:47:30 | 
 kevincox |  We can also consider a "slow path" or hack for hydra-type build all. But that probably isn't necessary.  | 15:47:36 | 
 K900 |  crates.io does a weird thing  | 15:49:24 | 
 K900 | They have 1/a.json, 2/aa.json, 3/aaa.json, and then aa/aa/aaaa.json etc | 15:49:59 | 
 K900 | So the short names go into the short names corner of shame  | 15:50:18 | 
 K900 | And then it's ab/cd/abcd.json | 15:50:43 | 
 infinisil | Btw if we're concerned about performance, there's also the option of adding Nix builtins to speed up certain operations | 15:51:20 | 
 kevincox |  Assuming we still have .nix that seems unnecessary. It would be interesting to see their rationale.  | 15:51:31 |