July 27, 2020
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.