Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Noting when consequences are undefined #1 #37

Open
KZiemian opened this issue Jan 14, 2018 · 0 comments
Open

Noting when consequences are undefined #1 #37

KZiemian opened this issue Jan 14, 2018 · 0 comments

Comments

@KZiemian
Copy link
Collaborator

By beach.

There is a general explanation in the Common Lisp HyperSpec that if a dictionary page mentions an object type, and nothing explicit is said on that page about what happens if the type is violated, then the consequences are undefined (or perhaps unspecified, I don't remember) if it is.

I think many people incorrectly assume that en error will be signaled. It would be worthwhile to remind the reader of such dictionary pages of these consequences. It could be in the form of a link to the general page (with an appropriate text), or a direct statement of what happens if the type is violated.

clhs append http://www.lispworks.com/reference/HyperSpec/Body/f_append.htm
Take that one for example. It says "Exceptional Situations: None". But if the arguments are not proper lists, then the consequences are undefined.

clhs 1.4.4.3
The ``Arguments and Values'' Section of a Dictionary Entry: http://www.lispworks.com/reference/HyperSpec/Body/01_ddc.htm
Notice: "Except as explicitly specified otherwise, the consequences are undefined if these type restrictions are violated."

Note from the CLUS maintainer: While this page explicitly says that there are no exceptional situations, notice that section 1.4.4.3 implies that, if the lists (all arguments except the last) are not proper lists, the consequences are undefined.

And if you compile a list of dictionary entries that need to be amended, I can work on such a list, and create specific notes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant