FFI problem: too many arguments

Andreas Raab andreas.raab at gmx.de
Thu Feb 16 03:13:26 UTC 2006


There is no fix for this problem. In Squeak, the number of parameters 
for a method invocation is limited to 15.

Cheers,
   - Andreas

nicolas cellier wrote:
> I am trying to interface LAPACK with squeak (Smallapack).
> Unfortunately, some methods will have too many arguments...
> 
> I do not feel like hand writing wrapper functions to group several arguments 
> in an array, it's boring...
> 
> Moreover, i would have to write this in FORTRAN, compile and link: that's 
> against my starting principle that a user come along with its pre-compiled 
> LAPACK library, and then all Smallapack code is Smalltalk.
> 
> Number of arguments is probably far enough for true Smalltalk code.
> But very short for the external world.
> I do not experience the same limit in VW (it must be 255 i think).
> Could the limit be augmented ? Anyone has a better idea ?
> 
> --------------------------------
> Here is an example (a usefull one) that fails:
> 
> xgeevWithjobvl: jobvl jobvr: jobvr n: n a: a lda: lda wr: wr wi: wi vl: vl 
> ldvl: ldvl vr: vr ldvr: ldvr work: work lwork: lwork info: info length: 
> lengthOfjobvl length: lengthOfjobvr 
>  "
> *  Purpose
> *  =======
> *  SGEEV computes for an N-by-N real nonsymmetric matrix A, the
> *  eigenvalues and, optionally, the left and/or right eigenvectors.
> *  The right eigenvector v(j) of A satisfies
> *                   A * v(j) = lambda(j) * v(j)
> *  where lambda(j) is its eigenvalue.
> *  The left eigenvector u(j) of A satisfies
> *                u(j)**H * A = lambda(j) * u(j)**H
> *  where u(j)**H denotes the conjugate transpose of u(j).
> *  The computed eigenvectors are normalized to have Euclidean norm
> *  equal to 1 and largest component real.
> "
> 
>  <cdecl: long 'sgeev_'( char *   char *   long * float *  * float *  * float *  
> * float *  * float *  *   long *   long   long )>
>  ^self externalCallFailed
> 
> 
> 




More information about the Squeak-dev mailing list