>>>>> "lc" == Larry Clapp <[EMAIL PROTECTED]> writes:

  lc> I found a strange behavior in alien:make-alien.  It would appear that
  lc> make-alien of an array doesn't evaluate its SIZE argument:

  lc> How do you define arbitrary size arrays using make-alien?

CMUCL doesn't provide a functional interface to aliens (which is a bit
of a pity), but you can implement one yourself:

,----
| CL-USER> (defun ensure-alien (type &optional size)
|            (eval `(alien:make-alien ,type ,size)))
| ensure-alien
| CL-USER> (let* ((n 3) (a (ensure-alien `(array (* char) ,n)))) a)
| #<Alien (* (array (* (alien:signed 8)) 3)) at #x08076C48>
`----

-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

Reply via email to