D lang compilers have an option -release (or similar) which turns off
asserts, contracts, and other runtime type checking. This patch wires
that up to the b_ndebug flag.
Fixes#7082
Pull the crossfile specification out of run_test.py so it can be
specified in the CI job configuration.
Also make some fixes to output ordering in run_test.py.
Run docker with seccomp:unconfined, since otherwise we're blocked from
calling CreateToolhelp32Snapshot() inside the cross-mingw tests,
specifically `common/122 shared module`.
These weren't caught by the CI because we have pkg-config on it, and
these were testing non-pkg-config codepaths. The unity build on macOS
now doesn't have pkg-config to ensure that the codepath is tested.
When we link to an external library either with find_library() without
any dirs:, or with dependency(), we should be able to run uninstalled
out of the box without having to set any environment variables or other
shenanigans.
This is especially important on macOS because only the system frameworks
directory is in the default runtime path, and all other frameworks and
libraries need to be found with RPATH or absolute path to the dylib.
There is a lot of overhead for each travis job, because docker pull
takes 3 minutes. Each cross test takes 3-4 minutes.
To make things worse, sometimes Dockerhub is slow and docker pull takes
longer than 3 minutes.
Since [1], python3 is now an alias for python, so installing it, rather than
upgrading it, will fail.
It seems that homebrew can't do this upgrade without breaking python2, so
uninstall and reinstall python2 (and mercurial which depends on it) to work
around that problem.
[1] https://brew.sh/2018/01/19/homebrew-1.5.0/
This way we get some testing for the patches, and speed up our builds.
My server is hosted on a UK Linode, so it should have good uptimes.
However, we should likely move this into the Docker image at least
for Linux, and perhaps put it in a CI cache for the rest.