![](https://secure.gravatar.com/avatar/aff1c90c0534a1d1a2db996825322fbb.jpg?s=120&d=mm&r=g)
Hi, List membership is exploding! Not counting myself twice, there are now three members. For a while I've been unhappy with how event.lisp maps calls to the callback function to actual objects for event handling. I thought closures would be a nice solution to the problem but wouldn't have thought it possible. I mean, what does C know about closures? Well, it looks like OpenMCL may be clever enough to do it: $ openmcl Welcome to OpenMCL Version (Beta: Darwin) 0.14.3-050429! ? (defun make-ff (ret) (let (fn) (declare (special fn)) (defcallback fn (:int) ret) fn)) MAKE-FF ? (defvar ff-foo (make-ff 10)) FF-FOO ? (defvar ff-bar (make-ff 20)) FF-BAR ? (%ff-call ff-foo :signed-fullword) 10 ? (%ff-call ff-bar :signed-fullword) 20 ? (quit) This will mean some major surgery to the event handling code, but I think it will be much cleaner afterwards once I've got it all sorted out. There are other callback types used in the Carbon APIs that can also be handled by a more generalized mechanism. I've also just added an Example module to CVS. It's there to show how CL-Carbon can be used to make a self contained application bundle work. I removed all slime references in that code to keep things very simple. I'm not sure right now how to unwed from OpenMCL. I'm hoping that can be achieved with the appropriate macrology and CLOS classes. At the moment, I'm placing a higher priority on getting a class structure worked out that favors CLOS's features.