-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Initial scaffolding and partial implementation of ilasm in C# #122112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…l representation we can construct a metadata image from.
…concepts (and some easy cases to knock out now)
…reprocessor. Add some basic tests for the preprocessor
…iversal/easier to use
…ods that we can't implement E2E due to SRM limitations (found some!)
… the MetadataBuilder (including methods).
…efs when possible, correctly handle MethodRefSig scenarios.
…iling) unit test.
I think we can continue the discussion in #121847. Since the metadata reader is expected to be replaced by DNMD, the precondition can change here. |
Yes, it is the idea.
I do not mind with losing this. We actually reached a point where it tends to be easier to prototype new functionality like that in NAOT first. NAOT uses managed System.Reflection.Metadata.
This is not a committed plan. (If we were to do this, it needs to come with measurable user-observable improvements and it needs to replace the existing metadata reader completely.) |
…yet to be exposed.
…lishAot=true, not the backing library (like how we do for crossgen2 and ilc). Mark as IsShipping=false until we are actually ready to ship this.
|
Marking this as ready-for-review as I've done some cleanup and I think this is in a decent state to be experimental in main. |
jkotas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is hard to review a code bomb like this in details. I have only done a cursory review. LGTM
MichalStrehovsky
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
![]()
|
I apologize for the code bomb. My initial intention of finishing this project as a holiday hackathon a few years back and breaking out the work into multiple (more manageable) PRs didn't exactly work out. |
|
/ba-g unrelated timeout in threading tests. |
Start an implementation of ilasm in C# in src/tools/ilasm. ANTLR4 is used to build the grammar.
I decided to structure it as a library (with a frontend to come later) to match ILVerify/ILVerification.
This implementation is far from complete. The grammar is missing any updates from the last year or two and much is untested and unimplemented.
It has one passing test for a simple case so far.
Putting out a PR now so other team members and community members can work on it.
Contributes to #121847