[Issue 20037] New: Imports in module info should be deduplicated
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Jul 9 06:56:37 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20037
Issue ID: 20037
Summary: Imports in module info should be deduplicated
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: r.sagitario at gmx.de
When building phobos unittests per package I noticed that a ridiculous number
of imports are added to the ModuleInfo of the modules as each local import is
appended unconditionally. The Win64 debug executable size shrinks from 65 MB to
58 MB if the imports are deduplicated.
Here's a test to detect duplicate entries:
import core.stdc.stdio;
import core.stdc.stdio;
void main()
{
int duplicates = 0;
foreach(mi; ModuleInfo)
{
//printf("Module %.*s:\n", mi.name.length, mi.name.ptr);
auto imp = mi.importedModules;
L_nextImport:
for(size_t i = 0; i < imp.length; i++)
{
auto m = imp[i];
//printf(" Import %.*s:\n", m.name.length, m.name.ptr);
foreach(n; imp[i+1..$])
if (n is m)
{
duplicates++;
continue L_nextImport;
}
}
}
if(duplicates > 0)
printf("%d duplicates\n", duplicates);
assert(duplicates == 0);
}
For the phobos unittests, this reports 576910 duplicates.
--
More information about the Digitalmars-d-bugs
mailing list