Commit graph

33 commits

Author SHA1 Message Date
Martin Kinkelin
130e6aa1d4
GHA main: Add Alpine Linux job, to CI-test musl libc (#20741)
* GHA main: Add Alpine Linux job, to CI-test musl libc

Incl. some test fixes.

* [refactor common isDlcoseNoop logic and prepare for Darwin support]
2025-01-28 00:28:20 +01:00
Iain Buclaw
f92d1370a2 Merge remote-tracking branch 'upstream/stable' into merge_stable 2025-01-09 15:03:15 +00:00
Martin Kinkelin
587a634b1f CI: Add extra Phobos tests (publictests and betterc make targets) 2024-12-08 10:21:15 +01:00
Martin Kinkelin
72b2fbe64a Merge remote-tracking branch 'origin/stable' into merge_stable
Conflicts:
	compiler/src/build.d
	compiler/src/dmd/dcast.d
	compiler/src/dmd/dtemplate.d
	compiler/src/dmd/expressionsem.d
2024-11-16 16:09:17 +01:00
Martin Kinkelin
3aaf7bf222
GitHub Actions: Bump macos-12 jobs to macos-13 (#17063)
As the macos-12 image will be 'fully unsupported' starting with December 3rd:
https://github.com/actions/runner-images/issues/10721
2024-11-14 03:46:12 +01:00
Martin Kinkelin
dbba866c71
macOS CI: Upgrade GNU make in ci/cirrusci.sh (#17034)
This should fix Phobos CI, which expects such prerequisites provisioning
to happen in DMD's ci/cirrusci.sh. Because this YAML addition hasn't been
duplicated in Phobos, Phobos CI is still using the default make on macOS,
which is too old and doesn't support the newly required `private` modifier.
2024-10-27 14:27:05 +01:00
Mathias Lang
9fd775b37c CI: Use macOS-12 instead of macOS-11
macOS-11 is going to be removed at the end of the month and undergoing brownouts.
We want to migrate away from it as fast as possible, but we only upgrade to macOS-12.
2024-06-22 04:03:12 +02:00
Martin Kinkelin
86b71a29ed
CI: Add self-compile step to GHA main jobs (#16586)
This test making sure that DMD can successfully build itself got lost
when disabling/commenting-out the coverage jobs.
2024-06-16 16:50:58 +08:00
Iain Buclaw
4ea14d4dc6 GHA: Add workflow for testing bootstrap with every release from D 2.076.1 2024-06-01 12:56:14 +08:00
richard (rikki) andrew cattermole
ad6e0c7a27 Kill off OMF support 2024-05-03 18:24:36 +12:00
Martin Kinkelin
b4aea9f670 GHA: Add Windows jobs to main workflow 2023-12-23 17:05:05 +08:00
Martin Kinkelin
f3f89ca5b6 CI: Adapt to generic Makefile for Phobos 2023-12-18 17:10:31 +08:00
Martin Kinkelin
bc793e59e9 druntime: Rename posix.mak to Makefile 2023-12-18 07:29:32 +08:00
Martin Kinkelin
6662f4a7f6
macOS CI: Don't brew-install packages provided in the base image already (#15877)
It's slow and prone to sporadic failures (possibly caused by a missing
initial `brew update` invocation), and seems superfluous for the
used macOS 12+13 GitHub Actions images, according to the CI logs.
2023-12-04 15:05:17 +02:00
Martin Kinkelin
ed22f5c28f
ci/run.sh: Avoid deprecated Makefiles (#15832)
* ci/run.sh: Avoid deprecated Makefiles

* ci/run.sh: Streamline OS_NAME from `darwin` to `osx` on macOS

As DMD uses `osx` as OS in most other places, including the
`generated/osx/release/64` output dir, which is currently wrong
in run.sh's `build_path` and leads to CI failures on macOS.

* GHA: Disable `-debug` for DMD unittests with old host compilers

* GHA: Work around linker errors with -g on macOS 13

See https://issues.dlang.org/show_bug.cgi?id=23517.

compiler/src/posix.mak sets it to 10.9, compiler/test/Makefile to 11.
2023-11-22 11:41:16 +02:00
Jacob Carlborg
0b0bdf76bd
Fix broken macOS CI pipelines (#15376)
Import the D keyring to allow checking signatures for downloaded D
compilers.
2023-07-03 14:20:29 +02:00
Vladimir Panteleev
7cdae6e3bb
Add Valgrind GC integration (#15304)
* rt.minfo: Avoid calling realloc with size 0

This is not portable, and memcheck complains about this.

* Add C Valgrind API

Add the BSD-licensed C header files which provide the API for
controlling Valgrind from within programs executed under it.

The files are from Valgrind v3.21.0.

* Add some D bindings for the Valgrind C API

We will use these in the GC implementation to tell Valgrind which
memory operations are OK or not.

* Silence Valgrind warnings caused by GC marking

Allow the conservative GC to scan memory, whether it has been
initialized by the application or not.

* Add test suite for Valgrind

* Unify VALGRIND with MEMSTOMP

The two share the same goal: mark memory which should not be accessed
any more.

* Mask "invalid" access to free lists

The GC stores free lists in the cells of the objects on the list.

We would like to allow the GC to work with these lists, but still
raise a warning if application code attempts to access them.

* Distinguish between writable and unwritable invalidation

Freshly allocated memory should be writable but not readable.

Explicitly deallocated or GC-ed memory should be neither readable or
writable.

* Add use-after-free test

* Invalidate freshly-allocated memory

* Integrate VALGRIND with SENTINEL

* Fix reporting of arrays of structs with destructors

* Re-invalidate reused blocks during malloc/calloc

* Add Changelog entry

* .pre-commit-config.yaml: Exempt vendored files

* etc.valgrind.valgrind: Propagate return values of the vbits functions

* etc.valgrind.valgrind: Add documentation for functions

Copy/adapt the documentation in memcheck.h.

* druntime/test/valgrind: Add no_use_after_gc test

* ci/cirrusci.sh: Install Valgrind on Linux

Run the Druntime Valgrind integration tests.

libc6-dbg is needed to allow Valgrind to redirect certain functions.

* etc.valgrind.valgrind: Add @nogc

Although the GC is the primary user, this is not a restriction of
these Valgrind API wrappers.

* druntime/test/valgrind: Fix no_use_after_gc test with -release

Trick the optimizer to pretend we're doing something with the result
of those invalid memory accesses.
2023-06-15 01:01:42 -07:00
Iain Buclaw
d657f21137 ci: Update CirrusCI Ubuntu images to 22.04 2023-01-29 18:30:39 +01:00
Iain Buclaw
0b35851998 ci: Update Ubuntu images to 20.04 2023-01-29 18:30:39 +01:00
Iain Buclaw
7cef3b9f3c cirrus: Only run bootstrap pipeline on 11.x 2022-09-11 00:45:45 +02:00
Dennis
726b94890a
Add log read tips to CI docs (#14276)
@Geod24 gave the `***` tip in the quarterly meeting today
2022-07-12 11:14:28 +03:00
Iain Buclaw
09d04945bd Fix build script paths to work with new merged repository structure
Co-Authored-By: Geod24 <pro.mathias.lang@gmail.com>
Co-Authored-By: Martin Kinkelin <noone@nowhere.com>
Co-Authored-By: Vladimir Panteleev <git@cy.md>
2022-07-09 23:49:27 +02:00
Iain Buclaw
14ab349b82 ci/cirrusci.sh: Remove brew update-reset from cirrusci script 2022-05-26 02:06:26 +02:00
Dennis Korpel
a8b8860cfb Fix force push command in ci/README 2022-05-19 16:55:03 +00:00
Dennis Korpel
3c0f6f4ed8 Address review comments 2022-05-16 12:51:52 +02:00
Dennis Korpel
4cc2211779 Add documentation for CI pipelines 2022-05-16 12:46:24 +02:00
Iain Buclaw
88de5e369b Rebuild dmd with DFLAGS 2022-05-05 20:57:43 +02:00
Luís Ferreira
1bec274d82
feat(test): Add DWARF_VERIFY flag on DWARF tests (#13754)
* ci(cirrusci): add llvm package

Signed-off-by: Luís Ferreira <contact@lsferreira.net>

* feat(test): Add DWARF_VERIFY flag on DWARF tests

DWARF readers and debuggers tend to ignore errors and try to proceed as much as
possible. objdump dumping the tags, doesn't necessarily mean that the DWARF
abbreviations are correct -- e.g. the reader could halt in the end, with the
last abbreviation, in which the output test can't verify. Introducing a DWARF
verifier is a good way to check conformancy with the standard.

Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2022-03-08 14:04:15 +02:00
Luís Ferreira
a7dc8f487b
ci: move ci.sh and cirrusci.sh script to ci/ folder
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2022-02-20 23:20:01 +00:00
Florian
a06e8f7909
Azure/CodeCov: Remove workaround for token-less coverage upload (#13535)
`coverage.sh` used to explicitly specify the commit associated with the
coverage report as a workaround to an issue when uploading without
`CODECOV_TOKEN` from a public Azure pipeline[1]. The workaround is not
required anymore as the uploads now succeeds with the default settings.

The upload to CodeCov probably broke because `$BUILD_SOURCEVERSION` now
points to a local merge commit (PR branch => target branch).

[1] https://github.com/codecov/codecov-bash/issues/287
2022-02-17 15:19:47 +02:00
MoonlightSentinel
5922fb3340
codecov.sh: Remove lst files for generated source files
Those files are generated and don't exist in the repository
2022-02-14 20:52:18 +01:00
MoonlightSentinel
2a78210c22 Azure: Fix CodeCov upload by using a proper login shell
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...)
2022-01-15 13:28:25 +00:00
MoonlightSentinel
9ff5805c1d Switch to new CodeCov uploader
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
2021-10-27 07:37:27 +00:00