[dmd-beta] dmd 2.063 beta 8 - the last one!

Rainer Schuetze r.sagitario at gmx.de
Thu May 30 08:25:03 PDT 2013


On 30.05.2013 16:39, Rainer Schuetze wrote:
> On 28.05.2013 04:20, Walter Bright wrote:
>>
>> http://ftp.digitalmars.com/dmd2beta.zip
>>
>> Remaining regressions:
>>
>> http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&bug_severity=regression&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED
>>
>>
>> _______________________________________________
>> dmd-beta mailing list
>> dmd-beta at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>>
>
> I don't want to spoil the party, but it seems that building with -lib
> doesn't split a module into separate modules for each function anymore
> (for win32, not win64). According to the list file generated by lib.exe,
> every module in phobos is a single object file.
>
> Was it a deliberate change? It exposes bug 9044 pretty easily:
> http://d.puremagic.com/issues/show_bug.cgi?id=9044.

FYI here is the log from libomf when compiling "dmd -lib ab.d":

module ab;

struct AB
{
	int a;
	int len() { return (new AB).a; }
}
unittest {}


DMD v DEBUG
LibOMF::addObject(ab.obj)
LibOMF::addObject(ab_1_83.obj)
LibOMF::addObject(m:\s\d\rainers\druntime\import\object_2_327.obj)
LibOMF::addObject(m:\s\d\rainers\druntime\import\object_3_937.obj)
LibOMF::addObject(m:\s\d\rainers\druntime\import\object_4_988.obj)
LibMSCoff::scanObjModule(ab)
LibOMF::addSymbol(ab, _D2ab12__ModuleInfoZ, 0)
LibOMF::addSymbol(ab, _D2ab7__arrayZ, 0)
LibOMF::addSymbol(ab, _D2ab8__assertFiZv, 0)
LibOMF::addSymbol(ab, _D2ab15__unittest_failFiZv, 0)
LibMSCoff::scanObjModule(ab)
LibOMF::addSymbol(ab, _D2ab2AB6__initZ, 0)
LibOMF::addSymbol(ab, _D2ab2AB3lenMFZi, 0)
LibMSCoff::scanObjModule(object)
LibMSCoff::scanObjModule(object)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.312__ModuleInfoZ, 0)
LibOMF::addSymbol(object, _D16TypeInfo_S2ab2AB6__initZ, 1)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.37__arrayZ, 0)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.38__assertFiZv, 0)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.315__unittest_failFiZv, 0)
LibMSCoff::scanObjModule(object)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.412__ModuleInfoZ, 0)
LibOMF::addSymbol(object, _D17TypeInfo_PS2ab2AB6__initZ, 1)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.47__arrayZ, 0)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.48__assertFiZv, 0)
LibOMF::addSymbol(object, 
_D42m:\s\d\rainers\druntime\import\object.di.415__unittest_failFiZv, 0)
g_page_size = 16
ndicpages = 3

This suggests that the separate object files are created, but the 
symbols are not added to them. Instead they are placed into the object 
files "ab" and "object". Strings containing "ab_" or "object_" are never 
generated into the library file.

This is the list-file of the lib:


Publics by name		module
_D16TypeInfo_S2ab2AB6__initZ     object
_D17TypeInfo_PS2ab2AB6__initZ    object
_D2ab12__ModuleInfoZ             ab
_D2ab15__unittest_failFiZv       ab
_D2ab2AB3lenMFZi                 ab
_D2ab2AB6__initZ                 ab
_D2ab7__arrayZ                   ab
_D2ab8__assertFiZv               ab
_D42m:\s\d\rainers\druntime\import\object.di.312__ModuleInfoZ object
_D42m:\s\d\rainers\druntime\import\object.di.315__unittest_failFiZv object
_D42m:\s\d\rainers\druntime\import\object.di.37__arrayZ object
_D42m:\s\d\rainers\druntime\import\object.di.38__assertFiZv object
_D42m:\s\d\rainers\druntime\import\object.di.412__ModuleInfoZ object
_D42m:\s\d\rainers\druntime\import\object.di.415__unittest_failFiZv object
_D42m:\s\d\rainers\druntime\import\object.di.47__arrayZ object
_D42m:\s\d\rainers\druntime\import\object.di.48__assertFiZv object


Publics by module
ab
	_D2ab8__assertFiZv                _D2ab2AB6__initZ
	_D2ab12__ModuleInfoZ              _D2ab15__unittest_failFiZv
	_D2ab2AB3lenMFZi                  _D2ab7__arrayZ

object
	_D42m:\s\d\rainers\druntime\import\object.di.47__arrayZ 
_D17TypeInfo_PS2ab2AB6__initZ
	_D42m:\s\d\rainers\druntime\import\object.di.412__ModuleInfoZ 
_D42m:\s\d\rainers\druntime\import\object.di.415__unittest_failFiZv
	_D42m:\s\d\rainers\druntime\import\object.di.312__ModuleInfoZ 
_D42m:\s\d\rainers\druntime\import\object.di.38__assertFiZv
	_D42m:\s\d\rainers\druntime\import\object.di.37__arrayZ 
_D42m:\s\d\rainers\druntime\import\object.di.315__unittest_failFiZv
	_D16TypeInfo_S2ab2AB6__initZ 
_D42m:\s\d\rainers\druntime\import\object.di.48__assertFiZv



More information about the dmd-beta mailing list