This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
>>>>> "C" == Clifford Beshers <beshers@cs.columbia.edu> writes: C> I did find another small inconsistency. C> In your proposed new-constant, the order is: (symbol,) value, C> type. In your propose new-function, the order for parameters C> is: type, value. C> It seems to me these should be ordered either (value, type) or C> (type, value), but not both. In all the functions, I want to first indicate what is being defined and then how it is defined, so that is why new-constant and new-type declarations look like this: (new-type 'VEC "VEC" "VEC_print" "v_free" "VEC_eq") ;; vector type (new-constant 'VNULL "NULL" 'VEC) ;; null-vector In new-function, the idea for the parameter list is that I want it to look more like the C function declaration's parameter list. So to export a symbol 'eig-dsyev bound to a wrapper which calls the C-function void eig_dsyev(MAT* A, MAT* Z, VEC* w), we use (new-function 'eig-dsyev 'void "eig_dsyev" '((MAT A) (MAT Z) (VEC w)) "Calculates eigenvalues Z and eigenvectors w of real symmetric matrix A") The parameter names are actually not in the previously-released versions of new-function in G-Wrap because they are not actually needed for exporting the function. However, I added them for the sake of internal documentation and readability. Does this explanation seem reasonable? -Chris