[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