Manolo on Thu, 26 Jul 2012 17:03:26 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Global persistent variables (compiled code)


I need to fix some global variables and so I initialize their values
with init_library()-like function.

So:

-------
static GEN myvar1;
static GEN myvar2;
/*End of global vars*/

void
init_mylib(void)	  /* void */
{

  static long init_done = 0;
  if (init_done) return;

*** staff related to my global vars ***

 init_done = 1;
}
------------

Then, I import the library on a pari session (via "install" "run"-file
and so on...). If I try to run a function:

? mylib_myfunction()

it returns error, because I didn't initialize the global vars. So I must run:

? init_mylib(); mylib_myfunction()

And it works. That's ok up to now.

But if try again

? mylib_myfunction()

or even try again the same step with initialization,

? init_mylib(); mylib_myfunction()

I receive an error, because global vars are not ok!!! I must leave the
session an enter again to get my code working.

I guess that "normal" static variables like "init_done" are kept, but
pari-variables don't.

How can I solve this?

TIA

-- 
Manuel Pancorbo Castro
http://bitakoro.tk/