Releases: lofcz/FastCloner
Release list
Release v3.5.5
Chores
- Improved the release workflow with expanded automation and reliability improvements.
Release v3.5.4
Features
- Source generator now supports excluding members by visibility.
- Added
FastClonerVisibilityAttributeto control member visibility handling at the type level for both runtime and source-generator paths. - Added
FastClonerStableHashAttributeto improve stable hash detection for cloner caching. - Introduced
NonPublicAccessorEmitterandBridgeProxyEmitterin the source generator to enable safe access to non-public members without reflection at runtime. - Added
FastClonerSourceGeneratorBridgeand associated contract attributes to support tighter integration between the runtime cloner and source-generated cloners.
Fixes
- Fixed a race condition in the cloner state management.
- Fixed cloning of private and protected fields in source-generated cloners.
- Resolved an edge case that could cause incorrect cloning behaviour in certain type graphs.
- Improved cycle tracking to correctly handle complex object graphs.
- Improved stable hash detection to reduce false cache misses.
- Fixed nullability warnings across the codebase.
Chores
- Updated README with revised documentation and usage guidance.
- Expanded test coverage with new test classes covering bridge proxy emission, non-public accessor generation, struct boxing via the runtime bridge, visibility attribute behaviour, and source generator edge cases.
Release v3.5.3
Fixes
- Fixed issue #35 by hoisting a branch in the expression generator, correcting incorrect cloning behaviour in affected scenarios
- Fixed source generator emitting unqualified
Typereferences, which caused compilation errors when user code defined a conflictingTypesymbol in scope
Chores
- Added
TypeNameConflictTeststo guard against regressions when user-defined types conflict with BCL type names - Expanded
CollectionTestswith additional coverage for collection cloning edge cases
Release v3.5.2
Fixes
- Resolved thread safety edge cases that could cause incorrect behavior under concurrent cloning workloads
- Fixed source generator handling of cross-namespace and generic type scenarios in generated collection helpers and member clone output
Chores
- Migrated test suite from previous framework to TUnit
- Added
--fqnknob to the internalization builder tool for fully-qualified name control - Expanded test coverage across concurrent, source generator, shallow clone, and special case scenarios
Release v3.5.1
What's Changed
- get version back in sync
- Update release.yml
Updated Projects
FastCloner.csproj -> 3.5.1
Release v3.5.0
What's Changed
- cleanup
- faster shallow cloning, cleanup
- speed up arrays cloning
- simplify
- simplify
- fix
- reduce lookups per type
- Update BenchmarkDiffReporter.cs
- ups
- Fix safe-type shortcut to exclude boxed value types in Clone1DimArrayClassInternal
- fix
- Update benchmark.yml
- run benchmarks on ci
- sg: relax deps for analyzers & code fixes
- move internalization builder to net10
- specialize rank 1, 2 abstract arrays, hoist more branches
- mac fix
- exclude db tests from running on macos
- ci: run on macos too
- speed up warm-up when encountering new types
- improve lru cache
- runtime: reduce allocations per type, improve locality usage when cloning 2d arrays
- Update production projects and download count in README
- more benchmark links
- Increase test count to 800 in README
- runtime: perf, internalization builder
- Update project versions to v3.4.7
Updated Projects
FastCloner.Profiling.csproj -> 0.1.0
FastCloner.Internalization.Builder.csproj -> 0.1.0
FastCloner.csproj -> 3.5.0
FastCloner.SourceGenerator.csproj -> 1.2.0
FastCloner.Tests.csproj -> 0.1.0
FastCloner.SourceGenerator.CodeFixes.csproj -> 0.1.0
FastCloner.SourceGenerator.Analyzers.csproj -> 0.1.0
FastCloner.Benchmark.CI.csproj -> 0.1.0
FastCloner.Benchmark.csproj -> 0.1.0
Release v3.4.7
What's Changed
- sg: fix remaining nullability warnings
- sg: nullable warnings
- Update project versions to v3.4.6
Updated Projects
FastCloner.csproj -> 3.4.7
FastCloner.SourceGenerator.csproj -> 1.1.7
FastCloner.Tests.csproj -> 0.0.1
Release v3.4.6
What's Changed
- harden fqns
- sg: handle collections without count/indexer
- Update project versions to v3.4.5
Updated Projects
FastCloner.csproj -> 3.4.6
FastCloner.SourceGenerator.csproj -> 1.1.6
FastCloner.Tests.csproj -> 0.0.1
FastCloner.Benchmark.csproj -> 0.0.1
Release v3.4.5
What's Changed
- work on #27
- Update project versions to v3.4.4
Updated Projects
FastCloner.SourceGenerator.csproj -> 1.1.5
FastCloner.Tests.csproj -> 0.0.1
FastCloner.csproj -> 3.4.5
Release v3.4.4
What's Changed
- sg: prefer RuntimeHelpers.GetUninitializedObject on modern targets
- metadata
- Update project versions to v3.4.3
Updated Projects
FastCloner.SourceGenerator.csproj -> 1.1.4
FastCloner.Contrib.csproj -> 0.0.1
FastCloner.csproj -> 3.4.4