Many places around were re-inventing logException with varying level of success.
In addition, the full error is now printed as a diagnostic instead of debug.
This is more in line with the description of `LogLevel.diagnostic`
("Extended user information (e.g. for more detailed error information)"),
as opposed to the one of `LogLevel.debug_`
("Developer information useful for algorithm debugging").
Since DMD v2.079.0 it is possible to put default, always-used default parameters
after variadic arguments (as long as IFTI is used).
This way we can move all the compile-time arguments, which would always trigger
a template instantiation, to runtime arguments, and re-enable module and function.
The code as is never checks the requested address family when doing a DNS query,
so resolving an IPv6 only host with AddressFamily.INET would still return an IPv6.
Recently, dub was upgraded from v1.18.0 to v1.22.0
(the remote LATEST file was fixed), which caused half of the test-suite
(all non select-based configs) to fail, because the 'args' test would
somehow run the `0-tcp.d` file.
This works around the problem by using `--single` explicitly.
As explained in details in dlang/dmd#11000 and dlang/dmd#11474,
'in' has been for a very long time lowered to simply 'const',
or 'scope const' when v2.092.0's '-preview=in' switch is used.
DMD PR 11474 aims to change this, so 'in' is not (visibly)
lowered, and shows up in any user-visible string.
This includes header generation, error messages, and stringof.
Since this code was testing stringof directly, it is affected
by the change. To support testing of both aforementioned DMD PRs,
the change is not tied to a version,
but uses the (soon-to-be) old way as a fallback.
This function wasn't used anymore, but still imported, despite being deprecated.
It was scheduled to be removed a few releases ago (see dlang/phobos#7545).
Update the list to include the latest compilers (DMD 2.091.0 and LDC 1.20.1),
as well as the previous 3 releases, plus the oldest supported release.
Also switch from beta to the latest CI version, which is more informative,
but still allow it to fail so as not to block development.
This was not working at all since the release of vibe-core due to dependencies on other parts of vibe.d. The unit test has now been moved out of the template class, so that it is actually run.