• =?UTF-8?Q?A_harsh_wind_is_blowing_into_the_face_of_Prolog_now?==?UTF-8?Q?=e2=80=a6_[FORTRAN_/_TIOBE_Index_for_May_2024]?=

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon May 27 19:58:06 2024
    From Newsgroup: comp.lang.prolog

    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon May 27 20:01:15 2024
    From Newsgroup: comp.lang.prolog


    Time to dig out Colmerauers/Russells original Prolog
    implementation in FORTRAN from the 1970's?

    The first interpreter was written in Algol-W (1972),
    with later interpreters written in FORTRAN (1973)! and
    Pascal (1976). Though the Marseilles group and the
    Edinburgh group collaborated until the mid-1970's,
    they subequently went their own ways, leading to the
    development of two families of Prolog dialects, each
    with its own syntax. The Mareseilles dialect has
    become largely extinct, though. https://www.cs.gordon.edu/courses/cs323/PROLOG/prolog.html

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 20 11:35:58 2024
    From Newsgroup: comp.lang.prolog

    Anybody tried to combine raylib with SWI-Prolog.
    Like programming snake or something? Like here:

    Raylib bindings to Scryer Prolog using library(ffi) https://github.com/aarroyoc/raylib-prolog

    Strange: Somehow I have the feeling Scryer Prolog is
    in a hybernation now, they sit on 270 issues and there

    are no code changes anymore? Is it dead now?

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sun Jul 21 17:29:14 2024
    From Newsgroup: comp.lang.prolog

    Somebody wondered on SWI discourse:

    Prolog and the holy grail :+1:

    This slogan didn’t grow in my backyard. See for example here:

    Constraint Programming: In Pursuit of the Holy Grail
    Roman Barták - 1999
    https://ktiml.mff.cuni.cz/~bartak/downloads/WDS99.pdf

    But now that Scryer Prolog is dead, some of their 270 GitHub
    issues deals with performance problems(*) of their various CLPs,

    I guess they need new a fresh start.

    (*) Example:
    https://github.com/mthom/scryer-prolog/issues/1730


    Mild Shock schrieb:
    Anybody tried to combine raylib with SWI-Prolog.
    Like programming snake or something? Like here:

    Raylib bindings to Scryer Prolog using library(ffi) https://github.com/aarroyoc/raylib-prolog

    Strange: Somehow I have the feeling Scryer Prolog is
    in a hybernation now, they sit on 270 issues and there

    are no code changes anymore? Is it dead now?

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon Jul 22 22:16:07 2024
    From Newsgroup: comp.lang.prolog

    Maybe Scryer Prolog is a failure, because Rust
    is a failure. Building Scryer Prolog on my machine,
    after a git pull of a small change, did just

    take this much time:

    $ time cargo build --release
    [...]
    real 6m52.663s
    user 7m39.043s
    sys 0m3.241s

    What did Rust do? And this tabling test case,
    2000 shuttle, hangs:

    /* Scryer Prolog 0.9.4-107 */
    ?- use_module(library(tabling)).
    true.
    ?- [user].
    :- table c/1.
    c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
    c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
    c(0).

    ?- time(c(_)).
    %%% hangs ? %%%

    It is solved in a blink in SWI-Prolog:

    /* SWI-Prolog 9.3.8 */
    ?- time(c(_)).
    % 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips)
    true .

    The test case is from here:

    https://github.com/JanWielemaker/tabling_benchmarks/tree/master
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon Jul 22 22:26:04 2024
    From Newsgroup: comp.lang.prolog

    If Rust is the culprit, I guess it isn't
    due to this speculation:

    Imagine Rust failed, why did it fail? https://www.reddit.com/r/rust/comments/c93upr/imagine_rust_failed_why_did_it_fail/

    "climate change causes massively increased methane
    offgassing in the Arctic, causing a runaway greenhouse
    effect that eventually turns Earth into Venus,
    destroying the biosphere before rust
    can gain widespread adoption"

    There are other signs that Rust is a failure, like here:

    Why Rust is Making You Fail. --> 1.1k Claps https://medium.com/@ChadJohnsonOfficial/why-rust-is-stopping-your-success-use-c-and-c-instead-586dc7e2edbc

    And here:

    Should we call Rust a failed programming language? --> 10.5 views https://www.quora.com/Should-we-call-Rust-a-failed-programming-language

    Mild Shock schrieb:
    Maybe Scryer Prolog is a failure, because Rust
    is a failure. Building Scryer Prolog on my machine,
    after a git pull of a small change, did just

    take this much time:

    $ time cargo build --release
    [...]
    real    6m52.663s
    user    7m39.043s
    sys     0m3.241s

    What did Rust do? And this tabling test case,
    2000 shuttle, hangs:

    /* Scryer Prolog 0.9.4-107 */
    ?- use_module(library(tabling)).
       true.
    ?- [user].
    :- table c/1.
    c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
    c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
    c(0).

    ?- time(c(_)).
    %%% hangs ? %%%

    It is solved in a blink in SWI-Prolog:

    /* SWI-Prolog 9.3.8 */
    ?- time(c(_)).
    % 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips) true .

    The test case is from here:

    https://github.com/JanWielemaker/tabling_benchmarks/tree/master

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon Jul 22 22:38:57 2024
    From Newsgroup: comp.lang.prolog


    Most likely Rust has not high performance computing
    on its mind. This here looks horrible, and is the
    same nightmare as in Go:

    https://jondot.medium.com/errors-in-rust-a-formula-1e3e9a37d207

    I would never port or realize a Prolog system on a
    programming language and runtime, that doesn't offer
    clever and efficient exception handling.

    You don't get clever and efficient exception handling if you
    shuffel around tuples. Althoug some of recent nodeJS
    async programming had a similar flavor.

    But still JavaScript has solid exception handling,
    and so does Java and Python.

    Mild Shock schrieb:
    If Rust is the culprit, I guess it isn't
    due to this speculation:

    Imagine Rust failed, why did it fail? https://www.reddit.com/r/rust/comments/c93upr/imagine_rust_failed_why_did_it_fail/


    "climate change causes massively increased methane
    offgassing in the Arctic, causing a runaway greenhouse
    effect that eventually turns Earth into Venus,
    destroying the biosphere before rust
    can gain widespread adoption"

    There are other signs that Rust is a failure, like here:

    Why Rust is Making You Fail. --> 1.1k Claps https://medium.com/@ChadJohnsonOfficial/why-rust-is-stopping-your-success-use-c-and-c-instead-586dc7e2edbc


    And here:

    Should we call Rust a failed programming language? --> 10.5 views https://www.quora.com/Should-we-call-Rust-a-failed-programming-language

    Mild Shock schrieb:
    Maybe Scryer Prolog is a failure, because Rust
    is a failure. Building Scryer Prolog on my machine,
    after a git pull of a small change, did just

    take this much time:

    $ time cargo build --release
    [...]
    real    6m52.663s
    user    7m39.043s
    sys     0m3.241s

    What did Rust do? And this tabling test case,
    2000 shuttle, hangs:

    /* Scryer Prolog 0.9.4-107 */
    ?- use_module(library(tabling)).
        true.
    ?- [user].
    :- table c/1.
    c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
    c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
    c(0).

    ?- time(c(_)).
    %%% hangs ? %%%

    It is solved in a blink in SWI-Prolog:

    /* SWI-Prolog 9.3.8 */
    ?- time(c(_)).
    % 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips)
    true .

    The test case is from here:

    https://github.com/JanWielemaker/tabling_benchmarks/tree/master


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 00:27:00 2024
    From Newsgroup: comp.lang.prolog

    For example one Guru claimed?

    Prolog were invented today, I think there would
    be at least two significant differences:

    First, the type-testing predicates like atom/1,
    integer/1 and compound/1 would (and should) throw
    instantiation errors if their arguments are not
    sufficiently instantiated.

    This is also what the original versions of Prolog
    did. However, DEC 10 Prolog chose to replace instantiation
    errors by silent failures, and this has been
    perpetuated in the Edinburgh tradition for type tests
    including the ISO standard.
    https://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog

    I cannot verify any of the above nonsense.

    First of all the term "DEC-10 Prolog" is ambigious:

    DEC 10 Prolog 1975 https://www.softwarepreservation.org/projects/prolog/prolog/edinburgh/doc/Warren-Epilog_400_400-1975.pdf

    DEC 10 Prolog 1982 https://userweb.fct.unl.pt/~lmp/publications/online-papers/DECsystem-10%20PROLOG%20USER%27S%20MANUAL.pdf

    The DEC 10 Prolog 1975 looks very close to Prolog 0
    with its french predicate names. There is not a simgle
    atom/1, integer/1 equivalent that would throw an

    instantiation error. Actually Prolog 0 didn't even
    have some sort of exceptions, right?

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 00:30:26 2024
    From Newsgroup: comp.lang.prolog

    That the DEC 10 Prolog 1975 is close to Prolog 0,
    can be verified by reading the Prolog 0 manual:

    MANUEL DE REFE RE NeE ET D'UTILISATION - PROLOG
    ROUSSEL Ph. (1975) http://alain.colmerauer.free.fr/alcol/ArchivesPublications/ManuelProlog/Pr.pdf

    So at that same year there was already an
    English rip-off. If I read the french, I also
    don't find some atom/1, integer/1 equivalent

    that would throw an instantiation error. Problem
    is again, what would have been an exception in Prolog 0?

    Mild Shock schrieb:
    For example one Guru claimed?

    Prolog were invented today, I think there would
    be at least two significant differences:

    First, the type-testing predicates like atom/1,
    integer/1 and compound/1 would (and should) throw
    instantiation errors if their arguments are not
    sufficiently instantiated.

    This is also what the original versions of Prolog
    did. However, DEC 10 Prolog chose to replace instantiation
    errors by silent failures, and this has been
    perpetuated in the Edinburgh tradition for type tests
    including the ISO standard.
    https://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog


    I cannot verify any of the above nonsense.

    First of all the term "DEC-10 Prolog" is ambigious:

    DEC 10 Prolog 1975 https://www.softwarepreservation.org/projects/prolog/prolog/edinburgh/doc/Warren-Epilog_400_400-1975.pdf


    DEC 10 Prolog 1982 https://userweb.fct.unl.pt/~lmp/publications/online-papers/DECsystem-10%20PROLOG%20USER%27S%20MANUAL.pdf


    The DEC 10 Prolog 1975 looks very close to Prolog 0
    with its french predicate names. There is not a simgle
    atom/1, integer/1 equivalent that would throw an

    instantiation error. Actually Prolog 0 didn't even
    have some sort of exceptions, right?

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 00:42:44 2024
    From Newsgroup: comp.lang.prolog

    Well I am mistaken, Prolog 0 must have had some
    concept of error. For example I find:

    3. OPERATION SUR LES NOMBRES
    =============================
    LES PREDICATS SONT EVALUES A ERROR

    And this is also used in a code_type variant, i.e.
    CHIFFRE and LETTRE, follow the instantiation error
    idea. But we have this also in Prolog systems today:

    /* SWI-Prolog */
    ?- code_type(0'a, X).
    X = alnum .

    ?- code_type(X, X).
    ERROR: Arguments are not sufficiently instantiated

    It is not the case that modern Prolog systems always
    silently fail. They silently fail in atom/1, integer/1, etc..
    which makes sense, especially from a WAM implementation

    viewpoint, since WAM has usually type tag branching or
    switching instructions. So these atom/1, integer/1, etc.. can
    be implemented quite efficiently and one should view them

    as belonging to the same category as var/1, (==)/2, etc..
    i.e. meta predicates that deal syntactically with Prolog terms.
    Some Prolog system can even perform indexing on these guards.

    Mild Shock schrieb:
    That the DEC 10 Prolog 1975 is close to Prolog 0,
    can be verified by reading the Prolog 0 manual:

    MANUEL DE REFE RE NeE ET D'UTILISATION - PROLOG
    ROUSSEL Ph. (1975) http://alain.colmerauer.free.fr/alcol/ArchivesPublications/ManuelProlog/Pr.pdf


    So at that same year there was already an
    English rip-off. If I read the french, I also
    don't find some atom/1, integer/1 equivalent

    that would throw an instantiation error. Problem
    is again, what would have been an exception in Prolog 0?

    Mild Shock schrieb:
    For example one Guru claimed?

    Prolog were invented today, I think there would
    be at least two significant differences:
    ;
    First, the type-testing predicates like atom/1,
    integer/1 and compound/1 would (and should) throw
    instantiation errors if their arguments are not
    sufficiently instantiated.
    ;
    This is also what the original versions of Prolog
    did. However, DEC 10 Prolog chose to replace instantiation
    errors by silent failures, and this has been
    perpetuated in the Edinburgh tradition for type tests
    including the ISO standard.
    https://www.quora.com/If-prolog-were-being-invented-today-with-no-concern-for-backward-compatibility-or-the-existing-standardization-how-would-it-differ-from-standard-prolog


    I cannot verify any of the above nonsense.

    First of all the term "DEC-10 Prolog" is ambigious:

    DEC 10 Prolog 1975
    https://www.softwarepreservation.org/projects/prolog/prolog/edinburgh/doc/Warren-Epilog_400_400-1975.pdf


    DEC 10 Prolog 1982
    https://userweb.fct.unl.pt/~lmp/publications/online-papers/DECsystem-10%20PROLOG%20USER%27S%20MANUAL.pdf


    The DEC 10 Prolog 1975 looks very close to Prolog 0
    with its french predicate names. There is not a simgle
    atom/1, integer/1 equivalent that would throw an

    instantiation error. Actually Prolog 0 didn't even
    have some sort of exceptions, right?

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 09:51:40 2024
    From Newsgroup: comp.lang.prolog

    Woa! They are still fiddling with DCG:

    Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    For Dogelog Player and its Novacore, I have
    invented shallow DCG transform. Shallow expansion is a
    variant of the usually deep expansion, in that

    we don't define a multi-file predicate:

    term_expansion(<from>, <to>).

    Which uses a result from goal expansion, i.e.
    there is both term and goal expansion in deep expansion,
    SWI-Prolog has even function expansion a third type of

    expansion, but in shallow expansion we have only:

    term_conversion(<from>, <to>).

    In particular for performance and didactical
    reasons Novacore from Dogelog Player has nothing
    higher-order. So phrase/2 is missing. Not needed.

    But I don't have test cases yet for this shallow
    expansion. Maybe I could adapt a few from formerly
    Jekejeke Prolog, trim them down to the scope of

    shallow expansion.

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 09:52:32 2024
    From Newsgroup: comp.lang.prolog


    P.S.: Only providing shallow expansion is no a loss.
    You can use it to bootstrap deep expansion, I do
    that in a stashed version of formerly Jekejeke Prolog,

    as a proof of concept. So basically you can bootsrap
    ISO-Core from Novacore in many cases. Also if DCG with
    deep expansion would enter ISO-Core.

    Novecore is just the smaller core than ISO-core.
    Novacore is Prolog reduced to the max.

    Mild Shock schrieb:
    Woa! They are still fiddling with DCG:

    Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    For Dogelog Player and its Novacore, I have
    invented shallow DCG transform. Shallow expansion is a
    variant of the usually deep expansion, in that

    we don't define a multi-file predicate:

    term_expansion(<from>, <to>).

    Which uses a result from goal expansion, i.e.
    there is both term and goal expansion in deep expansion,
    SWI-Prolog has even function expansion a third type of

    expansion, but in shallow expansion we have only:

    term_conversion(<from>, <to>).

    In particular for performance and didactical
    reasons Novacore from Dogelog Player has nothing
    higher-order. So phrase/2 is missing. Not needed.

    But I don't have test cases yet for this shallow
    expansion. Maybe I could adapt a few from formerly
    Jekejeke Prolog, trim them down to the scope of

    shallow expansion.

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 10:18:39 2024
    From Newsgroup: comp.lang.prolog


    Scryer Prolog is not the only dead Prolog around.
    Like 12 months ago or so, I mentioned in passing
    to @joseph-vidal-rosset , because he used Tau Prolog

    on his web site, that Tau Prolog will be dead as soon
    as the authors get their academic merits. And I guess
    this is indeed the case, their GitHub is inactive

    for at least 12 months now. But then some people still
    include it in their testing, maybe this is a sign of a little
    desperation, of finding Prolog system interested

    in ISO nonsense?

    Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    The main problem with ISO Prolog is, that it is not
    enough reduced to the max.


    Mild Shock schrieb:

    P.S.: Only providing shallow expansion is no a loss.
    You can use it to bootstrap deep expansion, I do
    that in a stashed version of formerly Jekejeke Prolog,

    as a proof of concept. So basically you can bootsrap
    ISO-Core from Novacore in many cases. Also if DCG with
    deep expansion would enter ISO-Core.

    Novecore is just the smaller core than ISO-core.
    Novacore is Prolog reduced to the max.

    Mild Shock schrieb:
    Woa! They are still fiddling with DCG:

    Modified: Samstag, 6. Juli 2024, 07:53:05
    https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    For Dogelog Player and its Novacore, I have
    invented shallow DCG transform. Shallow expansion is a
    variant of the usually deep expansion, in that

    we don't define a multi-file predicate:

    term_expansion(<from>, <to>).

    Which uses a result from goal expansion, i.e.
    there is both term and goal expansion in deep expansion,
    SWI-Prolog has even function expansion a third type of

    expansion, but in shallow expansion we have only:

    term_conversion(<from>, <to>).

    In particular for performance and didactical
    reasons Novacore from Dogelog Player has nothing
    higher-order. So phrase/2 is missing. Not needed.

    But I don't have test cases yet for this shallow
    expansion. Maybe I could adapt a few from formerly
    Jekejeke Prolog, trim them down to the scope of

    shallow expansion.

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 10:20:10 2024
    From Newsgroup: comp.lang.prolog

    Another issue is that ISO Prolog doesn’t
    have a reference implementation 100% written
    in Prolog itself. Like for example the term
    reading and writing. Now we have the situation

    that no Prolog system can do these TPTP modal
    logic operators and TPTP first order logic
    quantifers at the same time:

    /* Segerberg Models */
    :- op( 600, fy, !). % universal quantifier: ![X]:
    :- op( 600, fy, ?). % existential quantifier: ?[X]:
    :- op( 600, fy, []). % necessity
    :- op( 600, fy, <>). % possibility

    But the above works in Dogelog Player. It doesn’t
    work in SWI-Prolog, neither in Trealla Prolog,
    neither in Scryer Prolog. Some Prolog systems have

    problems with !, other Prolog systems have problems
    with []. The parsing is admittedly a little tricky but
    after some thinking it turns out relatively straight

    forward doable.

    Mild Shock schrieb:

    Scryer Prolog is not the only dead Prolog around.
    Like 12 months ago or so, I mentioned in passing
    to @joseph-vidal-rosset , because he used Tau Prolog

    on his web site, that Tau Prolog will be dead as soon
    as the authors get their academic merits. And I guess
    this is indeed the case, their GitHub is inactive

    for at least 12 months now. But then some people still
    include it in their testing, maybe this is a sign of a little
    desperation, of finding Prolog system interested

    in ISO nonsense?

    Modified: Samstag, 6. Juli 2024, 07:53:05 https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    The main problem with ISO Prolog is, that it is not
    enough reduced to the max.
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 16:38:59 2024
    From Newsgroup: comp.lang.prolog

    Amazing Ciao Prolog can do it correctly.

    Even if the mode “fy” is correctly honored, it
    might nevertheless be a challenge. Since for
    example this here works also, note

    the space inside the empty list atom:

    /* Ciao Prolog 1.23.0 */
    ?- op( 100, fy, []).
    yes

    ?- X = [ ] p.
    X = []p ?

    https://ciao-lang.org/playground/

    Took me a while to figure out how to do it.
    But its rather straight forward to do. You
    find it in the source code of Novacore.


    Mild Shock schrieb:
    Another issue is that ISO Prolog doesn’t
    have a reference implementation 100% written
    in Prolog itself. Like for example the term
    reading and writing. Now we have the situation

    that no Prolog system can do these TPTP modal
    logic operators and TPTP first order logic
    quantifers at the same time:

    /* Segerberg Models */
    :- op( 600, fy, !).     % universal quantifier:  ![X]:
    :- op( 600, fy, ?).     % existential quantifier:  ?[X]:
    :- op( 600, fy, []).    % necessity
    :- op( 600, fy, <>).    % possibility

    But the above works in Dogelog Player. It doesn’t
    work in SWI-Prolog, neither in Trealla Prolog,
    neither in Scryer Prolog. Some Prolog systems have

    problems with !, other Prolog systems have problems
    with []. The parsing is admittedly a little tricky but
    after some thinking it turns out relatively straight

    forward doable.

    Mild Shock schrieb:

    Scryer Prolog is not the only dead Prolog around.
    Like 12 months ago or so, I mentioned in passing
    to @joseph-vidal-rosset , because he used Tau Prolog

    on his web site, that Tau Prolog will be dead as soon
    as the authors get their academic merits. And I guess
    this is indeed the case, their GitHub is inactive

    for at least 12 months now. But then some people still
    include it in their testing, maybe this is a sign of a little
    desperation, of finding Prolog system interested

    in ISO nonsense?

    Modified: Samstag, 6. Juli 2024, 07:53:05
    https://www.complang.tuwien.ac.at/ulrich/iso-prolog/phrase

    The main problem with ISO Prolog is, that it is not
    enough reduced to the max.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 21:56:58 2024
    From Newsgroup: comp.lang.prolog


    Happy Birthday Alan Key, he must be 84 years old now.
    I am big fan of his dynabook and this is also gold:

    Alan Kay on Computer Science Degree
    https://www.youtube.com/watch?v=Lb-cKVxmVGk

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Jul 23 23:49:32 2024
    From Newsgroup: comp.lang.prolog

    Mostlikely Scryer Prolog was so bold with its
    statements about its own future, like here:

    Scryer Prolog aims to become to
    ISO Prolog what GHC is to Haskell
    https://github.com/mthom/scryer-prolog

    Because according to Alan Key in this interview
    this is the easier thing to do, than to judge
    the present or the past.

    Joe Armstrong interviews Alan Kay
    https://www.youtube.com/watch?v=fhOHn9TClXY

    Mild Shock schrieb:

    Happy Birthday Alan Key, he must be 84 years old now.
    I am big fan of his dynabook and this is also gold:

    Alan Kay on Computer Science Degree https://www.youtube.com/watch?v=Lb-cKVxmVGk

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Jul 24 22:21:26 2024
    From Newsgroup: comp.lang.prolog

    Scryer Prolog's mentality can be seen here:

    ?- op(600, fy, []).
    error(permission_error(create,operator,[]),op/3).

    What they cannot solve, they simply forbid.

    This mentality was already seen when UWN started
    fiddling with '|' operator definition, and made
    some hilarious changes to ISO core standard,

    and some hilarious claims for DCG. In Novacore '|'
    is simply nowhere used and undefined, but can be
    defined. For DCG the usual (;)/2 is used for disjunction,

    no need to use '|' in DCG. Now we have the situation
    that Ciao Prolog can easily do this:

    /* Segerberg Models */
    :- op( 600, fy, !). % universal quantifier: ![X]:
    :- op( 600, fy, ?). % existential quantifier: ?[X]:
    :- op( 600, fy, []). % necessity
    :- op( 600, fy, <>). % possibility

    ?- X = ! [Y]:p(Y).
    X = ![Y]:p(Y) ?

    ?- X = [] p.
    X = []p ?

    But Scryer Prolog can do neither of it. Scryer
    Prolog stumbles on op( 600, fy, !), it will
    suddently not anymore accept clauses such as:

    p :- q, !, r.

    Which is easy to fix with a small parsing heuristic,
    doesn't need non-deterministic parsing or some such.

    Mild Shock schrieb:
    Mostlikely Scryer Prolog was so bold with its
    statements about its own future, like here:

    Scryer Prolog aims to become to
    ISO Prolog what GHC is to Haskell
    https://github.com/mthom/scryer-prolog

    Because according to Alan Key in this interview
    this is the easier thing to do, than to judge
    the present or the past.

    Joe Armstrong interviews Alan Kay
    https://www.youtube.com/watch?v=fhOHn9TClXY

    Mild Shock schrieb:

    Happy Birthday Alan Key, he must be 84 years old now.
    I am big fan of his dynabook and this is also gold:

    Alan Kay on Computer Science Degree
    https://www.youtube.com/watch?v=Lb-cKVxmVGk

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Jul 26 15:38:52 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Did Lifeware Kill Scryer Prolog CLP(Z) ?

    Sounds interesting:

    Pack modeling a SWI-Prolog pack for mathematical
    modellng with constraints on subscripted variables,
    developed by François Fages. François Fages. A
    Constraint-based Mathematical Modeling Library in
    Prolog with Answer Constraint Semantics. https://lifeware.inria.fr/wiki/Main/Software

    In 17th International Symposium on Functional and
    Logic Programming, FLOPS 2024, volume 14659 of LNCS.
    Springer-Verlag, 2024. [ preprint ]
    https://arxiv.org/abs/2402.17286

    Does it perform?

    Bye

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email. https://www.techrepublic.com/article/tiobe-index-may-2024/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Jul 26 15:41:07 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    What killed Scryer Prolog exactly? Except
    maybe this mess of >270 issues?

    https://github.com/mthom/scryer-prolog/issues

    There are open issues back to 2019.
    Its quite an amazing showcase.

    Bye

    Mild Shock schrieb:
    Hi,

    Did Lifeware Kill Scryer Prolog CLP(Z) ?

    Sounds interesting:

    Pack modeling a SWI-Prolog pack for mathematical
    modellng with constraints on subscripted variables,
    developed by François Fages. François Fages. A
    Constraint-based Mathematical Modeling Library in
    Prolog with Answer Constraint Semantics. https://lifeware.inria.fr/wiki/Main/Software

    In 17th International Symposium on Functional and
    Logic Programming, FLOPS 2024, volume 14659 of LNCS.
    Springer-Verlag, 2024. [ preprint ]
    https://arxiv.org/abs/2402.17286

    Does it perform?

    Bye

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 11:27:47 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Question is what happened to academic artificial
    intelligence. The golden years are over where
    longer projects over 10 years or so produced

    tangible results. Industry with Facebook, OpenAI
    has taken over. And there is a residual research
    which is basically a camp for geriatric

    unemployeds cauched in fancy role names:

    Example:

    DIVERSITY AND INCLUSION CHAIRS
    WORKFLOW MANAGERS
    https://www.ecai2024.eu/

    Automatizing the watering can, is probably the
    next step:

    Improving the Buurtbudget:
    Can Mathematics and Computer Science? https://www.youtube.com/watch?v=iSX90xJjSAw

    Why not make it a blind lottery. You just get
    money, but you don't have to return something
    in exchange.

    Just like Scryer Prolog, which spent 3 years
    of programming, for nothing.

    Bye

    Mild Shock schrieb:
    Hi,

    What killed Scryer Prolog exactly? Except
    maybe this mess of >270 issues?

    https://github.com/mthom/scryer-prolog/issues

    There are open issues back to 2019.
    Its quite an amazing showcase.

    Bye

    Mild Shock schrieb:
    Hi,

    Did Lifeware Kill Scryer Prolog CLP(Z) ?

    Sounds interesting:

    Pack modeling a SWI-Prolog pack for mathematical
    modellng with constraints on subscripted variables,
    developed by François Fages. François Fages. A
    Constraint-based Mathematical Modeling Library in
    Prolog with Answer Constraint Semantics.
    https://lifeware.inria.fr/wiki/Main/Software

    In 17th International Symposium on Functional and
    Logic Programming, FLOPS 2024, volume 14659 of LNCS.
    Springer-Verlag, 2024. [ preprint ]
    https://arxiv.org/abs/2402.17286

    Does it perform?

    Bye

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 11:36:57 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    I do not exclude a turn-around possibility
    for Scryer Prolog. But with errors like this,
    that are at the core of some ideas behind

    Scryer Prolog, like the glorious char based
    double quoted lists, which have special data
    structure support:

    ?- [X,Y] = [e,foo], Z is X.
    X = e, Y = foo, Z = 2.718281828459045.

    ?- [X,Y] = [e,f], Z is X.
    error(type_error(evaluable,e),(is)/2).

    But I doubt that any such list/array ideas,
    especially when they try to share subarrays
    are even a good idea. Trealla Prolog tries

    something similar. But initial Java had for
    example a sharing substring() method. But they
    abandoned that over the time. So their

    strings are not sharing anymore, and code that
    relied on sharing got broken. You can have
    sharing through other interfaces, but Strings

    are not anymore sharing. Any idea why?

    Bye

    Mild Shock schrieb:
    Hi,

    Question is what happened to academic artificial
    intelligence. The golden years are over where
    longer projects over 10 years or so produced

    tangible results. Industry with Facebook, OpenAI
    has taken over. And there is a residual research
    which is basically a camp for geriatric

    unemployeds cauched in fancy role names:

    Example:

    DIVERSITY AND INCLUSION CHAIRS
    WORKFLOW MANAGERS
    https://www.ecai2024.eu/

    Automatizing the watering can, is probably the
    next step:

    Improving the Buurtbudget:
    Can Mathematics and Computer Science? https://www.youtube.com/watch?v=iSX90xJjSAw

    Why not make it a blind lottery. You just get
    money, but you don't have to return something
    in exchange.

    Just like Scryer Prolog, which spent 3 years
    of programming, for nothing.

    Bye

    Mild Shock schrieb:
    Hi,

    What killed Scryer Prolog exactly? Except
    maybe this mess of >270 issues?

    https://github.com/mthom/scryer-prolog/issues

    There are open issues back to 2019.
    Its quite an amazing showcase.

    Bye

    Mild Shock schrieb:
    Hi,

    Did Lifeware Kill Scryer Prolog CLP(Z) ?

    Sounds interesting:

    Pack modeling a SWI-Prolog pack for mathematical
    modellng with constraints on subscripted variables,
    developed by François Fages. François Fages. A
    Constraint-based Mathematical Modeling Library in
    Prolog with Answer Constraint Semantics.
    https://lifeware.inria.fr/wiki/Main/Software

    In 17th International Symposium on Functional and
    Logic Programming, FLOPS 2024, volume 14659 of LNCS.
    Springer-Verlag, 2024. [ preprint ]
    https://arxiv.org/abs/2402.17286

    Does it perform?

    Bye

    Mild Shock schrieb:
    Especially since good old FORTRAN has
    made a new appearance:

    TIOBE Index for May 2024
    I have received a lot of questions why Fortran entered the top 10
    again after more than 20 years. The TIOBE index just publishes
    what has been measured.
    https://www.tiobe.com/tiobe-index/

    Why Fortran is back in TIOBE’s top 10
    First, Fortran is especially good at numerical analysis and
    computational mathematics. Numerical and mathematical
    computing is growing because interest in artificial intelligence
    is growing, Jansen told TechRepublic in an email.
    https://www.techrepublic.com/article/tiobe-index-may-2024/




    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 11:52:31 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Java had a grace period where it still supported
    sharing through a command line option, but later
    it was ditched completely:

    Restriction: This system property is supported only on Java™ 8. String sharing cannot be enabled on Java 11 and later.

    Start of content that applies only to Java 8 (LTS) Setting this property
    to true avoids sharing a String object when substring() is used to
    subset a String beginning from offset zero. Avoiding sharing is
    compatible with the Oracle HotSpot VM. https://www.ibm.com/docs/en/sdk-java-technology/8?topic=options-djavalangstringsubstringnocopy

    Unfortunately I don't find a document detailing
    the decision. Like some JEP or so. Still searching.
    With substring sharing it was very easy to provoke

    an out of memory error. You could allocate large
    strings. Share a UTF-16 character, i.e. substring of
    length 1, in the middle of the string, and the string

    was not garbage collected anymore. I do not exclude
    that under the hood sharing could be used. But it
    possibly needs to some compilation technique including

    some dedicated analysis that determines that the parent
    string stays reachable, so that the child sharing doesn't
    make the parent string solely reachable, since

    since the parent string is already reachable.

    Bye

    Mild Shock schrieb:
    Hi,

    I do not exclude a turn-around possibility
    for Scryer Prolog. But with errors like this,
    that are at the core of some ideas behind

    Scryer Prolog, like the glorious char based
    double quoted lists, which have special data
    structure support:

    ?- [X,Y] = [e,foo], Z is X.
       X = e, Y = foo, Z = 2.718281828459045.

    ?- [X,Y] = [e,f], Z is X.
       error(type_error(evaluable,e),(is)/2).

    But I doubt that any such list/array ideas,
    especially when they try to share subarrays
    are even a good idea. Trealla Prolog tries

    something similar. But initial Java had for
    example a sharing substring() method. But they
    abandoned that over the time. So their

    strings are not sharing anymore, and code that
    relied on sharing got broken. You can have
    sharing through other interfaces, but Strings

    are not anymore sharing. Any idea why?

    Bye
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 11:56:52 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    But such a criteria is not satisfied in parsing,
    especially if you use the more advanced last call
    optimization and not only tail recursion optimization.

    As soon as parsing is deterministic, you can
    leave behind the string part that you already parsed.
    So you would need a special sharing that is kind of

    a weak sharing that can free some head part. There is
    no such problem of freeing the head part, if you use
    proper cons cell based lists for parsing.

    But naive substring sharing doesn't work for Prolog.
    It will unnecessarely lock the whole string always.
    Whereas a cell based parser can drop

    already parsed parts.

    Bye

    Mild Shock schrieb:
    Hi,

    Java had a grace period where it still supported
    sharing through a command line option, but later
    it was ditched completely:

    Restriction: This system property is supported only on Java™ 8. String sharing cannot be enabled on Java 11 and later.

    Start of content that applies only to Java 8 (LTS) Setting this property
    to true avoids sharing a String object when substring() is used to
    subset a String beginning from offset zero. Avoiding sharing is
    compatible with the Oracle HotSpot VM. https://www.ibm.com/docs/en/sdk-java-technology/8?topic=options-djavalangstringsubstringnocopy


    Unfortunately I don't find a document detailing
    the decision. Like some JEP or so. Still searching.
    With substring sharing it was very easy to provoke

    an out of memory error. You could allocate large
    strings. Share a UTF-16 character, i.e. substring of
    length 1, in the middle of the string, and the string

    was not garbage collected anymore. I do not exclude
    that under the hood sharing could be used. But it
    possibly needs to some compilation technique including

    some dedicated analysis that determines that the parent
    string stays reachable, so that the child sharing doesn't
    make the parent string solely reachable, since

    since the parent string is already reachable.

    Bye

    Mild Shock schrieb:
    Hi,

    I do not exclude a turn-around possibility
    for Scryer Prolog. But with errors like this,
    that are at the core of some ideas behind

    Scryer Prolog, like the glorious char based
    double quoted lists, which have special data
    structure support:

    ?- [X,Y] = [e,foo], Z is X.
        X = e, Y = foo, Z = 2.718281828459045.

    ?- [X,Y] = [e,f], Z is X.
        error(type_error(evaluable,e),(is)/2).

    But I doubt that any such list/array ideas,
    especially when they try to share subarrays
    are even a good idea. Trealla Prolog tries

    something similar. But initial Java had for
    example a sharing substring() method. But they
    abandoned that over the time. So their

    strings are not sharing anymore, and code that
    relied on sharing got broken. You can have
    sharing through other interfaces, but Strings

    are not anymore sharing. Any idea why?

    Bye

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 12:04:55 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Whats then more disturbing, if you try picking subparts
    of the parsing string, and integrate them in the
    parse tree, i.e. your AST.

    You then definitively lock the whole parsing source. But
    the parsing source might be a couple of predicate
    definitions, with constant arguments as found in Datalog:

    foo(bar, baz) :- ....
    ...

    The old school non sharing approach would be to have
    an atom table and you have then deduplicated foo, bar,
    baz, etc... in one place and the source doesn't get

    locked. There is a also a new school, which I started
    with Jekejeke Prolog and continued with Dogelog Player.
    You don't share and you don't atom table.

    If you don't use atom table, you might have copies
    in your code of foo, bar, baz etc.. But this is only
    a small factor, the used memory is still lower than

    locking the whole source. And some Java versions have
    string deduplication garbage collection under the hood now.
    I am not sure what Python and JavaScript do.

    But so far I think the small factor of extra memory
    usage is not an issue.

    Bye

    Mild Shock schrieb:
    Hi,

    But such a criteria is not satisfied in parsing,
    especially if you use the more advanced last call
    optimization and not only tail recursion optimization.

    As soon as parsing is deterministic, you can
    leave behind the string part that you already parsed.
    So you would need a special sharing that is kind of

    a weak sharing that can free some head part. There is
    no such problem of freeing the head part, if you use
    proper cons cell based lists for parsing.

    But naive substring sharing doesn't work for Prolog.
    It will unnecessarely lock the whole string always.
    Whereas a cell based parser can drop

    already parsed parts.

    Bye
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 12:09:38 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    The factor is smaller if the source has anyway a
    diversity of strings. If the source has a lot of
    redundant strings the factor is higher. You

    can explore Prolog compilation techniques that further
    deduplicate, but these compilation technqiques are
    best appplied by a more broader view, i.e. sharing

    numbers and compounds as well. Only looking at strings
    is possibly not worth the effort. But if you
    cross compile you don't have to do anything anyway.

    If I cross compile Dogelog Player to Java, the
    Jave byte code class format has a constant pools, so
    the Java compiler does the deduplication of strings for you.

    A cross compiled Datalog with a lot of foo, bar, baz, ..-

    foo(bar, baz) :- ....
    ...

    Will have a compilation output that uses a constant pool,
    and the strings in itself foo, bar, baz, etc.. will
    be shared. So the factor is again very low for

    cross compiled artefacts. Not sure what Python and JavaScript
    do, they might do a constant pooling as well. The constant
    pooling is very known for Java byte code class format the

    output of Java compilers, it was already there in the beginning.

    Bye

    Mild Shock schrieb:
    Hi,

    Whats then more disturbing, if you try picking subparts
    of the parsing string, and integrate them in the
    parse tree, i.e. your AST.

    You then definitively lock the whole parsing source. But
    the parsing source might be a couple of predicate
    definitions, with constant arguments as found in Datalog:

    foo(bar, baz) :- ....
    ...

    The old school non sharing approach would be to have
    an atom table and you have then deduplicated foo, bar,
    baz, etc... in one place and the source doesn't get

    locked. There is a also a new school, which I started
    with Jekejeke Prolog and continued with Dogelog Player.
    You don't share and you don't atom table.

    If you don't use atom table, you might have copies
    in your code of foo, bar, baz etc.. But this is only
    a small factor, the used memory is still lower than

    locking the whole source. And some Java versions have
    string deduplication garbage collection under the hood now.
    I am not sure what Python and JavaScript do.

    But so far I think the small factor of extra memory
    usage is not an issue.

    Bye

    Mild Shock schrieb:
    Hi,

    But such a criteria is not satisfied in parsing,
    especially if you use the more advanced last call
    optimization and not only tail recursion optimization.

    As soon as parsing is deterministic, you can
    leave behind the string part that you already parsed.
    So you would need a special sharing that is kind of

    a weak sharing that can free some head part. There is
    no such problem of freeing the head part, if you use
    proper cons cell based lists for parsing.

    But naive substring sharing doesn't work for Prolog.
    It will unnecessarely lock the whole string always.
    Whereas a cell based parser can drop

    already parsed parts.

    Bye

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 27 12:54:47 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Or to put it differently:

    substring sharing could turn a
    library(pio) into a memory nightmare.

    Bye

    Mild Shock schrieb:
    Hi,

    The factor is smaller if the source has anyway a
    diversity of strings. If the source has a lot of
    redundant strings the factor is higher. You

    can explore Prolog compilation techniques that further
    deduplicate, but these compilation technqiques are
    best appplied by a more broader view, i.e. sharing

    numbers and compounds as well. Only looking at strings
    is possibly not worth the effort. But if you
    cross compile you don't have to do anything anyway.

    If I cross compile Dogelog Player to Java, the
    Jave byte code class format has a constant pools, so
    the Java compiler does the deduplication of strings for you.

    A cross compiled Datalog with a lot of foo, bar, baz, ..-

    foo(bar, baz) :- ....
    ...

    Will have a compilation output that uses a constant pool,
    and the strings in itself foo, bar, baz, etc.. will
    be shared. So the factor is again very low for

    cross compiled artefacts. Not sure what Python and JavaScript
    do, they might do a constant pooling as well. The constant
    pooling is very known for Java byte code class format the

    output of Java compilers, it was already there in the beginning.

    Bye

    Mild Shock schrieb:
    Hi,

    Whats then more disturbing, if you try picking subparts
    of the parsing string, and integrate them in the
    parse tree, i.e. your AST.

    You then definitively lock the whole parsing source. But
    the parsing source might be a couple of predicate
    definitions, with constant arguments as found in Datalog:

    foo(bar, baz) :- ....
    ...

    The old school non sharing approach would be to have
    an atom table and you have then deduplicated foo, bar,
    baz, etc... in one place and the source doesn't get

    locked. There is a also a new school, which I started
    with Jekejeke Prolog and continued with Dogelog Player.
    You don't share and you don't atom table.

    If you don't use atom table, you might have copies
    in your code of foo, bar, baz etc.. But this is only
    a small factor, the used memory is still lower than

    locking the whole source. And some Java versions have
    string deduplication garbage collection under the hood now.
    I am not sure what Python and JavaScript do.

    But so far I think the small factor of extra memory
    usage is not an issue.

    Bye

    Mild Shock schrieb:
    Hi,

    But such a criteria is not satisfied in parsing,
    especially if you use the more advanced last call
    optimization and not only tail recursion optimization.

    As soon as parsing is deterministic, you can
    leave behind the string part that you already parsed.
    So you would need a special sharing that is kind of

    a weak sharing that can free some head part. There is
    no such problem of freeing the head part, if you use
    proper cons cell based lists for parsing.

    But naive substring sharing doesn't work for Prolog.
    It will unnecessarely lock the whole string always.
    Whereas a cell based parser can drop

    already parsed parts.

    Bye


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Oct 18 01:35:24 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    what is wrong with rust and linux???? https://www.youtube.com/watch?v=T2OKdv4SPdQ

    Pure souls are getting purrified to become even purer.

    Bye

    P.S.: Zig moves to fast for the kernel?
    https://ziglang.org/learn/overview/

    How about a new Prolog system written in Zip?

    Mild Shock schrieb:
    Maybe Scryer Prolog is a failure, because Rust
    is a failure. Building Scryer Prolog on my machine,
    after a git pull of a small change, did just

    take this much time:

    $ time cargo build --release
    [...]
    real    6m52.663s
    user    7m39.043s
    sys     0m3.241s

    What did Rust do? And this tabling test case,
    2000 shuttle, hangs:

    /* Scryer Prolog 0.9.4-107 */
    ?- use_module(library(tabling)).
       true.
    ?- [user].
    :- table c/1.
    c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
    c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
    c(0).

    ?- time(c(_)).
    %%% hangs ? %%%

    It is solved in a blink in SWI-Prolog:

    /* SWI-Prolog 9.3.8 */
    ?- time(c(_)).
    % 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips) true .

    The test case is from here:

    https://github.com/JanWielemaker/tabling_benchmarks/tree/master

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Oct 26 17:43:49 2024
    From Newsgroup: comp.lang.prolog

    Hey folks, please take note:

    "Rust is the last programming language made for humans
    that we'll need. Future languages will be optimized for
    machines, where AI handles all the coding" https://twitter.com/nath_simard/status/1816147809608851830

    Sounds like utter bullshit to me. Must be a
    stupid AI, that cannot do the the safety precautions
    of Rust. Why would I need rust, if I have an AI?

    For this exampe, the AI might generate:

    #include <stdio.h>

    int main(int argc, char* argv[]) {
    printf("Hello %s\n", argv[0]);
    }

    Which might indeed generate a segfault. In
    case there are zero arguments, argv[0] might
    hafve the value NULL. https://www.tu-chemnitz.de/urz/archiv/kursunterlagen/C/kap3/argmain.htm

    So why blame the target language, and not the AI?
    This is a red herring argument in favor of Rust.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 03:16:50 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye

    Mild Shock schrieb:
    Hey folks, please take note:

    "Rust is the last programming language made for humans
    that we'll need. Future languages will be optimized for
    machines, where AI handles all the coding" https://twitter.com/nath_simard/status/1816147809608851830

    Sounds like utter bullshit to me. Must be a
    stupid AI, that cannot do the the safety precautions
    of Rust. Why would I need rust, if I have an AI?

    For this exampe, the AI might generate:

    #include <stdio.h>

    int main(int argc, char* argv[]) {
       printf("Hello %s\n", argv[0]);
    }

    Which might indeed generate a segfault. In
    case there are zero arguments, argv[0] might
    hafve the value NULL. https://www.tu-chemnitz.de/urz/archiv/kursunterlagen/C/kap3/argmain.htm

    So why blame the target language, and not the AI?
    This is a red herring argument in favor of Rust.


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 03:24:22 2024
    From Newsgroup: comp.lang.prolog

    But ChatGPT has still to learn a lot, it
    cannot make the link from Prolog to
    lambda-Prolog to natural deduction.

    Somehow after some questioning ChatGPT
    presented me this Prolog code:

    likes(john, pizza).
    likes(mary, sushi).
    likes(sam, burgers).

    friend(john, mary).
    friend(mary, sam).

    likes_what_friends_like(Person, Thing) :-
    friend(Person, Friend),
    likes(Friend, Thing).

    I then asked for a Prolog query that
    solves the following question:

    "who should john befriend so that we
    can assume he likes burgers"

    Interestingly ChatGPT strated using
    Prolog and natural deduction on the meta
    level, mentioning modus ponense, and answering

    Proof via Natural Deduction:
    Assumption: Assume friend(john, X) (where X = sam).

    Apply the Rule: Since friend(john, sam) is true, and likes(sam, burgers)
    is also true, we apply the rule likes_what_friends_like(john, Thing) and
    infer likes_what_friends_like(john, burgers).

    Conclusion: Therefore, likes_what_friends_like(john, burgers) holds,
    which implies that John would like burgers if he befriends Sam.


    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 03:28:38 2024
    From Newsgroup: comp.lang.prolog

    My objection was then that Prolog didn't do
    the proof only ChatGPT did it.

    "But Prolog is supposed to search for proofs.
    What is the proof?"

    It then continued with attempts like:

    what_if_befriend(Person, Friend, Goal) :-
    assert(friend(Person, Friend)), % Assert the new friendship
    Goal, % Check the goal with the new friendship
    retract(friend(Person, Friend)). % Retract after checking the goal

    Only the above will not work, since
    assert/1 cannot return a variable binding.

    So what is the magic behind lambda-Prolog
    and hypothetical reasoning? lambda-Prolog
    not being in the scope of ChatGPT?

    Mild Shock schrieb:
    But ChatGPT has still to learn a lot, it
    cannot make the link from Prolog to
    lambda-Prolog to natural deduction.

    Somehow after some questioning ChatGPT
    presented me this Prolog code:

    likes(john, pizza).
    likes(mary, sushi).
    likes(sam, burgers).

    friend(john, mary).
    friend(mary, sam).

    likes_what_friends_like(Person, Thing) :-
        friend(Person, Friend),
        likes(Friend, Thing).

    I then asked for a Prolog query that
    solves the following question:

    "who should john befriend so that we
    can assume he likes burgers"

    Interestingly ChatGPT strated using
    Prolog and natural deduction on the meta
    level, mentioning modus ponense, and answering

    Proof via Natural Deduction:
    Assumption: Assume friend(john, X) (where X = sam).

    Apply the Rule: Since friend(john, sam) is true, and likes(sam, burgers)
    is also true, we apply the rule likes_what_friends_like(john, Thing) and infer likes_what_friends_like(john, burgers).

    Conclusion: Therefore, likes_what_friends_like(john, burgers) holds,
    which implies that John would like burgers if he befriends Sam.


    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow
    https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 03:54:54 2024
    From Newsgroup: comp.lang.prolog

    How it started:

    An exciting day! @spolsky called me and let me
    know. Today's sale of Stack Overflow, most importantly,
    lets Stack Overflow continue as an independent site --
    and also mints 61 new millionaires.
    Jeff Atwood - 6:47 PM · Jun 2, 2021 https://twitter.com/codinghorror/status/1400132013068218370

    How its going:

    Stack Overflow cuts 28% of its staff https://techcrunch.com/2023/10/17/stack-overflow-cuts-28-of-its-staff/

    Mild Shock schrieb:
    My objection was then that Prolog didn't do
    the proof only ChatGPT did it.

    "But Prolog is supposed to search for proofs.
    What is the proof?"

    It then continued with attempts like:

    what_if_befriend(Person, Friend, Goal) :-
        assert(friend(Person, Friend)),  % Assert the new friendship
        Goal,  % Check the goal with the new friendship
        retract(friend(Person, Friend)).  % Retract after checking the goal

    Only the above will not work, since
    assert/1 cannot return a variable binding.

    So what is the magic behind lambda-Prolog
    and hypothetical reasoning? lambda-Prolog
    not being in the scope of ChatGPT?
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 16:47:55 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Yes exactly, they shoot themselves into the foot.
    They adopted the academic closed world attitute,
    as can be seen here, not noticing that the John

    Doe programmers are not necessarily a theoretical
    computer science titanic A-class member:

    As an example, consider this question – invented, but not far-fetched: "Random keeps giving me the same numbers. Is it broken?"
    This is a low-quality question, in my view. https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/

    Now try the same with ChatGPT:

    Q: Random keeps giving me the same numbers. Is it broken?

    A: It sounds like your Random object might not be
    re-seeded, which could cause it to generate the same
    sequence of numbers every time you run your program.
    By default, Random is seeded with the current time in
    milliseconds, but if you create it multiple times in
    quick succession, it might receive the same seed and
    generate the same numbers.

    Bye

    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 17:00:27 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    I personally like that ChatGPT tolerates all my
    sloppiness, since I am always in a hurry, don't
    have time for some bullshit.

    And I pay the bill by myself, if ChatGPT doesn't
    understand me. I don't need some moderator to
    force some ideal into my throat, anyway

    most of the time ChatGPT understands me
    nevertheless. Has probably to do how
    the artificial intelligenc of ChatGPT works:

    Attention Is All You Need
    https://arxiv.org/abs/1706.03762

    But stack overflow gets also drained by other
    developments like for example:

    - Thousends of tutorial web sites:
    There is a real cottage industry, of
    commercial web sites, that explain you
    web programming etc.. They are commercial
    since they show banner ads.

    - Thousends of tutorial videos:
    There is a similar cottage industry
    for videos. Also commercial because
    the show ads. Even google search
    doesn't show stack overflow as first
    result anymore.

    - Declining Business Model Job Search
    With "low code", the number of programmer
    jobs as we know it will go down. A website
    specialized on job advertising will automatically
    loose revenue:

    https://stackoverflow.co/advertising/

    Bye

    Mild Shock schrieb:
    Hi,

    Yes exactly, they shoot themselves into the foot.
    They adopted the academic closed world attitute,
    as can be seen here, not noticing that the John

    Doe programmers are not necessarily a theoretical
    computer science titanic A-class member:

    As an example, consider this question – invented, but not far-fetched: "Random keeps giving me the same numbers. Is it broken?"
    This is a low-quality question, in my view. https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/

    Now try the same with ChatGPT:

    Q: Random keeps giving me the same numbers. Is it broken?

    A: It sounds like your Random object might not be
    re-seeded, which could cause it to generate the same
    sequence of numbers every time you run your program.
    By default, Random is seeded with the current time in
     milliseconds, but if you create it multiple times in
    quick succession, it might receive the same seed and
    generate the same numbers.

    Bye

    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow
    https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 17:11:21 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Also Stack Overflow is very bad in reading
    the signs of the times:

    Generative AI is now integral to the
    technologist workflow, yet many developers
    are still skeptical. According to our 2024
    #Developer Survey, 79% of respondents cited
    misinformation as their primary ethical
    concern regarding AI.
    https://x.com/stackoverflow/

    The survey is not so bad:
    https://survey.stackoverflow.co/2024/ai

    So they have it right in front of their
    nose that they should shut down

    their grammar nazi nonsense and find
    new ways, alternative ways to harness

    and curate knowlegde?

    Bye

    Mild Shock schrieb:
    Hi,

    I personally like that ChatGPT tolerates all my
    sloppiness, since I am always in a hurry, don't
    have time for some bullshit.

    And I pay the bill by myself, if ChatGPT doesn't
    understand me. I don't need some moderator to
    force some ideal into my throat, anyway

    most of the time ChatGPT understands me
    nevertheless. Has probably to do how
    the artificial intelligenc of ChatGPT works:

    Attention Is All You Need
    https://arxiv.org/abs/1706.03762

    But stack overflow gets also drained by other
    developments like for example:

    - Thousends of tutorial web sites:
      There is a real cottage industry, of
      commercial web sites, that explain you
      web programming etc.. They are commercial
      since they show banner ads.

    - Thousends of tutorial videos:
      There is a similar cottage industry
      for videos. Also commercial because
      the show ads. Even google search
      doesn't show stack overflow as first
      result anymore.

    - Declining Business Model Job Search
      With "low code", the number of programmer
      jobs as we know it will go down. A website
      specialized on job advertising will automatically
      loose revenue:

    https://stackoverflow.co/advertising/

    Bye

    Mild Shock schrieb:
    Hi,

    Yes exactly, they shoot themselves into the foot.
    They adopted the academic closed world attitute,
    as can be seen here, not noticing that the John

    Doe programmers are not necessarily a theoretical
    computer science titanic A-class member:

    As an example, consider this question – invented, but not far-fetched:
    "Random keeps giving me the same numbers. Is it broken?"
    This is a low-quality question, in my view.
    https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/

    Now try the same with ChatGPT:

    Q: Random keeps giving me the same numbers. Is it broken?

    A: It sounds like your Random object might not be
    re-seeded, which could cause it to generate the same
    sequence of numbers every time you run your program.
    By default, Random is seeded with the current time in
      milliseconds, but if you create it multiple times in
    quick succession, it might receive the same seed and
    generate the same numbers.

    Bye

    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow
    https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Nov 15 18:00:58 2024
    From Newsgroup: comp.lang.prolog

    Or just give up Q&A sites all together. They
    live in a bubble that they sit on a treasure.

    Any clue why? Simply because text will pretty soon
    not be mandatory anymore for training of Chat bots:

    Early 2000s: Automatic transcription services were
    rudimentary, relying on basic speech recognition
    software with limited accuracy.

    2010s: The technology began to improve significantly
    with the development of deep learning and neural
    networks. Platforms like YouTube introduced automatic
    captions in 2006, but they were often unreliable
    and required manual corrections.

    2016–2018: Major tech companies, including Google and
    Microsoft, launched more advanced speech-to-text
    services. These platforms utilized machine learning
    algorithms and large datasets to provide more
    accurate transcriptions.

    2020–2023: With advancements in AI and natural language
    processing (NLP), transcription services became much
    more accurate and widely available. Companies like Rev,
    Otter.ai, and others began offering services with high
    accuracy and specialized features (such as speaker
    identification, real-time transcription, and more).

    But ChatGPT isn't there yet?

    Although ChatGPT itself is not directly trained
    on video data, multimodal models (such as GPT-4's
    ability to process images) are paving the way for
    broader applications of video-based learning in AI.

    So the cottage industry of training videos
    will be the next target of knowledge harvesting?
    Directly incorporating your professors lectures?

    LoL

    Mild Shock schrieb:
    Hi,

    Also Stack Overflow is very bad in reading
    the signs of the times:

    Generative AI is now integral to the
    technologist workflow, yet many developers
    are still skeptical. According to our 2024
    #Developer Survey, 79% of respondents cited
    misinformation as their primary ethical
    concern regarding AI.
    https://x.com/stackoverflow/

    The survey is not so bad:
    https://survey.stackoverflow.co/2024/ai

    So they have it right in front of their
    nose that they should shut down

    their grammar nazi nonsense and find
    new ways, alternative ways to harness

    and curate knowlegde?

    Bye

    Mild Shock schrieb:
    Hi,

    I personally like that ChatGPT tolerates all my
    sloppiness, since I am always in a hurry, don't
    have time for some bullshit.

    And I pay the bill by myself, if ChatGPT doesn't
    understand me. I don't need some moderator to
    force some ideal into my throat, anyway

    most of the time ChatGPT understands me
    nevertheless. Has probably to do how
    the artificial intelligenc of ChatGPT works:

    Attention Is All You Need
    https://arxiv.org/abs/1706.03762

    But stack overflow gets also drained by other
    developments like for example:

    - Thousends of tutorial web sites:
       There is a real cottage industry, of
       commercial web sites, that explain you
       web programming etc.. They are commercial
       since they show banner ads.

    - Thousends of tutorial videos:
       There is a similar cottage industry
       for videos. Also commercial because
       the show ads. Even google search
       doesn't show stack overflow as first
       result anymore.

    - Declining Business Model Job Search
       With "low code", the number of programmer
       jobs as we know it will go down. A website
       specialized on job advertising will automatically
       loose revenue:

    https://stackoverflow.co/advertising/

    Bye

    Mild Shock schrieb:
    Hi,

    Yes exactly, they shoot themselves into the foot.
    They adopted the academic closed world attitute,
    as can be seen here, not noticing that the John

    Doe programmers are not necessarily a theoretical
    computer science titanic A-class member:

    As an example, consider this question – invented, but not far-fetched: >>> "Random keeps giving me the same numbers. Is it broken?"
    This is a low-quality question, in my view.
    https://codeblog.jonskeet.uk/2018/03/17/stack-overflow-culture/

    Now try the same with ChatGPT:

    Q: Random keeps giving me the same numbers. Is it broken?

    A: It sounds like your Random object might not be
    re-seeded, which could cause it to generate the same
    sequence of numbers every time you run your program.
    By default, Random is seeded with the current time in
      milliseconds, but if you create it multiple times in
    quick succession, it might receive the same seed and
    generate the same numbers.

    Bye

    Mild Shock schrieb:
    Hi,

    The cest pool of bit rot is finally gone:

    (Bit rot, because they did everything in a
    facist way ignoring your copyright to prevent
    you from deleting you own out dated stuff)

    CoincidenceIDontThinkSo
    https://9gag.com/gag/abAG4oE

    The Fall of Stack Overflow
    https://observablehq.com/@ayhanfuat/the-fall-of-stack-overflow

    The downfall is related to the appearance of
    ChatGPT. I feel pitty for Ulrich Neumerkel false
    and others who spammed stackoverflow for years

    with their infinite dif/2 nonsense.

    Bye



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Nov 20 14:20:18 2024
    From Newsgroup: comp.lang.prolog

    Hi,

    Strange things happen in the Zig world:

    Bun is a JavaScript runtime, package manager,
    test runner and bundler built from scratch using
    the Zig programming language. It was designed by
    Jarred Sumner as a drop-in replacement for Node.js.
    Bun uses WebKit's JavaScriptCore as the JavaScript
    engine, unlike Node.js and Deno, which both use V8. https://en.wikipedia.org/wiki/Bun_(software)

    Should give a try via Dogelog Player for JavaScript.

    Python/PyPy (2.288s)
    Js/Node (1.595s)
    C/clang -O0 (1.566s)
    Go (1.528s)
    Js/Bun (1.434s)
    1 Billion nested loop iterations
    https://benjdd.com/loops2/

    The above is a micro benchmark, might not give an
    indicative whether Bun will choke or not. Lets see.

    Bye

    Mild Shock schrieb:
    Hi,

    what is wrong with rust and linux???? https://www.youtube.com/watch?v=T2OKdv4SPdQ

    Pure souls are getting purrified to become even purer.

    Bye

    P.S.: Zig moves to fast for the kernel?
    https://ziglang.org/learn/overview/

    How about a new Prolog system written in Zip?

    Mild Shock schrieb:
    Maybe Scryer Prolog is a failure, because Rust
    is a failure. Building Scryer Prolog on my machine,
    after a git pull of a small change, did just

    take this much time:

    $ time cargo build --release
    [...]
    real    6m52.663s
    user    7m39.043s
    sys     0m3.241s

    What did Rust do? And this tabling test case,
    2000 shuttle, hangs:

    /* Scryer Prolog 0.9.4-107 */
    ?- use_module(library(tabling)).
        true.
    ?- [user].
    :- table c/1.
    c(X) :- c(Y), 0 =< Y, Y < 20000, X is -Y-1.
    c(X) :- c(Y), -20000 < Y, Y =< 0, X is -Y+1.
    c(0).

    ?- time(c(_)).
    %%% hangs ? %%%

    It is solved in a blink in SWI-Prolog:

    /* SWI-Prolog 9.3.8 */
    ?- time(c(_)).
    % 540,077 inferences, 0.047 CPU in 0.051 seconds (92% CPU, 11521643 Lips)
    true .

    The test case is from here:

    https://github.com/JanWielemaker/tabling_benchmarks/tree/master


    --- Synchronet 3.20a-Linux NewsLink 1.114