• Re: ANN: Dogelog Player 1.1.5 (HTTP Server)

    From Mild Shock@21:1/5 to Mild Shock on Tue Jan 23 11:57:34 2024
    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 schrieb:
    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/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to Mild Shock on Fri Feb 2 11:34:09 2024
    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
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    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:

    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 schrieb:
    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/



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to Mild Shock on Tue Feb 20 17:10:11 2024
    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
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)