<div dir="rtl"><div dir="ltr">Hi Keno,</div><div dir="ltr"><br></div><div dir="ltr">Could you give a short high-level overview of the way Julia works now with MCJIT instead the JIT:</div><div dir="ltr"><br></div><div dir="ltr">

What I gather so far...</div><div dir="ltr"><br></div><div dir="ltr">* Compiled IR functions are emitted to a shadow module.</div><div dir="ltr">* Any used function is cloned into its own new module and the module is added to MCJIT.</div>

<div dir="ltr">* Called functions or globalvars are only declared in that module.<br></div><div dir="ltr">* Modules are never removed meaning "old" functions are abandoned rather then replaced.</div><div dir="ltr">

* All function calls go through a trampoline function doing the multiple dispatch, also enabling old function replacement to new version.</div><div dir="ltr"><br></div><div dir="ltr">Thanks,</div><div dir="ltr"><br></div>

<div dir="ltr">Yaron</div><div dir="ltr"><br></div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2014-07-25 22:23 GMT+03:00 Keno Fischer <span dir="ltr"><<a href="mailto:kfischer@college.harvard.edu" target="_blank">kfischer@college.harvard.edu</a>></span>:</div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you have specific questions about this transition, I might be able<br>
to help out here, as I've gone through this process with Julia (the<br>
process should be a lot smoother now that it's working for a good set<br>
of people, so most bugs should have been found)<br>
<span class="HOEnZb"><font color="#888888"><br>
Keno<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Fri, Jul 25, 2014 at 3:13 PM, Lang Hames <<a href="mailto:lhames@gmail.com">lhames@gmail.com</a>> wrote:<br>
> Hi Everyone,<br>
><br>
> If you're JITing with LLVM and haven't made the switch to MCJIT already, now<br>
> is the time. As per discussions on the mailing list and at the last dev<br>
> meeting, LLVM 3.5 will be the last release to support the old JIT<br>
> infrastructure. Now that LLVM 3.5 has branched, we plan to start removing<br>
> the old JIT from the mainline.<br>
><br>
> If you're looking for help in making the switch, Andy Kaylor wrote a great<br>
> LLVM blog post about porting Kaleidoscope to MCJIT, which you can find at<br>
> <a href="http://blog.llvm.org/2013/07/using-mcjit-with-kaleidoscope-tutorial.html" target="_blank">http://blog.llvm.org/2013/07/using-mcjit-with-kaleidoscope-tutorial.html</a>.<br>
> I'll also be working to update the LLVM docs and the Kaleidoscope tutorial,<br>
> and as always you can ask for help in the mailing lists and on IRC.<br>
><br>
> Good luck with the switch over!<br>
><br>
> Cheers,<br>
> Lang.<br>
><br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<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>
><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>
</div></div></blockquote></div><br></div>