Skip to content

Commit

Permalink
release v4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dadhi committed Nov 12, 2023
1 parent 6d2d0ff commit b1de99f
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 209 deletions.
12 changes: 6 additions & 6 deletions BuildScripts/NuGetPublish.bat
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ set PACKAGES=..\.dist
set SOURCE=https://api.nuget.org/v3/index.json
set /p APIKEY=<"..\..\ApiKey.txt"

set PKGVER=3.4.0-preview-01
set PKGVER=4.0.0

@REM dotnet nuget push "%PACKAGES%\FastExpressionCompiler.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
@REM dotnet nuget push "%PACKAGES%\FastExpressionCompiler.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
@REM dotnet nuget push "%PACKAGES%\FastExpressionCompiler.Internal.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.Internal.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.LightExpression.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
@REM dotnet nuget push "%PACKAGES%\FastExpressionCompiler.LightExpression.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
@REM dotnet nuget push "%PACKAGES%\FastExpressionCompiler.LightExpression.Internal.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.LightExpression.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate
dotnet nuget push "%PACKAGES%\FastExpressionCompiler.LightExpression.Internal.src.%PKGVER%.nupkg" -k %APIKEY% -s %SOURCE% --skip-duplicate

echo:
echo:Publishing completed.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
[Apex.Serialization]: https://github.com/dbolin/Apex.Serialization
[MapsterMapper]: https://github.com/MapsterMapper/Mapster

