No header files?

Walter Bright newshound1 at digitalmars.com
Thu Oct 22 12:57:23 PDT 2009


Yigal Chripun wrote:
> let's go over the list one more time: 1) i can't use obj files from
> different OSes or even different compilers on the same OS - so
> definitly *not* platform neutral

Yes, but the .di files *are* platform neutral.

> 2) you need to parse a header file
> in addition to linking functions from the lib file, how is that
> better than having one file without needing to do any parsing of
> headers at all?

You still have to read that file and get it into the D front end's data 
structures.

> 3) like Steve said, there is only one file so you
> don't get syncing problems between the header and the object file.

Setting up a build tool to handle dependencies is trivial, and one 
already has to do that for object files, but even that step isn't 
necessary as D can simply use the original source file as its "header" 
file. .di files aren't necessary at all.

> the bit-code object file already contains all the required metadata
> and doesn't depend on a separate header file.

Something has to convert metadata into the D front end's data structures.

> 4)LLVM is already
> implemented and has all the required tools for its format. ldc for
> example can take advantage of this easily.

.di files are already implemented and work across all D implementations!


BTW, a point not mentioned is that dmd can build library files directly, 
without making object files. This would break if there had to be 
metadata in those object files needed by the front end.



More information about the Digitalmars-d mailing list