[LLVMdev] How to stop

Marcus Zetterquist 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  
architectures etc.

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.

Please advice!


More information about the llvm-dev mailing list