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

Bridging the colon gap


This "keyword package" question has given rise to a number of
kludgy partial solutions, but none seems to have fully taken hold
yet - until one does, we'll likely encounter complaints, such as
yours (below) against "#:" , and I'd like to take this opportunity
to apprise the bug-lisp/bug-lispm communities of the basic problem.
    Date: 6 February 1980 01:53-EST
    From: Howard I. Cannon <HIC at MIT-MC>
    I suggest not having this.  It seems like a total kludge to me, and
    I see no reason to snarf this either A) ambiguous, or B) potentially
    useful # macro character.  I find it hard to believe that the MacLisp
    reader can't be hacked to throw away everything before a : in a symbol,
    if some flag was turned on, or somesuch.  This seems like a more
    appropriate place for a the kludge.
For MACLISP, we wouldn't want just to throw away the prefix of a colon - 
for example, it is quite desirable for SI:MUMBLE and CL:MUMBLE to be
distinct symbols.  The problem, as you remember, is that many people are 
confused as to how to type keywords - most believe that the colon is 
necessary.  Until it actually becomes necessary (e.g., having a separate 
keyword package), there exists the necessity in MACLISP of having something
which a user can write which will work both now and in the future.
"FOO" is the current state, and if the keyword package happens,  then ":FOO"
or "KEY:FOO", is the future state;  for the LISPM, there is no trouble in 
bridging this gap, but maclisp can't bridge it simply by tossing out the 
colon prefix arbitrarily.  That's why the selectivity of the kludgy "#:" 
is needed.  
   A partial solution is for ALAN to re-install DEFSHARP so that any file
which thinks it needs this security could do its own local definition
for "#:", and we could propogate a general prohibition for using "#:"
for anything else until the question has been fully settled.  (By the bye, 
I'd really like to see DEFSHARP be defaulty loaded - it is now with the
maclisp SHARPM file).
   Another possible solution is RMS's, namely just get people to stop 
putting colons in front of keywords, and let system-programmers take
their lumps about distinguishing the keyword when in the SI package.
This has the desirable feature that all keywords appear *without* colons,
but it may be hard to turn the hands of the clock back to state where
this can be standardized.
   Finally, it might be noted that this is not exclusively a maclisp
compatibility problem (although prominently so now), but in any situation 
where one wants to say, *selectively*, "use the package feature, if enabled",
some such "feature" would be desirable.