[![latest release notes](https://img.shields.io/badge/latest%20release%20notes-v3.3.4-blue)](https://github.com/dadhi/FastExpressionCompiler/releases/tag/v3.3.4)
[![latest release notes](https://img.shields.io/badge/latest%20release%20notes-v3.3.4-blue)](https://github.com/dadhi/FastExpressionCompiler/releases/tag/v4.0.0)
[![Windows build](https://ci.appveyor.com/api/projects/status/4iyhed69l3k0k37o/branch/master?svg=true)](https://ci.appveyor.com/project/MaksimVolkau/fastexpressioncompiler/branch/master)[![license](https://img.shields.io/github/license/dadhi/FastExpressionCompiler.svg)](http://opensource.org/licenses/MIT)

Targets .NET Standard 2.0, 2.1 and .NET 4.5
Targets .NET 6, 7, .NET Standard 2.0, 2.1 and .NET 4.5

NuGet packages:

Expand Down
59 changes: 19 additions & 40 deletions nuspecs/FastExpressionCompiler.Internal.src.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>FastExpressionCompiler.Internal.src</id>
<version>3.3.4</version>
<version>4.0.0</version>
<authors>Maksim Volkau</authors>
<copyright>Copyright © 2016-2023 Maksim Volkau</copyright>
<projectUrl>https://github.com/dadhi/FastExpressionCompiler</projectUrl>
Expand All @@ -12,45 +12,24 @@
<description>FastExpressionCompiler is 10-40x times faster than Expression.Compile()</description>
<tags>Performance;Expression;ExpressionTree;Compile;DynamicMethod;IL;ILEmit;DryIoc;ExpressionToCodeLib</tags>
<releaseNotes><![CDATA[
## v3.3.4 Bug-fix release
- fixed: #345 EmitCall is for the varargs method and should not be used for normal convention
- fixed: #347 InvalidProgramException on compiling an expression that returns a record which implements IList
- fixed: #349 Error when loading struct parameters closed by the nested lambda e.g. predicate in Linq
- fixed: #355 Error with converting to/from signed/unsigned integers (Thanks to @TYoungSL for the PR!)
- fixed: the C# output for if-else test condition, and inc/dec operations; and for label at the end of the lambda
- fixed: ref assignment C# output
- perf: Replace ILGenerator.Emit(OpCodes.Call, ..) with EmitMethodCall performance
## v3.3.3 Bug-fix release
- fixed: #336 Method TryCompileBoundToFirstClosureParam is returning passed Type array to pool may cause undefined behavior
- fixed: #337 Switch LightExpression.Expression.ToString from System.Expression.ToString pseudo-code to ToCSharpString
- fixed: #338 InvocationExpression is not properly converted to System Expression via ToExpression for non-lambda expression
- fixed: #341 Equality comparison between nullable and null inside Any produces incorrect compiled expression
## v3.3.2 Bug-fix release
- fixed: #335 FastExpressionCompiler.LightExpressions - MemberInit has recursive calls
## v3.3.1 Optimization and bug-fix release
- fixed: #333 AccessViolationException and other suspicious behaviour on invoking result of CompileFast()
- optim: LightExpression.Parameter consumes less memory for the common standard types.
## v3.3.0 Feature and bug-fix release
- added: #235 [GodMode] Expression to IL intrinsic
- added: #325 Add LightExpression.NewNoByRefArgs overloads for performance
- added: #327 Replace direct il.Emit(OpCodes.Call, ...) with EmitMethodCall
- added: #329 Optimize special case compilation for New and Call with no arguments
- added: #330 Optimize nested lambda ClosureInfo memory footprint
- fixed: #324 The LightExpression.New of IEnumerable is recursive
- fixed: #328 Fix the performance of TryEmitConvert to String
## v4.0.0 Major release
- fixed: #352 xxxAssign doesn't work with MemberAccess
- fixed: #353 NullReferenceException when calling CompileFast() results
- fixed: #357 Invalid program exception
- fixed: #366 FastExpressionCompiler[v3.3.4] gives incorrect results in some linq operations
- fixed: #368 Fix duplicate nested lambda compilation
- fixed: #374 CompileFast doesn't work with HasFlag
- added: #264 Optimize the array index emit to emit specific Ldelem_ code instead of generic Ldelem
- added: #273 Implement IArgumentProvider for the BlockExpression to minimize the consumed memory
- added: #346 Is it possible to implement ref local variables?
- added: #359 Improve the performance of variable lookup
- added: #367 Better diagnostics and debugging with error codes from Collect and Compile rounds
- added: #369 Decrease memory occupied by the LightExpression Block by storing Expression in SmallList (partly on stack)
- added: #370 Optimize any nested lambda compilation (LINQ) by compiling right after collect one-by-one
- added: #372 Support LightExpression.Expression.TryConvertDelegateIntrinsic for converting one type of delegate to another
- added: #373 Support custom C# printing for the LightExpression.Expression
]]></releaseNotes>
<contentFiles>
Expand Down
58 changes: 19 additions & 39 deletions nuspecs/FastExpressionCompiler.LightExpression.Internal.src.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>FastExpressionCompiler.LightExpression.Internal.src</id>
<version>3.3.4</version>
<version>4.0.0</version>
<authors>Maksim Volkau</authors>
<copyright>Copyright © 2016-2023 Maksim Volkau</copyright>
<projectUrl>https://github.com/dadhi/FastExpressionCompiler</projectUrl>
Expand All @@ -12,44 +12,24 @@
<description>FastExpressionCompiler is 10-40x times faster than Expression.Compile()</description>
<tags>Performance;Expression;ExpressionTree;Compile;DynamicMethod;IL;ILEmit;DryIoc;ExpressionToCodeLib</tags>
<releaseNotes><![CDATA[
## v3.3.4 Bug-fix release
- fixed: #345 EmitCall is for the varargs method and should not be used for normal convention
- fixed: #347 InvalidProgramException on compiling an expression that returns a record which implements IList
- fixed: #349 Error when loading struct parameters closed by the nested lambda e.g. predicate in Linq
- fixed: #355 Error with converting to/from signed/unsigned integers (Thanks to @TYoungSL for the PR!)
- fixed: the C# output for if-else test condition, and inc/dec operations; and for label at the end of the lambda
- fixed: ref assignment C# output
- perf: Replace ILGenerator.Emit(OpCodes.Call, ..) with EmitMethodCall performance
## v3.3.3 Bug-fix release
- fixed: #336 Method TryCompileBoundToFirstClosureParam is returning passed Type array to pool may cause undefined behavior
- fixed: #337 Switch LightExpression.Expression.ToString from System.Expression.ToString pseudo-code to ToCSharpString
- fixed: #338 InvocationExpression is not properly converted to System Expression via ToExpression for non-lambda expression
- fixed: #341 Equality comparison between nullable and null inside Any produces incorrect compiled expression
## v3.3.2 Bug-fix release
- fixed: #335 FastExpressionCompiler.LightExpressions - MemberInit has recursive calls
## v3.3.1 Optimization and bug-fix release
- fixed: #333 AccessViolationException and other suspicious behaviour on invoking result of CompileFast()
- optim: LightExpression.Parameter consumes less memory for the common standard types.
## v3.3.0 Feature and bug-fix release
- added: #235 [GodMode] Expression to IL intrinsic
- added: #325 Add LightExpression.NewNoByRefArgs overloads for performance
- added: #327 Replace direct il.Emit(OpCodes.Call, ...) with EmitMethodCall
- added: #329 Optimize special case compilation for New and Call with no arguments
- added: #330 Optimize nested lambda ClosureInfo memory footprint
- fixed: #324 The LightExpression.New of IEnumerable is recursive
- fixed: #328 Fix the performance of TryEmitConvert to String
## v4.0.0 Major release
- fixed: #352 xxxAssign doesn't work with MemberAccess
- fixed: #353 NullReferenceException when calling CompileFast() results
- fixed: #357 Invalid program exception
- fixed: #366 FastExpressionCompiler[v3.3.4] gives incorrect results in some linq operations
- fixed: #368 Fix duplicate nested lambda compilation
- fixed: #374 CompileFast doesn't work with HasFlag
- added: #264 Optimize the array index emit to emit specific Ldelem_ code instead of generic Ldelem
- added: #273 Implement IArgumentProvider for the BlockExpression to minimize the consumed memory
- added: #346 Is it possible to implement ref local variables?
- added: #359 Improve the performance of variable lookup
- added: #367 Better diagnostics and debugging with error codes from Collect and Compile rounds
- added: #369 Decrease memory occupied by the LightExpression Block by storing Expression in SmallList (partly on stack)
- added: #370 Optimize any nested lambda compilation (LINQ) by compiling right after collect one-by-one
- added: #372 Support LightExpression.Expression.TryConvertDelegateIntrinsic for converting one type of delegate to another
- added: #373 Support custom C# printing for the LightExpression.Expression
]]></releaseNotes>
<contentFiles>
Expand Down
58 changes: 19 additions & 39 deletions nuspecs/FastExpressionCompiler.LightExpression.src.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>FastExpressionCompiler.LightExpression.src</id>
<version>3.3.4</version>
<version>4.0.0</version>
<authors>Maksim Volkau</authors>
<copyright>Copyright © 2016-2023 Maksim Volkau</copyright>
<projectUrl>https://github.com/dadhi/FastExpressionCompiler</projectUrl>
Expand All @@ -12,44 +12,24 @@
<description>FastExpressionCompiler is 10-40x times faster than Expression.Compile()</description>
<tags>Performance;Expression;ExpressionTree;Compile;DynamicMethod;IL;ILEmit;DryIoc;ExpressionToCodeLib</tags>
<releaseNotes><![CDATA[
## v3.3.4 Bug-fix release
- fixed: #345 EmitCall is for the varargs method and should not be used for normal convention
- fixed: #347 InvalidProgramException on compiling an expression that returns a record which implements IList
- fixed: #349 Error when loading struct parameters closed by the nested lambda e.g. predicate in Linq
- fixed: #355 Error with converting to/from signed/unsigned integers (Thanks to @TYoungSL for the PR!)
- fixed: the C# output for if-else test condition, and inc/dec operations; and for label at the end of the lambda
- fixed: ref assignment C# output
- perf: Replace ILGenerator.Emit(OpCodes.Call, ..) with EmitMethodCall performance
## v3.3.3 Bug-fix release
- fixed: #336 Method TryCompileBoundToFirstClosureParam is returning passed Type array to pool may cause undefined behavior
- fixed: #337 Switch LightExpression.Expression.ToString from System.Expression.ToString pseudo-code to ToCSharpString
- fixed: #338 InvocationExpression is not properly converted to System Expression via ToExpression for non-lambda expression
- fixed: #341 Equality comparison between nullable and null inside Any produces incorrect compiled expression
## v3.3.2 Bug-fix release
- fixed: #335 FastExpressionCompiler.LightExpressions - MemberInit has recursive calls
## v3.3.1 Optimization and bug-fix release
- fixed: #333 AccessViolationException and other suspicious behaviour on invoking result of CompileFast()
- optim: LightExpression.Parameter consumes less memory for the common standard types.
## v3.3.0 Feature and bug-fix release
- added: #235 [GodMode] Expression to IL intrinsic
- added: #325 Add LightExpression.NewNoByRefArgs overloads for performance
- added: #327 Replace direct il.Emit(OpCodes.Call, ...) with EmitMethodCall
- added: #329 Optimize special case compilation for New and Call with no arguments
- added: #330 Optimize nested lambda ClosureInfo memory footprint
- fixed: #324 The LightExpression.New of IEnumerable is recursive
- fixed: #328 Fix the performance of TryEmitConvert to String
## v4.0.0 Major release
- fixed: #352 xxxAssign doesn't work with MemberAccess
- fixed: #353 NullReferenceException when calling CompileFast() results
- fixed: #357 Invalid program exception
- fixed: #366 FastExpressionCompiler[v3.3.4] gives incorrect results in some linq operations
- fixed: #368 Fix duplicate nested lambda compilation
- fixed: #374 CompileFast doesn't work with HasFlag
- added: #264 Optimize the array index emit to emit specific Ldelem_ code instead of generic Ldelem
- added: #273 Implement IArgumentProvider for the BlockExpression to minimize the consumed memory
- added: #346 Is it possible to implement ref local variables?
- added: #359 Improve the performance of variable lookup
- added: #367 Better diagnostics and debugging with error codes from Collect and Compile rounds
- added: #369 Decrease memory occupied by the LightExpression Block by storing Expression in SmallList (partly on stack)
- added: #370 Optimize any nested lambda compilation (LINQ) by compiling right after collect one-by-one
- added: #372 Support LightExpression.Expression.TryConvertDelegateIntrinsic for converting one type of delegate to another
- added: #373 Support custom C# printing for the LightExpression.Expression
]]></releaseNotes>
<contentFiles>
Expand Down
58 changes: 19 additions & 39 deletions nuspecs/FastExpressionCompiler.src.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>FastExpressionCompiler.src</id>
<version>3.3.4</version>
<version>4.0.0</version>
<authors>Maksim Volkau</authors>
<copyright>Copyright © 2016-2023 Maksim Volkau</copyright>
<projectUrl>https://github.com/dadhi/FastExpressionCompiler</projectUrl>
Expand All @@ -12,44 +12,24 @@
<tags>Performance;Expression;ExpressionTree;Compile;DynamicMethod;IL;ILEmit;DryIoc;ExpressionToCodeLib</tags>
<icon>logo.png</icon>
<releaseNotes><![CDATA[
## v3.3.4 Bug-fix release
- fixed: #345 EmitCall is for the varargs method and should not be used for normal convention
- fixed: #347 InvalidProgramException on compiling an expression that returns a record which implements IList
- fixed: #349 Error when loading struct parameters closed by the nested lambda e.g. predicate in Linq
- fixed: #355 Error with converting to/from signed/unsigned integers (Thanks to @TYoungSL for the PR!)
- fixed: the C# output for if-else test condition, and inc/dec operations; and for label at the end of the lambda
- fixed: ref assignment C# output
- perf: Replace ILGenerator.Emit(OpCodes.Call, ..) with EmitMethodCall performance
## v3.3.3 Bug-fix release
- fixed: #336 Method TryCompileBoundToFirstClosureParam is returning passed Type array to pool may cause undefined behavior
- fixed: #337 Switch LightExpression.Expression.ToString from System.Expression.ToString pseudo-code to ToCSharpString
- fixed: #338 InvocationExpression is not properly converted to System Expression via ToExpression for non-lambda expression
- fixed: #341 Equality comparison between nullable and null inside Any produces incorrect compiled expression
## v3.3.2 Bug-fix release
- fixed: #335 FastExpressionCompiler.LightExpressions - MemberInit has recursive calls
## v3.3.1 Optimization and bug-fix release
- fixed: #333 AccessViolationException and other suspicious behaviour on invoking result of CompileFast()
- optim: LightExpression.Parameter consumes less memory for the common standard types.
## v3.3.0 Feature and bug-fix release
- added: #235 [GodMode] Expression to IL intrinsic
- added: #325 Add LightExpression.NewNoByRefArgs overloads for performance
- added: #327 Replace direct il.Emit(OpCodes.Call, ...) with EmitMethodCall
- added: #329 Optimize special case compilation for New and Call with no arguments
- added: #330 Optimize nested lambda ClosureInfo memory footprint
- fixed: #324 The LightExpression.New of IEnumerable is recursive
- fixed: #328 Fix the performance of TryEmitConvert to String
## v4.0.0 Major release
- fixed: #352 xxxAssign doesn't work with MemberAccess
- fixed: #353 NullReferenceException when calling CompileFast() results
- fixed: #357 Invalid program exception
- fixed: #366 FastExpressionCompiler[v3.3.4] gives incorrect results in some linq operations
- fixed: #368 Fix duplicate nested lambda compilation
- fixed: #374 CompileFast doesn't work with HasFlag
- added: #264 Optimize the array index emit to emit specific Ldelem_ code instead of generic Ldelem
- added: #273 Implement IArgumentProvider for the BlockExpression to minimize the consumed memory
- added: #346 Is it possible to implement ref local variables?
- added: #359 Improve the performance of variable lookup
- added: #367 Better diagnostics and debugging with error codes from Collect and Compile rounds
- added: #369 Decrease memory occupied by the LightExpression Block by storing Expression in SmallList (partly on stack)
- added: #370 Optimize any nested lambda compilation (LINQ) by compiling right after collect one-by-one
- added: #372 Support LightExpression.Expression.TryConvertDelegateIntrinsic for converting one type of delegate to another
- added: #373 Support custom C# printing for the LightExpression.Expression
]]></releaseNotes>
<contentFiles>
Expand Down
Loading

0 comments on commit b1de99f

Please sign in to comment.