Skip to content
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

Rename and refactor for XamlX structure and layering. #11

Closed
wants to merge 1 commit into from
Closed

Rename and refactor for XamlX structure and layering. #11

wants to merge 1 commit into from

Conversation

jkoritzinsky
Copy link
Collaborator

Rename XamlIL -> XamlX. Refactor out base classes for the compilers for 3 built-in compiler types, declarative, imperative, and IL (each builds on previous). Make the backend generic on the "raw" emitter and the result type returned by the node emitters.

Keep support for implementing emit for specific backends on the node types themselves while also supporting using emitter objects exclusively.

Contributes to #8.

Targets the history-rewritten xamlx-rename branch. Superscedes #10

cc: @kekekeks

@kekekeks
Copy link
Owner

kekekeks commented Feb 9, 2020

Why are we removing the 'X' postfix? Originally it was intended to differentiate between XAML engines. I'd rather avoid name clashes between IXamlXType and IXamlType. It's compiler internal anyway, so we don't have to worry about the XAML engine name leaking to the user-facing API.

It also seems to be a plain find/replace since it affects even xmlns urls and benchmark names.

@jkoritzinsky
Copy link
Collaborator Author

My thought was that we already have namespaces differentiating the types so we don’t need to also differentiate the type in the name.

@kekekeks
Copy link
Owner

kekekeks commented Feb 9, 2020

Another git filter-branch it is then. I'll do a script to rename each type individually, I think.

@kekekeks
Copy link
Owner

Branch with updated history rewrite is here - https://github.com/kekekeks/XamlIl/tree/xamlx-rename2

I don't think we need to rename anything else.

You can find your current PR rebased on top of that branch in this commit (cherry-pick it or something).

@kekekeks
Copy link
Owner

Also, the current PR doesn't build because ILEmitContext doesn't implement LoadLocalValue.

@kekekeks
Copy link
Owner

Also, != default no longer works with generic type parameters in C# 9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants