I’m using: SWI-Prolog version 8.0.2 on Ubuntu Linux 18.04.
I am really pleased with the pengine_input
feature in Pengines. It’s opens up a whole legion of interesting app possibilities. I am curious as to what underlying SWI-Prolog (i.e. - library, predicate, package, etc.) allows the SWI-Prolog engine to halt execution in the middle of a query being executed, and perform an asynchronous and apparently blocking wait for input? That’s a truly impressive feature!
Also, is it possible to freeze the complete execution state of an SWI-Prolog interpreter in the middle of a query execution, persist it to storage, and then restore it from storage later with it ending up in the same state as when it was stored/saved? Something akin to a Python pickle/unpickle operation?