[plt-scheme] ffi: dlopen in unix
On Oct 11, Jon Rafkind wrote:
>
> > RTLD_GLOBAL is not used when you pass in #f -- this passes NULL to
> > dlopen, and no linking of new names is done.
> RTLD_GLOBAL is always used, #f passes in NULL for the name argument
> but I was saying maybe only RTLD_GLOBAL is needed when the name is
> NULL (#f). Perhaps this is not the case as you say below.
I don't think that RTLD_GLOBAL or _LOCAL make any difference in that
case, since no linking is done.
> How about just a 3rd parameter to ffi-lib, 'global or 'local which would
> correspond directly to RTLD_GLOBAL or RTLD_LOCAL?
That would be the obvious solution, but there is already an optional
second argument to the core function (telling it to return #f instead
of an error), and there is also RTLD_NOW that can be controlled by an
option. Finally, this:
On Oct 11, Hans Oesterholt-Dijkema wrote:
> Would that not break compatibility with e.g. windows?
is another concern.
On Oct 11, Jon Rafkind wrote:
>
> From the code foreign.c uses and random googling it seems like
> Windows doesn't differentiate between global and local symbols so I
> guess the flag could just be ignored on Windows.
Still, it would be good to know if there is some equivalent for this
on Windows.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!