← 输入框|github.com|刷新
Skip to content

Tags

Tags

v0.21.0

Toggle v0.21.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
0.21.0: CMake cross contracts and owned accelerator targets (#52)

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

v0.20.0

Toggle v0.20.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
0.20.0: a SYCL build has one C++ runtime; platform plugins (mcpp.plug…

…ins.platform) and the package reader (#51)

* 0.20.0: a SYCL build has one C++ runtime, libstdc++

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 <248744407+speak-agent@users.noreply.github.com>

* ci: mcpp 2026.10.26.1

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 <248744407+speak-agent@users.noreply.github.com>

* ci: mcpp 2026.10.26.2, which writes a WebAssembly link in place (mcpp#844)

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

* 0.20.0: platform plugins (mcpp.plugins.platform) and the package reader (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 <248744407+speak-agent@users.noreply.github.com>

---------

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: Sunrisepeak <x.xllmapi@gmail.com>

v0.19.1

Toggle v0.19.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
0.19.1: json::value compiles under clang with libstdc++, and CI reads…

… every build program as an editor does (#47)

`mcpp::plugins::json::value` held `std::vector<std::pair<std::string, value>>`.
Under clang with libstdc++'s `std` module the pair is instantiated while `value`
is incomplete, so `mcpp.plugins` failed to compile and an editor's clangd --
which reads a GCC project with exactly that combination -- showed every
`import mcpp.…;` of a build program as a missing module. GCC and clang with
libc++ accept the code, so no build ever failed.

A member is now a plain struct `member { first; second; }` and `get()` is
defined once both types are complete. `members` is used only inside the lib
root and the fields keep their names, so the change is source-compatible.

CI gains the two combinations it did not compile: `toolchain-llvm` builds and
runs the toolchain-neutral fixtures under llvm@22.1.8 with libc++ (the Qt
fixtures configure only, since Qt's Linux binaries are built against
libstdc++), and `toolchain-editor` reads every fixture's `build.mcpp` with
mcppls 0.0.15 over the GCC toolchain and fails on any error or on a file it did
not read. On the previous code 34 of 37 fixtures fail there.

docs/plugin-development.md §4 states the rule: a plugin is the C++23 that all
three accept, with the differences met so far.

The editor lane configures each fixture before reading it, as a project is
configured before it is opened: on a fresh runner the build database otherwise
describes no build program for a fixture whose toolchain or SDK is not yet
provisioned.

Closes #46

v0.19.0

Toggle v0.19.0's commit message
0.19.0: one resolver for a member's tool, payloads installed on reque…

…st, and a toolchain a build program states

Every member answers where the tool it runs comes from in one order, and a choice
made in a build program never asks for the payload. Engine floor: mcpp 2026.10.1.3.

v0.18.1

Toggle v0.18.1's commit message
0.18.1

v0.18.0

Toggle v0.18.0's commit message
0.18.0

v0.17.0

Toggle v0.17.0's commit message
0.17.0

v0.16.0

Toggle v0.16.0's commit message
0.16.0

v0.15.2

Toggle v0.15.2's commit message
mcpp:plugins 0.15.2

v0.15.1

Toggle v0.15.1's commit message
0.15.1: a vcpkg installation waits for another one of the same root