[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).