[Openmcl-devel] foleign type (:array :signed-byte 4))

Gary Byers gb at clozure.com
Fri Jan 16 19:34:12 UTC 2004



On Fri, 16 Jan 2004, Marco Baringer wrote:

> I'd like to call a foreign function which takes a parameter of type
> (:array :signed-byte 4) i've defined the type with:
>
> (ccl::def-foreign-type :UVersionInfo (:array :signed-byte 4))
>
> Which works perfectly, the problem arises when i try to define a
> function which calls this foreign function. Evaluating (or even just
> macro expanding) a FF-CALL form which uses UVersionInfo for one of the
> args gives the error "can't determine representation keyword for
> :UVERSIONINFO". is this a bug or am i missing something?
>

The function CCL::FOREIGN-TYPE-TO-REPRESENTATION-TYPE is missing
two things:

a) a TYPECASE clause for FOREIGN-ARRAY-TYPE
b) some conditionalization, since Linux handles this differently.

The last clause in the TYPECASE should be changed to indicate that
FOREIGN-ARRAY-TYPE and FOREIGN-RECORD-TYPE are handled the same way:

(typecase ftype
  ...
  ((or foreign-record-type foreign-array-type)
     (let* ((bits (ensure-foreign-type-bits ftype)))
	    (ceiling bits 32))))



> --
> Marco
> Ring the bells that still can ring.
> Forget the perfect offering.
> There is a crack in everything.
> That's how the light gets in.
> 	-Leonard Cohen
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list