• Noacore is a Prolog profile that explores various relaxations

    From Mild Shock@21:1/5 to All on Fri Mar 21 19:16:19 2025
    Interestingly a flag strict_iso could solve a few
    vexing problems. For example the ISO core standard
    did only mention floor/1 with signature F → I.

    So in GNU Prolog I can do:

    /* GNU Prolog 1.5.0 */

    ?- current_prolog_flag(strict_iso, X).
    X = on
    yes

    ?- X is floor(1).
    uncaught exception: error(type_error(float,1),(is)/2)

    ?- set_prolog_flag(strict_iso, off).
    yes

    ?- X is floor(1).
    X = 1
    yes

    A few Prolog systems don’t share the above behavior,
    like SWI-Prolog for example doesn’t throw the type error.
    Also SWI-Prolog has nowhere a flag strict_iso.

    Currently I have changed my Prolog system to tell me:

    /* Dogelog Player 1.3.1 */

    ?- current_prolog_flag(strict_iso, X).
    X = off.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to All on Wed Jul 2 09:33:05 2025
    The required changes could be fairly limited.

    I don’t know. You never know before you did it.
    With the current design you might end up in a
    Münchhausen scenario, trying to defy gravity by
    pulling your own hair. It seems there is a global switch

    which engine is active? I don’t understand, isn’t
    SWI-Prolog able to run truely concurrently on a
    multi-core machine. Because such things, wouldn’t
    work for threads that distribute themselves over cores.

    I saw an L_THREAD lock somewhere?

    #define GET_LD PL_local_data_t *__PL_ld = GLOBAL_LD;

    In the “worker” scenario, a “worker” can typically grab
    a CPU core all for himself, and for its knowledge and
    for all the engines that work over this knowlegde base.
    Thats the beauty of JavaScript

    isolation through “workers”, and it is also used in
    the Ciao Playground. Its very multi core friendly, a
    “worker” can also have its own garbage collection etc…

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