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
[email protected]
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

_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta

Reply via email to