Dear All,
Ok a simple mark and sweep works, and a simple
trigger mechanism does the job. We got a new Prolog
interpreter with cut and garbage collection, that
runs inside any JavaScript:
ANN: Dogelog Runtime, Prolog to the Moon (2021)
https://qiita.com/j4n_bur53/items/17f86429745426bd14fd
Further we are 10x times faster than TauProlog! LoL
The cross compiler makes use of Jekejeke Prolog
strings which are coded as '$STR'(atom)
. Other
Prolog systems, like SWI-Prolog, in case somebody gives
it a try, might need something else. From within Jekejeke
Prolog the cross compiler can be invoked as follows:
?- set_prolog_flag(double_quotes, string).
?- doge('examples.pl', 'examples.js').
Dogelog might get some more care in the future.
For tickets about Dogelog there is this GitHub here.
Best Regards #StaySafe
P.S.: Credits to @grossdan for grilling me about C, and
forcing me to make this demonstration project. But main
motivation is rather to explore JavaScript JIT-ing in the future.