NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #1047 most downloaded on NuGet
FastExpressionCompiler 5. 10-40x times faster than Expression.Compile()
Last release today
07 Oct 2026
Release timing varies
gaps range from 2 weeks to 10 months
Rarely documented
notes for 9 of 52 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
73 releases · first in 2017
The new supported target frameworks are .NET 8.0, .NET 10.0, .NET 4.7.2, .NET Standard 2.1
Multiple fixes in ToCSharpString, PrintCSharp
One column per quarter.
Contributions: @bluewingHuang
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.4.0...v5.4.1
ToCSharpString, PrintCSharphttps://github.com/dadhi/FastExpressionCompiler/compare/v5.3.3...v5.4.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.2.0...v5.3.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
Multiple fixes in ToCSharpString, PrintCSharp
ToCSharpString, PrintCSharphttps://github.com/dadhi/FastExpressionCompiler/compare/v5.3.3...v5.4.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.2.0...v5.3.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
feat: [performance] Reuse the ILGenerator used by the nested lambda compilation
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.2.0...v5.3.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
feat: #466 Simplify creation of the updateable value that can be put into Closure with the Expression.ConstantRef
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
add: Expose TestTools and FastExpressionCompiler.ILDecoder to enable testing and diagnostic in the consumer projects
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
fix: #461 InvalidProgramException when null checking type by ref
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
fix: #461 InvalidProgramException when null checking type by ref
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.1.0...v5.1.1
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
add: #458 Add Support for TryFault
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.3...v5.1.0
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
fix: #451 Operator implicit/explicit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.2...v5.0.3
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
-fix: #449 MemberInit produces InvalidProgram
-fix: #449 MemberInit produces InvalidProgram
Full Changelog: https://github.com/dadhi/FastExpressionCompiler/compare/v5.0.1...v5.0.2
feat: #271 Add conversion from the System Expression to the Light Expression to allow hoisted system expression embedding in the larger light expression
feat: #432 Add explicit target for .NET 9
feat: #434 ToCSharpString should generate stable names for the unnamed variables, parameters and labels
fix: #262 Optimize OpCode.Ceq plus Branch into a single compare-and-branch
fix: #424 TryCatch expression as argument in Call expression produces invalid program
fix: #426 Directly passing a method result to another method by ref, fails with InvalidProgramException
fix: #427 CSharp output with more consistency, robustness and more understandable code
fix: #428 Expression.Switch without a default case incorrectly calls first case for unmatched values
fix: #430 TryCatch - Bad label content in ILGenerator
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →