• 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)