[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: RWK at MIT-MC, LISP-FORUM at MIT-MC, Guy.Steele at CMU-10A
- Subject: Re: *****Idea!
- From: Kent M. Pitman <KMP at MIT-MC>
- Date: Wed ,5 Nov 80 14:13:00 EDT
- Cc: "(FILE [DSK:LSPMAI;CATCH REPLY])" at MIT-MC
I considered solutions like having *sym intern specially. Eg, given CATCH
and *CATCH already on your obarray, then *******CATCH would intern as
*CATCH (removing redundant *'s -- the original *CATCH is of course entered
with |*CATCH|. This would be nice when a new CATCH came along because it
could become CATCH and *CATCH could become **CATCH and ******CATCH would now
be interned as **CATCH so it would still win. Hence, people who want to just
get ahold of a feature and use it and make their code really safe would use
lots of ***'s ... eg, *******************************CATCH would intern the
same as the oldest version of CATCH until that many *-versions were released.
People that wanted a particular newer version would be resigning themselves to
fight the name game -- ie, they'd use |**CATCH| or |CATCH| and they would be
screwed when the new version comes out, but that's what they'd get for trying
to be coding using the `current fad' in CATCH's as opposed to being happy
with the fine functionality offered by ****...****CATCH in the first place.
It has its disadvantages because presumably if you pick 150 *'s (a fairly
conservative number), you will eventually (at release of version 151 of CATCH)
have to do something. A syntax for an infinite number of *'s might be nice --
for the person to say explicitly that he wants to be (1) maximally correct
and (2) maximally out of date with `style' ... The other alternative is the
more concise CATCH notation which names the version number of CATCH which
you want. This has the attractive feature of what I think it was GLS who
suggested at one point at Lisp conference -- DWTCMY (Do What This Code
Meant Yesterday) [if not yours, GLS, sorry -- I can't think of anyone to
pin it to ...] So newer versions are just added as CATCH, CATCH, etc.
Fancy hacks to get intern to share the PNAME word of all of these could
probably be arranged. This also generalizes nicely to GLS's output radix
print representation -- 555 is the outmoded way of expressing 15.,
1111 is more recent, 17 is more recent, and 15 even more recent.
Presumably some day we will adopt F as the standard and ... well, who
knows how far version numbers could take us.