microsoft / microsoft/calculator

Develop a minimal repro for coroutine issues and remove workarounds

Open
#560 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

approved codebase quality Pri: 2
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.