FastExpressionCompiler.src 3.2.2
FastExpressionCompiler is 10-40x times faster than Expression.Compile()
Showing the top 20 packages that depend on FastExpressionCompiler.src.
Packages | Downloads |
---|---|
Parlot
Parlot is a fast, lightweight and simple to use .NET parser combinator.
|
1 |
## v3.2.2 Bug-fix release
- fixed: #284 Invalid Program after Coalesce
- fixed: #308 Wrong delegate type returned (with closure)
- fixed: #310 InvalidProgramException when nullable result is ignored
- fixed: #316 in parameter
- fixed: #319 NRE in IndexExpression.get_ArgumentCount
- fixed: #320 "Bad label content in ILGenerator" when creating through DynamicModule
- fixed: #321 Call with out parameter to field type that is not value type fails
## v3.2.1 Bug-fix release
- fixed: #307 Switch with fall through throws "System.InvalidProgramException: 'Common Language Runtime detected an invalid program.'"
## v3.2.0 Bug-fix and optimization release
- fixed: #305 CompileFast generates incorrect code with arrays and printing
- fixed: added missing Expression.MakeCatchBlock
- optimized: memory of Expression of T
- optimized: for the custom MethodCallExpression
- optimized: adding the ConstantInt and ConstantOf without boxing and null constant with the less space
## v3.1.0 Feature and bug-fix release
- added: #297 Add custom Constant to string output in the ToCSharpString and ToExpressionString
- added: #303 Add CompilerFlags.ThrowOnNotSupportedException and throw NotSupportedExpressionException when the flag is passed to CompileFast
- fixed: #301 Another case of the InvalidOperationException in the Mapster
- fixed: ListInit compilation for the Dictionary
- fixed: the lookup for the non-public property setter
## v3.0.5 Bug-fix release
- fixed: another case in #301 InvalidOperationException in the Mapster
- fixed: multiple problems with the TryCatch C# and Expression string output
## v3.0.4 Bug-fix release
- fixed: #302 Error compiling expression with array access
## v3.0.3 Bug-fix release
- fixed: #301 InvalidOperationException in the Mapster
- fixed: small bugs in the Lambda ToCSharpString output
## v3.0.2 Bug-fix release
- fixed: #300 Bad label content in ILGenerator in the Mapster benchmark with FEC V3
- fixed: Small issues with the `ToCSharpString()`, specifically in the TryCatch, and the Goto, and the Label expressions
## v3.0.1 Bug-fix release
fixed: #298 LightExpression with the NewExpression of 4 arguments has ArgumentCount = 3
## v3.0.0 - Major feature release
This version contains a lot of fixes and improvements and as-little-as-possible breaking changes.
### **FastExpressionCompiler** and **FastExpressionCompiler.LightExpression**
- Performance and memory consumption are improved, especially for the expressions with the closure and for expressions with the nested lambdas.
- More expression types are supported.
- Many fixes in the IL Emit.
- Added `ToCSharpString()` extension method to output the compile-able C# code described by the expression (tries hard).
- Added `ToExpressionString()` extension method to output the valid expression construction syntax, so given an expression object you'll get e.g. `Lambda(New(...))`.
- Added optional `enum CompilerFlags { Default, NoInvocationLambdaInlining, EnableDelegateDebugInfo}` parameter for the compilation
- `EnableDelegateDebugInfo` adds the diagnostic info into the compiled delegate including its source Expression and C# code. Can be used as following:
```cs
var f = e.CompileFast(true, CompilerFlags.EnableDelegateDebugInfo);
var di = f.Target as IDelegateDebugInfo;
Assert.IsNotNull(di.Expression);
Assert.IsNotNull(di.ExpressionString);
Assert.IsNotNull(di.CSharpString);
```
### **FastExpressionCompiler.LightExpression**
- Now includes the `ExpressionVisitor`.
- Improves the compatibility (the drop-in replacement) between the `FastExpressionCompiler.LightExpression.Expression` and the `System.Linq.Expression`.
- Decreasing the memory consumed by the created expressions partially via implementing the `IArgumentProvider` and `IParameterProvider` for some expressions.
### The full list of the closed issues
[Milestone v3.0.0](https://github.com/dadhi/FastExpressionCompiler/milestone/19)
.NET Framework 4.5
- System.ValueTuple (>= 4.5.0)
.NET Standard 2.0
- System.Dynamic.Runtime (>= 4.3.0)
- System.Reflection.Emit.Lightweight (>= 4.7.0)
Version | Downloads | Last updated |
---|---|---|
5.0.1 | 1 | 01/07/2025 |
5.0.0 | 1 | 01/07/2025 |
4.2.2 | 1 | 01/07/2025 |
4.2.1 | 1 | 01/07/2025 |
4.2.0 | 2 | 01/07/2025 |
4.1.0 | 1 | 01/07/2025 |
4.0.2 | 1 | 01/07/2025 |
4.0.1 | 1 | 01/07/2025 |
4.0.0 | 1 | 01/07/2025 |
3.3.4 | 1 | 01/07/2025 |
3.3.3 | 1 | 01/07/2025 |
3.3.2 | 1 | 01/07/2025 |
3.3.1 | 1 | 01/07/2025 |
3.3.0 | 1 | 01/07/2025 |
3.2.2 | 1 | 01/07/2025 |
3.2.1 | 1 | 01/07/2025 |
3.2.0 | 1 | 01/07/2025 |
3.1.0 | 1 | 01/07/2025 |
3.0.5 | 1 | 01/07/2025 |
3.0.4 | 1 | 01/07/2025 |
3.0.3 | 1 | 01/07/2025 |
3.0.2 | 1 | 01/07/2025 |
3.0.1 | 1 | 01/07/2025 |
3.0.0 | 1 | 01/07/2025 |