10 Jul 2022 |
K900 | And which has no dentry cache | 15:34:09 |
Alyssa Ross | because you have to store the whole tree every time | 15:34:15 |
Alyssa Ross | whereas with two levels of prefix directories you have to store 1/26^2 of the tree every time | 15:34:36 |
K900 | Man I really wish I had the brain juice to push this sort of stuff | 15:34:55 |
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 |