Comments (8)
Existing options
- https://github.com/drewnoakes/il-visualizer
- https://github.com/bartdesmet/ExpressionFutures/tree/master/CSharpExpressions/Tests.Microsoft.CodeAnalysis.CSharp.Helpers/ILVisualizer
- https://github.com/longda/roslyn/tree/89169a3380e48fc834c72e38355867881d030e94/Src/Test/PdbUtilities/Metadata
from fastexpressioncompiler.
Ok, it was a lot of words. What exactly should we do:
- Output the IL for fast compiled delegate.
- Output the IL for normally compiled delegate.
- If possible output target Asm for both.
- IL output obviously should not affect compilation performance.
from fastexpressioncompiler.
Here is working IL Visualizer for VS 2017: https://github.com/dadhi/il-visualizer
from fastexpressioncompiler.
The produced IL is the same :)
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: add
IL_0003: ret
Therefore the difference in calling the delegate.
I have an idea to test 3 parameters delegate with first empty Closure argument instead of static delegate with 2 parameters.
from fastexpressioncompiler.
https://en.wikipedia.org/wiki/List_of_CIL_instructions
from fastexpressioncompiler.
2017 support https://github.com/drewnoakes/il-visualizer merged into main repository. So may star and use only that. It seems nice helper to add into contibuting
part of readme. bartdesmet does intresting work regarding expression so.
from fastexpressioncompiler.
Yep, I was also thinking to add it to readme, time-saver for me, especially in debug.
from fastexpressioncompiler.
The new diagnostics instruments available from the TestTools
class:
PrintIL()
PrintCSharpString()
AssertOpCodes()
from fastexpressioncompiler.
Related Issues (20)
- EmitCall is for the varargs method and should not be used for normal convention
- Is it possible to implement ref local variables? HOT 11
- InvalidProgramException on compiling an expression that returns a record which implements IList HOT 4
- Make cast to target type controlled in config flags instead for diagnostics HOT 1
- Error when loading struct parameters closed by the nested lambda e.g. predicate in Linq
- Optimize nested lambdas with closures
- Hack DynamicMethod HOT 9
- xxxAssign doesn't work with MemberAccess HOT 2
- NullReferenceException when calling CompileFast() results HOT 4
- Error with converting to/from signed/unsigned integers HOT 6
- Invalid program exception HOT 8
- Improve the performance of variable lookup HOT 1
- Add RequiresUnreferencedCode attribute to types HOT 1
- Add support for up to 16 parameter Func<>/Action<> to LightExpression HOT 1
- Working with ref return values HOT 2
- FastExpressionCompiler[v3.3.4] gives incorrect results in some linq operations HOT 3
- Better diagnostics and debugging with error codes from Collect and Compile rounds HOT 2
- Fix duplicate nested lambda compilation HOT 1
- Decrease memory occupied by the LightExpression Block by storing Expression in SmallList (partly on stack) HOT 1
- Optimize any nested lambda compilation (LINQ) by compiling right after collect one-by-one HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastexpressioncompiler.