[Scilab-Dev] Primitives id limit on gateways

Calixte Denizet calixte.denizet at ac-rennes.fr
Mon Jul 13 14:19:34 CEST 2009


Hi,

I met this problem and I think it is due to the internal representation
of functions coming from library, see the doc about funptr in Scilab.
The number fin (funptr('your fun') modulo 100) is the entry in the array
created in the file libtoolbox.c.
You can pass this limitation in creating a function gateway(int n,
list_args){(*(array[n]))(list_args);}, an array containing pointers of
all your functions and generates Scilab's macros of the kind 
function y=fun1(varargin), gateway(1,varargin), endfunction 

Calixte

Le lundi 13 juillet 2009 à 10:50 +0200, sylvestre.ledru at scilab.org a
écrit :
> On Mon, 13 Jul 2009 02:18:21 -0500, Jorge Cardona <jorgeecardona at gmail.com>
> wrote:
> > Hi,
> > 
> > I just get to more that 100 functions on the symbolic module and its
> > appear that i can't define more than 100 functions, if i call one that
> > has a primitiveId bigger than 100 scilab just crash, i even
> > interchange a pair, and with a lower id it work fine the function, and
> > the other one start to crash scilab, do i need to define a new
> > gatewayid and start again from 1???
> Hello Jorge,
> 
> I don't think it is the reason.
> Try to increase
>  #define MAXELEMENTFUNCTIONLIST 1536
> in
> modules/core/src/c/hashtable_core.h
> This is something we have to work on.
> 
> Sylvestre
> 
> 
> > Thanks.
> > 
> > --
> > Jorge Eduardo Cardona
> > jorgeecardona at gmail.com
> > jorgeecardona.blogspot.com
> > ------------------------------------------------
> > Linux registered user  #391186
> > Registered machine    #291871
> > ------------------------------------------------
> > 




More information about the dev mailing list