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


re    Cost to Users:
      Technically, none. Existing code is not supposed to rely on ...

Not so!  The language of the last line on P.350 of CLtL make it clear 
that implementations are currently free to take either choice mentioned
in the two proposals.  Since not everyone restricts himself to writing
only portable-by-the-book CLtL code, then many users will in fact take 
advantage of the particular choices made by the implementation they use.
[Witness the number of Symbolics users who unknowingly adjust arrays that 
were made without the :adjustable option].

Selecting only one the two alternatives of P.350 will invalidate those
implementations that have taken the other choice; so either proposal
will shaft some community of users (i.e., those who have never ported 
their code between vendors that took different paths on the P.350
question).  I know, because we just went through such an exercise here
at Lucid not too long ago.  Far too many places depended on the
equivalence of ., and ,. -- that the last form *not* be NCONC'd with
with NIL -- and at least a couple places actually depended upon a final 
,@ giving shared structure (for updates to be communally visible).

Incidentally, Lucid adopted a view towards non-standard lists long, long 
ago that forced it to resolve the APPEND-DOTTED issue for itself; thus it 
is not true of "Current Practice:" that there is "no possibility of 
discrepancy".  I'm not necessarily defending that view of dotted-lists -- 
merely pointing out that Lucid's decision back in October 1984 makes the 
INTERCHANGEABLE proposable infeasible without backing out of infinitely-many 
more dotted-list type decisions.  ["infinitely-many more" means that we 
worried about just this issue sometime in late 1986, and decided we didn't 
have the manpower to resolve it, since it turns up pervasively throughout 
the system.]  In defence of the 1984 decision, someone who was here at the 
time claimed that they personally asked Guy Steele about that interpretation,
and that "he approved".  Perhaps no one was concerned back then with the
examples on ClTL P.351.

I actually think the DIVERGENT proposal is simpler to understand:
   (1) ,@ always copies -- not to worry about being "at the end"
   (2) ,. always NCONC's and ., never NCONC's -- not to worry about
       situations that would switch meanings.

-- JonL --