Clang makes a distinction between clang and clang++. In particular, clang++ will give a warning when it is passed `.c` source files; and the extra output warning text means that dmd testsuite output checking fails. The warning can be silenced (-Wno-deprecated) but then other tests will fail because `#ifdef __cplusplus` will be true, leading to header file import issues.
Allow exporting all generated symbols (including internal symbols).
Implement switch `-dllimport` ( windows only, not restricted to `extern(D)`)
Still to do:
* running shared module ctors
* running thread local module ctors
* registering DATA/TLS ranges with the GC
* exceptions
Incl. fixing up the d_do_test.d tool to work properly with MODEL=32
on Windows.
And somewhat improve the documentation of MODEL=32omf, nowadays used
for the 32-bit OMF toolchain.
`run.d` / `windows.sh` may use older host compilers that don't support
`-m32omf`. So default to `-m32` using the proper bitness even though
it may use a different object format.
* Produce MS Coff by default when targetting windows
This rebases #12825 but doesn't attempt to rename phobos libraries and doesn't change the build infra where possible(and doesn't have a large diff in `link.d`). See if this fixes the CI issues.
* remove OMF piplines
* Update glue.d
* Update target.d
* Update target.d
* Update frontend.h
The CodeCov script needs to be run with a `--login` shell s.t. it has
access to `shasum`,... .
(The previous draft PR was merged with an allowed failure...)
The currently used bash uploader is deprecated and will be removed in
the future[1]. This commit replaces the existing setup with the new
uploader for all currently supported platforms as proposed in [2].
Additional notes:
- FreeBSD support isn't supported yet and keeps using the old uploader
- Moved the new implementation into a dedicated file `source`d by
all coverage CI's (instead of changing each individual configuration)
[1] https://about.codecov.io/blog/codecov-uploader-deprecation-plan
[2] https://about.codecov.io/blog/introducing-codecovs-new-uploader
* Fix Issue 22149 - TypeInfo_Struct names aren't unique, leading to botched equality semantics
By storing the mangled name, making the TypeInfo_Struct names truly
unique and more compact at the same time.
Requires https://github.com/dlang/druntime/pull/3527.
* Fix Issue 22150 - TypeInfo_Class names aren't unique, leading to botched equality semantics
By fully qualifying template arguments.
* [temp] Cirrus CI: Use same-named druntime branch
* Azure Pipelines: Try to use same-named druntime/Phobos branches for PRs originating from the official dlang repo
* Cirrus CI: Try to use same-named druntime/Phobos branches for PRs originating from the official dlang repo
Current coverage report is linux only, this adds reports for Win64.
Win32 is currently excluded because dmd fails the test suite with weird
linker errors when using coverage build.
This uses the backoff strategy built in curl, instead of the short 5 seconds retry.
Instead, we set retry-max-time, telling curl to fail after 2 minutes.
This requires to build run.d (incl. its tools) and druntime (which also
involves building a little tool - with the host compiler - to copy the
imports...) before tampering with the LIB and DFLAGS environment
variables (for MinGW).
To finally have DMD's own assertions properly CI-tested. Assertions have
so far only been enabled for CircleCI (reduced testsuite on Linux x64)
and one Azure job (Win64 debug).
Previously, the tools were compiled by the DMD host compiler, but linked
with freshly compiled druntime/Phobos, leading to inevitable issues
popping up in dlang/druntime#3141 and dlang/druntime#3142.