!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
12 Aug 2022
@k900:0upti.meK900I actually disagree15:19:08
@k900:0upti.meK900The spec for Nix the language shouldn't include anything about Nix the implementation15:19:20
@k900:0upti.meK900And there may be a separate spec for the nix-daemon protocol15:19:29
@nbp:mozilla.orgnbpWell … this is not as simple as that, as the derivation function is the only reason for the Nix language to have String context.15:20:09
@roberthensing:matrix.orgRobert Hensing (roberth)classic. Nix is not a name for any specific thing. There's a ton of interfaces that can be specified, some of them called "Nix".15:20:10
@k900:0upti.meK900
In reply to @nbp:mozilla.org
Well … this is not as simple as that, as the derivation function is the only reason for the Nix language to have String context.
The spec for the language defines string context, the spec for the daemon defines how it's passed to the daemon
15:22:14
@nbp:mozilla.orgnbpNix language: Here is a lazy functional programming language, which has a string-context feature which is unnecessary, but this is part of the spec. Nix daemon object model: Here is the derivation function that extends the Nix language spec, oh and by the way it relies on the string-context feature. 15:25:27
@k900:0upti.meK900The derivation function is part of the language15:25:46
@k900:0upti.meK900 As is everything else in builtins 15:25:50
@nbp:mozilla.orgnbpah, so we agree.15:25:55
@k900:0upti.meK900To me the Nix language spec has to document everything Nix does15:26:26
@k900:0upti.meK900 Just without documenting how it does it 15:26:31
@k900:0upti.meK900 But you need to document the semantics of derivation and such 15:27:01
@qyliss:fairydust.spaceAlyssa Rossyou could reimplement Nix with no daemon, and it would still have a derivation function15:28:09
@k900:0upti.meK900My smoke test for the spec would be basically just sitting down and writing a very basic Nix interpreter without looking at the code of Nix or nixpkgs15:31:12
@k900:0upti.meK900And then having it build something actually useful15:31:22
@Ericson2314:matrix.orgJohn Ericson
In reply to @Ericson2314:matrix.org
Doxygen is good, but not a replacement for an implementation-agnostic spec!
ooos and I did the wrong channel
17:01:22
13 Aug 2022
@whentze:matrix.orgWanja Hentze
In reply to @k900:0upti.me
My smoke test for the spec would be basically just sitting down and writing a very basic Nix interpreter without looking at the code of Nix or nixpkgs
that sounds fun, I'd be down for thatr
01:44:12
@whentze:matrix.orgWanja Hentze* that sounds fun, I'd be down for that01:44:25
16 Aug 2022
@roberthensing:matrix.orgRobert Hensing (roberth)if anyone's interested, here's a possible minimal module system, that might address performance concerns compared to the full-featured one https://gist.github.com/roberth/940dff88ca5f5f95949dc309dbe60a6521:12:30
@roberthensing:matrix.orgRobert Hensing (roberth)it's little more than a brain dump and a ~100 line module system core implementation21:12:47
@hsngrmpf:matrix.orgDavHau Robert Hensing (roberth): It sounds super interesting. What is POP? 22:33:51
@roberthensing:matrix.orgRobert Hensing (roberth)https://github.com/NixOS/nixpkgs/pull/11627523:37:46
17 Aug 2022
@pederbs:pvv.ntnu.nopbsds joined the room.00:04:35
@j-k:matrix.orgj-k

I'm guessing it's split out into loads of separate items mostly for effect?

looks very easy to add to but as for removing values would you overwrite or use lib.remove in some way?

08:30:34
@roberthensing:matrix.orgRobert Hensing (roberth)POP is split out you mean? Maybe it helps its generality10:32:56
@roberthensing:matrix.orgRobert Hensing (roberth) Seems like POP is not a great fit for minimod, because super is redundant and the extra machinery will add overhead 10:33:36
@roberthensing:matrix.orgRobert Hensing (roberth)so both cognitive and performance overhead10:35:43
@roberthensing:matrix.orgRobert Hensing (roberth) super isn't very declarative anyway, but functional. It makes you think about how to change something wrong to something right. Change. 10:36:24
@roberthensing:matrix.orgRobert Hensing (roberth) the same can be said of the module system priority system (mkForce and friends, also supported in minimod), but that plays a smaller role 10:46:06

There are no newer messages yet.


Back to Room ListRoom Version: 9