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