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


re: I'm not really psyched about it saying anywhere that it's "perfectly
    all right". It's "all right under some special circumstances", which
    may have the same legal weight. But I'd like to at least have some
    verbiage in there that says that the intent is that copying would
    occur only if it's really true that copying is more efficient. The

I think you've missed the main thrust of my comments.  It is *not* 
efficiency considerations at all that prevents Lucid's implementations
 from modifying, or otherwise "adjusting" a non-adjustable array.  Since 
the whole point of this proposal was to "bend the rules" for update 
specifications, to accommodate Symbolics peculiar notions of efficiency,
then I hope you can still take into consideration the requirements for 
correctness in those implementations that take CLtL p.297 literally:
   "It is not permitted to call ADJUST-ARRAY on an array that 
    was not created with the :ADJUSTABLE option."

re: I don't propose putting all of the above in the proposal. I just
    wanted to make my opinion clear. I propose changing the proposal by...
     - striking the three or so places that it explicitly reminds you
       to use SETQ in case a side-effect doesn't occur

This is a typo, isn't it?  the most elementary error is to forget to
put the SETQ on a DELETE.

Incidentaly, I would like to question the validity of "bending the rules" 
on NCONC and NBUTLAST (and possibly on NSUBST).   Whereas it seems less 
useful to maintain the actual list substructure in (SETF (GETF ...) ...), 
DELETE, NREVERSE, NSUBSTITUTE, etc, I can see a very useful role for the 
specific semantics of these few -- that they change the cdr of a particular
cons cell -- and would question very highly the value of striving for speed 
at the cost of correct semantics.

NSUBLIS seems to be missing; but I would classify it in with NSUBST,
NCONC and NBUTLAST of the previous paragraph.

-- JonL --

P.S. Comments from alleged Lucid users are very useful unless a version
     number is attached, and some reasonably specific description of the 
     problem is stated.  Did the user try to SORT a simple array?  or was 
     it a List? was he in an EGC lisp, or not?  and so on.