Define callbacks by returning the struct pointer, without setting specials
Macro defcbstruct and all the macros built on it now simply return the C struct needed by GSL functions instead of binding a special whose name is then passed to the GSL functions. Specials can still be used of course in the standard way like defparameter, but the results can also be bound locally with a let or passed in directly. The name of a callback passed to defmcallback and to defcbstruct in all the macros that expand both is now gensymmed (since it is used only long enough to put in a slot of the cbstruct) instead of taken to be the name of the CL function, in order to make clear the different objects. Unfortunately, there is appears to be a bug in CFFI using defcallback with an uninterned symbol in CCL, so I have put a workaround in. However, there is still another error even with this workaround. Thus test results are: SBCL 64: TOTAL: 1248 assertions passed, 5 failed, 0 execution errors. CCL 64: TOTAL: 1229 assertions passed, 2 failed, 6 execution errors.
Showing with 299 additions and 305 deletions