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

Re: Fill pointers and ADJUST-ARRAY



[ This is in reply to Jeff Dalton's message. The mail system dropped my
  last letter to him off into never-never land.]

  It would appear that KCL interprets the lack of a :FILL-POINTER
argument to mean that the resulting vector should not have a
fill-pointer. Even though CLtL only mentions what happens when
:FILL-POINTER is supplied to ADJUST-ARRAY, it seems silly that
the resulting vector does not have a fill-pointer when the original one
did. In this regard I think KCL needs to be fixed.

  I sent a letter some time back to the mailing list questioning what
the behavior should be if :FILL-POINTER is not specified. Nobody
spoke up, so I'll make my suggestion again. The answer to your
second question (adjusted array being smaller than its current
fill-pointer) is answered in #1 and #2:

  I think ADJUST-ARRAY should have the following semantics for its
:FILL-POINTER argument:

(1) If :FILL-POINTER is NIL or not supplied, it defaults to the
    current value of the vector's fill-pointer.

(2) If :FILL-POINTER is T, then the fill-pointer is set to the
    minimum of its current value or the length of the resulting
    vector.

(3) Otherwise, :FILL-POINTER should be a non-negative integer less than
    or equal to the size of the resulting array.

In all cases, an error occurs if the final value of the fill-pointer
is out of bounds.