Is this idea related to "checkpointing" (checkpointing.org)? Most of the links on the site are dead, or to unmaintained code. I think the good ones are ckpt (I have a tarball in case the link is broken) and CryoPID, but they both don't (yet) work on recent kernels.
On Thu, May 14, 2009 at 6:07 PM, Eduardo Cavazos <[email protected]> wrote: > Hello, > > Sometimes your hacking data at the REPL and get the live system in a state > that takes alot of work to reproduce. It would be nice if the user could > "rewind" back to any previous state of the repl; this state would include > the global environment. Instead of just rewinding, in a graphical > environment it would be nice to select a repl state and open a new graphical > repl from that point. This is what I mean by "branchable repl". > > This is not science fiction; I've hacked up such an environment before. > Continuations in the Factor programming language contain 5 stacks: > > datastack callstack retainstack namestack catchstack > > The 'datastack' the stack where you manipulate your data. The 'namestack' > can be thought of as the environment. My hack involved tweaking graphical > repl; each prompt was actually a button. This button was a closure with a > pointer to the corresponding "current continuation". So you could scroll > back in the repl history, click any prompt, and get a new repl starting at > that state. > > A drawback with such a system is the increased memory usage. It would be > nice if the system would discard the oldest objects referenced in the repl > on an as needed basis; i.e. as you cross some memory threshold. > > Ed >
