Slightly OT, but when you edit code in the REPL this way using conditions/restarts, how do you avoid getting your code out of sync with the REPL's state? It seems with a long-running REPL, you eventually run into:
- Out of order execution means we don't know what order our code should be run in to achieve the current state
- If we run some code in the REPL and never save it in a file, then our state is also out of sync
- Finally, if we redefine some code, there's no way the state can be in sync with the code if started from the beginning
How do Common Lispers typically deal with these issues for a REPL that's been running for days or weeks, short of just saving the image and never turning it off?
- Out of order execution means we don't know what order our code should be run in to achieve the current state
- If we run some code in the REPL and never save it in a file, then our state is also out of sync
- Finally, if we redefine some code, there's no way the state can be in sync with the code if started from the beginning
How do Common Lispers typically deal with these issues for a REPL that's been running for days or weeks, short of just saving the image and never turning it off?