Christopher Baines writes: > I haven't looked in to this yet, but maybe it would be possible to > adjust the code so that it doesn't perform so badly, but still tries to > handle possible exceptions. > > The two ideas I have is to rewrite the (let ...) bit in terms of a fold, > maybe that would perform better, or stop using let for iteration and > setup the exception handling, then process each request, using set! to > update the state. I haven't tested either of these. I tried something, neither of these things, but just not calling (loop ...) within the catch block. I don't know why this might work, but it seems to make guix weather much faster. Here's the patch [1], I've just realised it's broken, as it'll loose the result value (and use an old one) when the connection is closed. I'll send a updated patch without this issue in a moment. 1: https://issues.guix.gnu.org/47288