<davexunit>just ran into a situation with dmd where I wish we had socket activation support.
<davexunit>I have a service that provides an ssh tunnel
<davexunit>and another service that provides a SOCKS proxy that depends on the tunnel
<davexunit>if the tunnel service is stopped and I run 'deco start proxy', the tunnel is started and then the proxy, but there's a race condition: the tunnel port has to be opened quickly enough for the proxy service to be able to connect to it. this race is lost every time I've tried.
<civodul>you could have code that waits for the port to be visibly open before returning from 'start'
<davexunit>a dev snapshot would be nice so us early adopters can skip the long bootstrapping time.
<paroneayea>i,i: I was once on a Blender forum like, over a decade ago? and someone was experiencing some serious bugs in svn trunk and was complaining about it, to which the response was: "sometimes when you're on the edge, you're bleeding!"
<davexunit>at work we're going to start using Docker more, and right now we're using this crappy lightweight init system called "runit". I want to replace it with dmd because despite it lacking features it's good enough to take the place of runit and is way more hackable.
<paroneayea>davexunit: it was originally a parody of a web framework called "Bottle" which claimed to be a micro web framework in a single file of python code and "under X lines" of code
<paroneayea>davexunit: so initially, Flask was a parody of that released on april 1 which was also a 1 file of python as a microframework, and under X lines, but it had one huge base64 encoded line that contained a zipfile it read for the rest of the framework
<davexunit>which leads me to a common question I have about how to memoize effectively. of course you could just memoize the operating-system-services procedure outright, but now you've built yourself a global cache that never expires anything.
<davexunit>for long running programs that would be terrible
<wingo>you could invalidate the cache any time the os changes
<wingo>any time you look up into the cache with a different os value i mean
<lfam>Me neither. I need to study the internals more. I don't fully understand how all the different profiles are mediated, or how my development tree affects things. I know the idea is that they don't affect each other but there have been times when I expected to be able to re-use some previously built binary but guix recompiled it anyways. The problem is probably with my knowledge ;)
<davexunit>it's really very simple. I think people think there's more magic than there is.
<davexunit>if a build you expected to be the same wasn't, then it means that either the version of guix you are using has changed or one of packages other dependencies has changed.