xen2 / SharpLang

Compiles .NET/C# to native code using LLVM framework. No longer active, consider migrating to https://github.com/dotnet/corert
Other
283 stars 42 forks source link

Decouple driver functionality from Compiler #23

Open ghost opened 10 years ago

ghost commented 10 years ago

SharpLang.Compiler.Driver functionality is too tightly dependent on a particular toolchain, which makes the compiler very hard to use in different configurations (e.g. passing additional parameters or using a custom linker). Decouple the driver functionality from Compiler - it will make the compiler independent component much easier to use, driven for example from a command line wrapper, MSBuild task etc.

xen2 commented 10 years ago

First version was only for quick prototyping. I was currently in the process of rewriting part of it. I will try to take your scenario under considerations.

ghost commented 10 years ago

I understand the project is work in progress, this is basically a feature or enhancement request. I can do it myself (in isolation), but I think it is better to let others (you, other possible contributors) know, mainly to discuss the direction, coordinate effort etc., so there is no unnecessary waste of resources due to duplicate work.

In my particular scenario, I only need to compile CIL into LLVM IR with the possibility to specify different target (ARM), the result is linked with a custom linker to produce ELF executable.

Thank you.

xen2 commented 10 years ago

Actually the part I currently rewrite is not part of Driver.cs yet. It concerns ability to compile and link real assemblies with their references. Most of the work currently happens in TestFiles.cs, to later be moved in Driver.cs.

Since I am not doing any big changes in Driver.cs, feel free to do the required changes if you want! (or let me know what you need)