FastExpressionCompiler 2.0.0

FastExpressionCompiler is 10-40x times faster than Expression.Compile()

Install-Package FastExpressionCompiler -Version 2.0.0
dotnet add package FastExpressionCompiler --version 2.0.0
<PackageReference Include="FastExpressionCompiler" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FastExpressionCompiler --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

v2.0.0
Developed with a help of @jogibear9988, @dzmitry-lahoda, @MaceWindu,
and other contributors - kudos to all of them!

- removed: `ExpressionInfo` was moved into separate package `FastExpressionCompiler.LigthExpression`
with all the functionality of the FEC. The `ExpressionInfo` itself was renamed to `Expression` for more simple drop-in replacement.

- added: #57 Consider signed package version!
- added: #59 Support compiling delegates with ref and out parameters
- added: #78 Lambda<Func<int>>(Block(Label(Label(typeof(int)), Constant(7)))) is not supported
- added: #88 Lambda<Func<IntPtr>>(Block(Constant(IntPtr.Zero)))
- added: #91 Support for MultiplyAssign, AddAsiggn, DivideAssign
- added: #98 % and bit operators are not supported
- added: #101 Some Assign Modes are not yet supported
- added: #102 Label and Goto Expression not yet implemented
- added: #105 Bit Expression Types are not yet supported
- added: #106 ExpressionType.Power not supported
- added: #107 Check if xxxAssigns also work with Variables
- added: #118 Support for Expression.Variable (in a Expression.Block)
- added: #127 Switch is not supported
- added: #130 Net Framework Expression compiler generates perfromanter Code for isNull check
- added: #138 Optimize Compilation of nested Lambdas

- fixed: #83 Issues with linq2db tests
- fixed: #92 Expression not compilable
- fixed: #93 Comparison to "null" does not work when not Typed
- fixed: #95 Ref support not yet working completely
- fixed: #124 LightExpression wrong Type
- fixed: #131 Linq2db - Test for JIT compiler internal limitation
- fixed: #137 Problem with Reading & Writing of Struct Fields.
- fixed: #146 Boolean parameter value changed from false to true
- fixed: #147 'Common Language Runtime detected an invalid program' with int.TryParse
- fixed: #151 'Attempt to read protected memory'
- fixed: #152 int.MinValue access throws 'Method not supported'
- fixed: #154 Equals Expression does not call "Equals" of class (in MS Code)
- fixed: #156 Invoking an Action constant fails with 'Common Language Runtime detected an invalid program'
- fixed: #159 Condition with converted numeric comparisons gives unexpected result
- fixed: #162 Float - short numeric comparisons with conversions gives unexpected result
- fixed: #163 Add of Nullable Int, etc does not work correctly
- fixed: #165 Int and Decimal to Double conversion issues
- fixed: #170 Problems with ref parameters
- fixed: #172 Using FEC to compile a property setter with an enum value sets the property to random values

Version History

Version Downloads Last updated
2.0.0 5,932 1/25/2019
2.0.0-preview-03 216 11/9/2018
2.0.0-preview-02 385 10/25/2018
2.0.0-preview-01 103 10/24/2018
1.10.1 8,276 8/8/2018
1.10.0 157 8/3/2018
1.9.0 549 7/24/2018
1.8.0 3,954 6/24/2018
1.7.2 3,366 6/7/2018
1.7.1 2,432 3/27/2018
1.7.0 4,077 3/17/2018
1.6.0 5,105 12/3/2017
1.5.0 1,035 11/12/2017
1.4.0 5,630 9/9/2017
1.3.0 334 8/28/2017
1.2.2 635 8/8/2017
1.2.1 290 8/8/2017
1.2.0 283 8/8/2017
1.1.1 62,565 7/18/2017
1.1.0 255 7/13/2017
1.0.1 701 5/26/2017
1.0.0 543 4/2/2017
1.0.0-preview-04 240 3/31/2017
1.0.0-preview-03 472 3/30/2017
1.0.0-preview-02 245 3/29/2017
1.0.0-preview-01 293 3/23/2017