U8String icon indicating copy to clipboard operation
U8String copied to clipboard

Split refactor

Open neon-sunset opened this issue 1 year ago • 3 comments

neon-sunset avatar Jul 31 '24 19:07 neon-sunset

Pull Request Test Coverage Report for Build 10186399190

Details

  • 10 of 277 (3.61%) changed or added relevant lines in 8 files are covered.
  • 4 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-1.0%) to 49.617%

Changes Missing Coverage Covered Lines Changed/Added Lines %
Sources/U8String/Helpers/UnsafeExtensions.cs 0 2 0.0%
Sources/U8String/InteropServices/U8StringMarshalling.cs 0 4 0.0%
Sources/U8String/U8String.Formatting.cs 0 10 0.0%
Sources/U8String/Shared/U8Interpolation.cs 10 26 38.46%
Sources/U8String/IO/U8WriteExtensions.cs 0 24 0.0%
Sources/U8String/Shared/U8Searching.cs 0 37 0.0%
Sources/U8String/Prototypes/Split/Split.cs 0 55 0.0%
Sources/U8String/Prototypes/Split/Pattern.cs 0 119 0.0%
<!-- Total: 10 277
Files with Coverage Reduction New Missed Lines %
Sources/U8String/Shared/U8Interpolation.cs 2 29.76%
Sources/U8String/IO/U8WriteExtensions.cs 2 0.0%
<!-- Total: 4
Totals Coverage Status
Change from base Build 10179247710: -1.0%
Covered Lines: 6274
Relevant Lines: 11744

💛 - Coveralls

coveralls avatar Jul 31 '24 19:07 coveralls

Its too bad that the diff set is so large due to many unrelated changed like code formatting which makes it hard to review actual changes

ramonsmits avatar Dec 10 '24 12:12 ramonsmits

Oh. I'm so sorry you had to look through that.

This was never intended for review and I'm likely to redo this in my free time. This project is currently on a very, very slow burn because there were changes in .NET 9's type system that significantly impact this project - ref structs in generics affect how the "core" of this project is done as it was intended to support multiple string container types from the start.

Given that the implementation has an uncompromising performance target, this should also include natively allocated string instances over GC-based ones which is the only one that is conveniently supported currently. This may not be acceptable for HPC projects.

There are other issues like a huge number of overloads that make it very time-consuming to work on because I hand-validate the disassembly of almost each method, on top of microbenchmarking and running in a few sample applications. And current source generator that is mandatory for "proper" UTF-8 string literal declarations and eliding UTF-8 validation at build-time against known valid inputs uses effectively obsolete sourcegen API and needs to be rewritten too.

These factors mean that in order to realize the vision for U8String I may need to carve out a vacation in the coming months to do this project justice. Currently, however, I sadly just don't have time to work on this as it would conflict with my job obligations. In any case, thank you for looking through this and I'm open to feedback.

neon-sunset avatar Dec 11 '24 07:12 neon-sunset