Hi Chris, On 7 March 2017 at 15:45, Christopher Li <sparse@xxxxxxxxxxx> wrote: > On Tue, Mar 7, 2017 at 6:39 AM, Dibyendu Majumdar > <mobile@xxxxxxxxxxxxxxx> wrote: > >> As I mentioned before I am using Sparse to create a JIT compiler for >> C. So this needs to be callable as a library - and I need the ability >> to call it many times. Moreover it must be possible to call several >> instances of Sparse simultaneously without conflict. To achieve all >> this, all global state is held in a set of structures. The main change >> is that the most function calls have an additional argument. The other > > Adding an additional argument is a very big change. > Indeed. > >> changes are related to initialization of the various global structures >> used by Sparse. > > In your usage case, is it possible to use some kind of lock to avoid > racing to initialize sparse? > It is not just the initialization - any execution of Sparse would have to be restricted by locking. >> Generally I try to keep the code as far as possible >> identical to Sparse except for these changes. Even so merging is very >> painful. > > May be need a script of some short to automate part of the change. > > Do you have that big and painful change already? > Yes, I also have some other changes to ensure that the code can be compiled on Windows using Visual C++, plus I am using a CMake build system. I have not converted all the code in Sparse - just the main library, and the LLVM backend. I intend to add other backends in the future as LLVM is too slow for a JIT engine. You can see my project at https://github.com/dibyendumajumdar/dmr_c. Regards Dibyendu -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html