Poll of the week: main OS and compiler

Daniel Murphy yebblies at nospamgmail.com
Sat Mar 3 03:44:52 PST 2012


"Bernard Helyer" <b.helyer at gmail.com> wrote in message 
news:nlzougvwvlvnmjbufwgi at forum.dlang.org...
>
> No one thinks that's a bad idea. The trouble is the amount of developers 
> that actually understand the backend enough to implement another object 
> format (which is what's needed to support the VisualC linker) is very 
> small.
>
> What's needed is someone to take the time to learn it then do it. Someone 
> motivated, and smart. Not unlike yourself! :P
>

The problem isn't really the backend - there are currently _three_ full 
object file generators in dmd and it should be possible to use the same 
interfaces these do without caring what most of the backend is really doing.

Generating Microsoft coff objects means deciphering the spec to see what 
everything should look like, generating every kind of entry with msvc to see 
what it _actually_ does, then translating all the record/fixup/section types 
from omf to the coff equivalents.  With this (and maybe updates to the 
runtime to use msvc's instead of dmc's c runtime) you have 32 bit coff on 
windows.

To get from there to 64bit, you need the following:
- 64 bit coff (I think these are closely related)
- 64 bit c runtime (just use microsofts?)
- 64 bit d runtime (eh, io with a different runtime, etc)
- 64 bit codegen (hopefully not much more than some calling convention 
stuff)
- 64 bit linker (Again, just use ms?)

Just generating coff is a pretty big step, it requires learning how object 
formats work (I don't think many people already have the depth of 
understanding required), how coff works and how dmd generates object files 
(which probably means understanding omf/elf/mach).

The only person I can think of who would even know how long it would take to 
learn all this is Walter, and considering that he's hasn't done it already, 
I'd guess it's quite a huge task.

Walter, how big is it really?  Small enough to be done as, say, a gsoc 
project?  Would you be interested in mentoring such a project? 




More information about the Digitalmars-d mailing list