--- Chaim Frenkel <[EMAIL PROTECTED]> wrote:
> >>>>> "BS" == Benjamin Stuhl <[EMAIL PROTECTED]> writes:
>
> BS> 1. Bytecode can just be mmap'ed or read in, no
> playing
> BS> around with relocations on loading or games with RVAs
> BS> (which can't be used anyway, since variable RVAs vary
> based
> BS> on what's been allocated or freed earlier).
>
> (What is an RVA?)
relative virtual address
> And how does the actual runtime use a relocatable
> pointer? If it is
> an offset, then any access becomes an add. And depending
> upon the
> source of the pointer, it would either be a real address
> or an offset.
>
> Or if everything is a handle, then each access requires
> two fetches.
> And I don't see where you avoided the relocation. The
> handle table
> that would come in with the bytecode would need to be
> adjusted to
> reflect the real address.
>
> I vaguly can see a TIL that uses machine code linkage
> (real machine code
> jumps) that perhaps could use relative addressing as not
> needing
> relocation. But I'm not sure that all architectures
> support long enough
> relative jumps/calls.
>
> Doing the actual relocation should be quite fast. I
> believe that all
> current executables have to be relocated upon loading.
> Not to mention
> the calls to shared modules/dlls.
>
> <chaim>
> --
> Chaim Frenkel Nonlinear Knowledge, Inc.
> [EMAIL PROTECTED] +1-718-236-0183
My primary goal (it may not have come accross strongly
enough) in this proposal was sharing bytecode between
threads even with an ithreadsish model (variables are
thread-private, except when explicitly shared). This
requires that the bytecode not contain direct pointers to
variables, but rather references with at least one level of
indirection. Avoiding fixups/relocations and allowing
bytecode to be mmap()ed are additional potential benefits.
But my first goal was to not have one copy of each
subroutine in File::Spec::Functions for each thread I run.
-- BKS
__________________________________________________
Do You Yahoo!?
Yahoo! Messenger - Talk while you surf! It's FREE.
http://im.yahoo.com/