Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4d320fb
Move the LLVM line to 23.1.3 and the macOS/Windows host defaults with it
speak-agent Oct 7, 2026
42e8b88
feat: support native Linux ARM64 with LLVM 23.1.3
speak-agent Oct 7, 2026
dd30d64
test: require native ARM64 runtime and ecosystem evidence
speak-agent Oct 7, 2026
bed4876
fix: align benchmark LLVM and preserve precise CI diagnostics
speak-agent Oct 7, 2026
0ea64e7
fix: keep Clang managed system headers hermetic
speak-agent Oct 7, 2026
c29e53d
test: admit native GNU and ARM64 openkal cross consumers
speak-agent Oct 7, 2026
821f216
fix: initialize native admission paths in a valid runner context
speak-agent Oct 7, 2026
0183ea3
fix: create native admission projects by their CLI names
speak-agent Oct 7, 2026
9229b97
test: align host flags with managed GNU header isolation
speak-agent Oct 7, 2026
553861c
fix: keep E2E registry paths out of GCC prefix controls
speak-agent Oct 7, 2026
6612505
test: verify native GCC mappings and retain ARM64 ELF link evidence
speak-agent Oct 7, 2026
b67e928
fix: keep the explicit ELF unwinder selection self-contained
speak-agent Oct 7, 2026
5a0d70e
fix: align ARM64 host std modules with compiler runtime selection
speak-agent Oct 8, 2026
cd6d44b
test: attest native ARM64 GNU and openkal acceptance
speak-agent Oct 8, 2026
a6cecdb
test: verify hosted openkal thread isolation and teardown
speak-agent Oct 8, 2026
daa3aab
test: keep hosted application fixture outside unit discovery
speak-agent Oct 8, 2026
3341ae5
test: normalize Windows hosted probe output paths
speak-agent Oct 8, 2026
8131ca3
test: consume indexed JSON in the openkal cross matrix
speak-agent Oct 8, 2026
0279594
test: preserve hosted probe source bytes across checkouts
speak-agent Oct 8, 2026
c976c70
fix: install the native CN sandbox backend by its package name
speak-agent Oct 8, 2026
2f70339
fix: install the published CN engine in global scope
speak-agent Oct 8, 2026
e862c65
test: accept LLVM spelling of the native ARM GNU identity
speak-agent Oct 8, 2026
3d90198
test: declare the measured four-host LLVM 23.1.3 matrix
speak-agent Oct 8, 2026
67ab1dd
ci: supply openkal test tools through xlings
speak-agent Oct 8, 2026
c6dca54
ci: execute the registered RISC-V emulator shim
speak-agent Oct 8, 2026
99b0335
probe: i686-windows-msvc import std with llvm 23.1.3 and 22.1.8, and …
Sunrisepeak Oct 8, 2026
eb999b6
probe: give the custom i686 triple its section; add the empty-section…
Sunrisepeak Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
385 changes: 385 additions & 0 deletions .agents/docs/2026-10-07-llvm-2313-unified-default-cross-repo-design.md

Large diffs are not rendered by default.

Large diffs are not rendered by default.

735 changes: 735 additions & 0 deletions .agents/docs/2026-10-08-llvm-2313-part2-execution-and-dependencies.md

Large diffs are not rendered by default.

