digitalmars.D - .di "header" files
- e-t172 (42/42) Nov 14 2007 Hello,
- Frits van Bommel (6/13) Nov 14 2007 IIRC one purpose of "header" files is improve compilation times without
Hello, I'm a bit confused about what the -H option of the DMD compiler (or the -fintfc of the GDC compiler) actually does. As a matter of fact, I think of it as a way to automatically generate the equivalent of .h files in D, which contains only declarations, not the actual code. So, considering the following code: module ditest; import std.stdio; class Foo { void bar() { // Moo. writefln("Hello World !"); } } If I compile that with the -H (or the -fintfc) option (dmd -c -H ditest.d), I would expect to find something like this in the automatically generated .di file: // D import file generated from 'test.d' module ditest; class Foo { void bar(); } But instead, here is what DMD generates (GDC does the same): // D import file generated from 'test.d' module ditest; import std.stdio; class Foo { void bar() { writefln("Hello World !"); } } I must say I don't understand how this is useful : all it did was strip comments and whitespaces. It didn't strip the body of the bar() function, which is what was expected. So is this normal, if it is, what is the real purpose of the -H option, and otherwise, how do I make it work correctly ? Regards,
Nov 14 2007
e-t172 wrote: [[ .di file includes function body ]]I must say I don't understand how this is useful : all it did was strip comments and whitespaces. It didn't strip the body of the bar() function, which is what was expected. So is this normal, if it is, what is the real purpose of the -H option, and otherwise, how do I make it work correctly ?IIRC one purpose of "header" files is improve compilation times without changing the results of those compilations. That requires (small) functions that might be inlined to keep their bodies. "Bigger" functions should have their bodies removed.
Nov 14 2007