On Friday, 30 March 2018 at 20:17:39 UTC, Andrei Alexandrescu
wrote:
On 3/30/18 12:12 PM, Atila Neves wrote:
Fast code fast, they said. It'll be fun, they said. Here's a D
file:
import std.path;
Yep, that's all there is to it. Let's compile it on my laptop:
/tmp % time dmd -c foo.d
dmd -c foo.d 0.12s user 0.02s system 98% cpu 0.139 total
Could be faster.
That... doesn't seem too fast to me. But wait, there's more:
/tmp % time dmd -c -unittest foo.d
dmd -c -unittest foo.d 0.46s user 0.06s system 99% cpu
0.525 total
Not fast. We need to make -unittest only affect the built
module. Even though it breaks certain uses of
__traits(getUnittests). No two ways about it. Who can work on
that?
Andrei
If you approve of the -unittest=<pattern> approach then
timotheecour has already offered to implement this. It's pattern
matching would work the same as -i and would also use the
"implied standard exclusions" that -i uses, namely,
-unittest=-std -unittest=-etc -unittest=-core
This would mean that by default, just passing "-unittest" would
exclude druntime/phobos just like "-i" by itself also does.