Bring CoreRT and CoreCLR's CoreLibs into sync (original) (raw)
We want to do this to (1) get code formatting from CoreRT (2) get bug fixes and new API to CoreRT so they reach UWP.
- Rename
coreclr\src\mscorlib\corefx to coreclr\src\mscorlib\shared
- Renames in CoreCLR to bring directories and files to match CoreRT eg
renamecoreclr\src\mscorlib to coreclr\src\System.Private.CoreLib
- Update CoreCLR corelib's resource generation: change from
.txt
to.resx
and autogenerate theSR.cs
- A lot of places in CoreCLR CoreLib use "ThrowHelper" class. ThrowHelper does not work well with ProjectN toolchain because of its use of reflection. Find a way to how to unify these. The ideal solution would be IL-to-IL optimizer that does the ThrowHelper optimization everywhere (see Proposal: IL optimization step roslyn#15929 (comment)).
- Take chunks of CoreRT, merge with CoreCLR and commit to CoreCLR then turn around and commit same to CoreRT.
- As part of the merging process or separately, segregate the files into folders like
private
andshared
whereprivate
are those that call into the runtime or are closely connected andshared
are those the former merely depend on. Other runtimes will likely only care aboutshared
. This will need some exploration. - Add automatic mirror of the shared part between CoreCLR and CoreRT. The idea is to use similar setup to what we have been using to mirror between TFS and github
Some of this was already done --
dotnet/coreclr#9259
dotnet/coreclr#9251
Edit: changed folder name from core
to private