Add Utf8String skeleton (#23209)
authorLevi Broderick <GrabYourPitchforks@users.noreply.github.com>
Tue, 19 Mar 2019 05:58:32 +0000 (22:58 -0700)
committerGitHub <noreply@github.com>
Tue, 19 Mar 2019 05:58:32 +0000 (22:58 -0700)
commit1f3f474a13bdde1c5fecdf8cd9ce525dbe5df000
tree6dfa953c84f1b4d1a7af414c89bb69a025902b1b
parent31581af5fa816fb2ea94145823ec3bdd6c0b0327
Add Utf8String skeleton (#23209)

Utf8String is an experimental type that is string-like (heap-allocated, immutable, variable-length, null-terminated) but whose inner representation is UTF-8, not UTF-16.

This is a skeleton implementation of the basic API shape. The ecosystem of APIs has not yet been built around it. All Utf8String-related code is currently surrounded by ifdefs to allow easy identification and removal from release branches.
43 files changed:
clr.defines.targets
clrdefinitions.cmake
src/System.Private.CoreLib/System.Private.CoreLib.csproj
src/System.Private.CoreLib/shared/System.Private.CoreLib.Shared.projitems
src/System.Private.CoreLib/shared/System/Memory.cs
src/System.Private.CoreLib/shared/System/ReadOnlyMemory.cs
src/System.Private.CoreLib/shared/System/ReadOnlySpan.Fast.cs
src/System.Private.CoreLib/shared/System/Runtime/InteropServices/MemoryMarshal.cs
src/System.Private.CoreLib/shared/System/Span.Fast.cs
src/System.Private.CoreLib/shared/System/String.cs
src/System.Private.CoreLib/shared/System/Text/Unicode/Utf8Utility.cs [new file with mode: 0644]
src/System.Private.CoreLib/shared/System/Text/UnicodeUtility.cs
src/System.Private.CoreLib/src/System/Char8.cs [new file with mode: 0644]
src/System.Private.CoreLib/src/System/Utf8Extensions.cs [new file with mode: 0644]
src/System.Private.CoreLib/src/System/Utf8String.Construction.cs [new file with mode: 0644]
src/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs [new file with mode: 0644]
src/System.Private.CoreLib/src/System/Utf8String.Searching.cs [new file with mode: 0644]
src/System.Private.CoreLib/src/System/Utf8String.cs [new file with mode: 0644]
src/classlibnative/bcltype/objectnative.cpp
src/inc/dacvars.h
src/strongname/api/common.h
src/vm/appdomain.cpp
src/vm/classnames.h
src/vm/common.h
src/vm/ecall.cpp
src/vm/ecall.h
src/vm/ecalllist.h
src/vm/gchelpers.cpp
src/vm/gchelpers.h
src/vm/jithelpers.cpp
src/vm/jitinterface.cpp
src/vm/jitinterface.h
src/vm/jitinterfacegen.cpp
src/vm/marshalnative.cpp
src/vm/metasig.h
src/vm/methodtable.h
src/vm/methodtablebuilder.cpp
src/vm/mscorlib.h
src/vm/object.h
src/vm/object.inl
src/vm/reflectioninvocation.cpp
src/vm/vars.cpp
src/vm/vars.hpp