Dear All,
We are
happy to announce a new edition of the Dogelog player:
- Enhanced '$YIELD'/1:
Previously the '$YIELD'/1 instruction was hard coded to understand an
integer for sleep/1 and an atom for native library loading. The
implementation has been change to accept a Promise object, known from
JavaScript. Emulations were made available for Java and Python.
- Async I/O:
Based on the new '$YIELD'/1 and a buffer fast path idea, the console
reading, file property and file reading have been asyncified. There is
no change in the Prolog API, files are still to be opened via the ISO
core open/3 and accessed via ISO core get_code/2 respectively ISO core
peek_code/2. But input can now be executed quasi-parallel by multiple
tasks.
- HTTP client:
The ISO core open/4 has been moved to the library(spin). The support of
the HTTP and HTTPS protocol in open/3 and open/4, has been extended
from the JavaScript browser to the JavaScript command line (by means of
new fetch in nodejs >=21). Further supported targets are now Python and
Java (by means of new HTTP client in JDK >=21).
Have Fun!