DSSS and Rebuild 0.64 released.

Gregor Richards Richards at codu.org
Mon May 7 12:28:17 PDT 2007


David Ferenczi wrote:
> Gregor Richards wrote:
> 
>> David Ferenczi wrote:
>>> Hi Gregor,
>>>
>>> I have some trouble with the doc generation again.
>>>
>>> The tip you gave me last time
>>>
>>> "rebuild -o- -candydoc -Ddmylib_doc mylib/*.d"
>>>
>>> worked smoothly, but with this new release I got the message:
>>>
>>> "WARNING: Module application.d does not have a module declaration. This
>>> can cause problems with rebuild's -oq option. If an error occurs, fix
>>> this first."
>>>
>>> Ok, I didn't have module declarations in my sources so I made it up.
>>>
>>> With having the module declaration in my sources the documentation
>>> generation silently dies. Simply nothing happens. Could you please take a
>>> look at?
>>>
>>> Many thanks,
>>> David
>>>
>>>
>>>
>> Actually, the bug is that it's only generating documentation if you're
>> making output files (i.e. not using -o-). The quickfix is to use
>> -odgarbage_objs. Will fix the underlying bug by 0.65.
>>
>>   - Gregor Richards
> 
> That's what I call a response time! Many thanks! :-)
> 
> Just from curiousity: what is the reason for compulsory module names?
> 
> Regards,
> David
> 

rebuild's default output file naming is -oq, which basically names 
things by their fully-qualified module name. So the module 
foo.io.translation becomes foo.io.translation.o and foo.text.translation 
becomes foo.text.translation becomes foo.text.translation.o. These file 
names are based on the module name, so if foo.io.translation lacks a 
module declaration, the file name will be translation.o. That's fine, 
unless foo.text.translation ALSO has no module declaration, in which 
case both will be named translation.o, and that's deadly.

This can be repaired somewhat by implying the module name from the 
directory, but I've found that problem to be surprisingly difficult to 
solve in reality.

Also, it's just good style to always include module declarations :)

  - Gregor Richards



More information about the Digitalmars-d-announce mailing list