microsoft / microsoft/WindowsAppSDK
Please change the definitions in winrt/Microsoft.UI.Interop.h from internal linkage to inline
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 4.7k
- Forks
- 471
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 28
Description
I am one of the authors of the [C++/WinRT 3.0 C++ module](https://github.com/microsoft/cppwinrt/pull/1575). The current NuGet package Microsoft.WindowsAppSDK.InteractiveExperiences.2.0.13 provides a winrt/Microsoft.UI.Interop.h that uses internal linkage rather than inline. This causes every translation unit that consumes it to redundantly emit its own definitions, increasing binary size and And prevents modules from exporting these functions. Furthermore, since it is not open source, I am legally prohibited from studying its implementation. These two issues combined prevent me from modularizing it. Switching from internal linkage to inline would not constitute a breaking change for WAS.
For reference, UCRT once declared functions with internal linkage, which prevented the STL from being modularized https://github.com/microsoft/STL/pull/5805. The bug report for this can be found at https://developercommunity.visualstudio.com/t/Visual-Studio-cant-find-time-function/1126857.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with winrt/Microsoft.UI.Interop.h from the Microsoft.WindowsAppSDK.InteractiveExperiences.2.0.13 NuGet package and determine where its definitions are produced. The issue is done when those definitions use inline rather than internal linkage without introducing a breaking change for WAS; the implementation is not open source, so maintainer guidance may be needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100