[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Adjustable and displaced arrays
Date: Tue, 11 Jun 1985 21:43 EDT
From: "Scott E. Fahlman" <Fahlman@CMU-CS-C.ARPA>
OK, if we accept Moon's view of the proper semantics for all this, and
if we decide not to outlaw displacing to adjustable arrays, then the
Fortran machines probably have to forego cacheing and let each call to
Aref potentially grovel the headers of both arrays (or a whole chain of
arrays). Maybe that is not so bad, since none of this affects
Simple-Vectors, and they are the only kind of array that really HAS to
be fast.
However, the vendors of non-microcodable machines may feel, with some
justification, that they don't want to slow down ALL references to
non-simple arrays just so that the obscure case of adjusting an array
that is displaced to will work properly. Perhaps the right move is to
unbundle the SIMPLE declaration and allow the user to declare that an
array is NOT-DISPLACED, even if it is not simple in other respects.
Sure. I would think that an appropriate way to proceed would be for the
implementors on non-Lisp machines to get together and agree on a common
set of language extensions to deal with this sort of issue. At a later
time, those extensions can be moved into the standard language, once
they are well-debugged and agreed to be the right thing for all machines
that need them. Until that happens, programs that use the extensions won't
be portable to all implementations (but they will probably be portable to
almost all implementations if the extensions are designed right, e.g. as
ignorable declarations).