Repository navigation
0.21.0: CMake cross contracts and owned accelerator targets - #52
Open
Sunrisepeak wants to merge 9 commits into
Open
Sunrisepeak wants to merge 9 commits into
Sunrisepeak wants to merge 9 commits into
Conversation
…e's contract
When the build's target is not the machine, the subproject is configured with
the compilers, words and archiver of the engine's contract for the
configuration (${mcpp.contract}, mcpp 2026.10.30.1+), read when the action
runs, under Ninja; CMAKE_SYSTEM_NAME is the target's system and the
try-compile builds a static library. The package needs mcpp 2026.10.30.1.
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…e whole list of an older engine mcpp 2026.10.27.1 lists zip and single-file among the built-in formats. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…g, as CMake splits it Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Read the channel through the UTF-8 environment API instead of the CRT narrow environment. Exercise disabled channels, Unicode paths and optional write failure on Linux, macOS and Windows, recording the Windows ANSI code page.
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.
CMake cross builds now consume the engine's compiler, flags, archiver and target contract when the action runs. Accelerator rules also read complete, brace-aware requests and match exact implementation names, so a comma inside a target set no longer truncates the selected architectures.
SYCL owns its code targets:
sycl+{nvptx64-sm_89,nvptx64-sm_90}emits both NVIDIA images, andsycl+{spir64,nvptx64-sm_89}emits SPIR-V beside NVIDIA. The CUDA toolkit is requested only for SYCL NVIDIA targets. Explicit SYCL targets remain independent of a selected CUDA member; the older target-inheritance spelling remains accepted with a migration warning. The pure SYCL fixture retains an excluded CUDA source group. Unknown SYCL targets and unavailable AMD routes are refused. CUDA, HIP and Vulkan readers share the same syntax reader.Validation with released mcpp 2026.11.3.1: 50 plugin-logic cases pass; actual CMake musl cross build/run passes; actual SYCL consumer builds in legacy, owned NVIDIA, multi-architecture and mixed forms. Device-link intermediates verify two NVIDIA fatbins and the mixed SPIR-V/NVIDIA images. GPU execution is unqualified on the local driver (CUDA error 803). CI now inspects actual device images and separately runs the CPU fallback. Bootstrap/editor CI pins use the published 2026.11.3.1 release; the package floor stays 2026.10.30.1.
Tracks mcpp-community/mcpp#885 and #887. This reuses the existing PR and preserves its CMake contract changes.
Optional progress: a standard-library helper probes the engine API, while the
plugins-progressfeature provides an atomic, rate-limited worker writer using os.fs. CMake optionally reports configure/build-install stages and continues if telemetry is unavailable or unwritable. Snapshot I/O and build results remain independent; older APIs degrade without breaking the build. Ordinary CMake consumers do not acquire the optional writer dependency. The optional worker feature is independently consumable by an ordinary executable without importing the build-program-only API; CI builds and runs this fixture on the published engine.Incremental correctness: object-surface assembly now records payload content, so
restatdoes not hide changes behind an unchanged.incbinpath. Equal-size and unchanged-content controls pass. A real shader rebuild updates the assembler object and final program. A new dual-rule consumer verifies independent CUDA sm_90 and SYCL sm_89 image production plus both host objects running together; this does not qualify GPU execution. CI covers that consumer.Full CI on
aa2c16e38024d383c721fcf4f358be580ddcf84cpassed all six jobs (41937665962). The new-core integration pin will advance only after mcpp 2026.11.5.1 is publicly installable. Multi-architecture SDK static archives remain a separate unqualified combination: isolated archive extraction mixes architecture members; no architecture is silently discarded.