Skip to content

wstring rides as UTF-16 code units, and readers refuse malformed content

Choose a tag to compare

@rowan-claude rowan-claude released this 15 Aug 17:03

One intentional wire change, stated first: the old format's astral wstring groups (code points above 0xFFFF) flip from accepted to refused. Astral text now rides as surrogate pairs, matching the family's 2-byte shape; astral cross-language interop certifies at the family's v1.7.0 interop pin bump. BMP text is unchanged on the wire.

  • The writer is trusted in C# too: write-side checks are Debug.Assert (serialize#52).
  • Readers refuse malformed string content — invalid UTF-8, interior NULs, unpaired surrogates — with a pending-high surrogate pair machine.
  • The conformance pin was derived two independent ways: a reference bit-packer validated against STANDARD's worked example, then re-derived by hand bit by bit.
  • Verified beyond CI: Release suite 52/52, Debug suite 53/53 (the assert contracts execute), red team 29.4M hostile cases with no findings.