GeezerVison is showing github.com — 0.20.0: a SYCL build has one C++ runtime; platform plugins (mcpp.plugins.platform) and the package reader by Sunrisepeak · Pull Request #51 · mcpp-community/mcpp-plugins
Conversation
Sunrisepeak
commented
Oct 26, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
0.20.0: a SYCL build has one C++ runtime, and it is libstdc++ (mcpp-community/mcpp#841, mcpp#838).
libsycl.so throws sycl::exception on libstdc++. A typed catch does not match across two C++ runtimes in one process, so 0.19's -l:libstdc++.so.6 beside an llvm build's libc++ let only catch (...) see what the runtime threw. Changes:
mcpp.rules.sycl names no C++ library on the link line. On Linux it refuses a build whose C++ library (mcpp::cxx_stdlib()) is not libstdc++, before any unit is compiled, and names both remedies (gcc.libstdcxx beside llvm, or a gcc toolchain). --gcc-install-dir follows the build's own GCC, in this order: the graph's supplier (MCPP_CXX_ABI_ROOT, read from the environment so the rule still compiles on older engines), the gcc toolchain's payload, then the xim:gcc the rule declares.
tests/sycl-consumer declares gcc.libstdcxx and the runtime adapter under cfg(accelerator = "sycl"), so the CPU variant (--no-accel) keeps llvm's libc++.
- Docs (
docs/rules.md), version 0.20.0. CI runs mcpp 2026.10.26.1.
Measured locally with dpcpp 7.1.0:
- llvm +
gcc.libstdcxx: builds and runs.
- gcc: builds and runs.
- llvm without a supplier: refused, with both remedies.
--no-accel: builds and runs on libc++.
The SYCL consumer needs gcc.libstdcxx from mcpplibs/mcpp-index#568.
Co-authored-by: speak-agent [email protected]
Platform plugins and the package reader (mcpp#847)
mcpp::plugins::package (in mcpp.plugins, std-only) reads a staged package's mcpp-package.json (mcpp SPEC-014 §4.5): read(stage_dir) returns std::expected<info, std::string>, and files_with_role and entry_of select from it. A schema other than 1 is refused.
- Feature
plugins-platform adds module mcpp.plugins.platform, which states what a platform's plugin (SPEC-013 §12) and a package format's provider state:
link::driver, link::start, link::input_file, link::input_from, artifact_names, seal and run_host, each checked at the call;
provide_format(name, make), which declares the format on every pass and submits the artifact action only in the pass that asks for it, made from the staged package.
mcpp.plugins.testing gains context::pack(format, stage_dir).
tests/plugin-logic gains 8 cases; all 37 cases pass locally with mcpp built from release/2026.10.27.1.
- The package floor is now mcpp 2026.10.27.1. CI builds that engine from the repository variable
MCPP_SOURCE_REF (release/2026.10.27.1) until the release exists. This covers the editor lane, whose mcpp moves to 2026.10.26.2 so it can build the engine under review.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
libsycl.so throws sycl::exception on libstdc++, and a typed catch does not match
across two C++ runtimes in one process (mcpp-community/mcpp#838). The rule put
-l:libstdc++.so.6 beside the libc++ an llvm build links; it now names no C++
library, refuses a build whose C++ library is not libstdc++ with both remedies
(gcc.libstdcxx beside llvm, or a gcc toolchain), and points --gcc-install-dir at
the build's own GCC: the graph's supplier (MCPP_CXX_ABI_ROOT), the gcc
toolchain's payload, or the xim:gcc it declares. The SYCL consumer takes
gcc.libstdcxx and the runtime adapter under the accelerator, so the CPU variant
keeps libc++.
Co-authored-by: speak-agent <[email protected]>
The consumers, the editor lane and the bootstrap run mcpp 2026.10.26.1, which the
SYCL consumer's llvm build over gcc.libstdcxx needs.
Co-authored-by: speak-agent <[email protected]>
…er (mcpp::plugins::package)
- mcpp::plugins::package (in mcpp.plugins, std-only): reads a staged
package's mcpp-package.json (mcpp SPEC-014 §4.5) -- read(stage_dir),
files_with_role, entry_of; a schema other than 1 is refused, naming it
- feature plugins-platform, module mcpp.plugins.platform: what a platform's
plugin (SPEC-013 §12) and a package format's provider state, checked at
the call -- link::driver / start / input_file / input_from,
artifact_names, seal, run_host -- and provide_format(name, make), which
declares the format on every pass and makes the artifact action from the
staged package in the pass that asks for it
- mcpp.plugins.testing: MCPP_PACK_STAGE_DIR among the stated keys,
context::pack(format, stage_dir)
- tests/plugin-logic: eight cases (the reader, provide_format's passes and
refusals, the builders and their refusals)
- the package floor is mcpp 2026.10.27.1 (protocol 17); CI builds the engine
under review from the repository variable MCPP_SOURCE_REF until that
release exists, the editor lane included
- docs/plugin-development.md §3, README
Co-authored-by: speak-agent <[email protected]>
Sunrisepeak
changed the title
0.20.0: a SYCL build has one C++ runtime, libstdc++
0.20.0: a SYCL build has one C++ runtime; platform plugins (mcpp.plugins.platform) and the package reader
Oct 27, 2026
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|