I do have a question regarding the talk's section on
devirtualization.
As a language that imposes virtual methods for classes, how
well does D
play when it comes to devirtualization? And on a side note,
does D have
a different way of implementing virtual methods than most C++
compilers do?
In D it seems that currently the preferred way to compile a
project is to compile all the source at once using RDMD or
similar. Isn't that a great opportunity for full program
analysis to do devirtualization?
It may be a trend, but I hope it will never become D's official
approach, because it doesn't scale. This would left out all the
people that use the object-file based approach (and related
tools, like Makefiles), which is dominant in the Linux world, and
is required in some cases (limited hardware, distributed
compiling, or simply huge projects).