July 27, 2020 Better formatting and sorting of template instance diagnostics | ||||
---|---|---|---|---|
| ||||
I'm experimenting with better formatting for template instance diagnostics (-vtemplates) at https://github.com/dlang/dmd/pull/11463 . The main use case is to make it easier to pin down sources of unnecessary template instances in runtime and phobos triggered by `-unittest` when building import std; without any other code. One key question is whether this is sufficient information or if we need the top-level template instance that triggers an instantiation deeper down. Currently sorts on descending number of unique instances. Should we sort on total instances instances instead? What about hiding this behind a value of flag `-vtemplates`, for instance `-vtemplates=gnu`? Sample output: ``` phobos/std/meta.d(1811): vtemplate: found 193 total (187 unique) instantiation(s) of template `isSame(ab...) if (ab.length == 2)`, instances are: phobos/std/meta.d(287): vtemplate: instance `isSame!(BigInt, byte)` phobos/std/meta.d(287): vtemplate: instance `isSame!(BigInt, ubyte)` ... druntime/import/object.d(2952): vtemplate: found 147 total (147 unique) instantiation(s) of template `RTInfo(T)`, instances are: phobos/std/traits.d(189): vtemplate: instance `RTInfo!(Demangle!uint)` phobos/std/conv.d(4501): vtemplate: instance `RTInfo!(S)` ... ``` I've disabled the diagnostics output tests in `test/compilable/vtemplates.d` for now until we settle on a good formatting. Should I use `WIP: ` or `[WIP] ` as title prefix? I see that both are used in other PRs. Feedback is highly appreciated. |
Copyright © 1999-2021 by the D Language Foundation