I have checked out the lastest CVS sources, containing make-static-array, and have built for x86-linux. I will run some tests using FREEDIUS, which makes extensive uses of foreign-vectors. I have examined the sources and the implementation looks like it should work well. Raymond Toy wrote:
Lynn Quam wrote:
Many years back, Jon L White at Lucid Inc considered a new array declaration which would allow the inlining of non-simple arrays. The declaration form was
(declare (type (non-simple-array <element-type> <bounds>) . <vars> ))
The compiled code would always assume that the array was non-simple, and indirect thru the array header to find underlying array. I do not remember all of the details and limitations, except that the underling simple-vector could always be found with only one indirection.
Ok. We don't have to have any special declaration or deal with the cost of indirection. I've checked in some changes that will properly GC static arrays. Nothing fancy and it seems to work with some simple tests, and CMUCL builds itself just fine.
Ray