Open aartaka opened 1 year ago
Could you explain a bit more what do you mean by the model of "always in debugger/inspector" that Allegro employs
, for someone who never used Allegro?
Sure.
inspect
, Allegro simply sets a global variable and allows you to use toplevel commands like :istep
to recurse into inspected object.Which is pretty simple yet convenient—no need for custom REPLs (like inspect*
), ability to act on on inspected/debugged state with the non-debugging commands etc. It's a powerful Idea that's worth exploring, I think.
Now that I've made Trivial Toplevel Commands, the model of "always in debugger/inspector" that Allegro employs is quite tempting. Given this, custom command processors that Graven Image defines feel like a bleak parody of the real implementation REPLs. Might be useful to rewrite it with actual REPL commands.
But, to make that possible, Graven Image has to either:
graven-image/core
with things likefunction-lambda-expresion*
andfields*
,graven-image/interactive
(or/interface
) for interactive functions likeinspect*
.Still, won't hurt to split the library into two separate components so that using core doesn't come with using opinionated (even if modeled after implementation-specific)
inspect*
etc.This is not much of a problem, but it will become one when there's more interactive functions:
ed*
,step*
, whatever.