!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

232 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture53 Servers

Load older messages


SenderMessageTime
11 Jul 2023
@profpatsch:augsburg.oneprofpatschWe could just follow suit14:20:34
@infinisil:matrix.orginfinisil tomberek: John Ericson: Joining? 14:33:09
@Ericson2314:matrix.orgJohn Ericsonsorry in a work meeting will be late :/14:33:25
@piegames:matrix.org@piegames:matrix.org"TODO: refactor once something like Profpatsch's types-simple will land" what's types-simple, and when will it land?15:52:55
@piegames:matrix.org@piegames:matrix.orgAh, found it: https://github.com/NixOS/nixpkgs/compare/master...Profpatsch:nixpkgs:types-simple-WIP15:54:21
@profpatsch:augsburg.oneprofpatschpiegames: notime, Eelco said he doesn’t want it16:08:40
@piegames:matrix.org@piegames:matrix.orgSomebody else would have to veto in order to stop me (:16:10:13
@piegames:matrix.org@piegames:matrix.orgI might be motivated to pick this up, unless somebody shows me another way to solve my problems described in https://discourse.nixos.org/t/the-module-system-is-dead-how-to-do-input-validation/30297/416:11:20
@profpatsch:augsburg.oneprofpatschpiegames: An alternative with a slightly different design is https://code.tvl.fyi/tree/nix/yants/default.nix16:11:44
@piegames:matrix.org@piegames:matrix.orgYeah I've seen YANTS and didn't like it as much16:12:07
@profpatsch:augsburg.oneprofpatschThe main difference is that types-simple is out-of-band, while yants is in-band16:12:11
@piegames:matrix.org@piegames:matrix.orgwdym16:12:30
@profpatsch:augsburg.oneprofpatschwhich gives yants the (partial) ability to type-check functions16:12:37
@profpatsch:augsburg.oneprofpatschtypes-simple can only typecheck “data”, not functions16:14:19
@profpatsch:augsburg.oneprofpatschdepends on what you want to do, for checkMeta only checking data should be enough16:14:47
@piegames:matrix.org@piegames:matrix.orgWell ideally I'd like to use this for Nixpkgs configuration too, but merging :(16:16:05
@profpatsch:augsburg.oneprofpatschmerging is different from typechecking16:16:53
@profpatsch:augsburg.oneprofpatschconflating the two is a big source of annoyance16:17:02
@piegames:matrix.org@piegames:matrix.orgI know16:17:13
@piegames:matrix.org@piegames:matrix.org One thing that I'd really like to have is some type checking but with default values support. Because currently, there's only the module system which can do that, and instantiating a module system just for each package's meta is not something that is going to fly 17:03:53
@profpatsch:augsburg.oneprofpatschpiegames: I haven’t thought in-depth about that, but to me a merging algorithm is just a monoidal thingy17:15:27
@profpatsch:augsburg.oneprofpatsch you can do a lot of things with that 17:15:47
@profpatsch:augsburg.oneprofpatsche.g. (//) and attributes form a monoid17:16:14
@profpatsch:augsburg.oneprofpatschSo does recursiveMerge and attrsets17:16:29
@profpatsch:augsburg.oneprofpatschs/attributes/attrsets/17:16:35
@profpatsch:augsburg.oneprofpatschI bet you can fit defaults and mkForce etc in there, too17:17:03
@piegames:matrix.org@piegames:matrix.org Actually merging itself, and having that in the type system isn't that big of a deal IMO. Problems arise if you expect to merge values with inter-dependencies. Like, Nixpkgs config requires merging as there are multiple places where the configuration can be but, but they are all independent from each other so it's a lot simpler 17:18:26
@profpatsch:augsburg.oneprofpatschpriority is pretty simple to fit in, Priority { prio :: Int, value :: a } is a monoid by taking the value with the higher priority17:18:36
@piegames:matrix.org@piegames:matrix.orgOh, what you're saying is "default values are just merging with priority"?17:19:54
@piegames:matrix.org@piegames:matrix.orgBut how about default values without otherwise merging functionality17:20:11

Show newer messages


Back to Room ListRoom Version: 9