FastExpressionCompiler.LightExpression
3.0.0-preview-05
FastExpressionCompiler for LightExpression is 10-40x times faster than Expression.Compile()
See the version list below for details.
Install-Package FastExpressionCompiler.LightExpression -Version 3.0.0-preview-05
dotnet add package FastExpressionCompiler.LightExpression --version 3.0.0-preview-05
<PackageReference Include="FastExpressionCompiler.LightExpression" Version="3.0.0-preview-05" />
paket add FastExpressionCompiler.LightExpression --version 3.0.0-preview-05
#r "nuget: FastExpressionCompiler.LightExpression, 3.0.0-preview-05"
Release Notes
## v3.0.0 - Major feature release
The version contains a lot of fixes and improvements and hopefully as-little-as-possible breaking changes.
### **FastExpressionCompiler** and **FastExpressionCompiler.LightExpression**
- Performance and memory consumption is improved, especially for the expressions with the closure and for expressions with the nested lambdas.
- Filled the gaps in the expressions support.
- Many fixes in the IL emit.
- Adds `ToCSharpString()` to output the compile-able C# code described by the expression (tries hard).
- Adds `ToExpressionString()` to output the valid expression construction syntax, so given an expression object you'll get e.g. `Lambda(New(...))`.
- Adds 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 `FastExpressionCompiler.LightExpression.Expression` and `System.Linq.Expression`.
- Decreasing the memory consumed by the created expressions, plus implementing the `IArgumentProvider` and `IParameterProvider` for some of the expressions.
### The full list of fixes
[Milestone v3.0.0](https://github.com/dadhi/FastExpressionCompiler/milestone/19)
Dependencies
-
.NETFramework 4.5
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- System.Dynamic.Runtime (>= 4.3.0)
- System.Reflection.Emit.Lightweight (>= 4.7.0)
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version History
Version | Downloads | Last updated |
---|---|---|
3.0.0-preview-07 | 140 | 12/25/2020 |
3.0.0-preview-06 | 77 | 12/1/2020 |
3.0.0-preview-05 | 554 | 11/27/2020 |
3.0.0-preview-04 | 124 | 11/3/2020 |
3.0.0-preview-03 | 94 | 11/2/2020 |
3.0.0-preview-02 | 359 | 10/23/2020 |
3.0.0-preview-01 | 104 | 10/23/2020 |
2.0.0 | 3,927 | 1/25/2019 |
2.0.0-preview-03 | 358 | 11/9/2018 |
2.0.0-preview-02 | 339 | 10/25/2018 |
2.0.0-preview-01 | 359 | 10/24/2018 |