What if I started afresh, and wrote the Fennel bindings this time, too? No store yet, just KDL config + Fennel extensions, and just enough code to arrive at a single, toplevel derivation.
0 Boosts
0 Likes
Feels like I need to do a bit more sketching first. Lets put the distro thing on hold for a bit.
This will be hard, because I have a reasonably good idea of where I want to end up, and I'm itching to start building the distro itself. But I need the package manager first.
input pkgin type=pkgin {
path "/sexshop/toys/<hash>-pkgin"
hash algo=blake3 "..."
}
input sickos type=sickos {
path "/sexshop/toys/<hash>-sickos"
}
netbsd "carota-sativa" {
sets {
base
comp
kern-GENERIC
etc
man
rescue
}
network {
vioif0 { dhcp; }
}
packages from=pkgin {
git
rust
curl
dinit
vim
}
service from=sickos ssh {
enable
}
}
Something along these lines, maybe.
So, first order of business: figure out a protocol to talk over the extension<->fuck channel, because the idea is that
fuckwill ask each exetnsion about what kind of stuff it supports, and then set up appropriate channels for each.Now, the ideal thing would be if the negotiation would be automatic. I can't enforce that at compile time, because it depends on the extension, and that's a runtime thing. But I can teach the Rust side bridge to figure out which functions are exported from Fennel, and do the negotiation itself, so it doesn't need to be implemented - or even exposed - to the Fennel side.