microsoft / microsoft/CsWin32

Allow defining intended scope of AnyCPU

Open
#366 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
2.5k
Forks
124
Avg merge
1d 3h
Merged PRs (30d)
9

Description

Inferring that Pack=4 on x86 when there is no explicit packing sounds reasonable to me.

That being said, it seems odd to me that if the metadata adds support for more architectures, it could mean that CsWin32 could suddenly lose more types for AnyCpu projects. It feels weird that coverage of CsWin32 depends on the metadata having "less coverage" of various architectures.

One way CsWin32 could mitigate this would be to allow AnyCpu projects to specify a set of architectures it will actually support. This way if the metadata adds support for architecture X, AnyCpu projects won't suddenly lose some of the API because architecture X has some weird one-off definitions. I think this extra option would allow CsWin32 to cover these 3 main use cases:

  1. Use Cpu-Specific to get access to full API
  2. Use AnyCpu with limited Architecture set to get access to the api that is common to all supported architectures
  3. Use AnyCpu with no limits on architectures to get the truly common API for everything that metadata supports

Originally posted by @marler8997 in https://github.com/microsoft/win32metadata/issues/613#issuecomment-901320613

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

No files, tests, or entry points are named. Start by tracing how CsWin32 determines architecture coverage for AnyCPU projects and how project options are represented; done means an AnyCPU project can explicitly select its supported architectures without unexpectedly losing APIs.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
operating-systems, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.