Repository navigation
Add GDC 15 CI coverage and improve compiler compatibility - #144
Merged
Merged
Conversation
Apply compiler-specific settings to all affected DUB test builds so GDC no longer receives the unsupported -lowmem flag. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Deduce the observation type directly without instantiating a slice conversion on Data.init, avoiding static-array lifetime errors on GDC 14. Reject input conversions that change the element type with a diagnostic requesting explicit conversion to a Mir slice. Add regression tests for rejection, explicit conversion, and supported result-type selection. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Install GDC 15 and DUB from the standard Ubuntu repositories, report toolchain versions, and run the standard unit test suite. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Select scoped range insertion through a compile-time probe while preserving inferred lifetimes for custom axes that retain observations. Borrow factory inputs with auto ref to avoid an extra owning-range copy. Adjust nested proxy test initialization for older frontends and add regression coverage for retaining custom axes. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Use scoped row handles during recursive histogram traversal only on affected DMD versions. Preserve the original value-passing path and vectorization on other compilers. Add a regression test for projection with noncopyable array cells. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Reference mir-algorithm issue #483 and note when to revisit unittest-release coverage for GDC. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Zero histogram counters by index on affected DMD versions to avoid axis corruption when the owning range copy is inlined. Preserve the existing loop on other compilers and versions. AI-Assisted-By: Codex (GPT-6 Astra Medium)
Disable SharedCountField.lightConst inlining on affected DMD versions to preserve correct adaptive count views. Retain normal inlining on other compilers and versions. AI-Assisted-By: Codex (GPT-6 Astra Medium)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a GDC 15 unittest job using Ubuntu 26.04’s standard packages,
and improve compatibility with older D compiler frontends.
-lowmemto DMD and LDC.conversions that change the input element type.
custom axes that retain observations.
traversal, histogram initialization, and adaptive count views.
Keep these workarounds disabled on other compilers and versions.
Regression tests cover retaining custom axes, noncopyable projection
cells, and weighted-quantile input conversions.
Validation: the combined optimized release suite passes all 55 modules
on DMD 2.111.0, 2.112.1, 2.113.0, and LDC 1.41.0. All hosted CI checks
pass, including the GDC 15 unittest job.
Optimized GDC testing remains blocked with the current dependency by
an ndslice safety-check helper, tracked in libmir/mir-algorithm#483.
The upstream fix is proposed in libmir/mir-algorithm#484. This PR
includes no dependency workaround or warning suppression.