On Friday, 30 March 2018 at 20:40:16 UTC, Stefan Koch wrote:
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

unittests by nature usually have a short list of dependencies and therefore their compilation can be parallelized. There are many performance leaks we can fix, before we need to think about breaking useful features!

No one wants to run the std.regex's testsuite when they pass -unittest or instantiate and run all tests for all Tuple combinations present. If you can make dmd so fast that this happens unnoticed, that would be amazing, otherwise I suggest we don't run Phobos's templated unittests in user-code.

Reply via email to