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
host-module BMI reaches cl.exe in clang's name=path spelling under windows = "msvc@system" (C1083) #604
With [toolchain] windows = "msvc@system", a package that has a host-module
build-dependency fails while compiling the build program:
error: host module 'huxerui.rules' compile failed (exit 2):
c1xx: fatal error C1083: Cannot open source file:
'huxerui.rules.sources=D:\a\HuxerUI\HuxerUI\target\.build-mcpp\huxerui.rules.sources.ifc':
No such file or directory
cl.exe is reading huxerui.rules.sources=<path>.ifc as a source file
name. That string is clang's spelling of a module reference
(-fmodule-file=<name>=<path>); MSVC takes /reference <name>=<path> as two
arguments, and /reference is absent here.
The same package builds with mcpp's default Windows toolchain (clang targeting x86_64-pc-windows-msvc) and on Linux and macOS.
So the failing edge is the inner one: huxerui.rules is compiled with a
reference to huxerui.rules.sources, and that reference reaches cl.exe in
clang's syntax.
Selected with mcpp toolchain default msvc@system equivalent (manifest key)
Why it matters here
msvc@system is the way to reach import std; at c++20 on Windows while #603 stands, and it is also the compiler the project's other
build system (CMake) uses, so selecting it would make the two agree. Both
motivations are blocked by this.
An earlier attempt on 2026.9.8.1 failed the same way at link rather than at
compile (LNK1104: cannot open file 'huxerui.rules=...ifc'), so the mis-spelled
reference appears on more than one command line.
Fixed in #607, released in 2026.9.11.2. Host-module flags are appended verbatim, so MSVC's two-token /reference <name>=<path> keeps its switch. mcpp::toolchain::orphaned_reference also refuses a reference whose switch is missing, before the command runs. Confirmed on main at c688fca in src/toolchain/hostflags.cppm and src/build/build_program.cppm. This fix was verified on the default clang toolchain; please reopen if the nested host-module case still fails under windows = "msvc@system".
Activity
feat(mcpp): pin the examples to c++23, and report why they have to
feat(mcpp): pin the examples to c++23, and report why they have to
docs(triage): six open issues, and where three of the reports are wro…
fix(scanner, host modules, toolchain, config, bench): five open issue…
Five open issues, three of them misdiagnosed by their reports, and st…
Sunrisepeak commentedon Sep 11, 2026
Fixed in #607, released in 2026.9.11.2. Host-module flags are appended verbatim, so MSVC's two-token
/reference <name>=<path>keeps its switch.mcpp::toolchain::orphaned_referencealso refuses a reference whose switch is missing, before the command runs. Confirmed on main at c688fca insrc/toolchain/hostflags.cppmandsrc/build/build_program.cppm. This fix was verified on the default clang toolchain; please reopen if the nested host-module case still fails underwindows = "msvc@system".