Nixpkgs Architecture Team | 222 Members | |
| https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture | 52 Servers |
| Sender | Message | Time |
|---|---|---|
| 10 Jul 2022 | ||
Maybe even a builtins.prefixedAutocall | 15:51:32 | |
| I think some sort of ProxyAttrs that allowed overriding lookup and iteration would be the generic option. But we could also just hardcode the lookup scheme that we pick. | 15:52:26 | |
| Oh I see, so you mean to allow people to specify some file outside of nixpkgs for a specific attribute for development? | 15:53:27 | |
| I think that's very unproblematic, an overlay can already be used for that | 15:54:31 | |
| I'm thinking something like this. (For a flat solution)
Then for the common case of | 15:56:13 | |
| Ah! Yes that's an interesting idea and could have many other useful applications | 15:57:24 | |
| To all other Nix code it would behave like a regular attrs of all packages except as long as you never do something that requires listing attributes it doesn't have to build the full set. | 15:57:29 | |
| (IDK if we need other primitive operations but they can be added easily. We can also do caching to ensure that it is pure) | 15:58:11 | |
| Yeah, for nixpkgs we can make as complicated of a lookup as we like, include 1 or 2 level and whatnot. We can also fall back to the current all-packages.nix attr for transition. | 15:59:05 | |
| This could also be polyfilled for older NIxes by eagerly computing the real attrs. | 16:07:43 | |
| * This could also be polyfilled for older NIxes by eagerly computing the a attrset. | 16:09:26 | |
| * This could also be polyfilled for older NIxes by eagerly computing the resulting attrset. | 16:17:37 | |
| 11 Jul 2022 | ||
| Slightly related: I just noticed
| 11:01:01 | |
| 12:39:14 | ||
| 12:45:26 | ||
| 12:45:49 | ||
| 12:49:24 | ||
| 13:31:16 | ||
| 15:18:42 | ||
| 18:48:48 | ||
In reply to @j-k:matrix.orgReally common for hash based directory structures to keep the amount of things in a directory smaller | 23:54:06 | |
| Because if you have a lot a lot of files in a directory listing that gets show | 23:54:32 | |
| * Because if you have a lot a lot of files in a directory listing that gets slow | 23:54:37 | |
| 12 Jul 2022 | ||
/nix/store laughs. | 00:42:06 | |
| But honestly it is generally better to let the storage system do something optimal. Especially for this case where the prefix will depend on human-chosen names. However we know at least that GitHub handles this poorly and that Git doesn't do anything clever at the moment. So we do need to meet our tools. | 00:43:23 | |
| /nix/store is stored locally, rarely listed and mostly accessed by the entry name. That's why we get get away with FS choosing optimal representation for it (hash tree usually). I wonder why such nested structure was chosen for logs though. | 05:40:25 | |
In reply to @kevincox:matrix.org I really like that idea. Especially as it allows to add a package by just dropping a file somewhere. Having to edit some Assuming overrides are still a thing at the time when this gets implemented, we'd have to find a new solution for the default
For example, if we have packages
/he/ll/foobar.nix could look like this:
| 08:47:07 | |
| If we have a flat package structure another question to answer would be, how are package name collisions treated. Where to put the python hello package, or the nodejs hello package, and how should those be named? | 08:55:56 | |
I'd expect to still have stuff like python3Packages | 08:56:29 | |
| Maybe in a special top-level directory | 08:56:36 | |