How do you create a .di file for multiple .d files?

Jesse Phillips jessekphillips+D at
Tue Oct 12 18:16:04 PDT 2010

Jonathan M Davis Wrote:

> It's what Walter suggested doing to have a single std.datetime to import but 
> have multiple modules for the actual implementation (he mentioned it in the 
> datetime review thread on the Phobos list). He said to look at druntime for 
> examples, but all of the .di files that I see there appear to have a single .d 
> file corresponding to them. If there is one with multiple .d files, I missed it.
> - Jonathan M Davis

Ah, yes. I thought you had done some big work in D, so I thought it odd you would be confused on modules. I believe you were referring to this part from Walter:

> Remember, if a module's implementation code is large, it can be split
> into a .di/implementation pair, rather than into multiple modules.

And the later follow up.

> Jonathan M Davis wrote:
>>    Really, the ideal would be to have all of it in one module but have the code split up into several files. 
>> The closest way that I was aware to do that was to use a single module which publicly imported the 
>> others. I'll look at splitting it into an interface file and source file though.

> druntime does it for several modules, and can serve as an example.

I think I read into that differently. I was thinking he meant that by creating a D interface file you no longer have all the implementation making the file look big. I didn't understand the benefit, nor how it related to the problem.

On another note, why does druntime ship with .di files and .d files? Phobos is only .d

More information about the Digitalmars-d-learn mailing list