Greetings. :)

Chris Gray cg at ami-cg.GraySage.Edmonton.AB.CA
Thu Apr 10 18:27:48 CEST 1997


[Nathan Y:]

:Erm. I'm a rather strange hybrid of 1, 2, and 4. But... well, I'm not sure
:what you mean by parse tree transversal... what I've got is referenced
:blocks of native code getting tacked together by dereferenced function
:pointers, dynamicly when needed, staticly when possible. In theory, the
:whole chunk should be about 3/2 machine, but I'm coming from a PPC asm
:bias, and that neglects any compiler optimizations rendered impossible by
:this scheme. Its also about 3/1 machine for memory, so far... The flaw is
:that it renders bootup a much longer process, as most of the work gets
:done then, and is impossible to save in a reusable form, as some addresses
:are locally dependent at startup time, thanks to the dynaload provisions,
:in part. Any suggestions or criticisms by the more experienced?

Hmm. Sounds like you need to do some traditional linking. If you augment
your generated code with RLD and XREF info, you only need to fix that
up when you reboot your server. RLD info would be for references within
the code to other things within the same code. XREF would be for refs
to things outside of it. If your code is position independent, you might
not need any of the RLD stuff. Also, you could do the RLD/XREF stuff
when the code is first executed, but that might require recursing
through everything it references, fixing them up in turn.

--
Chris Gray   cg at ami-cg.GraySage.Edmonton.AB.CA



More information about the mud-dev-archive mailing list