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

Revised Mini-Ballot



I find KMP's arguments against option B to be fairly convincing.  It
does not bother me much to have symbols be a special case, but the
business about quoting is serious.  I also believe that the function
specs should be statically analyzable, so we would have to constrain the
SETF forms to be compile-time constant, and that is pretty ugly.  There
is also the problem, mentioned by someone earlier, that the SETF form
makes the user see a level of implementation detail that the
function-spec proposal hides, namely where the function object really
goes.

C has two disadvantages: first, it does not provide for the common case
of wanting to store a compiled function under a property; second, it
will give rise to all sorts of incompatible ad hoc solutions.

So that leaves A.  Things like (defun (:property foo bar) ...) actually
look pretty good to me -- the intent is clear -- and it makes sense for
trace and friends to accept these forms.  I still resist the notion that
these are names, but that is just an issue of how they are explained,
not what the mechanism is.  I guess it also makes sense to make this
facility extensible, and for that we need something like the set of
machinery that Moon proposes.  (This extension stuff should be
documented in such a way that our canonical naive user understands that
he can safely ignore it.)  Of the pre-defined types in the Chine Nual,
we need only :PROPERTY and maybe :INTERNAL.  :LOCATION is clearly out
and :WITHIN and :METHOD should be extensions defined by non-white-pages
packages.

So, if it is kept as simple as possible and explained properly, I guess
I am now prepared to believe that A is best way to go.  (Moon is still
wrong-headed and unacceptable, however -- that HAS to be the wrong
head!)

On the issue of asterisks for constants, I have decided that I really
don't care at all, as long as the issue is settled quickly and
decisively.  I give Guy my proxy to choose between stars and no stars.
I would not like to see a new character convention introduced just for
constants, though.

-- Scott