Lately a few problems have become more apparent:
- The code base is getting a bit messy because of the list macros and the hoops that have to be made for referencing structs before they are defined.
- The above is also a problem when transpiling to C since structs in Owen can refer to structs further down.
- Compiling debug information is not a picnic either.
The primary problem is debugging compiled programs on Windows. This could be solved in 3 ways. Use LLVM, reverse engeneer the .pdb format like LLVM did or use .NET which has an API for this. Here is an example. Programming the compiler in C# might be the fastest way since it is the language I know best by far.
So I have chosen to rewrite the compiler in C# and transpile release builds to D since it is much easier to transpile to a subset of D than it is to fit Owen in C. Debug builds are compiled to MSIL. This should result in optimized release builds, pleasant debugging and a bit smaller code base.