> The LoLa runtime is designed to be saved to disk at any point not executing any code. This means that you can let your script execute for 1000 instructions, save the runtime state to disk and resume execution a week later on another computer, not having any problems with script resumption. This is especially useful for games which often want to embed the state of their scripts into the save files.
This seems pretty cool. Don't know if this is more common in game scripting languages, but I've never seen it before
Also Tcl and some special versions of Java and WebAssembly VMs, Lua with some ugly hacks. I tried to find systems like these: https://github.com/void4/notes/issues/16
"10.4 The image file provides a frozen in time snapshot of a running Pharo system. This is the file where all objects are stored and as such it's a cross platform format. An image file contains the live state of all objects of the system (including classes and compiled methods, since they are objects too) at a given point. An image is a virtual object container."
When the Smalltalk implementation provides lightweight processes, snapshot saves the state of the lightweight processes — so when Smalltalk is restarted, the lightweight processes restart and continue doing whatever they were doing.
R has this concept of workspaces. A workspace contains the loaded modules as well as the state of all user-defined variables, their values, etc. And a common workflow is that the entire workspace state is persisted in an RData file. It's like you were working in some REPL, but the last state of the REPL is persisted in between your sessions. So it's a different kind of programming, it's more interactive if you don't need to start from scratch every time. That means if something takes a while to compute, it's OK, because you only run it once, not every time you "run the program".
That is interesting too. Zig seems cool. I get good vibes from it. It almost makes me wish I was a systems programmer, rather than a business software programmer.
This seems pretty cool. Don't know if this is more common in game scripting languages, but I've never seen it before