FlatSharp 7.5.0 is a medium-sized release with a few changes that may be significant for you. It's now published on Nuget.org. There are no breaking changes.
The primary focus of this release is to significantly reduce the size of the x64 assembly produced by the JITer. There are 3 ways that this is accomplished:
String serialization is no longer inlined. This reduces code size substantially but does have a modest impact on serialization speed. There are other changes that offset most of the performance loss. However, FlatSharp should play much more nicely with your instruction cache now.
Using ThrowHelper-style methods for throwing exceptions from hot paths.
Remove most checked arithmetic. FlatSharp already uses safe methods for interacting with memory. The only checked operations that remain are multiplications and left shifts. This removes many branch instructions and further compacts the generated assembly. If you have a security need to retain checked arithmetic everywhere, please consider compiling with <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> in your csproj.
How much of a difference does this make? Let's look at a contrived example:
table MailingAddress (fs_serializer)
{
to : string;
street : string;
city : string;
zip_code : int;
}
Examining the bytes of code generated to serialize this results in:
Version
Performance
Table Serialize Bytes
String Serialize Bytes
Total
7.4.0
60ns
3888 (inlined)
0
3888
7.5.0
58ns
988 (method calls)
550
1538
This effect will scale for each string property in your schema, so while this example is contrived, the benefit should be large for applications where strings are a common data type.
Note: The focus is on shrinking the size of the code generated by the JIT. The generated C# is largely unchanged.
There are some other changes as well:
Add README.md files to the FlatSharp NuGet packages.
Add the [DebuggerTypeProxy] attribute to all generated classes. This ensures that much of the internal FlatSharp state is excluded from debugging views and makes the debugging experience more seamless.
FlatSharp 7.5.0 is a medium-sized release with a few changes that may be significant for you. It's now published on Nuget.org. There are no breaking changes.
The primary focus of this release is to significantly reduce the size of the x64 assembly produced by the JITer. There are 3 ways that this is accomplished:
String serialization is no longer inlined. This reduces code size substantially but does have a modest impact on serialization speed. There are other changes that offset most of the performance loss. However, FlatSharp should play much more nicely with your instruction cache now.
Using ThrowHelper-style methods for throwing exceptions from hot paths.
Remove most checked arithmetic. FlatSharp already uses safe methods for interacting with memory. The only checked operations that remain are multiplications and left shifts. This removes many branch instructions and further compacts the generated assembly. If you have a security need to retain checked arithmetic everywhere, please consider compiling with <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> in your csproj.
How much of a difference does this make? Let's look at a contrived example:
table MailingAddress (fs_serializer)
{
to : string;
street : string;
city : string;
zip_code : int;
}
Examining the bytes of code generated to serialize this results in:
Version
Performance
Table Serialize Bytes
String Serialize Bytes
Total
7.4.0
60ns
3888 (inlined)
0
3888
7.5.0
58ns
988 (method calls)
550
1538
This effect will scale for each string property in your schema, so while this example is contrived, the benefit should be large for applications where strings are a common data type.
Note: The focus is on shrinking the size of the code generated by the JIT. The generated C# is largely unchanged.
There are some other changes as well:
Add README.md files to the FlatSharp NuGet packages.
Add the [DebuggerTypeProxy] attribute to all generated classes. This ensures that much of the internal FlatSharp state is excluded from debugging views and makes the debugging experience more seamless.
Bumps the nuget-dependencies group with 13 updates:
8.0.1
8.0.2
8.0.1
8.0.2
8.0.1
8.0.2
8.0.1
8.0.2
8.0.1
8.0.2
8.0.1
8.0.2
8.0.0
8.0.2
8.2.0
8.3.0
2.7.17
2.7.20
7.4.0
7.5.1
7.4.0
7.5.1
3.8.0
3.8.1
3.8.0
3.8.1
3.8.0
3.8.1
Updates
Microsoft.AspNetCore.SignalR.StackExchangeRedis
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.AspNetCore.SignalR.StackExchangeRedis's releases.
Commits
da7e989
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-efcore0c785c5
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime8fdc5e8
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-efcorebb84444
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtimea48fa2c
Merged PR 36489: [internal/release/8.0] Update dependencies from dnceng/inter...a12499e
Merge in 'release/8.0' changese91e94d
[Blazor] Allownull
parameter values to be supplied to interactive componen...fd749a7
Merge in 'release/8.0' changes658ddfb
[release/8.0] Update karma.local.conf.js (#53411)4855269
Merge in 'release/8.0' changesUpdates
Microsoft.EntityFrameworkCore
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.EntityFrameworkCore's releases.
Commits
a97f6ff
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime4016ea7
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime813b3f7
Merge in 'release/8.0' changes1b51aa3
Merge branch 'release/7.0' into release/8.02634ffd
Merge in 'release/8.0' changes3bb09fb
Merge branch 'release/6.0' into release/7.08e2972c
[release/8.0] Bump SqlClient version (#32838)2136285
[release/7.0] Update SqlClient dependency (#32841)2abafb2
[release/6.0] Update SqlClient dependency (#32840)7c8f682
Merge in 'release/8.0' changesUpdates
Microsoft.EntityFrameworkCore.Design
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.EntityFrameworkCore.Design's releases.
Commits
a97f6ff
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime4016ea7
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime813b3f7
Merge in 'release/8.0' changes1b51aa3
Merge branch 'release/7.0' into release/8.02634ffd
Merge in 'release/8.0' changes3bb09fb
Merge branch 'release/6.0' into release/7.08e2972c
[release/8.0] Bump SqlClient version (#32838)2136285
[release/7.0] Update SqlClient dependency (#32841)2abafb2
[release/6.0] Update SqlClient dependency (#32840)7c8f682
Merge in 'release/8.0' changesUpdates
Microsoft.EntityFrameworkCore.Relational
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.EntityFrameworkCore.Relational's releases.
Commits
a97f6ff
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime4016ea7
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime813b3f7
Merge in 'release/8.0' changes1b51aa3
Merge branch 'release/7.0' into release/8.02634ffd
Merge in 'release/8.0' changes3bb09fb
Merge branch 'release/6.0' into release/7.08e2972c
[release/8.0] Bump SqlClient version (#32838)2136285
[release/7.0] Update SqlClient dependency (#32841)2abafb2
[release/6.0] Update SqlClient dependency (#32840)7c8f682
Merge in 'release/8.0' changesUpdates
Microsoft.EntityFrameworkCore.Relational
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.EntityFrameworkCore.Relational's releases.
Commits
a97f6ff
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime4016ea7
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime813b3f7
Merge in 'release/8.0' changes1b51aa3
Merge branch 'release/7.0' into release/8.02634ffd
Merge in 'release/8.0' changes3bb09fb
Merge branch 'release/6.0' into release/7.08e2972c
[release/8.0] Bump SqlClient version (#32838)2136285
[release/7.0] Update SqlClient dependency (#32841)2abafb2
[release/6.0] Update SqlClient dependency (#32840)7c8f682
Merge in 'release/8.0' changesUpdates
Microsoft.EntityFrameworkCore.Tools
from 8.0.1 to 8.0.2Release notes
Sourced from Microsoft.EntityFrameworkCore.Tools's releases.
Commits
a97f6ff
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime4016ea7
[internal/release/8.0] Update dependencies from dnceng/internal/dotnet-runtime813b3f7
Merge in 'release/8.0' changes1b51aa3
Merge branch 'release/7.0' into release/8.02634ffd
Merge in 'release/8.0' changes3bb09fb
Merge branch 'release/6.0' into release/7.08e2972c
[release/8.0] Bump SqlClient version (#32838)2136285
[release/7.0] Update SqlClient dependency (#32841)2abafb2
[release/6.0] Update SqlClient dependency (#32840)7c8f682
Merge in 'release/8.0' changesUpdates
Npgsql.EntityFrameworkCore.PostgreSQL
from 8.0.0 to 8.0.2Release notes
Sourced from Npgsql.EntityFrameworkCore.PostgreSQL's releases.
Commits
5a671b9
Bump version to 8.0.2a4676b8
Remove unneeded backslash ESCAPE from LIKE translations (#3103)b88a521
Don't use NpgsqlDataSource from DI if connection string/connection is specifi...f818704
Bump dependency versionsbab35a7
Always add parentheses around PgUnknownBinaryExpression (#3073)bbcdde6
Fix bad array access when an AFTER trigger raises an exception in SaveChanges...c698389
Fix null semantics for ILikeExpression (#3039)f958e9a
Cast NodaTime DateInterval.End to date. (#3024)baaf41f
Support NpgsqlUIntTypeMapping for the compiled model (#3030)557e166
Make Npgsql-specific JsonValueReaderWriters public for compiled model (#3029)Updates
Serilog.Sinks.Grafana.Loki
from 8.2.0 to 8.3.0Release notes
Sourced from Serilog.Sinks.Grafana.Loki's releases.
Commits
4f90718
Add nanosecond support for timestamps for versions prior to .NET 7 (#249)21259b1
Bump xunit from 2.6.5 to 2.6.6 (#244)81939ea
Bump xunit from 2.6.4 to 2.6.5 (#243)a275741
Bump xunit.runner.visualstudio from 2.5.5 to 2.5.6 (#241)fb35a4f
Bump xunit from 2.6.3 to 2.6.4 (#242)183213b
Bump StyleCop.Analyzers from 1.2.0-beta.507 to 1.2.0-beta.556 (#240)9df471f
Bump github/codeql-action from 2 to 3 (#238)c0d6ba7
Bump xunit.runner.visualstudio from 2.5.4 to 2.5.5 (#237)a64042c
Bump xunit from 2.6.2 to 2.6.3 (#236)a1fe120
Bump actions/setup-dotnet from 3.2.0 to 4.0.0 (#234)Updates
StackExchange.Redis
from 2.7.17 to 2.7.20Release notes
Sourced from StackExchange.Redis's releases.
Changelog
Sourced from StackExchange.Redis's changelog.
Commits
39eac01
Support Alibaba pseudo-cluster configurations (#2646)d9c9f7b
Fix release notes position for #23227dff15d
Add release notesUpdates
FlatSharp.Compiler
from 7.4.0 to 7.5.1Release notes
Sourced from FlatSharp.Compiler's releases.
... (truncated)
Commits
8c8510b
Update packages and SpanWriter (#428)21695cc
Update README.md4522c81
Mono AOT Validation (#427)aec7238
Reduce parallelism47bb0bf
Add some nativeaot test cases (#426)39223d3
Fix Native AOT Regressionc6bf3a6
Give reference unions the exception treatment (#424)d715792
Fix grammarf0e3391
Add feedback link2ba6f54
Add [DebuggerTypeProxy] to generated classes. (#423)Updates
FlatSharp.Runtime
from 7.4.0 to 7.5.1Release notes
Sourced from FlatSharp.Runtime's releases.
... (truncated)
Commits
8c8510b
Update packages and SpanWriter (#428)21695cc
Update README.md4522c81
Mono AOT Validation (#427)aec7238
Reduce parallelism47bb0bf
Add some nativeaot test cases (#426)39223d3
Fix Native AOT Regressionc6bf3a6
Give reference unions the exception treatment (#424)d715792
Fix grammarf0e3391
Add feedback link2ba6f54
Add [DebuggerTypeProxy] to generated classes. (#423)Updates
Quartz
from 3.8.0 to 3.8.1Release notes
Sourced from Quartz's releases.
Changelog
Sourced from Quartz's changelog.
Commits
1554475
Release preparationsbd2b992
Use configured type loader in scheduler factory init (#2268)7142f7c
Upgrade to NUKE 8 (#2251)28bb441
Fix handling of env var quartz.config (#2212) (#2213)cf6b350
Add package README files (#2199)af0521f
print PSQL notices in debug levela756053
Update version prefixUpdates
Quartz.Extensions.DependencyInjection
from 3.8.0 to 3.8.1Release notes
Sourced from Quartz.Extensions.DependencyInjection's releases.