• ANN: Dogelog Player 1.2.5 (bun.js Support)

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Thu Dec 5 01:21:33 2024
    From Newsgroup: comp.lang.prolog

    Dear All,

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

    - New library(util/tree):
    This is the second library we have created that
    is based on the change_arg/3 predicate and provides
    a non-backtracking capable data structure. This time
    we created red-black trees.

    - Improved library(aggregate):
    First, a new implementation using library(util/tree)
    was planned. But we finally decided to use the faster
    library(util/hash) together with keysort/2. A new
    predicate unnumbervars/3 ensures the creation
    of variables.

    - bun.js Support:
    To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js.
    The performance lags slightly behind node.js because
    the JavaScript version is older.

    Have Fun!

    Jan Burse, http://www.xlog.ch/ , 05.12.2024
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Aleks Grabowski@prolog@asap.mozmail.com to comp.lang.prolog on Sat Dec 7 11:46:48 2024
    From Newsgroup: comp.lang.prolog

    Date :Thu, 5 Dec 2024 01:21:33 +0100. Mild Shock wrote:

    Dear All,

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

    - New library(util/tree):
    This is the second library we have created that
    is based on the change_arg/3 predicate and provides a non-backtracking capable data structure. This time we created red-black trees.

    - Improved library(aggregate):
    First, a new implementation using library(util/tree)
    was planned. But we finally decided to use the faster
    library(util/hash) together with keysort/2. A new predicate
    unnumbervars/3 ensures the creation of variables.

    - bun.js Support:
    To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js. The performance lags slightly behind node.js because the JavaScript version is older.

    Have Fun!

    Hi all,

    Same as in previous post. Arch AUR package was also updated.

    https://aur.archlinux.org/packages/dogelog-node https://aur.archlinux.org/packages/dogelog-java https://aur.archlinux.org/packages/dogelog-py

    P.S. I will need to write a hook to automatically send usenet
    announcement
    on every commit that updates version.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Dec 7 14:27:50 2024
    From Newsgroup: comp.lang.prolog

    I was doing a littl research, different versions of
    Java usually adopt "java" as the command line for
    the bytecode interpreter and JIT compiler.

    Maybe thats why the arch linux packages shows a lot
    of different Java systems. But in fact it must be
    above version 21, otherwise it doesn't run.

    It is particular tested with Oracle Java and GraalVM Java,
    version 23, but version 21 would also do at the moment.

    But now have at least "node" and "bun" for JavaScript,
    and as well at least "pypy3" and "python3" for Python.
    But the arch packages show dependencies to

    "python3" and "node". But in fact this is again not
    extremly hard wired for Dogelog Player. In fact "pypy3"
    is recommended over "python3", since its faster.

    For "bun" versus "node" I don't know yet, one has to
    observe the situation. Version wise also certain older
    versions don't work. Maybe I should publish the

    version requirements somewhere. But its hard to judge
    sometimes. You can do this check to see whether your
    versions that you have on your system are compatible:

    mkdir xlog
    cd xlog
    git clone https://www.dogelog.ch/dogelog/.git
    git clone https://www.novacuor.ch/novacore/.git
    cd novacore
    ant -f harness/run.xml
    webfsd -p 8598

    Look at the test results via:

    http://localhost:8598/

    Aleks Grabowski schrieb:
    Date :Thu, 5 Dec 2024 01:21:33 +0100. Mild Shock wrote:

    Dear All,

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

    - New library(util/tree):
    This is the second library we have created that
    is based on the change_arg/3 predicate and provides a non-backtracking
    capable data structure. This time we created red-black trees.

    - Improved library(aggregate):
    First, a new implementation using library(util/tree)
    was planned. But we finally decided to use the faster
    library(util/hash) together with keysort/2. A new predicate
    unnumbervars/3 ensures the creation of variables.

    - bun.js Support:
    To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js. The performance lags
    slightly behind node.js because the JavaScript version is older.

    Have Fun!

    Hi all,

    Same as in previous post. Arch AUR package was also updated.

    https://aur.archlinux.org/packages/dogelog-node https://aur.archlinux.org/packages/dogelog-java https://aur.archlinux.org/packages/dogelog-py

    P.S. I will need to write a hook to automatically send usenet
    announcement
    on every commit that updates version.


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Dec 7 14:38:36 2024
    From Newsgroup: comp.lang.prolog

    Whats also extremly annonying. A very early version
    of node 23.x didn't work correctly. So I fell back
    to node 22.x. Still waiting to do some retest with 23.x.

    What worked for me in the tip release is actually published here:

    j Dogelog Player 1.2.5, Java 23.0.1
    js Dogelog Player 1.2.5, JavaScript 22.11.0
    py Dogelog Player 1.2.5, Python 3.10.14

    https://www.novacuor.ch/exatab/doclet/docs/10_core/ryzen/package.html?hash=bench

    But Python is in fact PyPy and JavaScript is curently node.
    But the above doesn't reflect really the minimum, rather
    only the known maximum on Windows 11.

    Mild Shock schrieb:
    I was doing a littl research, different versions of
    Java usually adopt "java" as the command line for
    the bytecode interpreter and JIT compiler.

    Maybe thats why the arch linux packages shows a lot
    of different Java systems. But in fact it must be
    above version 21, otherwise it doesn't run.

    It is particular tested with Oracle Java and GraalVM Java,
    version 23, but version 21 would also do at the moment.

    But now have at least "node" and "bun" for JavaScript,
    and as well at least "pypy3" and "python3" for Python.
    But the arch packages show dependencies to

    "python3" and "node". But in fact this is again not
    extremly hard wired for Dogelog Player. In fact "pypy3"
    is recommended over "python3", since its faster.

    For "bun" versus "node" I don't know yet, one has to
    observe the situation. Version wise also certain older
    versions don't work. Maybe I should publish the

    version requirements somewhere. But its hard to judge
    sometimes. You can do this check to see whether your
    versions that you have on your system are compatible:

    mkdir xlog
    cd xlog
    git clone https://www.dogelog.ch/dogelog/.git
    git clone https://www.novacuor.ch/novacore/.git
    cd novacore
    ant -f harness/run.xml
    webfsd -p 8598

    Look at the test results via:

    http://localhost:8598/

    Aleks Grabowski schrieb:
    Date :Thu, 5 Dec 2024 01:21:33 +0100. Mild Shock wrote:

    Dear All,

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

    - New library(util/tree):
        This is the second library we have created that
    is based on the change_arg/3 predicate and provides a non-backtracking
    capable data structure.  This time we created red-black trees.

    - Improved library(aggregate):
        First, a new implementation using library(util/tree)
    was planned.  But we finally decided to use the faster
    library(util/hash) together with keysort/2.  A new predicate
    unnumbervars/3 ensures the creation of variables.

    - bun.js Support:
        To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js. The performance lags >>> slightly behind node.js because the JavaScript version is older.

    Have Fun!

    Hi all,

    Same as in previous post. Arch AUR package was also updated.

    https://aur.archlinux.org/packages/dogelog-node
    https://aur.archlinux.org/packages/dogelog-java
    https://aur.archlinux.org/packages/dogelog-py

    P.S. I will need to write a hook to automatically send usenet
    announcement
    on every commit that updates version.



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Thu Dec 12 16:12:59 2024
    From Newsgroup: comp.lang.prolog


    The Dogelog Player Prolog system runs on top of
    either JavaScript, Python and Java. Initially
    developed for the browser it supports single
    threaded execution with cooperative tasks and
    an event based I/O processing. We recently added
    a new library(crypto) to compute file checksums.

    For simplicity we only provide the functionality
    of a message digest. A use case for a message
    digest is the computation of a checksum for a file.
    We only reach around 1MB/s SHA-256 throughput.
    We blame the many parts of our I/O that are
    100% Prolog based.

    See also:

    New library(crypto) for Dogelog Player https://twitter.com/dogelogch/status/1867225201106366624

    New library(crypto) for Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:
    Dear All,

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

    - New library(util/tree):
      This is the second library we have created that
    is based on the change_arg/3 predicate and provides
    a non-backtracking capable data structure.  This time
    we created red-black trees.

    - Improved library(aggregate):
      First, a new implementation using library(util/tree)
    was planned.  But we finally decided to use the faster
    library(util/hash) together with keysort/2.  A new
    predicate unnumbervars/3 ensures the creation
    of variables.

    - bun.js Support:
      To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js.
    The performance lags slightly behind node.js because
    the JavaScript version is older.

    Have Fun!

    Jan Burse, http://www.xlog.ch/ , 05.12.2024

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Aleks Grabowski@prolog@asap.mozmail.com to comp.lang.prolog on Thu Dec 19 11:31:38 2024
    From Newsgroup: comp.lang.prolog

    Date :Sat, 7 Dec 2024 14:38:36 +0100. Mild Shock wrote:

    Whats also extremly annonying. A very early version of node 23.x didn't
    work correctly. So I fell back to node 22.x. Still waiting to do some
    retest with 23.x.

    What worked for me in the tip release is actually published here:

    j Dogelog Player 1.2.5, Java 23.0.1 js Dogelog Player 1.2.5,
    JavaScript
    22.11.0 py Dogelog Player 1.2.5, Python 3.10.14

    https://www.novacuor.ch/exatab/doclet/docs/10_core/ryzen/package.html?
    hash=bench

    But Python is in fact PyPy and JavaScript is curently node.
    But the above doesn't reflect really the minimum, rather only the known maximum on Windows 11.

    Current version requirements for arch package are:

    py CPython ≥ 3.10.14 or pypy3 (any version)
    js nodejs ≥ 22.11.0 or bun (any version)
    j java-runtime ≥ 21

    I expect users to apply common sense when trying to run Dogelog it should
    be obvious that very old interpreters might not work :)
    --
    BR,
    Alex

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Thu Dec 19 17:00:29 2024
    From Newsgroup: comp.lang.prolog

    Ok, thanks!

    There is a problem that I haven't resolved yet.
    Namely node.js ≥ 22.11.0 is too optimistic.
    Especially when using JavaScript together with

    the AntScript that runs the test cases. When
    I use the AntScript test cases on Dogelog Player 1.2.6,
    with node.js version 23.x I see this Warning:

    Test run ...
    Generating dump ...
    comply_reference_report
    Warning: Detected unsettled top-level await
    Result: 13

    The warning doesn't show with node.js version 22.x.
    Since it happens when running some test cases which
    do all kind of non-sunshine probing, it could be a

    problem that somewhere I really miss settling a promise,
    or its an ugly timing problem. It doesn't happen when
    opening the top-level or running a script.

    Like the top-level shows me:

    node.exe player\canned\dogelog.mjs
    Dogelog Spieler, Prolog zum Mond, 1.2.6 (05.12.2024)
    (c) 1985-2024, XLOG Technologies AG, Schweiz
    ?- current_prolog_flag(host_info, X).
    X = 'node, JavaScript 23.4.0'.
    ?- X=0;X=1.
    X = 0;
    X = 1.
    ?- end_of_file.

    So its all fine if we do simple things. But something
    is wrecked when running the test suite. It doesn't
    happen with bun.js. I will open a ticket as a reminder.

    Aleks Grabowski schrieb:
    Date :Sat, 7 Dec 2024 14:38:36 +0100. Mild Shock wrote:

    Whats also extremly annonying. A very early version of node 23.x didn't
    work correctly. So I fell back to node 22.x. Still waiting to do some
    retest with 23.x.

    What worked for me in the tip release is actually published here:

    j Dogelog Player 1.2.5, Java 23.0.1 js Dogelog Player 1.2.5,
    JavaScript
    22.11.0 py Dogelog Player 1.2.5, Python 3.10.14

    https://www.novacuor.ch/exatab/doclet/docs/10_core/ryzen/package.html?
    hash=bench

    But Python is in fact PyPy and JavaScript is curently node.
    But the above doesn't reflect really the minimum, rather only the known
    maximum on Windows 11.

    Current version requirements for arch package are:

    py CPython ≥ 3.10.14 or pypy3 (any version)
    js nodejs ≥ 22.11.0 or bun (any version)
    j java-runtime ≥ 21

    I expect users to apply common sense when trying to run Dogelog it should
    be obvious that very old interpreters might not work :)


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon Jan 13 17:45:51 2025
    From Newsgroup: comp.lang.prolog


    The recent release of Dogelog Player featured
    new libraries library(hash) and library(tree).
    Those libraries provided non-backtracking
    operations based on change_arg/3. We report on
    some additions to those libraries that now also
    provide backracking operations without change_arg/3.

    As a running test case we used a counter model
    finder to answer the question is every group
    commutative? Although such problems have a nagging
    high complexity using our backtracking red black
    trees gave a 28% boost and our backtracking hash
    tables gave an additional 23% boost.

    See also:

    Backtracking library(hash) for Dogelog Player https://x.com/dogelogch/status/1878844643410092296

    Backtracking library(hash) for Dogelog Player https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    The Dogelog Player Prolog system runs on top of
    either JavaScript, Python and Java. Initially
    developed for the browser it supports single
    threaded execution with cooperative tasks and
    an event based I/O processing. We recently added
    a new library(crypto) to compute file checksums.

    For simplicity we only provide the functionality
    of a message digest. A use case for a message
    digest is the computation of a checksum for a file.
    We only reach around 1MB/s SHA-256 throughput.
    We blame the many parts of our I/O that are
    100% Prolog based.

    See also:

    New library(crypto) for Dogelog Player https://twitter.com/dogelogch/status/1867225201106366624

    New library(crypto) for Dogelog Player https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:
    Dear All,

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

    - New library(util/tree):
       This is the second library we have created that
    is based on the change_arg/3 predicate and provides
    a non-backtracking capable data structure.  This time
    we created red-black trees.

    - Improved library(aggregate):
       First, a new implementation using library(util/tree)
    was planned.  But we finally decided to use the faster
    library(util/hash) together with keysort/2.  A new
    predicate unnumbervars/3 ensures the creation
    of variables.

    - bun.js Support:
       To use bun.js, we fixed a programming error by
    replacing our OS success test with falsy tests (!err).
    We found 4 non-critical discrepancies with node.js.
    The performance lags slightly behind node.js because
    the JavaScript version is older.

    Have Fun!

    Jan Burse, http://www.xlog.ch/ , 05.12.2024


    --- Synchronet 3.20a-Linux NewsLink 1.114