Re: checking implementation defined and implementation dependent behaviour



Joerg Hoehle <hoehle@xxxxxxxxxxxxxxxxxxxxx> writes:


;;;;
;;;; Simply unspecified
;;;;

[...]

(dolist (i '(1 2 . 3) i))
ERROR

(loop for i in '(1 2 . 3) count t) ; for comparison, well-defined
ERROR ; 6.1.2.1.2 via ENDP

You're right that the case is not really specified for DOLIST, but FWIW
let me point you to [System Class List], where it's stated that

``[d]otted lists and circular lists are also lists, but usually the
unqualified term ``list'' within this specification means proper
list.''

(Which is, philosophically, also in conformance with [CLHS 17.1.1].)

Now it's the question what is meant with "unqualified term"---is a
qualified term equivalent to a hyperlinked term in the HyperSpec? In
that case, the DOLIST entry would refer to the type LIST (as it's
hyperlinked to the glossary) and not the unqualified term.

OTOH, it may be worthwhile to look for what's exactly within the ANSI
standard document.

[System Class List] - http://www.lispworks.com/documentation/HyperSpec/Body/t_list.htm
[CLHS 17.1.1] - http://www.lispworks.com/documentation/HyperSpec/Body/17_aa.htm



;; Paul Dietz' ANSI testsuite (part of gcl) checks some border cases
;; http://cvs.savannah.gnu.org/viewcvs/gcl/ansi-tests/beyond-ansi/?root=gcl

What's the status of this project?

Furthermore, there were quite some occasions where I encountered what
I'd say is an edge case of the standard (or a case where the reading of
the spec might be a bit tricky), and I'd have liked to report the case
to all implementators to let them see if they get it right.

Unfortunately there is currently no medium to get into contact to all
implementators at once to discuss such things. I'd really like a
platform (mailinglist, say) where I know that responsible people of all
Common Lisp implementations are listening on.

-T.

.