microsoft / microsoft/calculator
Develop a minimal repro for coroutine issues and remove workarounds
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 31.1k
- Forks
- 5.8k
- PR merge metrics
- No merged PRs in 30d
Description
In several places in Calculator, we disable optimizations to work around bugs in the compiler related to coroutines. Some of these workarounds might no longer be needed (since some bugs have been fixed) while others might be hiding still-unresolved issues that need to be fixed in the compiler.
For every instance where we've disabled optimizations (starting with the one which seems to be new in VS2019) we should produce a minimal repro case which we can send to the C++ team.
Contributor guide
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 the disabled-optimization instance in the PR 548 comment, then inspect ConversionResultTaskHelper.cpp and CurrencyDataLoader.cpp at the linked locations. Reproduce each coroutine-related workaround, create a minimal case suitable for the C++ team, and verify whether the workaround can be removed or the compiler issue still occurs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100