[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposal #7 Status: TYPE-SPECIFIER-P

    Date: 28 Jul 86 11:52 PDT
    From: Masinter.pa@Xerox.COM

    c)  this is a request for a feature, but there's little evidence that
    there are significant, meaningful, portable uses for it. (Portable = a
    program written with one Common Lisp's version is likely to run with
    another Common Lisp's version.)
    e) there is another proposal (before the Object Oriented Programming
    committee in this case) which satisfies  at least part of the original
    requirement in a different way.
    Date: Mon, 28 Jul 86 20:24 EDT
    From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>

    I have no objection to either of TYPE-SPECIFIER-P or TYPE-NAME-P if
    someone can show why these are needed to fix something wrong with the
    language.  Perhaps Guy can comment on why the original proposal 51 in
    his clarifications list was tagged with an asterisk indicating that it
    corrects an important flaw or resolves an ambiguity in the

I think the original request for this feature came from me, and the motivation
was in fact to allow the portable implementation of object-oriented
programming extensions.  If DEFCLASS defines a TYPE, then DEFCLASS needs some
way to tell if the specified class name is the name of an existing type, so
that it can issue some reasonable error message.  (Presumably, DEFCLASS knows
if the specified name is the name of an existing CLASS, but it doesn't know
about other types.)  TYPE-NAME-P is adequate for this purpose, although it
would look ugly to have TYPE-NAME-P in the language if we ever figured out
what TYPE-SPECIFIER-P should do (perhaps Guy's definition is adequate).

To the best of my knowledge, neither DEFTYPE nor DEFSTRUCT define what happens
if the specified type name names an existing type.  Defining their behavior in
this case might also solve the problem (if an error is signalled in all cases
of interest).  (Only the moderator is allowed to interpret this paragraph as
opening a new issue!)