<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 01/14/2015 11:49 AM, Lang Hames
wrote:<br>
</div>
<blockquote
cite="mid:CALLttgo5GyQEhT5Y768aGwy_-KWi1qL38xvuHGoqio0Bo1AB7Q@mail.gmail.com"
type="cite">
<div dir="ltr"><br>
<div>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> We've built our
own infrastructure around that and require a few
features it doesn't sounds like you're planning on
supporting in the new abstractions. (The biggest one
is that we "install" code into a different location
from where it was compiled.) <br>
</div>
</blockquote>
<div><br>
</div>
<div>Can you clarify what you mean by "install" here? As
it stands in the patch, Orc already supports
cross-target and out-of-process JITing. The
ObjectLinkingLayer exposes the mapSectionAddress call
for mapping sections to new locations, and the
MCJITReplacement demo passes all remote-jitting
regression tests on Darwin.</div>
</div>
</div>
</div>
</div>
</blockquote>
I don't have the code in front of my right now, but I'll take a look
later today and try to summarize clearly.
<blockquote
cite="mid:CALLttgo5GyQEhT5Y768aGwy_-KWi1qL38xvuHGoqio0Bo1AB7Q@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>The intent is that Orc should eventually provide a
superset of the functionality provided by MCJIT, but
with the various features broken out into separate
components. I'd be interested to hear about anything
that's missing so that I can, if possible, add support
for it.</div>
<div> <br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> I really like the
idea of having a low level JIT interface for advanced
users and an easy starting point for folks getting
started. </div>
</blockquote>
<div><br>
</div>
<div>Ideally I would like Orc to cover the whole spectrum.
I'm hoping we can quickly advance to the point where new
JIT developers would use Orc by default, rather than
MCJIT, and not miss any features. I expect advanced
users will want to compose their stacks directly, while
beginners would take some common configuration off the
shelf. Once these patches are in tree I'm planning to
add a basic lazy-jitting stack for Kaleidoscope that
beginners could use as a starting point.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span class="">
<blockquote type="cite">
<div dir="ltr">
<div style="font-size:13px"> </div>
<div style="font-size:13px">(4)</div>
<div style="font-size:13px">Q. What happened to
"finalize"?</div>
<div style="font-size:13px">A. In the Orc APIs,
getSymbolAddress automatically finalizes as
necessary before returning addresses to the
client. When you get an address back from
getSymbolAddress, that address is ready to
call.</div>
</div>
</blockquote>
</span> As long as this is true for the high level API
and *not* the low level one (as is true today), this
seems fine. I don't really like the finalize
mechanism we have, but we do need a mechanism to get
at the code before relocations have been applied. <br>
</div>
</blockquote>
<div><br>
</div>
<div>You should still be able to intercept events to
access memory before finalization. If you can be more
specific about your use-case I'd be keen to figure out
if/how it could be supported in Orc.</div>
<div><br>
</div>
<div>- Lang.</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>