Add Utf8String skeleton (dotnet/coreclr#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)
commit7d402f63781bae30b16eeedfd66a261de47ce2d4
tree56c13759d32b6e59819c9dfff35a41c789a478e8
parent418868f66f94b966d581132fd8d27319e7f259d8
Add Utf8String skeleton (dotnet/coreclr#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.

Commit migrated from https://github.com/dotnet/coreclr/commit/1f3f474a13bdde1c5fecdf8cd9ce525dbe5df000
43 files changed:
src/coreclr/clr.defines.targets
src/coreclr/clrdefinitions.cmake
src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj
src/coreclr/src/System.Private.CoreLib/src/System/Char8.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/Utf8Extensions.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.Construction.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.Manipulation.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.Searching.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/Utf8String.cs [new file with mode: 0644]
src/coreclr/src/classlibnative/bcltype/objectnative.cpp
src/coreclr/src/inc/dacvars.h
src/coreclr/src/strongname/api/common.h
src/coreclr/src/vm/appdomain.cpp
src/coreclr/src/vm/classnames.h
src/coreclr/src/vm/common.h
src/coreclr/src/vm/ecall.cpp
src/coreclr/src/vm/ecall.h
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/gchelpers.cpp
src/coreclr/src/vm/gchelpers.h
src/coreclr/src/vm/jithelpers.cpp
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/jitinterface.h
src/coreclr/src/vm/jitinterfacegen.cpp
src/coreclr/src/vm/marshalnative.cpp
src/coreclr/src/vm/metasig.h
src/coreclr/src/vm/methodtable.h
src/coreclr/src/vm/methodtablebuilder.cpp
src/coreclr/src/vm/mscorlib.h
src/coreclr/src/vm/object.h
src/coreclr/src/vm/object.inl
src/coreclr/src/vm/reflectioninvocation.cpp
src/coreclr/src/vm/vars.cpp
src/coreclr/src/vm/vars.hpp
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
src/libraries/System.Private.CoreLib/src/System/Memory.cs
src/libraries/System.Private.CoreLib/src/System/ReadOnlyMemory.cs
src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.Fast.cs
src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs
src/libraries/System.Private.CoreLib/src/System/Span.Fast.cs
src/libraries/System.Private.CoreLib/src/System/String.cs
src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.cs [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/Text/UnicodeUtility.cs