<div dir="ltr">+Lang, collector of strange JIT requirements</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 16, 2015 at 11:47 AM, Christian Schafmeister <span dir="ltr"><<a href="mailto:chris.schaf@verizon.net" target="_blank">chris.schaf@verizon.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hello everyone,<br>
<br>
<br>
Is fully relocatable/position-independent JITted code on the horizon or currently possible with LLVM?<br>
<br>
I’ve written a Common Lisp compiler (currently called Clasp:  <a href="https://github.com/drmeister/clasp" target="_blank">https://github.com/drmeister/clasp</a>) in C++ that uses LLVM as the backend and interoperates with C++.  It uses copying garbage collection via the Memory Pool System (MPS) garbage collector by Ravenbrook.  This garbage collector is precise on the heap and conservative on the stack.<br>
<br>
Currently I JIT code to wherever LLVM drops the code and it remains fixed in memory.  This causes some problems for implementing a dynamic language like Common Lisp because CL considers data and code to be equivalent.<br>
<br>
I’d like to move the code into the MPS managed memory and be able to apply copying garbage collection to it.  Is this possible?   Will it ever be possible?<br>
<br>
Best,<br>
<br>
Christian Schafmeister<br>
Professor<br>
Chemistry Department<br>
Temple University<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div>