You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1916a5f
Browse filesBrowse the repository at this point in the historyBrowse files
fix: explain the 32-bit MSVC coroutine failures and keep host headers out
LLVM 23.1.3 Part 3, from the review of #781 and #786.
- clang 23 does not predefine __cpp_impl_coroutine for i686-pc-windows-msvc,
so the MSVC STL's <coroutine> is empty: the C++23 std module stops inside
<generator>, and code that uses coroutines stops at "use of undeclared
identifier 'std'". mcpp follows the compiler and appends a note to either
failure (mcpp.toolchain.msvc_coroutines): C++20 first, where import std and
import std.compat build, and llvm@22.1.8 for that target as an option. The
note is decided after the failure from the failed command and a -dM -E
probe of the same compiler, on the std precompile, the ninja path and the
fast path alike. Measured on probe PR #788.
- The graph C library note fires only when the C library is the graph's: the
plan checks cAbi.fromGraph(), and the fast path reads .mcpp-graph-c-library
beside build.ninja. A native build on a managed glibc carries -nostdlibinc
too, which made the token alone a wrong answer.
- GCC without a usable subos takes -isysroot <C library payload>, replacing
the sysroot recorded when the compiler was built.
- No host system header directory is searched on a managed C library; a
project that needs one writes -idirafter /usr/include (e2e 891).
- aarch64-linux-gnu is preview until the released engine is consumed on a
clean ARM64 host; README rows and the baremetal sample name LLVM 23.
- docs/20 (en/zh), SPEC-006 §3.8, SPEC-009 §6.4, CHANGELOG.
Refs: #786
|`wasm32-emscripten`|`emsdk@6.0.9` — Emscripten ships its own sysroot and its own libc++ module surface; `mcpp run` executes the module with the `node` the payload declares (`xim:node`), not one found on PATH | verified |
441
441
|`x86_64-linux-android`|`android-ndk@30.0.16248370` — bionic from the NDK, one payload for both ABIs; ran on an API 24 x86_64 emulator image | verified |
442
442
|`aarch64-linux-android`| the same payload and the same build; ran under qemu-user over the system image's own bionic, which the platform emulator cannot do from an x86_64 host | verified |
443
-
|`aarch64-ios-sim`| llvm 22 plus the machine's iPhoneSimulator SDK, which mcpp locates rather than installs; ran on a simulator through `simctl-run` ³ | verified |
443
+
|`aarch64-ios-sim`| llvm 23 plus the machine's iPhoneSimulator SDK, which mcpp locates rather than installs; ran on a simulator through `simctl-run` ³ | verified |
444
444
|`aarch64-ios`| the same split for the device; the artefact names the iOS platform, and running it off a device needs a signature the developer owns ³ | preview |
445
445
|`x86_64-ios-sim`| the same build; nothing ran it, because a simulator runs the host's architecture and the machine measured was Apple silicon ³ | preview |
0 commit comments