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

November 2024 Update (v 2.16) #321

Merged
merged 32 commits into from
Nov 5, 2024
Merged

November 2024 Update (v 2.16) #321

merged 32 commits into from
Nov 5, 2024

Conversation

adrianoc
Copy link
Owner

@adrianoc adrianoc commented Nov 5, 2024

c29ca42 fix Cecilifier.Web.csproj after monaco editor update
801cdad removes non relevant TODO (#303)
f431936 ensure that tests recompile cecilified code whenever the cecilified code or any of its dependencies changes
f491a64 includes public fields in synthetic PrintMembers() method on records (#303)
9934ca0 fixes field access on generic type generating invalid field reference
edfd79b improve assembly comparison code (#303)
27adf08 avoid instantiating visitor for each type processed
033a613 simplified project compression code (#303)
7c82937 updates monaco editor to 0.52.0
e0cf06f displays .NET version in the 'about' section
171acf8 updates Dockerfile to use nightly builds of .NET (used to test new versions of .NET)
c8b2e21 takes parameter types into account during method resolution (#303)
4e70b33 fixes assignment of value types in instance methods (#303)
bd4879a addressed stackalloc with size specified through property/local variable/parameter (#303)
5c3430e fixes pointer to pointer assignment emitting Stind instruction instead of plain stloc/starg/stfld/etc (#303)
c3d1d8c improves workflow when assembly comparison code throws exceptions
24e115e removes some code duplication in the area of conversion application (#303)
5704e96 use top level statements in test (#303)
591ebe1 bumps version to 2.16.0

... and a lot of TODO cleanups:

1167133 removes outdated TODO (#303)
23a6c13 replaces TODO with issue #312 (#303)
dbc8faa code cleanup
7d37efa removes misleading TODO (#303)
8fee84f removes outdated TODO regarding method attributes on synthetic methods (#303)
251c1ce removes misleading TODO (#303)
932d97b removes TODO regarding coverage of type syntaxes and adds clarifying comment (#303)
c1a0776 replaced TODO regardint tuple handling with existing issue #93 (#303)
744e98c replaced TODO regarding attribute handling with issue #311 (#303)
21790e9 removes unclear TODO + adds a couple of tests to improve coverage (#303)
f5fc600 converted TODO from code to issue #309 (#303)
987b2a5 removes stale, incorrect TODO and cleans up the code (#303)
16c791d removed outdated TODO (#303)

This TODO mentions checking missing types but the code seems to be handling this scenario
in [line 107](https://github.com/adrianoc/cecilifier/blob/main/Cecilifier.Core.Tests/Framework/AssemblyDiff/AssemblyComparer.cs#L107)
In this case I think introducing a constant would only make the code less readable
#303)

the comment mentions abstract static methods from interfaces but the method in question should only
be used while emitting synthetic methods (for instance, Add/Remove for events, get_/set_/etc for
properties, etc) and in these scenarios we probably don´t support abstract static methods.
the comment claims that Equals(RecordType) overload should not have 'MethodAttributes.NewSlot' applied but
it seems it is not the case (the compiler does add this attribute)
Also uses right parameter attributes instead of hardcoded None
…ode or any of its dependencies changes

the previous logic was wrong and we were recompiling the cecilified code whenever Cecilifier.Core assembly (and not when Cecilifier.Runtime) changed
This is bad since relevant changes from core will reflect in the cecilified code so we don't nedd to track changes in the core assembly itself; by the
other hand, changes in Cecilifier.Runtime were not taken into account and those changes can change the behavior of the cecilified code; also, non
relevant changes in Cecilifier.Core (like, changes that does not change the generated code) would still force recompilation of the cecilified code
slowiing down tests
TODO was questioning whether it would make sense to register a variable definition; it may or may not
improve the generated code quality but the method in question is only being used to handle events
add/remove methods so it does not worth investigating it.
@adrianoc adrianoc merged commit 8415fcf into main Nov 5, 2024
1 check passed
@adrianoc adrianoc deleted the staging branch November 5, 2024 21:49
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.

1 participant