dlang-tour / core

D Language online tour (https://tour.dlang.org/) and online editor (https://run.dlang.io/)
Boost Software License 1.0
114 stars 48 forks source link

run.dlang.io times out when using "all dmd compilers" #767

Open schveiguy opened 2 years ago

schveiguy commented 2 years ago

I've noticed this in the past, but was usually able to rerun and get around it.

Now, I'm retrying and it always says "Server error".

I have a feeling it's timing out, because now there are too many compilers to try. Maybe we should start dropping off earlier ones? Or should the timeout be increased?

The code has to be something more than trivial. This was the code that was breaking it for me:

import std.variant;
import std.stdio;
void main() { Variant v = 5; writeln("hello, world");    }
ljmf00 commented 2 years ago

I've noticed this in the past, but was usually able to rerun and get around it.

Now, I'm retrying and it always says "Server error".

I have a feeling it's timing out, because now there are too many compilers to try. Maybe we should start dropping off earlier ones? Or should the timeout be increased?

The code has to be something more than trivial. This was the code that was breaking it for me:

import std.variant;
import std.stdio;
void main() { Variant v = 5; writeln("hello, world");    }

Maybe a possible solution would be to increase the timeout for this "special compiler" ?

PetarKirov commented 2 years ago

@schveiguy @ljmf00 I agree we can go both ways (reducing the number of compilers and increasing the timeout). I'd personally prefer to keep the list always growing as I think it's both very useful for historical purposes and also very convenient (sure you can run the same tests locally, but it can take quite a while to setup, compared to time it would take to actually run comparison).

I should check if dreg is run in single-threaded, or MT mode, as that could easily give us 4x speed increase.

radcapricorn commented 2 years ago

Getting an empty "Server error:" with code from this issue. However, if I change main to

void main(string[] args)
{
    actual = &args[0];
    actual.bug(Param.init, 0, {}, {});
}

it produces expected output.