On Saturday 12 February 2011 17:09:36 Walter Bright wrote: > Akakima wrote: > >> Making optlink open source won't make any difference. Few are skilled at > >> asm anymore, and likely none of them would want to work on optlink for > >> free. > > > > That's true. But the real problem is not optlink. Optlink is a very good > > linker. > > > > The problem is OMF. 11 years ago OMF was a good choice. But not anymore. > > > > I know you are a competent (probably very competent) compiler writer. You > > modified D on linux, so it produce ELF. How much time would that take to > > modify DMD so it produce COFF ? Given all the bad publicity OMF gives to > > D, it should be viewed as a good choice. > > > > There are many (not much), but there are open source linkers. Of course > > ld is not as fast as optlink, but it's good. And there is a faster > > version made by the project Ultimate++ IDE. > > > > Going to COFF would have a lot of advantages for everybody and for D. > > > > Do you agree ? > > Changing the object module format is not sufficient. The symbolic debug > info would have to be changed (and Microsoft's is undocumented) and then > there's the dependency on Microsoft's C runtime library if linking with VC > generated object files.
That's a problem for some code and pretty much an absolute necessity for other code. Any project that I'd do at work would _have_ to use Microsoft's runtime library. In the long run, we really do need a solution which is compatible with Microsoft's compiler. Without that, there are a lot of programmers who just won't be able to use D in any project which would be using C or C++ code, and not being able to use any C or C++ code in D can be a major problem - especially if you're trying to use D with an existing code base. So, I really don't know what the best way to handle all of this is, and I really don't know all that much about linkers, but the fact that you can't link D code with C code generated by Microsoft's compiler is crippling for Windows development. - Jonathan M Davis