• Re: Is a PIP for Syntax extensions necessary? (Was; post-N246 Read- and

    From Mild Shock@21:1/5 to Mild Shock on Sun Aug 11 00:05:15 2024
    Anything that touches or depends on syntax
    is a complete can of worms. The ISO commitee
    was not able to find an initial *english natural

    language specification wording* for character
    look-ahead, so that we find now character
    look-ahead in Prolog compounds practially

    implemented by all Prolog systems, but character
    look-ahead interpretation may differ for
    negative numbers, like here:

    /* SWI-Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    -(^(1,2))

    /* Scryer Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    ^(-1,2)

    But in the case of Scryer Prolog it doesn't
    matter, since Scryer Prolog is anyway dead.

    Mild Shock schrieb:
    I have a question, does SWI-Prolog not anymore use
    their dict syntax in the Janus interface:

    import janus_swi as janus
    janus.query_once("Y is X+1", {"X":1})
    {'Y': 2, 'truth': True}

    I don’t see _{...} anymore. When and how did this
    happen? I was just thinking whether a Syntax
    extension PIP is necessary. Such a PIP isn’t listed:

    https://prolog-lang.org/ImplementersForum/PIPs.html

    Is SWI-Prolog safe, against parsing problems,
    when it still has block operators in the
    background? Like can one mix and match

    code that uses Janus interface with the
    “new” dicts with other code that uses the
    SWI-Prolog dicts based on _{...}

    which we might now term the “old” dicts.
    How do you access and manipulate the
    “new” dicts, do the “old” operations work?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to Mild Shock on Sun Aug 11 00:16:31 2024
    So we have two victims in 2024, two
    things died in 2024, are pepsi now:

    - Scryer Prolog

    - SWI-Prolog Dicts

    LoL

    Mild Shock schrieb:
    Anything that touches or depends on syntax
    is a complete can of worms. The ISO commitee
    was not able to find an initial *english natural

    language specification wording* for character
    look-ahead, so that we find now character
    look-ahead in Prolog compounds practially

    implemented by all Prolog systems, but character
    look-ahead interpretation may differ for
    negative numbers, like here:

    /* SWI-Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    -(^(1,2))

    /* Scryer Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    ^(-1,2)

    But in the case of Scryer Prolog it doesn't
    matter, since Scryer Prolog is anyway dead.

    Mild Shock schrieb:
    I have a question, does SWI-Prolog not anymore use
    their dict syntax in the Janus interface:

    import janus_swi as janus
    janus.query_once("Y is X+1", {"X":1})
    {'Y': 2, 'truth': True}

    I don’t see _{...} anymore. When and how did this
    happen? I was just thinking whether a Syntax
    extension PIP is necessary. Such a PIP isn’t listed:

    https://prolog-lang.org/ImplementersForum/PIPs.html

    Is SWI-Prolog safe, against parsing problems,
    when it still has block operators in the
    background? Like can one mix and match

    code that uses Janus interface with the
    “new” dicts with other code that uses the
    SWI-Prolog dicts based on _{...}

    which we might now term the “old” dicts.
    How do you access and manipulate the
    “new” dicts, do the “old” operations work?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to Mild Shock on Sun Aug 11 00:25:22 2024
    import janus_swi as janus
    janus.query_once("Y is X+1", {"X":1})
    {'Y': 2, 'truth': True}

    Ok, my bad the above is Python code and
    not Prolog code, right? But how does XSB do it?

    Ok the docu say:

    Compatibility to the XSB Janus implementation
    For this reason we support creating a Python
    dict both from a SWI-Prolog dict and from the
    Prolog term py({k1:v1, k2:v2, ...}) . https://www.swi-prolog.org/pldoc/man?section=janus-vs-xsb

    Does this affirm or reject the need for syntax
    extension PIP? Why not just use “new” dicts on
    both sides? Forget about the py tag, its anyway
    always py. Does XSB “new” dict wrapped

    in py compound have access and modification
    operations? Wouldn’t it be enough to provide
    operations without the py compound wrapping.


    Mild Shock schrieb:
    So we have two victims in 2024, two
    things died in 2024, are pepsi now:

    - Scryer Prolog

    - SWI-Prolog Dicts

    LoL

    Mild Shock schrieb:
    Anything that touches or depends on syntax
    is a complete can of worms. The ISO commitee
    was not able to find an initial *english natural

    language specification wording* for character
    look-ahead, so that we find now character
    look-ahead in Prolog compounds practially

    implemented by all Prolog systems, but character
    look-ahead interpretation may differ for
    negative numbers, like here:

    /* SWI-Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    -(^(1,2))

    /* Scryer Prolog */
    ?- X = - 1^2, write_canonical(X), nl.
    ^(-1,2)

    But in the case of Scryer Prolog it doesn't
    matter, since Scryer Prolog is anyway dead.

    Mild Shock schrieb:
    I have a question, does SWI-Prolog not anymore use
    their dict syntax in the Janus interface:

    import janus_swi as janus
    janus.query_once("Y is X+1", {"X":1})
    {'Y': 2, 'truth': True}

    I don’t see _{...} anymore. When and how did this
    happen? I was just thinking whether a Syntax
    extension PIP is necessary. Such a PIP isn’t listed:

    https://prolog-lang.org/ImplementersForum/PIPs.html

    Is SWI-Prolog safe, against parsing problems,
    when it still has block operators in the
    background? Like can one mix and match

    code that uses Janus interface with the
    “new” dicts with other code that uses the
    SWI-Prolog dicts based on _{...}

    which we might now term the “old” dicts.
    How do you access and manipulate the
    “new” dicts, do the “old” operations work?


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mild Shock@21:1/5 to Mild Shock on Sun Aug 11 14:46:24 2024
    Ok, when I listed these two tomb stones,
    this wasn't because I was jealous that
    SWI-Prolog has dicts and dicts syntax,

    its more the KISS principle, and the idea
    that Prolog processors should pursue
    non-functional optimizations without

    new functional requirements. It might
    appear as a strange idea, but it has many
    advantages like not affecting the end-user

    functionally in any way and not affecting
    portability in any way. In as far my
    tomb stones wish list is that long:

    - SWI-Prolog dicts

    - String type [not only SWI-Prolog]

    The string type idea made it also into
    a few newer Prolog system, but wouldn't it
    be nice if strings where just transparent,

    and implementation detail the Prolog processor
    chooses, and not anything the end-user has
    to worry about?

    Mild Shock schrieb:
    So we have two victims in 2024, two
    things died in 2024, are pepsi now:

    - Scryer Prolog

    - SWI-Prolog Dicts

    LoL

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