Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for C++ modules IFC version 0.43 #10843

Closed
smilediver opened this issue Apr 20, 2023 · 8 comments
Closed

Add support for C++ modules IFC version 0.43 #10843

smilediver opened this issue Apr 20, 2023 · 8 comments
Labels
enhancement Improvement to an existing feature fixed Check the Milestone for the release in which the fix is or will be available. Language Service modules Visual Studio Inherited from Visual Studio
Projects
Milestone

Comments

@smilediver
Copy link

Environment

  • OS and Version: Windows 22621.1555
  • VS Code Version: 1.77.3
  • C/C++ Extension Version: v1.14.5

Bug Summary and Steps to Reproduce

Same issue as in #9884, just for new IFC version 0.43

Configuration and Logs

-

Other Extensions

No response

Additional context

No response

@michelleangela michelleangela added Language Service enhancement Improvement to an existing feature labels Apr 20, 2023
@sean-mcmanus sean-mcmanus added this to the Tracking milestone Apr 20, 2023
@sean-mcmanus sean-mcmanus added the Visual Studio Inherited from Visual Studio label Apr 20, 2023
@sean-mcmanus
Copy link
Collaborator

VS hasn't added this support yet, so we'll get this soon after they add it.

@MathiasMagnus
Copy link

MathiasMagnus commented Dec 7, 2023

@sean-mcmanus Having followed the evolution of modules via talks and blog posts I did anticipate some extra friction regarding binary module interfaces, but mostly from a cross-compiler compatibility perspective. Until modules we only needed to care about binary/link compatibility, but now also about BMI compatibility.

I would've never imagined to hit this limit on the stable branch of a vendor wrt. their own tooling. On the VS Insider/Preview channel maybe, but not on stable. A user upgrading their toolchain and losing IntelliSense is terrible UX. I would suggest the VS team considering to delay releases until the IntelliSense engine catches up to the IFC format of the bundled compiler. If modules had more widespread adoption, such a fallout would anger quite some folks.

Minimally if there exists a flag to tell the compiler to emit an older version of the IFC, document that please as an escape hatch.

@bobbrow
Copy link
Member

bobbrow commented Dec 7, 2023

Are you reporting a problem with VS or VS Code? Please note that modules are not officially supported in VS Code (#6302).

VS should be able to deal with the difference between 0.42 in IntelliSense and 0.43 in the compiler because it manages the modules in a special way. But still, the modules support in IntelliSense for VS has a ways to go. We should be getting the 0.43 update from EDG this month and hopefully other fixes.

@MathiasMagnus
Copy link

@bobbrow I am working in VS Code.

  • Latest VS Code
  • Latest cpptools
  • Latest cmake-tools
  • Latest CMake
  • Latest MSVC Build Tools
  • Project uses CMake presets and Ninja Multi-Config

If it's not officially supported, than please disregard my comment on release schedules. I am developing a C API wrapper in C++23 and I was looking to maybe not just develop as an ordinary header then wrap it with a module interface, but perhaps also develop it as a module with IntelliSense. I guess the tooling isn't there yet and it wasn't just CMake 3.28 that needed landing but we also need to wait a few cpptools releases.

@bobbrow bobbrow added the modules label Dec 8, 2023
@bobbrow bobbrow added this to Triage in 1.20 via automation Feb 28, 2024
@sean-mcmanus sean-mcmanus moved this from Triage to Pull Request in 1.20 Mar 20, 2024
@sean-mcmanus sean-mcmanus modified the milestones: Tracking, 1.20.0 Mar 25, 2024
@sean-mcmanus sean-mcmanus moved this from Pull Request to Done in 1.20 Mar 25, 2024
@sean-mcmanus sean-mcmanus added the fixed Check the Milestone for the release in which the fix is or will be available. label Mar 25, 2024
@sean-mcmanus
Copy link
Collaborator

@smilediver Fixed with https://github.com/microsoft/vscode-cpptools/releases/tag/v1.20.0

@GGsrvg
Copy link

GGsrvg commented Mar 28, 2024

I created a project for testing modules https://github.com/GGsrvg/tModule.

It works, but IntelliSense shows me an error like "could not find module file for module "ttt.Anchor"C/C++""
These errors are confusing
Clean and rebuild didn't help

VSCode: 1.87.2
Extensions
C/C++: 1.20.0 (pre-release)
CMakeTools: 1.18.15 (pre-release)

Clang: 17.0.6

image

@bobbrow
Copy link
Member

bobbrow commented Mar 28, 2024

@GGsrvg, we don't have full modules support in the C++ extension yet. It is being tracked with issue #6302. It is possible to get it working with some caveats, but it requires the Visual Studio compiler right now. A guide to configuring can be found here: #6302 (comment)

@GGsrvg
Copy link

GGsrvg commented Mar 29, 2024

@bobbrow thanks for your comment. Oh I use mac

@github-actions github-actions bot locked and limited conversation to collaborators May 13, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement Improvement to an existing feature fixed Check the Milestone for the release in which the fix is or will be available. Language Service modules Visual Studio Inherited from Visual Studio
Projects
No open projects
1.20
Done
Development

No branches or pull requests

6 participants