GSLL users,
I have made a change to how GSLL uses callbacks. Callbacks are functions that are sent as arguments to GSL in other functions. Previously, there were several macros specific to each application that defined both the callback function(s) and the GSL structure needed to hold them. Now, there is a single macro (make-callback) that must be called at top level that defines the callback function(s) previously defined with ordinary CL function(s) (e.g. with a defun). After that, any function that requires callbacks will be called by passing the symbol or list of symbols naming those functions. The needed callback structure is created dynamically.
This will require a change to your code if you are using callbacks. I have updated the documentation appropriately; I recommend looking at the examples to figure out how to use callbacks in your own application. If you desperately want to keep the old version of callbacks, you can check out the tag "defcbstruct" from git, but there won't be any further development on that version.
From a user's perspective, it would be nice to eliminate the need for
the make-callback. However, some CL implementations (Clozure in my experience at least) require that callback declarations be at top level, so the callback can't be constructed on the fly like the GSL callback structure. It might be possible someday to eliminate this requirement for other lisps like SBCL which don't have this restriction.
Feedback welcome as always.
Liam