Ilya Zakharevich on Tue, 31 Oct 2000 22:00:22 -0500


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

Re: [PARI] about the behavior of install()


On Sun, Oct 29, 2000 at 03:26:05PM +0100, Gerhard Niklasch wrote:
> So far for explaining why things are as they are;  now what could
> be done about changing this?  There is a way (1) could be undone --
> gp would have to call dlclose(DLH) and thus promise to the runtime
> loader that neither DLH nor any pointer obtained from it by dlsym()
> will be used any longer.  Then IN _will_ be unmapped, and the next
> install and dlopen() would pick up the recompiled IN' under the same
> old name L.so, giving the effect you intended.

Keep in mind that Perl does not unload modules.  The reason is that
nobody came with a scheme how one could have done it.  Well, with PARI
it is a little bit easier, since no static storage may be referenced,
but in practice it would not help much...

BTW, the current syntax of

  install(matexp,Gp,mexp,"~pev/PARI-Dev/pari/examples/libmatexp.so")

is extremely unportable.  I would use

  install(matexp, Gp, mexp, "matexp", "~pev/PARI-Dev/pari/examples/")

This

   a) makes the directory optional;
   b) does not hardwire the DLL prefix and postfix (which are
      different on different systems...);

Ilya