GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

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

@Sunrisepeak Sunrisepeak commented Oct 26, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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.

All reactions
Sunrisepeak and others added 4 commits October 26, 2026 07:43
@Sunrisepeak @speak-agent
0.20.0: a SYCL build has one C++ runtime, libstdc++
15445da
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]>
@Sunrisepeak @speak-agent
ci: mcpp 2026.10.26.1
7b1e6ab
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]>
@xllmapi-official @speak-agent
ci: mcpp 2026.10.26.2, which writes a WebAssembly link in place (mcpp…
0c33f5b
…#844)

Co-authored-by: speak-agent <[email protected]>
@Sunrisepeak @speak-agent
0.20.0: platform plugins (mcpp.plugins.platform) and the package read…
38aa6ea
…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 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
@Sunrisepeak
Sunrisepeak merged commit 9213c4f into main Oct 27, 2026
6 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@Sunrisepeak Sunrisepeak mentioned this pull request Oct 27, 2026
mcpp.plugins 0.20.0: platform plugins and the package reader mcpplibs/mcpp-index#601
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

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.

2 participants

@Sunrisepeak @xllmapi-official
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.