I was following the tutorial about defining new types ( http://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dTypes.html...). When I tried to redefine the type translator for an enum type (translate-from-foreign), the type was not being changed. I took a look at the source code and discovered that translate-type-from-foreign is specialized on enum types. However, unlike the unspecialized method, this method doesn't call translate-from-foreign. Either the manual is out of date, or there is a bug here. BTW, I am currently using the version in darcs. Thanks
Arthur
Arthur Smyles wrote:
I was following the tutorial about defining new types ( http://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dTypes.html...). When I tried to redefine the type translator for an enum type (translate-from-foreign), the type was not being changed. I took a look at the source code and discovered that translate-type-from-foreign is specialized on enum types. However, unlike the unspecialized method, this method doesn't call translate-from-foreign. Either the manual is out of date, or there is a bug here.
Translation is done only for foreign-typedefs, which are created with define-foreign-type.
I don't think more general type-translation extension can be done well without aligning the framework more with CLOS.