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

Issue: ADJUST-ARRAY-NOT-ADJUSTABLE (Version 6)



The message you sent to CL-Cleanup is only the earliest of a lot of
messages from that private conversation. To avoid replaying that whole
conversation, I offer here a summary of the discussion. For brevity,
I have paraphrased rather than quoted.

 RPG - This proposal (v6) says ADJUST-ARRAY must signal. CLtL says
       ``is an error.'' 

 Moon - This introduction of incompatible change was not intentional.
	Still, ``must signal'' doesn't seem bad.

 RPG - Eliminates option of ignoring error checking in highly optimized code.

 Pitman - Can we compromise on ``should signal'' ?

 RPG - OK.

 RPG - Not sure if this is implied, should add:
        5. The value of ADJUSTABLE-ARRAY-P on a simple array is unspecified.

 No one objected.

 RPG - Alternate presentation, incorporating new items and clarifications
       per above, and changing subtle aspects of the presentation:

	1. ADJUSTABLE-ARRAY-P is true of all arrays created with a true
	:ADJUSTABLE option to MAKE-ARRAY.  Whether ADJUSTABLE-ARRAY-P is
	true of some other arrays is unspecified.
      
	2. If MAKE-ARRAY is called with the :ADJUSTABLE, :FILL-POINTER, 
        and :DISPLACED-TO arguments each either unspecified or false, the
        resulting array is a simple array.  (This just repeats what CLtL
        says on page 289, it's here to aid in understanding the next point.)
      
	3. If MAKE-ARRAY is called with one or more of the :ADJUSTABLE,
	:FILL-POINTER, or :DISPLACED-TO arguments true, whether the
        resulting array is simple is unspecified.
      
	4. If ADJUST-ARRAY is invoked on an array that was created without
	supplying :ADJUSTABLE true, an error should be signaled, unless 
	ADJUSTABLE-ARRAY-P returns true on that array. ADJUST-ARRAY must
	not signal the error if ADJUSTABLE-ARRAY-P is true for its first
        argument.
       
	5. The value of ADJUSTABLE-ARRAY-P on a simple array is unspecified.

 KMP - Looks ok.

 No one else commented.