support analyzing diffs for framework or assembly changes

Open
#197 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

Start by reading the existing jit-diff and jit-analyze workflows shown in the issue, including --pmi, --diff, --assembly, -t, --base, and --diff. Determine how framework or assembly changes, especially alternate corelib copies, would be represented. Done would include a defined workflow for comparing changed assemblies and clear handling or scope for mismatches, per-assembly summaries, and generic instantiation analysis.

Written by the indexing model from the issue text.

Description

Would be nice to generalize what we have for jit diffs to handle cases where the framework (or some assembly) has changes. This is somewhat doable today, but clunky:

jit-diff diff --pmi --diff --assembly a/x.dll -t a
jit-diff diff --pmi --diff --assembly b/x.dll -t b
jit-analyze --base bin/diffs/a/diff --diff bin/diffs/b/diff

Though for corelib it is more involved as we currently can't load a different copy of corelib (perhaps solvable with assembly load contexts?).

Analysis may need tweaking since we will see more mismatches in methods. And we might want to publish overall per-assembly summary data.

Would also be nice if via reflection we could enumerate all instantiations of generics, so that the analysis also highlight refactoring that increases or reduces the net amount of instantiation needed. My understanding is that this is not possible today.

Dominant language
C#
Stars
161
Forks
69
Avg merge
1h 56m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

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.

More from dotnet/jitutils

All issues in dotnet/jitutils

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.