[LLVMdev] How to stop
marcus.zetterquist at gmail.com
Fri Jun 5 05:30:37 PDT 2009
Today we use Lua to let 3rd party developers add driver-like modules
to our application.
The advantages to using Lua compared to DLL:s etc. are that:
1) the same driver binary can be used on all OS:es and processor
2) We can provide a small API to the Lua drivers and they _cannot_
call any other external functions.
3) A buggy driver cannot crash our application. (Almost true statement.)
I'm looking into using LLVM and the bitcode format for this instead.
The additional, very important advantages are:
4) 3rd parties can port existing (huge amounts of) C / C++ code much
easier - no need to rewrite all code in Lua.
5) Performance. We will use the LLVM JIT.
Problem: I can't figure out how to do (2) with the LLVM JIT.
It is very important that the driver does not have access to any other
function in the application except those I provide. It's not OK for
our application to abort if a driver calls an undefined function - I
want to just disable _that driver_ in that event.
I can use DisableSymbolSearching() but that causes application to
abort for unknown symbols.
More information about the llvm-dev