2026-04-14 12:02 UTC
Replies (1)
-
@kentpitman@climatejustice.social 2026-04-14 12:23
@chemoelectric @vnikolov @dougmerritt @screwlisp Also, I was just sketching shape. Trying to fit in. But there are other ways to think about this, and really even the name stream thing loses the idea of handlers and has only restarts. You could do something maybe with block structure. Or maybe a program with a style like like tee, but that did conditional splitting instead of unconditional. From my point of view in this discussion, where users come in to such a duscussion, is that they need to see something familiar that might create a situation they would even want to involve themselves in. The discussion about the common lisp condition system, here on mastodon and downstream of what I'm pretty confident is a competent design and proper implementation, was still often about how to see where it could be used. And not because the uses weren't there, but because people are so used to not having good handling that they've gotten used to not looking for help in such arenas. To go back in time, I used to talk about the condition system in slides that tried to make early error handling familiar and show the bomb icon you would get on a Macintosh when an error had occurred and your machine had crashed. It was like error was synonymous with stop the machine. So you wanted to do better than that, and everyone was familiar with seeing that icon. And then you kind of moved up the chain to 'quit - core dumped' and people were just grateful that they could have multi-processing, and that usually the machine didn't crash and only the process did. So to have (errset (f)) in maclisp or (ignore-errors (f)) in lisp machines be able to contain most errors without even exiting lisp was already something people were so grateful for that they stopped looking further. But you can see that with each step, they got used to better. And so in that regard, if you look at the Shell and you see that it has some way of managing errors, the point I'm trying to make, is that you mustn't be complacent and assume that this is the end of such a progression of expectation. This conversation somewhat nudges the shell designers to get out of the mode of thinking they are have oerfected compositional expression, and into the motive thinking that perhaps it's just an incremental step toward maybe better. Pipe and stream redirection did not exhaust what could be said about error handling any more than mere function calling perfected what could be said about error handling in lisp.