Repository navigation
Add a direct JSON source generator using PolyType.Roslyn - #553
Merged
Merged
Conversation
Add the FastPathJson proof of concept, shared-case parity and snapshot coverage, and JSON benchmark comparisons. Share generator naming and writer-pooling helpers and record the Native AOT size comparison. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8dfb9bb0-f3f6-42c4-8ca5-68429ff44ac7
Exercise invalid and segmented scalar inputs, collection witness contracts, enum validation, generator diagnostics, and collection factory signatures through the public entry points. Preserve the existing coverage targets and test cases. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8dfb9bb0-f3f6-42c4-8ca5-68429ff44ac7
Rerun all 99 JSON benchmarks with six warmups and twelve measurement iterations. Refresh the charts, exported measurements, machine details, and performance comparisons. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
PolyType.FastPathJson, a toy proof of concept showing that thePolyType.Roslynmodels can drive direct JSON code generation rather than runtime type shapes.[GenerateJson]and[GenerateJsonFor<T>]generateIJsonSerializable<T>implementations with staticUtf8JsonWriter/Utf8JsonReaderoperations. Neither prototype project depends onPolyType.dllor the built-in generator. Shared type-naming helpers move toPolyType.Roslyn, and writer pooling is source-linked from the example serializer.Coverage compares representative
PolyType.TestCasesvalues with the example JSON serializer and checks generator diagnostics, incrementality, composition and caller-owned readers/writers. The existing JSON benchmarks gain the prototype as a comparator, with refreshed charts. The prototype README also records the matched Native AOT image-size comparison; the one-off comparison apps are not included.The prototype is not intended for production use or packaging.
make testpassed, as did the benchmark project's--validate-jsonoutput and round-trip checks for all nine fixtures.