Re: Remarks on SWI 7

Ulrich Neumerkel <[email protected]>
Newsgroups gmane.comp.ai.prolog.swi
Message-ID <[email protected]>
Richard O'Keefe:
>> A standard that _prescribes_ that length(2,0) should fail silently is
>> something I refuse to take seriously.  So yes, it is another issue.
>
>The standard is a living standard.  It _does_ get revised.
>If memory serves me correctly, in Quintus Prolog length(2, 0) raised
>an error, I'm pretty sure I added the code to make that happen in
>about 1983.  David H. D. Warren, the developer of the first Prolog
>compiler, the inventor of three different VMs for Prolog, all used
>in major systems, and a founder of Quintus, was keen on the
>"totally defined semantics" of Prolog.  But Kennita Watson, the
>first technical writer at Quintus, was even keener on the idea that
>she shouldn't get unannounced unpleasant surprises, so that our
>customers wouldn't.
>
>So Kennita taught me to think that having length(2, 0) raise an
>exception is a good idea.

Can we agree the Quintus manual differs?

http://quintus.sics.se/isl/quintus/html/quintus/mpg-ref-length.html

Arguments

 List list
    a list
 Integer integer
    non-negative integer 

Exceptions

  type_error
     Integer integer 

>I would be happy to see the standard change here, and systems
>change to conform to the revised standard.

It is not part of core, that is ISO/IEC 13211-1, but of the Prolog
prologue.

http://www.complang.tuwien.ac.at/ulrich/iso-prolog/prologue

There have been discussions on it - primarily Lexington and with
unanimous agreement and quite numerours participation, we agreed on no
error for the first argument.  And you can see that agreement also by
the very action it ensued in the table: 5 systems conform to it -
fully.  But not SWI.

http://www.complang.tuwien.ac.at/ulrich/iso-prolog/length

I wish things would proceed as fast as they did for length/2.

>The standard *is* a living standard and while the standard says
>that this must fail quietly *now*, that's something that *could* be
>changed if a case was made and agreed to.  The thing to do is not
>to kick the standard *as a whole* -- and Prolog programmers with it --
>in the slats, but to lobby for a change.

The most effective way of lobbying is conformance.  A system that
fully conforms to everything but one very detail is so much more
convincing than a system that misinterprets syntax test 37 times,
rejects 12 tests, and extends the standard in 29 tests.  And this is
a version of SWI-Prolog 6.   Not SWI 7.

http://www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_assessment#table

Needless to say, when discussing a missing feature, discussion is
based on those implementations that have already implemented it.
Think of variable_names/1.
http://www.complang.tuwien.ac.at/ulrich/iso-prolog/variable_names

In that case, SWI is one of the very best implementations.
((Glad I have found a good end for this post.))
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.