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
Fixed by openxlings/xlings#613, released as xlings 2026.9.26.2, and by #698, released as mcpp 2026.9.26.1 (commit f61b46632), which bundles that xlings. This issue closed automatically when #698 merged; this note records what changed.
The silent 0xC0000409 came from the xlings shim in front of mcpp.exe: it threw during start-up in a directory outside the ANSI code page and had no exception boundary. mcpp.exe itself printed its version (measured on windows-latest, ACP 1252, through the temporary PR #697). Behind it was a larger defect the report did not reach: with the project or the mcpp home under a non-ASCII name, every build failed with an internal exception, including names the ANSI code page can represent.
The fix is one text model, UTF-8 throughout:
xlings.exe and mcpp.exe declare activeCodePage UTF-8 in an embedded manifest, and xlings's main has an exception boundary.
Build programs carry the same manifest, and so do host tools built for the graph by default; a target chooses with windows_code_page = "utf-8" | "legacy", and a manifest the package embeds itself takes precedence.
Response files for the MSVC tools begin with a UTF-8 byte-order mark, because cl.exe, link.exe and lib.exe read a response file without one as ANSI (measured).
A path with no UTF-8 spelling is refused by name where it is the project or the mcpp home, and skipped and reported where it is a file inside a project. On a Windows host that ignores the manifest, the diagnostic names the process code page.
Criteria: Windows CI builds every toolchain row in non-ASCII project directories (.github/tools/check_unicode_paths.sh), and tests/e2e/776_a_path_with_no_utf8_spelling_is_named.sh fails on 2026.9.25.1 and passes on 2026.9.26.1. The released mcpp.exe and its bundled xlings.exe both carry the manifest, read from the release archive.
Activity
2026.9.26.1: paths in UTF-8, a C standard per package, a graph link w…
docs: #693-#696 records landed, with the release and ecosystem readin…
speak-agent commentedon Sep 25, 2026
Fixed by openxlings/xlings#613, released as xlings 2026.9.26.2, and by #698, released as mcpp 2026.9.26.1 (commit
f61b46632), which bundles that xlings. This issue closed automatically when #698 merged; this note records what changed.The silent
0xC0000409came from the xlings shim in front ofmcpp.exe: it threw during start-up in a directory outside the ANSI code page and had no exception boundary.mcpp.exeitself printed its version (measured onwindows-latest, ACP 1252, through the temporary PR #697). Behind it was a larger defect the report did not reach: with the project or the mcpp home under a non-ASCII name, every build failed with an internal exception, including names the ANSI code page can represent.The fix is one text model, UTF-8 throughout:
xlings.exeandmcpp.exedeclareactiveCodePageUTF-8 in an embedded manifest, and xlings'smainhas an exception boundary.windows_code_page = "utf-8" | "legacy", and a manifest the package embeds itself takes precedence.cl.exe,link.exeandlib.exeread a response file without one as ANSI (measured).Criteria: Windows CI builds every toolchain row in non-ASCII project directories (
.github/tools/check_unicode_paths.sh), andtests/e2e/776_a_path_with_no_utf8_spelling_is_named.shfails on 2026.9.25.1 and passes on 2026.9.26.1. The releasedmcpp.exeand its bundledxlings.exeboth carry the manifest, read from the release archive.Update with
xlings update mcpp -y.Record:
.agents/docs/2026-09-25-issues-693-696-triage-and-repair-plan.md§6.