David L Nicol <[EMAIL PROTECTED]> writes:

> This is what I was talking about when I suggested the language maintain
> a big list of all the addresses of each function, and after the function
> gets loaded or compiled it is added to the big list, and after this
> stage the placeholder in the op can be replaced with a longjump.

> Since the shared segments live at different addresses in different
> processes (or should I have stayed awake through that lecture)

I'm not sure I'm completely following what you're arguing for here, but be
careful not to go too far down the road of duplicating what the dynamic
loader already knows how to do.  There be dragons; that stuff is seriously
baroque.  You really don't want to reimplement it.

I'd love to see Perl aggressively take advantage of new capabilities in
dynamic loaders, though.  Among other things, I'll point out that symbol
versioning is the way that things like libc manage to be backward
compatible while still changing things, and we should probably seriously
consider using symbol versioning in a shared libperl.so as a means to
provide that much desired and extremely difficult to implement stable API
for modules and the XS-equivalent.

-- 
Russ Allbery ([EMAIL PROTECTED])             <http://www.eyrie.org/~eagle/>

Reply via email to