From: Raymond Toy
Subject: Allocating large alien objects in CMU Lisp?
Date: 
Message-ID: <4nohlyn3m4.fsf@rtp.ericsson.se>
I hope someone can help with this simple problem.  I'm trying to
allocate some large alien objects with CMU Lisp 17f running on Solaris
2.5.  Everything seems to work, but I can't allocate more than about 8
MB of data.  For example:

	* (setf z (make-alien int 2000000))
	Warning:  Declaring Z special.

	#<Alien (* (SIGNED 32)) at #x0003FD78>
	* (setf z1 (make-alien int 300000))
	Warning:  Declaring Z1 special.

	#<Alien (* (SIGNED 32)) at #x00000000>
	* (setf z1 (make-alien int 100000))
	#<Alien (* (SIGNED 32)) at #x007E0F80>

Thus Z gets 8,000,000 bytes but Z1 can't get even 1,200,000 bytes.  Is
this a limitation of CMU Lisp?  I don't quite understand why this is
so, since make-alien basically calls malloc and I have plenty of real
(64 MB) and virtual (200+ MB) or memory.  In fact, I can do

	(defvar lisp-array (make-array 10000000 :element-type
	  '(signed 32)))

and CMU Lisp happily allocates the 10 million element array without
problems. 

Can any tell me why I can't allocate such large elements with
make-alien?  If I can't do this, then I'll have to use standard Lisp
arrays and copy them back and forth to get them to the alien
functions.  Bummer.

Ray