A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/adrianoc/cecilifier below:

adrianoc/cecilifier: A tool aiming to make it a little bit easier to learn Mono.Cecil

Cecilifier is a tool meant to make it easier to learn how to use Mono.Cecil a library used to manipulate MS IL. It was developed after the idea of asmifier. You can read more details about it in its announcement blog.

You can use it live in this site.

Feel free to send comments, issues, PR, etc; I cannot promise I'll be responsive but I'll do my best.

Cecilifier is licensed under MIT license.

Orthogonal to these options, after you Cecilifier some code you can create a project and debug the generated code to get more insight about how Mono.Cecil works.

In order to build it you need at least .Net Core SDK 5.0

You can run the website locally by typing:

cd Cecilifier.Web

dotnet run

Then you can open a browser at http://localhost:5000 (notice that https will not work locally)

First, and most importantly, tests should be self contained, clearly describing what they are testing and run quickly (unfortunately it is very likely that some of the existing tests does not meet this criteria, but nevertheless, we should strive to ;)

There are basically 2 types of tests ...

These resembles tradicional Unit tests, at least from performance characteristics. They can be found in this folder and work by cecilifying some code and asserting the cecilified code for expected patterns.

These tests work basically taking a snippet of code, Cecilifying it (generating the Mono.Cecil API calls to produce an assembly equivalent to the compiled snippet), compiling it, and finally either comparing the two assemblies or comparing the generated IL for some method with the expected output as in this example.

	graph TD;
		Snippet-->Compile;
		Snippet-->Cecilify([Cecilify]);
		Compile-->Assembly;
		Assembly-->CompAssemblies;
		Cecilify-->CompCecilified[Compile Cecilified];
		CompCecilified-->RunCecilified[Run Cecilified];
		RunCecilified-->|outputs|CecilifiedAssembly[Cecilified Assembly]
		CecilifiedAssembly-->CompAssemblies[Compare Assemblies]
Loading

Ideally all tests in this category should use the assembly comparison approach (as opposed to forcing developers to store the expected IL) but in some cases the comparison code would became too complex and in such cases I think it is ok to store the expected IL (anyway, I try to minimize the number of such tests).

If you hit a problem and you think it is an issue/bug in the code please follow the steps to report it:

Including a failing test/snippet is the best way to ensure the processing of the issue will happen as quick as possible and avoid any unnecessary delays.

If you have any questions, suggestions or comments, feel free to join our discord channel at https://discord.gg/7P2sCk9 (I cannot guarantee that I'll be responsive but I'll do my best).

You can also reach me through Mastodon @adrianoverona

I'd like to thank JetBrains for donating me a Rider license.

This project is tested with BrowserStack


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4