Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANN: Dogelog Player 1.1.5 (HTTP Server)

34 views
Skip to first unread message

Mild Shock

unread,
Jan 21, 2024, 10:56:35 AMJan 21
to
Dear All,

We are happy to announce a new edition of the
Dogelog player:

- Enhanced library(misc/markup):
The library(misc/markup) has been extended to
include a unified DOM writer abstraction. It can
write to the GUI DOM in the browser, and it is also
possible to write the DOM serialized in XML to a
file. There are a variety of use cases for the
library, e.g. creating static HTML pages.

- New library(misc/vector):
In this library we have brought together everything
related to SVG that was previously scattered in
the libraries library(misc/markup) and library(misc/react).
The new advantages of the extended library (misc/markup)
can also be used here, so the creation of static
SVG pages is now supported.

- New library(util/spin):
The library provides a unified HTTP server
abstraction. There are concrete implementations
for nodeJS using node:http, for PyPy using http_server
and for JDK 21 using Tomcat embedded. Local browser
GET of 50,000 bytes via Prolog atom text lines
enumeration requires approx. 5-10 ms for all Dogelog
Player targets.

Have Fun!
Jan Burse, 21.01.2024, http://www.xlog.ch/

Mild Shock

unread,
Jan 23, 2024, 5:54:59 AMJan 23
to

Quick update. This is fun we switched the implementation
of library(util/spin) in Dogelog Player for Java from Tomcat 11
embedded to this thingy here:

Module jdk.httpserver - Package com.sun.net.httpserver
https://download.java.net/java/early_access/panama/docs/api/jdk.httpserver/com/sun/net/httpserver/package-summary.html

JEP 408: Simple Web Server
https://openjdk.org/jeps/408

Works fine so far and seems to be an itch speedier. Its
already available in our current devel version 1.1.6 of
Dogelog Player for Java via our GIT.

Mild Shock

unread,
Jan 24, 2024, 4:50:56 AMJan 24
to

We describe the implementation of a dynamical HTML
page in Prolog that displays the moon phase seen from
the northern hemisphere for a given day. The code
demonstrates a HTTP server addition to Dogelog Player,
a Prolog system 100% written in Prolog itself available
for the platforms JavaScript, Python and Java.

We spent one morning to create a dynamical HTML page,
that shows the moon phase of a day via SVG. The coding
is similar to how one is usually dealing with a TTY,
lowering the learning curve. The single Prolog text
can be used to serve the HTML page unchanged via
JavaScript, Python or Java.

See also:

Moon Server with Dogelog Player
https://twitter.com/dogelogch/status/1749847817579827503

Moon Server with Dogelog Player
https://www.facebook.com/groups/dogelog

Mild Shock schrieb:

Mild Shock

unread,
Feb 2, 2024, 5:33:20 AMFeb 2
to

Dogelog Player is a Prolog system that was
conceived to run on coroutine capable targets
if a target can implement the instruction ‘$YIELD’/1.
So far this was realized for JavaScript and Python
including a notion of tasks. We enhanced the
instruction and do now provide async I/O.

We now invoke first a promise factory and then
call the ‘$YIELD’/1 instruction. We might equally
well rename it into a ‘$AWAIT’/1 instruction. We
then use our new library(spin) and demonstrate
running multiple HTTP servers in our single
threaded Dogelog Player.

See also:

Async I/O in Dogelog Player
https://twitter.com/dogelogch/status/1753364266017566812

Async I/O in Dogelog Player

Mild Shock

unread,
Feb 9, 2024, 9:40:29 PMFeb 9
to

We already reported the new capability
that we can read async from streams. We made
this available for the file system reads on
nodeJS. We report here about a further progress
extending the async approach to HTTP fetch in
the browser and on nodeJS.

Multiple downloads make a case for async I/O
since RFC 2616 limits the number of connections.
HTTP/2 allows to send off multiple requests
which async I/O can capitalize. We demonstrate
quasi-parallel execution in Dogelog Player for
both the browser and nodeJS.

See also:

Async HTTP Client for Dogelog Player
https://twitter.com/dogelogch/status/1756144112946807135

Async HTTP Client for Dogelog Player
https://www.facebook.com/groups/dogelog

Mild Shock

unread,
Feb 20, 2024, 11:09:26 AMFeb 20
to

Dogelog Player is a Prolog system that features a
‘$YIELD’/1 instruction. The instruction was conceived
for single threaded runtimes with an event loop. We
could now demonstrate how to realize it without
an explicit event loop in a multi threaded runtime.

The idea is that threads use a bouncer semaphore
to get a permission to execute and thus become
“coroutines”. Now that we have layed the foundation
we started asyncifying Dogelog Player for Java.
We demonstrate a HTTP server and HTTP client
interaction in the same JVM.

See also:

Surrogate Async/Await with JDK 21
https://twitter.com/dogelogch/status/1759972607355470296

Surrogate Async/Await with JDK 21
0 new messages