11 changes: 10 additions & 1 deletion .agents/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ superseded_by: 2026-09-07-....md # when status is superseded
---
```

327 records.
330 records.

## By subject

Expand Down Expand Up @@ -95,6 +95,12 @@ Records that declare one. Everything else is listed by date below.
- [SDK toolchains, the payload/engine seam, and openkal across iOS, Android and Web](2026-09-11-sdk-toolchains-and-ios-local-verification.md) — landed
- [Where a platform's knowledge belongs: iOS, Android and Web across the engine, the index and the plugins](2026-09-11-platform-targets-design-review.md) — active

### toolchain

- [LLVM 23.1.3 Part 2:任务依赖与生态交付记录](2026-10-08-llvm-2313-part2-execution-and-dependencies.md) — active
- [LLVM 23.1.3 Part 2:Linux aarch64 默认工具链与 glibc 生态闭环](2026-10-08-llvm-2313-linux-aarch64-ecosystem-part2-design.md) — active
- [LLVM 23.1.3 全平台统一默认:跨仓库联动方案(mcpp × xim-pkgindex)](2026-10-07-llvm-2313-unified-default-cross-repo-design.md) — active

### triage

- [Eight reports after 2026.9.27.1: what each one is, where it belongs, and one optimisation plan](2026-09-27-eight-reports-by-home-and-one-optimisation-plan.md) — active
Expand All @@ -118,6 +124,9 @@ Records that declare one. Everything else is listed by date below.

### 2026-10

- [LLVM 23.1.3 Part 2:任务依赖与生态交付记录](2026-10-08-llvm-2313-part2-execution-and-dependencies.md) — active
- [LLVM 23.1.3 Part 2:Linux aarch64 默认工具链与 glibc 生态闭环](2026-10-08-llvm-2313-linux-aarch64-ecosystem-part2-design.md) — active
- [LLVM 23.1.3 全平台统一默认:跨仓库联动方案(mcpp × xim-pkgindex)](2026-10-07-llvm-2313-unified-default-cross-repo-design.md) — active
- [2026.10.5.3 发布方案:32 位 x86 的架构词汇、资源编译器的识别与增量(#776 后续)](2026-10-06-windows-x86-arch-vocabulary-and-rc-follow-ups-design.md) — active
- [下一个版本的发布方案:标准库模块、原生 MSVC LTO 与导出发现、共享库的链接配置、Windows 参数引号(#768 后续、#770、#771)](2026-10-05-std-module-pair-msvc-lto-and-export-discovery-design.md) — active
- [`mcpp run` hands the terminal to the program, and the follow-ups of #761, #763 and #765 (#766)](2026-10-05-run-terminal-handoff-and-766-follow-ups-design.md) — landed
Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# The cross-host admission compares the exact source bytes compiled by each host.
tests/fixtures/openkal-hosted-threads/src/main.cpp.in text eol=lf
2 changes: 1 addition & 1 deletion .github/actions/bootstrap-mcpp/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ inputs:
# `package.name`, so one of the two was simply unreachable — and which one
# depended on the machine, which is why CI failed on `compat:lua` on
# Windows and `mcpplibs.capi:lua` on Linux. Never pin below that.
default: '2026.9.30.1'
default: '2026.10.8.1'

outputs:
sandbox-key:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/setup-macos-llvm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ inputs:
# Floor imposed by the index, not a routine bump — see
# .github/actions/bootstrap-mcpp/action.yml for why 0.4.69 is required
# (two packages named `lua` in one repo need openxlings/xlings#381).
default: '2026.9.30.1'
default: '2026.10.8.1'
image:
description: >
The runner label the job runs on (macos-15, xcode-27). It is part of the
Expand Down Expand Up @@ -72,7 +72,7 @@ runs:
# latest-first: test binaries now link the toolchain's own libc++
# (A1 root fix in flags.cppm), so new llvm releases are
# self-consistent — the macOS job is the proof for each new default.
xlings install llvm -y || xlings install llvm@20.1.7 -y
xlings install llvm@23.1.3 -y || xlings install llvm -y
LLVM_ROOT=$(find "$HOME/.xlings" -path "*/xpkgs/xim-x-llvm/*/bin/clang++" | head -1 | xargs dirname | xargs dirname)
ls "$LLVM_ROOT/bin/clang++"
"$LLVM_ROOT/bin/clang++" --version
Expand Down
13 changes: 13 additions & 0 deletions .github/actions/use-built-mcpp/use.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,19 @@ fi
# The toolchain mcpp.toml names for this host is the one the build used, so it
# is the one whose payloads hold the binary's runtime.
manifest_toolchain() {
# Native ARM64 overrides the platform-wide GCC pin. Consumers must install
# the same payload used by build.yml, including the first launch's runtime.
if [ "$host" = linux-aarch64 ]; then
local native
native="$(awk '
/^\[/ { in_tc = ($0 == "[target.aarch64-linux-gnu]"); next }
in_tc && $1 == "toolchain" { gsub(/"/, "", $3); print $3; exit }
' mcpp.toml)"
if [ -n "$native" ]; then
printf '%s\n' "$native"
return
fi
fi
local key
case "$host" in
macos-*) key=macos ;;
Expand Down
23 changes: 23 additions & 0 deletions .github/probe/stl_coroutine_facts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# TEMPORARY PROBE (do not merge): how the machine's MSVC STL guards its
# coroutine headers, and which headers of the std module depend on them.
# Prints; asserts nothing.
set -u
vswhere="/c/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe"
vs=$("$vswhere" -latest -products '*' -property installationPath | tr -d '\r')
vs=$(cygpath -u "$vs")
for tools in "$vs"/VC/Tools/MSVC/*; do
inc="$tools/include"; mods="$tools/modules"
echo "### toolset $(basename "$tools")"
echo "--- x86 libraries present:"; ls -d "$tools/lib/x86" 2>&1
echo "--- <coroutine> preprocessor lines:"
grep -nE '^\s*#\s*(if|ifdef|ifndef|elif|else|endif|error|define _COROUTINE_)|_EMIT_STL|__cpp_impl_coroutine' "$inc/coroutine" | head -40
echo "--- <generator> preprocessor lines:"
grep -nE '^\s*#\s*(if|ifdef|ifndef|elif|else|endif|error|define _GENERATOR_)|_EMIT_STL|__cpp_impl_coroutine|__cpp_lib_coroutine|include <coroutine>' "$inc/generator" | head -40
echo "--- yvals_core.h coroutine feature lines:"
grep -nE '__cpp_impl_coroutine|__cpp_lib_coroutine|__cpp_lib_generator' "$inc/yvals_core.h"
echo "--- std.ixx lines naming generator/coroutine (with the surrounding conditionals):"
grep -nE 'generator|coroutine|^\s*#\s*(if|elif|else|endif)' "$mods/std.ixx" | head -60
echo "--- STL headers that use coroutine_handle / suspend_always:"
grep -lE 'coroutine_handle|suspend_always' "$inc"/* 2>/dev/null | xargs -n1 basename
done
75 changes: 75 additions & 0 deletions .github/probe/x86_msvc_std_cases.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/usr/bin/env bash
# TEMPORARY PROBE (do not merge): `import std` on i686-windows-msvc with
# clang 23.1.3 and 22.1.8, mcpp built from the #781 head. Answers G1/G2 of
# .agents/reviews/2026-10-08-llvm-2313-part3-review-fixes-and-x86-msvc-coroutines-design.md.
# Prints; asserts nothing.
set -u
M="${MCPP_BUILT:?}"
W="$RUNNER_TEMP/x86-msvc-std"; mkdir -p "$W"
"$M" --version

# case <name> <target> <standard> <toolchain-table> <source-kind>
case_run() {
local name=$1 target=$2 std=$3 tc=$4 src=$5
local d="$W/$name"; rm -rf "$d"; mkdir -p "$d/src"; cd "$d"
printf '[package]\nname = "p"\nversion = "0.1.0"\nstandard = "%s"\n\n%s\n' "$std" "$tc" > mcpp.toml
case "$src" in
std) printf 'import std;\nint main() { std::println("std ok {}", sizeof(void*)); }\n' > src/main.cpp ;;
compat) printf 'import std.compat;\nint main() { std::printf("compat ok %%zu\\n", sizeof(void*)); }\n' > src/main.cpp ;;
std20) printf 'import std;\nint main() { std::cout << "std ok " << sizeof(void*) << "\\n"; }\n' > src/main.cpp ;;
coro) printf '#include <coroutine>\nstruct t { struct promise_type { t get_return_object() { return {}; } std::suspend_never initial_suspend() noexcept { return {}; } std::suspend_never final_suspend() noexcept { return {}; } void return_void() {} void unhandled_exception() {} }; };\nt f() { co_return; }\nint main() { f(); }\n' > src/main.cpp ;;
esac
echo; echo "################ $name target=$target standard=$std src=$src"
echo "--- mcpp.toml"; cat mcpp.toml
echo "--- build"
"$M" build --verbose --target "$target" > build.log 2>&1; local rc=$?
cat build.log; echo "build rc=$rc"
echo "--- lines naming generator / coroutine / __cpp_impl_coroutine:"
grep -nE 'generator|coroutine|__cpp_impl_coroutine' build.log | head -30
if [ $rc -eq 0 ]; then
local exe; exe=$(find target -type f -name 'p.exe' | head -1)
echo "--- run $exe"; "$exe"; echo "run rc=$?"
command -v file >/dev/null && file "$exe"
fi
}

# A custom triple needs its own section (measured in run 37791590252: without
# one, `--target i686-windows-msvc` is refused as an unknown target).
T23='[toolchain]
windows = "llvm@23.1.3"

[target.i686-windows-msvc]
toolchain = "llvm@23.1.3"'
TEMPTY='[toolchain]
windows = "llvm@23.1.3"

[target.i686-windows-msvc]'
T22i='[toolchain]
windows = "llvm@23.1.3"

[target.i686-windows-msvc]
toolchain = "llvm@22.1.8"'
T22x='[toolchain]
windows = "llvm@23.1.3"

[target.x86-windows-msvc]
toolchain = "llvm@22.1.8"'

# G1: the reported failure, and what the compiler says where.
case_run g1-23-cxx23-i686 i686-windows-msvc c++23 "$T23" std
# G2: C++20 on the same compiler and target.
case_run g2-23-cxx20-i686 i686-windows-msvc c++20 "$T23" std20
case_run g2-23-cxx20-i686-compat i686-windows-msvc c++20 "$T23" compat
# Using the coroutine library itself under C++20 (expected to be refused by the
# STL or the compiler; recorded for the documentation).
case_run g2-23-cxx20-i686-coro i686-windows-msvc c++20 "$T23" coro
# The section with nothing in it: what does a user who only names the triple get?
case_run g1-23-cxx23-i686-empty i686-windows-msvc c++23 "$TEMPTY" std
# Option (b) and G3 were measured in run 37791590252 (both build and run); not repeated.
exit 0
# Option (b): llvm 22.1.8 for this target only, in the spelling the note uses
# and in MSVC's x86 spelling.
case_run g1b-22-cxx23-i686 i686-windows-msvc c++23 "$T22i" std
case_run g1b-22-cxx23-x86 x86-windows-msvc c++23 "$T22x" std
# G3: the 64-bit row is unaffected.
case_run g3-23-cxx23-x64 x86_64-windows-msvc c++23 "$T23" std
2 changes: 1 addition & 1 deletion .github/tools/build_examples.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ BUILD=(
# Built here for one reason worth the cost: it is the only example whose
# CPU-only configuration exercises `cfg(accelerator = "none")` and two rule
# packages in one build program, and both of those are engine paths that a
# description cannot cover. Its `[toolchain] default = "llvm@22.1.8"` means
# description cannot cover. Its `[toolchain] default = "llvm@23.1.3"` means
# this job installs an LLVM payload it otherwise would not -- the CUDA leg
# takes the clang route, because the nvcc route on the 12.9 line is refused
# by nvcc's own front end and the 13.x line raises the driver floor to r580.
Expand Down
39 changes: 0 additions & 39 deletions .github/tools/check_aarch64_llvm_deferral.sh

This file was deleted.

Loading
Loading