February 13, 2002
I must admit that while I am very excited about the language, I don't yet understand how I will be using it (efficiently) in my build environment.

Does D still build .o files?  If not, do I have to build my entire program in one pass (going to be slow on projects with hundreds of source files)?

If D builds .o files, what exactly is in each .o file?  If foo.d imports all of bar.d, (and bar.d includes the implementations of its functions), then will foo.o include the definitions of bar.d, or just those from foo.d?

Is there any way to make it so the compiler doesn't have to parse every .d file every time - since many .o files share the same .d files, wouldn't it make sense to parse each of them only once?


February 13, 2002
"Russ Lewis" <russ@deming-os.org> wrote in message news:Pine.LNX.4.33.0202130059150.26789-100000@deming-os.org...
> I must admit that while I am very excited about the language, I don't yet understand how I will be using it (efficiently) in my build environment.
>
> Does D still build .o files?

Yes.

>  If not, do I have to build my entire program
> in one pass (going to be slow on projects with hundreds of source files)?

It is possible to build a D compiler that does that, but the current one does not.

>> If D builds .o files, what exactly is in each .o file?  If foo.d imports
> all of bar.d, (and bar.d includes the implementations of its functions), then will foo.o include the definitions of bar.d, or just those from foo.d?

It works analogously to a .c and .h file.


> Is there any way to make it so the compiler doesn't have to parse every .d file every time - since many .o files share the same .d files, wouldn't it make sense to parse each of them only once?

Compiling multiple source files at once means that imports in common only get parsed once. In any case, the parsing goes so fast it hardly seems worth while to build a precompiled version. There also seems no point in doing that optimization until the language has been out for a while. You know what they say about premature optimization <g>.