• ANN: Dogelog Player 0.9.7

    From Mostowski Collapse@21:1/5 to All on Sat Dec 18 13:05:20 2021
    Dear All,

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

    - Binary Release:
    The new version 0.9.7 of the Dogelog player
    now masters DCG. We have decided to upload the
    transpiled and compacted editions for the
    JavaScript and Python platforms to www.xlog.ch
    under the heading "Products".

    - Quelltexte:
    As an alternative to GitHub, we have now
    activated pages.xlog.ch. In addition to the
    source texts of the transpiler and the built-ins
    of the Dogelog player, this website also
    contains the manuals and the source texts of
    the tutorials. Both JavaScript and Python source
    code can be found.

    - Blogging:
    As an alternative to Gist, we are now reporting
    on medium.com/@janburse_2989 about the developments
    in the Dogelog player. We also use
    twitter.com/dogelogch and
    www.facebook.com/groups/dogelog for short messages.

    Have Fun! #StaySafe
    Jan Burse, 18.12.2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Tue Jan 4 09:20:33 2022
    Ok, here is a write-up of our christmas and newyears passtime:

    Prolog Barber Paradox in JavaScript/Python https://qiita.com/j4n_bur53/items/59128d9eeb61b86dd133

    Have Fun!

    Mostowski Collapse schrieb am Samstag, 18. Dezember 2021 um 13:05:20 UTC+1:
    Dear All,

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

    - Binary Release:
    The new version 0.9.7 of the Dogelog player
    now masters DCG. We have decided to upload the
    transpiled and compacted editions for the
    JavaScript and Python platforms to www.xlog.ch
    under the heading "Products".

    - Quelltexte:
    As an alternative to GitHub, we have now
    activated pages.xlog.ch. In addition to the
    source texts of the transpiler and the built-ins
    of the Dogelog player, this website also
    contains the manuals and the source texts of
    the tutorials. Both JavaScript and Python source
    code can be found.

    - Blogging:
    As an alternative to Gist, we are now reporting
    on medium.com/@janburse_2989 about the developments
    in the Dogelog player. We also use
    twitter.com/dogelogch and
    www.facebook.com/groups/dogelog for short messages.

    Have Fun! #StaySafe
    Jan Burse, 18.12.2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Fri Jan 21 06:21:35 2022
    We never put a ZIP with the tutorial examples on
    our website? This has now changed:

    Dogelog Tutorials locally in VS Code https://twitter.com/dogelogch/status/1484524851947782148

    Dogelog Tutorials locally in VS Code
    https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb am Dienstag, 4. Januar 2022 um 18:20:34 UTC+1:
    Ok, here is a write-up of our christmas and newyears passtime:

    Prolog Barber Paradox in JavaScript/Python https://qiita.com/j4n_bur53/items/59128d9eeb61b86dd133

    Have Fun!
    Mostowski Collapse schrieb am Samstag, 18. Dezember 2021 um 13:05:20 UTC+1:
    Dear All,

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

    - Binary Release:
    The new version 0.9.7 of the Dogelog player
    now masters DCG. We have decided to upload the
    transpiled and compacted editions for the
    JavaScript and Python platforms to www.xlog.ch
    under the heading "Products".

    - Quelltexte:
    As an alternative to GitHub, we have now
    activated pages.xlog.ch. In addition to the
    source texts of the transpiler and the built-ins
    of the Dogelog player, this website also
    contains the manuals and the source texts of
    the tutorials. Both JavaScript and Python source
    code can be found.

    - Blogging:
    As an alternative to Gist, we are now reporting
    on medium.com/@janburse_2989 about the developments
    in the Dogelog player. We also use
    twitter.com/dogelogch and
    www.facebook.com/groups/dogelog for short messages.

    Have Fun! #StaySafe
    Jan Burse, 18.12.2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Sat Jan 29 06:45:59 2022
    We never put a ZIP with the full source of Dogelog player on
    our website, including the transpiler? This has changed now:

    Style Checks for Dogelog Player https://twitter.com/dogelogch/status/1487125950588506112

    Style Checks for Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mostowski Collapse schrieb am Freitag, 21. Januar 2022 um 15:21:38 UTC+1:
    We never put a ZIP with the tutorial examples on
    our website? This has now changed:

    Dogelog Tutorials locally in VS Code https://twitter.com/dogelogch/status/1484524851947782148

    Dogelog Tutorials locally in VS Code
    https://www.facebook.com/groups/dogelog
    Mostowski Collapse schrieb am Dienstag, 4. Januar 2022 um 18:20:34 UTC+1:
    Ok, here is a write-up of our christmas and newyears passtime:

    Prolog Barber Paradox in JavaScript/Python https://qiita.com/j4n_bur53/items/59128d9eeb61b86dd133

    Have Fun!
    Mostowski Collapse schrieb am Samstag, 18. Dezember 2021 um 13:05:20 UTC+1:
    Dear All,

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

    - Binary Release:
    The new version 0.9.7 of the Dogelog player
    now masters DCG. We have decided to upload the
    transpiled and compacted editions for the
    JavaScript and Python platforms to www.xlog.ch
    under the heading "Products".

    - Quelltexte:
    As an alternative to GitHub, we have now
    activated pages.xlog.ch. In addition to the
    source texts of the transpiler and the built-ins
    of the Dogelog player, this website also
    contains the manuals and the source texts of
    the tutorials. Both JavaScript and Python source
    code can be found.

    - Blogging:
    As an alternative to Gist, we are now reporting
    on medium.com/@janburse_2989 about the developments
    in the Dogelog player. We also use
    twitter.com/dogelogch and
    www.facebook.com/groups/dogelog for short messages.

    Have Fun! #StaySafe
    Jan Burse, 18.12.2021

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to All on Thu Feb 17 08:24:59 2022
    Some people live in the past, but the future is now!
    For example I get for:

    retractall((factorial(_,_))).
    assertz((factorial(0,1) :- !)).
    assertz((factorial(N,X) :- M is N-1, factorial(M,Y), X is N*Y)). factorial(28,X).
    http://yieldprolog.sourceforge.net/queryEditor.html

    This result is a float and not a bigint:
    X = 3.0488834461171384e+29;

    So forget Yield Prolog, try Dogelog player:

    factorial(0,1) :- !.
    factorial(N,X) :- M is N-1, factorial(M,Y), X is N*Y.
    ?- factorial(28,X). http://www.xlog.ch/izytab/doclet/docs/18_live/10_reference/example01/package.html

    The result is bigint:
    X = 304888344611713860501504000000.

    BigInt has already 92% browser support:
    https://caniuse.com/bigint

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to All on Fri Feb 25 04:16:09 2022
    Dogelog Player has left behind the ISO core standard, and
    implements living standard Prolog. What is living standard
    Prolog? It aims at implementing a more flexible Prolog

    that what ISO core standard prescribes, a more flexible Prolog
    that reflects the reality of the majority of Prolog systems.
    For example I do now have in Dogelog player:

    ?- op(200,fy,!).
    true
    ?- X = foo(!).
    X = foo(!).
    ?- X = (foo :- !).
    X = (foo :- !).

    http://www.xlog.ch/izytab/doclet/docs/18_live/10_reference/example01/package.html

    Is this the behaviour of the majority of Prolog systems? Don't
    know. Only did a sample of a few Prolog systems. SWI-Prolog
    and Tau Prolog can parse the last query.

    GNU Prolog and Scryer Prolog cannot parse the last query.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Fri Feb 25 13:37:45 2022
    It seems I must retract my hands clapping and tend now to
    be more agnostic what Tau Prolog does, and wouldn't care less
    what Scryer Prolog thinks Tau Prolog should do.

    I found a way to convert legacy Prolog text into Scryer Prolog
    format. The steps are relatively simple:

    1) Consult the Prolog text in SWI-Prolog

    2) Call listing/[0,1] in SWI-Prolog

    SWI-Prolog puts an additional parenthesis around operators,
    even when they were not there during input. Its the most crazy
    thing I have ever seen, that such a conversion step is necessary.

    But I don't want to start a war, must have been watching too
    much Putin Ukraine recently. Should those who feel appointed
    waste their time on GitHub issues and discussions. It seems

    50% of Prolog GitHub is filled with this madness.
    Thank god Dogelog player is not on GitHub.

    Mostowski Collapse schrieb am Freitag, 25. Februar 2022 um 13:16:11 UTC+1:
    Dogelog Player has left behind the ISO core standard, and
    implements living standard Prolog. What is living standard
    Prolog? It aims at implementing a more flexible Prolog

    that what ISO core standard prescribes, a more flexible Prolog
    that reflects the reality of the majority of Prolog systems.
    For example I do now have in Dogelog player:

    ?- op(200,fy,!).
    true
    ?- X = foo(!).
    X = foo(!).
    ?- X = (foo :- !).
    X = (foo :- !).

    http://www.xlog.ch/izytab/doclet/docs/18_live/10_reference/example01/package.html

    Is this the behaviour of the majority of Prolog systems? Don't
    know. Only did a sample of a few Prolog systems. SWI-Prolog
    and Tau Prolog can parse the last query.

    GNU Prolog and Scryer Prolog cannot parse the last query.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to All on Wed Mar 2 14:35:22 2022
    Its quite confusing that SWI-PL 7.x WASM
    performs so different from SWI-PL 8.x Native.
    So we did some benchmarking also for

    the native platform, including formerly
    Jekejeke Prolog. This will be possibly our
    further setup to groom Dogelog Player:

    ECLiPSe: 1360 ms
    SWI: 2891 ms
    GNU: 3089 ms
    Jekejeke: 5130 ms
    Scryer (rebis-dev, WSL): 7452 ms
    Dogelog (node): 16981 ms

    Woa! We still beat Scryer Prolog although
    Scryer Prolog made big progress. But I guess
    it doesn't have multi-argument indexing yet,

    neither does Dogelog. So this will be quite
    a suspense, to see the further development
    framed by this new benchmark setting, provided

    we see the dawn of the next weeks.

    See also:

    Dogelog Player reaches Functionality Milestone https://twitter.com/dogelogch/status/1498983663924658176

    Dogelog Player reaches Functionality Milestone https://www.facebook.com/groups/dogelog

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Fri Mar 4 06:49:37 2022
    What I don’t know whether it is possible to practically create a
    Prolog profile, where float/1 and integer/1 are the same.
    Such a small profile of a Programming language and runtime system

    existed for example in the early days of Android, which did only have
    32-bit floats intially and no 64-bit floats. Today Android has even 16-bit floats(*).
    Thats why back then I had introduced 32-bit floats in formerly Jekejeke Prolog.

    But this was rather conceptually an enlargement of a language profile,
    and not a shrinking. When the 64-bit floats where not available I think
    the Prolog systems didn’t react so gracefully, and the misery was

    quickly ended when Android also provided 64-bit floats.

    (*)
    https://developer.android.com/reference/android/util/Half

    Mostowski Collapse schrieb am Freitag, 4. März 2022 um 15:42:16 UTC+1:
    Another milestone could be in the future to sidestep some
    of the givens of the ISO core standard concerning numbers.
    This would enlarge the browser support, in that it would make

    a larger browser support more simpler. I can imagine that
    in Yield Prolog we have indeed the following, but I didn’t check yet:

    /* Yield Prolog Maybe? */
    ?- 5 == 5.0
    true.

    A similar path is taken in JavaScript, which makes it tricky to
    recreate the Prolog float/integer disctinction in JavaScript:

    /* Browser JavaScript */
    5 == 5.0
    true
    typeof 5
    "number"
    typeof 5.0
    "number"

    In TauProlog, to nevertheless create a float/integer distinction, there
    is a quite heavy class Num, with one value field and one type field.
    But you can also do it less heavily to create a float/integer

    distinction in JavaScript.
    Mostowski Collapse schrieb am Mittwoch, 2. März 2022 um 14:35:29 UTC+1:
    Its quite confusing that SWI-PL 7.x WASM
    performs so different from SWI-PL 8.x Native.
    So we did some benchmarking also for

    the native platform, including formerly
    Jekejeke Prolog. This will be possibly our
    further setup to groom Dogelog Player:

    ECLiPSe: 1360 ms
    SWI: 2891 ms
    GNU: 3089 ms
    Jekejeke: 5130 ms
    Scryer (rebis-dev, WSL): 7452 ms
    Dogelog (node): 16981 ms

    Woa! We still beat Scryer Prolog although
    Scryer Prolog made big progress. But I guess
    it doesn't have multi-argument indexing yet,

    neither does Dogelog. So this will be quite
    a suspense, to see the further development
    framed by this new benchmark setting, provided

    we see the dawn of the next weeks.

    See also:

    Dogelog Player reaches Functionality Milestone https://twitter.com/dogelogch/status/1498983663924658176

    Dogelog Player reaches Functionality Milestone https://www.facebook.com/groups/dogelog

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Fri Mar 4 06:42:15 2022
    Another milestone could be in the future to sidestep some
    of the givens of the ISO core standard concerning numbers.
    This would enlarge the browser support, in that it would make

    a larger browser support more simpler. I can imagine that
    in Yield Prolog we have indeed the following, but I didn’t check yet:

    /* Yield Prolog Maybe? */
    ?- 5 == 5.0
    true.

    A similar path is taken in JavaScript, which makes it tricky to
    recreate the Prolog float/integer disctinction in JavaScript:

    /* Browser JavaScript */
    5 == 5.0
    true
    typeof 5
    "number"
    typeof 5.0
    "number"

    In TauProlog, to nevertheless create a float/integer distinction, there
    is a quite heavy class Num, with one value field and one type field.
    But you can also do it less heavily to create a float/integer

    distinction in JavaScript.

    Mostowski Collapse schrieb am Mittwoch, 2. März 2022 um 14:35:29 UTC+1:
    Its quite confusing that SWI-PL 7.x WASM
    performs so different from SWI-PL 8.x Native.
    So we did some benchmarking also for

    the native platform, including formerly
    Jekejeke Prolog. This will be possibly our
    further setup to groom Dogelog Player:

    ECLiPSe: 1360 ms
    SWI: 2891 ms
    GNU: 3089 ms
    Jekejeke: 5130 ms
    Scryer (rebis-dev, WSL): 7452 ms
    Dogelog (node): 16981 ms

    Woa! We still beat Scryer Prolog although
    Scryer Prolog made big progress. But I guess
    it doesn't have multi-argument indexing yet,

    neither does Dogelog. So this will be quite
    a suspense, to see the further development
    framed by this new benchmark setting, provided

    we see the dawn of the next weeks.

    See also:

    Dogelog Player reaches Functionality Milestone https://twitter.com/dogelogch/status/1498983663924658176

    Dogelog Player reaches Functionality Milestone https://www.facebook.com/groups/dogelog

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Mostowski Collapse on Fri Mar 4 08:15:47 2022
    If I remember well, cannot recall completely, but
    I guess we ended with this behaviour on early Android:

    ?- float(5.0).
    error(resource_error(not_implemented),_)

    Possibly the error was already generated during parsing?
    But what did work was then the following:

    ?- float32(0f5.0).
    true

    But to have a Prolog profile, where integers and floats
    merged into a single type is a new challenge.

    Mostowski Collapse schrieb am Freitag, 4. März 2022 um 15:49:46 UTC+1:
    What I don’t know whether it is possible to practically create a
    Prolog profile, where float/1 and integer/1 are the same.
    Such a small profile of a Programming language and runtime system

    existed for example in the early days of Android, which did only have
    32-bit floats intially and no 64-bit floats. Today Android has even 16-bit floats(*).
    Thats why back then I had introduced 32-bit floats in formerly Jekejeke Prolog.

    But this was rather conceptually an enlargement of a language profile,
    and not a shrinking. When the 64-bit floats where not available I think
    the Prolog systems didn’t react so gracefully, and the misery was

    quickly ended when Android also provided 64-bit floats.

    (*)
    https://developer.android.com/reference/android/util/Half

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