dotnet / dotnet/runtime

Consider to rewrite ILasm/ILdasm in C#

Open
#121,847 21 comments 0 reactions 0 assignees View on GitHub
area-ILTools-coreclr
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

During the cleanup of PAL simulated I/O functions, ILasm/ILdasm are the remaining components that using them heavily. The codebase of these tools are already quite a mess that written in ancient style (C++ 9x). It appears that a complete rewrite can provide more benefit and clean up more utility code.

The benefits for using native code instead of managed code:
- Better support for source-build bootstrapping
- Use the same loading/emit code of runtime (DNMD in the future)

The plan is to rewrite one first (probably ildasm) and test round-tripping with counterpart of old version.

@jkotas @jkoritzinsky @AaronRobinsonMSFT Any thoughts? Do you think it's better to use native code or managed code?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.