From 266f01e07cd9d80d72b35940786d29db9459c990 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Wed, 30 Sep 2015 02:11:20 -0700 Subject: [PATCH 1/2] ILToNative build --- .../src/CommandLine/CommandLineParser.cs | 7 +- .../src/Compiler/CompilerTypeSystemContext.cs | 4 +- src/ILToNative/src/Compiler/Program.cs | 10 +- src/ILToNative/src/ILToNative.csproj | 193 +++ src/ILToNative/src/project.json | 25 + src/ILToNative/src/project.lock.json | 1222 +++++++++++++++++ src/JitInterface/src/CorInfoBase.cs | 974 ++++++------- src/JitInterface/src/CorInfoImpl.cs | 12 +- .../src/ThunkGenerator/Program.cs | 14 +- 9 files changed, 1948 insertions(+), 513 deletions(-) create mode 100644 src/ILToNative/src/ILToNative.csproj create mode 100644 src/ILToNative/src/project.json create mode 100644 src/ILToNative/src/project.lock.json diff --git a/src/Common/src/CommandLine/CommandLineParser.cs b/src/Common/src/CommandLine/CommandLineParser.cs index fde451af126..9ad7bff6377 100644 --- a/src/Common/src/CommandLine/CommandLineParser.cs +++ b/src/Common/src/CommandLine/CommandLineParser.cs @@ -35,14 +35,12 @@ public string GetOption() { opt = opt.Substring(1); } -#if !FXCORE else if (Path.DirectorySeparatorChar != '/' && opt.StartsWith("/")) { // For convenience, allow command line options starting with slash on Windows opt = opt.Substring(1); } -#endif else { return ""; @@ -80,11 +78,8 @@ public void AppendExpandedPaths(Dictionary dictionary, bool stri { foreach (string fileName in Directory.EnumerateFiles(directoryName, searchPattern)) { -#if !FXCORE string fullFileName = Path.GetFullPath(fileName); -#else - string fullFileName = fileName; -#endif + string simpleName = Path.GetFileNameWithoutExtension(fileName); if (dictionary.ContainsKey(simpleName)) diff --git a/src/ILToNative/src/Compiler/CompilerTypeSystemContext.cs b/src/ILToNative/src/Compiler/CompilerTypeSystemContext.cs index 05ae530a99a..d5a74ffbd3f 100644 --- a/src/ILToNative/src/Compiler/CompilerTypeSystemContext.cs +++ b/src/ILToNative/src/Compiler/CompilerTypeSystemContext.cs @@ -52,7 +52,7 @@ class CompilerTypeSystemContext : TypeSystemContext EcmaModule _systemModule; - Dictionary _modules = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + Dictionary _modules = new Dictionary(StringComparer.OrdinalIgnoreCase); class ModuleData { @@ -127,7 +127,7 @@ private EcmaModule CreateModuleForSimpleName(string simpleName) MetadataReader metadataReader = module.MetadataReader; string actualSimpleName = metadataReader.GetString(metadataReader.GetAssemblyDefinition().Name); - if (!actualSimpleName.Equals(simpleName, StringComparison.InvariantCultureIgnoreCase)) + if (!actualSimpleName.Equals(simpleName, StringComparison.OrdinalIgnoreCase)) throw new CommandLineException("Assembly name does not match filename " + filePath); _modules.Add(simpleName, module); diff --git a/src/ILToNative/src/Compiler/Program.cs b/src/ILToNative/src/Compiler/Program.cs index f4c566e312f..ee63bf68dc9 100644 --- a/src/ILToNative/src/Compiler/Program.cs +++ b/src/ILToNative/src/Compiler/Program.cs @@ -2,12 +2,10 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; -using System.Linq; using System.IO; using System.Collections.Generic; -using System.Reflection.Metadata; +using System.Reflection; using System.Reflection.Metadata.Ecma335; -using System.Reflection.PortableExecutable; using Internal.TypeSystem; using Internal.TypeSystem.Ecma; @@ -22,8 +20,8 @@ class Program string _outputPath; - Dictionary _inputFilePaths = new Dictionary(StringComparer.InvariantCultureIgnoreCase); - Dictionary _referenceFilePaths = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + Dictionary _inputFilePaths = new Dictionary(StringComparer.OrdinalIgnoreCase); + Dictionary _referenceFilePaths = new Dictionary(StringComparer.OrdinalIgnoreCase); CompilerTypeSystemContext _compilerTypeSystemContext; @@ -33,7 +31,7 @@ class Program void Help() { - Console.WriteLine("ILToNative compiler version " + typeof(Program).Assembly.GetName().Version.ToString()); + Console.WriteLine("ILToNative compiler version " + typeof(Program).GetTypeInfo().Assembly.GetName().Version.ToString()); Console.WriteLine(); Console.WriteLine("-help Display this usage message (Short form: -?)"); Console.WriteLine("-out Specify output file name"); diff --git a/src/ILToNative/src/ILToNative.csproj b/src/ILToNative/src/ILToNative.csproj new file mode 100644 index 00000000000..8eac202fcdf --- /dev/null +++ b/src/ILToNative/src/ILToNative.csproj @@ -0,0 +1,193 @@ + + + + + Debug + AnyCPU + {DD5B6BAA-D41A-4A6E-9E7D-83060F394B10} + Exe + ILToNative + ILToNative + en-US + 512 + false + + + true + full + false + bin\Debug\ + TRACE;DEBUG + prompt + 4 + true + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + + + + + + + + + + + + + + + CommandLine\CommandLineException.cs + + + CommandLine\CommandLineParser.cs + + + + + TypeSystem\AlignmentHelper.cs + + + TypeSystem\ArrayType.cs + + + TypeSystem\ByRefType.cs + + + TypeSystem\FieldForInstantiatedType.cs + + + TypeSystem\FieldLayout.cs + + + TypeSystem\InstantiatedMethod.cs + + + TypeSystem\InstantiatedType.cs + + + TypeSystem\MetadataType.cs + + + TypeSystem\MethodForInstantiatedType.cs + + + TypeSystem\ParameterizedType.cs + + + TypeSystem\PointerType.cs + + + TypeSystem\SignatureVariable.cs + + + TypeSystem\TargetDetails.cs + + + TypeSystem\TypeCast.cs + + + TypeSystem\TypeFlags.cs + + + TypeSystem\TypeHashingAlgorithms.cs + + + TypeSystem\TypeSystemContext.cs + + + TypeSystem\TypeSystemHelpers.cs + + + TypeSystem\WellKnownType.cs + + + TypeSystem\FieldDesc.cs + + + TypeSystem\MethodDesc.cs + + + TypeSystem\TypeDesc.cs + + + + + TypeSystem.Ecma\EcmaField.cs + + + TypeSystem.Ecma\EcmaGenericParameter.cs + + + TypeSystem.Ecma\EcmaMethod.cs + + + TypeSystem.Ecma\EcmaModule.cs + + + TypeSystem.Ecma\EcmaSignatureParser.cs + + + TypeSystem.Ecma\EcmaType.cs + + + TypeSystem.Ecma\IMetadataStringDecoderProvider.cs + + + + + IL\EcmaMethodIL.cs + + + IL\ILOpcode.cs + + + IL\ILProvider.cs + + + IL\InstantiatedMethodIL.cs + + + IL\MethodIL.cs + + + IL\Stubs\ArrayMethodILEmitter.cs + + + IL\Stubs\DelegateThunks.cs + + + IL\Stubs\ILEmitter.cs + + + + + JitInterface\CorInfoBase.cs + + + JitInterface\CorInfoHelpFunc.cs + + + JitInterface\CorInfoImpl.cs + + + JitInterface\CorInfoTypes.cs + + + + + + + \ No newline at end of file diff --git a/src/ILToNative/src/project.json b/src/ILToNative/src/project.json new file mode 100644 index 00000000000..be603cc4d4d --- /dev/null +++ b/src/ILToNative/src/project.json @@ -0,0 +1,25 @@ +{ + "dependencies": { + "System.Runtime": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.Collections": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Runtime.InteropServices": "4.0.10", + "System.Reflection": "4.0.0", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Console": "4.0.0-beta-*", + "System.AppContext": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Reflection.Metadata": "1.0.22" + }, + "frameworks": { + "dnxcore50": {} + } +} \ No newline at end of file diff --git a/src/ILToNative/src/project.lock.json b/src/ILToNative/src/project.lock.json new file mode 100644 index 00000000000..9cf495f2026 --- /dev/null +++ b/src/ILToNative/src/project.lock.json @@ -0,0 +1,1222 @@ +{ + "locked": false, + "version": 1, + "targets": { + "DNXCore,Version=v5.0": { + "System.AppContext/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Console/4.0.0-beta-23329": { + "type": "package", + "dependencies": { + "System.IO": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Console.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + } + }, + "System.Globalization/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + } + }, + "System.IO/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.Linq/4.0.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Linq.dll": {} + }, + "runtime": { + "lib/dotnet/System.Linq.dll": {} + } + }, + "System.Reflection/4.0.0": { + "type": "package", + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "type": "package", + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.0": { + "type": "package", + "compile": { + "ref/dotnet/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.10": { + "type": "package", + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + } + }, + "System.Text.Encoding/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Threading/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "type": "package", + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Threading.Tasks.dll": {} + } + } + } + }, + "libraries": { + "System.AppContext/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "gUoYgAWDC3+xhKeU5KSLbYDhTdBYk9GssrMSCcWUADzOglW+s0AmwVhOUGt2tL5xUl7ZXoYTPdA88zCgKrlG0A==", + "files": [ + "lib/DNXCore50/System.AppContext.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.AppContext.dll", + "lib/netcore50/System.AppContext.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.AppContext.xml", + "ref/dotnet/es/System.AppContext.xml", + "ref/dotnet/fr/System.AppContext.xml", + "ref/dotnet/it/System.AppContext.xml", + "ref/dotnet/ja/System.AppContext.xml", + "ref/dotnet/ko/System.AppContext.xml", + "ref/dotnet/ru/System.AppContext.xml", + "ref/dotnet/System.AppContext.dll", + "ref/dotnet/System.AppContext.xml", + "ref/dotnet/zh-hans/System.AppContext.xml", + "ref/dotnet/zh-hant/System.AppContext.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.AppContext.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.AppContext.4.0.0.nupkg", + "System.AppContext.4.0.0.nupkg.sha512", + "System.AppContext.nuspec" + ] + }, + "System.Collections/4.0.0": { + "type": "package", + "sha512": "i2vsGDIEbWdHcUSNDPKZP/ZWod6o740el7mGTCy0dqbCxQh74W4QoC+klUwPEtGEFuvzJ7bJgvwJqscosVNyZQ==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Collections.xml", + "ref/dotnet/es/System.Collections.xml", + "ref/dotnet/fr/System.Collections.xml", + "ref/dotnet/it/System.Collections.xml", + "ref/dotnet/ja/System.Collections.xml", + "ref/dotnet/ko/System.Collections.xml", + "ref/dotnet/ru/System.Collections.xml", + "ref/dotnet/System.Collections.dll", + "ref/dotnet/System.Collections.xml", + "ref/dotnet/zh-hans/System.Collections.xml", + "ref/dotnet/zh-hant/System.Collections.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Collections.xml", + "ref/netcore50/es/System.Collections.xml", + "ref/netcore50/fr/System.Collections.xml", + "ref/netcore50/it/System.Collections.xml", + "ref/netcore50/ja/System.Collections.xml", + "ref/netcore50/ko/System.Collections.xml", + "ref/netcore50/ru/System.Collections.xml", + "ref/netcore50/System.Collections.dll", + "ref/netcore50/System.Collections.xml", + "ref/netcore50/zh-hans/System.Collections.xml", + "ref/netcore50/zh-hant/System.Collections.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Collections.4.0.0.nupkg", + "System.Collections.4.0.0.nupkg.sha512", + "System.Collections.nuspec" + ] + }, + "System.Collections.Immutable/1.1.37": { + "type": "package", + "serviceable": true, + "sha512": "fTpqwZYBzoklTT+XjTRK8KxvmrGkYHzBiylCcKyQcxiOM8k+QvhNBxRvFHDWzy4OEP5f8/9n+xQ9mEgEXY+muA==", + "files": [ + "lib/dotnet/System.Collections.Immutable.dll", + "lib/dotnet/System.Collections.Immutable.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml", + "System.Collections.Immutable.1.1.37.nupkg", + "System.Collections.Immutable.1.1.37.nupkg.sha512", + "System.Collections.Immutable.nuspec" + ] + }, + "System.Console/4.0.0-beta-23329": { + "type": "package", + "serviceable": true, + "sha512": "gh2YHjUh3sY74pn/JpzktS8+z3rsPfsaNGPIyfrr90HC0XMy/wE/XLdMuFEUgr4Jn2VtYS26sopiEGUnK3ke0A==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Console.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.Console.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Console.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "System.Console.4.0.0-beta-23329.nupkg", + "System.Console.4.0.0-beta-23329.nupkg.sha512", + "System.Console.nuspec" + ] + }, + "System.Diagnostics.Debug/4.0.0": { + "type": "package", + "sha512": "AYJsLLGDVTC/nyURjgAo7Lpye0+HuSkcQujUf+NgQVdC/C/ky5NyamQHCforHJzgqspitMMtBe8B4UBdGXy1zQ==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Diagnostics.Debug.xml", + "ref/dotnet/es/System.Diagnostics.Debug.xml", + "ref/dotnet/fr/System.Diagnostics.Debug.xml", + "ref/dotnet/it/System.Diagnostics.Debug.xml", + "ref/dotnet/ja/System.Diagnostics.Debug.xml", + "ref/dotnet/ko/System.Diagnostics.Debug.xml", + "ref/dotnet/ru/System.Diagnostics.Debug.xml", + "ref/dotnet/System.Diagnostics.Debug.dll", + "ref/dotnet/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Debug.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Diagnostics.Debug.xml", + "ref/netcore50/es/System.Diagnostics.Debug.xml", + "ref/netcore50/fr/System.Diagnostics.Debug.xml", + "ref/netcore50/it/System.Diagnostics.Debug.xml", + "ref/netcore50/ja/System.Diagnostics.Debug.xml", + "ref/netcore50/ko/System.Diagnostics.Debug.xml", + "ref/netcore50/ru/System.Diagnostics.Debug.xml", + "ref/netcore50/System.Diagnostics.Debug.dll", + "ref/netcore50/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Diagnostics.Debug.4.0.0.nupkg", + "System.Diagnostics.Debug.4.0.0.nupkg.sha512", + "System.Diagnostics.Debug.nuspec" + ] + }, + "System.Globalization/4.0.0": { + "type": "package", + "sha512": "IBJyTo1y7ZtzzoJUA60T1XPvNTyw/wfFmjFoBFtlYfkekIOtD/AzDDIg0YdUa7eNtFEfliED2R7HdppTdU4t5A==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Globalization.xml", + "ref/dotnet/es/System.Globalization.xml", + "ref/dotnet/fr/System.Globalization.xml", + "ref/dotnet/it/System.Globalization.xml", + "ref/dotnet/ja/System.Globalization.xml", + "ref/dotnet/ko/System.Globalization.xml", + "ref/dotnet/ru/System.Globalization.xml", + "ref/dotnet/System.Globalization.dll", + "ref/dotnet/System.Globalization.xml", + "ref/dotnet/zh-hans/System.Globalization.xml", + "ref/dotnet/zh-hant/System.Globalization.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Globalization.xml", + "ref/netcore50/es/System.Globalization.xml", + "ref/netcore50/fr/System.Globalization.xml", + "ref/netcore50/it/System.Globalization.xml", + "ref/netcore50/ja/System.Globalization.xml", + "ref/netcore50/ko/System.Globalization.xml", + "ref/netcore50/ru/System.Globalization.xml", + "ref/netcore50/System.Globalization.dll", + "ref/netcore50/System.Globalization.xml", + "ref/netcore50/zh-hans/System.Globalization.xml", + "ref/netcore50/zh-hant/System.Globalization.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Globalization.4.0.0.nupkg", + "System.Globalization.4.0.0.nupkg.sha512", + "System.Globalization.nuspec" + ] + }, + "System.IO/4.0.0": { + "type": "package", + "sha512": "MoCHQ0u5n0OMwUS8OX4Gl48qKiQziSW5cXvt82d+MmAcsLq9OL90+ihnu/aJ1h6OOYcBswrZAEuApfZha9w2lg==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.IO.xml", + "ref/dotnet/es/System.IO.xml", + "ref/dotnet/fr/System.IO.xml", + "ref/dotnet/it/System.IO.xml", + "ref/dotnet/ja/System.IO.xml", + "ref/dotnet/ko/System.IO.xml", + "ref/dotnet/ru/System.IO.xml", + "ref/dotnet/System.IO.dll", + "ref/dotnet/System.IO.xml", + "ref/dotnet/zh-hans/System.IO.xml", + "ref/dotnet/zh-hant/System.IO.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.IO.xml", + "ref/netcore50/es/System.IO.xml", + "ref/netcore50/fr/System.IO.xml", + "ref/netcore50/it/System.IO.xml", + "ref/netcore50/ja/System.IO.xml", + "ref/netcore50/ko/System.IO.xml", + "ref/netcore50/ru/System.IO.xml", + "ref/netcore50/System.IO.dll", + "ref/netcore50/System.IO.xml", + "ref/netcore50/zh-hans/System.IO.xml", + "ref/netcore50/zh-hant/System.IO.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.IO.4.0.0.nupkg", + "System.IO.4.0.0.nupkg.sha512", + "System.IO.nuspec" + ] + }, + "System.IO.FileSystem/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "eo05SPWfG+54UA0wxgRIYOuOslq+2QrJLXZaJDDsfLXG15OLguaItW39NYZTqUb4DeGOkU4R0wpOLOW4ynMUDQ==", + "files": [ + "lib/DNXCore50/System.IO.FileSystem.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.dll", + "lib/netcore50/System.IO.FileSystem.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.IO.FileSystem.xml", + "ref/dotnet/es/System.IO.FileSystem.xml", + "ref/dotnet/fr/System.IO.FileSystem.xml", + "ref/dotnet/it/System.IO.FileSystem.xml", + "ref/dotnet/ja/System.IO.FileSystem.xml", + "ref/dotnet/ko/System.IO.FileSystem.xml", + "ref/dotnet/ru/System.IO.FileSystem.xml", + "ref/dotnet/System.IO.FileSystem.dll", + "ref/dotnet/System.IO.FileSystem.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.IO.FileSystem.4.0.0.nupkg", + "System.IO.FileSystem.4.0.0.nupkg.sha512", + "System.IO.FileSystem.nuspec" + ] + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "7pJUvYi/Yq3A5nagqCCiOw3+aJp3xXc/Cjr8dnJDnER3/6kX3LEencfqmXUcPl9+7OvRNyPMNhqsLAcMK6K/KA==", + "files": [ + "lib/dotnet/System.IO.FileSystem.Primitives.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/es/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/fr/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/it/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ja/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ko/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ru/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/System.IO.FileSystem.Primitives.dll", + "ref/dotnet/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.Primitives.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.Primitives.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.IO.FileSystem.Primitives.4.0.0.nupkg", + "System.IO.FileSystem.Primitives.4.0.0.nupkg.sha512", + "System.IO.FileSystem.Primitives.nuspec" + ] + }, + "System.Linq/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "r6Hlc+ytE6m/9UBr+nNRRdoJEWjoeQiT3L3lXYFDHoXk3VYsRBCDNXrawcexw7KPLaH0zamQLiAb6avhZ50cGg==", + "files": [ + "lib/dotnet/System.Linq.dll", + "lib/net45/_._", + "lib/netcore50/System.Linq.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/de/System.Linq.xml", + "ref/dotnet/es/System.Linq.xml", + "ref/dotnet/fr/System.Linq.xml", + "ref/dotnet/it/System.Linq.xml", + "ref/dotnet/ja/System.Linq.xml", + "ref/dotnet/ko/System.Linq.xml", + "ref/dotnet/ru/System.Linq.xml", + "ref/dotnet/System.Linq.dll", + "ref/dotnet/System.Linq.xml", + "ref/dotnet/zh-hans/System.Linq.xml", + "ref/dotnet/zh-hant/System.Linq.xml", + "ref/net45/_._", + "ref/netcore50/System.Linq.dll", + "ref/netcore50/System.Linq.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "System.Linq.4.0.0.nupkg", + "System.Linq.4.0.0.nupkg.sha512", + "System.Linq.nuspec" + ] + }, + "System.Reflection/4.0.0": { + "type": "package", + "sha512": "g96Rn8XuG7y4VfxPj/jnXroRJdQ8L3iN3k3zqsuzk4k3Nq4KMXARYiIO4BLW4GwX06uQpuYwRMcAC/aF117knQ==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Reflection.xml", + "ref/dotnet/es/System.Reflection.xml", + "ref/dotnet/fr/System.Reflection.xml", + "ref/dotnet/it/System.Reflection.xml", + "ref/dotnet/ja/System.Reflection.xml", + "ref/dotnet/ko/System.Reflection.xml", + "ref/dotnet/ru/System.Reflection.xml", + "ref/dotnet/System.Reflection.dll", + "ref/dotnet/System.Reflection.xml", + "ref/dotnet/zh-hans/System.Reflection.xml", + "ref/dotnet/zh-hant/System.Reflection.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Reflection.xml", + "ref/netcore50/es/System.Reflection.xml", + "ref/netcore50/fr/System.Reflection.xml", + "ref/netcore50/it/System.Reflection.xml", + "ref/netcore50/ja/System.Reflection.xml", + "ref/netcore50/ko/System.Reflection.xml", + "ref/netcore50/ru/System.Reflection.xml", + "ref/netcore50/System.Reflection.dll", + "ref/netcore50/System.Reflection.xml", + "ref/netcore50/zh-hans/System.Reflection.xml", + "ref/netcore50/zh-hant/System.Reflection.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Reflection.4.0.0.nupkg", + "System.Reflection.4.0.0.nupkg.sha512", + "System.Reflection.nuspec" + ] + }, + "System.Reflection.Extensions/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "dbYaZWCyFAu1TGYUqR2n+Q+1casSHPR2vVW0WVNkXpZbrd2BXcZ7cpvpu9C98CTHtNmyfMWCLpCclDqly23t6A==", + "files": [ + "lib/DNXCore50/System.Reflection.Extensions.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Extensions.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/de/System.Reflection.Extensions.xml", + "ref/dotnet/es/System.Reflection.Extensions.xml", + "ref/dotnet/fr/System.Reflection.Extensions.xml", + "ref/dotnet/it/System.Reflection.Extensions.xml", + "ref/dotnet/ja/System.Reflection.Extensions.xml", + "ref/dotnet/ko/System.Reflection.Extensions.xml", + "ref/dotnet/ru/System.Reflection.Extensions.xml", + "ref/dotnet/System.Reflection.Extensions.dll", + "ref/dotnet/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hans/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hant/System.Reflection.Extensions.xml", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Extensions.dll", + "ref/netcore50/System.Reflection.Extensions.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll", + "System.Reflection.Extensions.4.0.0.nupkg", + "System.Reflection.Extensions.4.0.0.nupkg.sha512", + "System.Reflection.Extensions.nuspec" + ] + }, + "System.Reflection.Metadata/1.0.22": { + "type": "package", + "serviceable": true, + "sha512": "ltoL/teiEdy5W9fyYdtFr2xJ/4nHyksXLK9dkPWx3ubnj7BVfsSWxvWTg9EaJUXjhWvS/AeTtugZA1/IDQyaPQ==", + "files": [ + "lib/dotnet/System.Reflection.Metadata.dll", + "lib/dotnet/System.Reflection.Metadata.xml", + "lib/portable-net45+win8/System.Reflection.Metadata.dll", + "lib/portable-net45+win8/System.Reflection.Metadata.xml", + "System.Reflection.Metadata.1.0.22.nupkg", + "System.Reflection.Metadata.1.0.22.nupkg.sha512", + "System.Reflection.Metadata.nuspec" + ] + }, + "System.Reflection.Primitives/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "n9S0XpKv2ruc17FSnaiX6nV47VfHTZ1wLjKZlAirUZCvDQCH71mVp+Ohabn0xXLh5pK2PKp45HCxkqu5Fxn/lA==", + "files": [ + "lib/DNXCore50/System.Reflection.Primitives.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Primitives.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/de/System.Reflection.Primitives.xml", + "ref/dotnet/es/System.Reflection.Primitives.xml", + "ref/dotnet/fr/System.Reflection.Primitives.xml", + "ref/dotnet/it/System.Reflection.Primitives.xml", + "ref/dotnet/ja/System.Reflection.Primitives.xml", + "ref/dotnet/ko/System.Reflection.Primitives.xml", + "ref/dotnet/ru/System.Reflection.Primitives.xml", + "ref/dotnet/System.Reflection.Primitives.dll", + "ref/dotnet/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hans/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hant/System.Reflection.Primitives.xml", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Primitives.dll", + "ref/netcore50/System.Reflection.Primitives.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll", + "System.Reflection.Primitives.4.0.0.nupkg", + "System.Reflection.Primitives.4.0.0.nupkg.sha512", + "System.Reflection.Primitives.nuspec" + ] + }, + "System.Resources.ResourceManager/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "qmqeZ4BJgjfU+G2JbrZt4Dk1LsMxO4t+f/9HarNY6w8pBgweO6jT+cknUH7c3qIrGvyUqraBhU45Eo6UtA0fAw==", + "files": [ + "lib/DNXCore50/System.Resources.ResourceManager.dll", + "lib/net45/_._", + "lib/netcore50/System.Resources.ResourceManager.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/de/System.Resources.ResourceManager.xml", + "ref/dotnet/es/System.Resources.ResourceManager.xml", + "ref/dotnet/fr/System.Resources.ResourceManager.xml", + "ref/dotnet/it/System.Resources.ResourceManager.xml", + "ref/dotnet/ja/System.Resources.ResourceManager.xml", + "ref/dotnet/ko/System.Resources.ResourceManager.xml", + "ref/dotnet/ru/System.Resources.ResourceManager.xml", + "ref/dotnet/System.Resources.ResourceManager.dll", + "ref/dotnet/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hans/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hant/System.Resources.ResourceManager.xml", + "ref/net45/_._", + "ref/netcore50/System.Resources.ResourceManager.dll", + "ref/netcore50/System.Resources.ResourceManager.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll", + "System.Resources.ResourceManager.4.0.0.nupkg", + "System.Resources.ResourceManager.4.0.0.nupkg.sha512", + "System.Resources.ResourceManager.nuspec" + ] + }, + "System.Runtime/4.0.0": { + "type": "package", + "sha512": "Uq9epame8hEqJlj4KaWb67dDJvj4IM37jRFGVeFbugRdPz48bR0voyBhrbf3iSa2tAmlkg4lsa6BUOL9iwlMew==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Runtime.xml", + "ref/dotnet/es/System.Runtime.xml", + "ref/dotnet/fr/System.Runtime.xml", + "ref/dotnet/it/System.Runtime.xml", + "ref/dotnet/ja/System.Runtime.xml", + "ref/dotnet/ko/System.Runtime.xml", + "ref/dotnet/ru/System.Runtime.xml", + "ref/dotnet/System.Runtime.dll", + "ref/dotnet/System.Runtime.xml", + "ref/dotnet/zh-hans/System.Runtime.xml", + "ref/dotnet/zh-hant/System.Runtime.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Runtime.xml", + "ref/netcore50/es/System.Runtime.xml", + "ref/netcore50/fr/System.Runtime.xml", + "ref/netcore50/it/System.Runtime.xml", + "ref/netcore50/ja/System.Runtime.xml", + "ref/netcore50/ko/System.Runtime.xml", + "ref/netcore50/ru/System.Runtime.xml", + "ref/netcore50/System.Runtime.dll", + "ref/netcore50/System.Runtime.xml", + "ref/netcore50/zh-hans/System.Runtime.xml", + "ref/netcore50/zh-hant/System.Runtime.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Runtime.4.0.0.nupkg", + "System.Runtime.4.0.0.nupkg.sha512", + "System.Runtime.nuspec" + ] + }, + "System.Runtime.Extensions/4.0.10": { + "type": "package", + "serviceable": true, + "sha512": "5dsEwf3Iml7d5OZeT20iyOjT+r+okWpN7xI2v+R4cgd3WSj4DeRPTvPFjDpacbVW4skCAZ8B9hxXJYgkCFKJ1A==", + "files": [ + "lib/DNXCore50/System.Runtime.Extensions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.Runtime.Extensions.xml", + "ref/dotnet/es/System.Runtime.Extensions.xml", + "ref/dotnet/fr/System.Runtime.Extensions.xml", + "ref/dotnet/it/System.Runtime.Extensions.xml", + "ref/dotnet/ja/System.Runtime.Extensions.xml", + "ref/dotnet/ko/System.Runtime.Extensions.xml", + "ref/dotnet/ru/System.Runtime.Extensions.xml", + "ref/dotnet/System.Runtime.Extensions.dll", + "ref/dotnet/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hans/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hant/System.Runtime.Extensions.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll", + "System.Runtime.Extensions.4.0.10.nupkg", + "System.Runtime.Extensions.4.0.10.nupkg.sha512", + "System.Runtime.Extensions.nuspec" + ] + }, + "System.Runtime.Handles/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "638VhpRq63tVcQ6HDb3um3R/J2BtR1Sa96toHo6PcJGPXEPEsleCuqhBgX2gFCz0y0qkutANwW6VPPY5wQu1XQ==", + "files": [ + "lib/DNXCore50/System.Runtime.Handles.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.Handles.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.Runtime.Handles.xml", + "ref/dotnet/es/System.Runtime.Handles.xml", + "ref/dotnet/fr/System.Runtime.Handles.xml", + "ref/dotnet/it/System.Runtime.Handles.xml", + "ref/dotnet/ja/System.Runtime.Handles.xml", + "ref/dotnet/ko/System.Runtime.Handles.xml", + "ref/dotnet/ru/System.Runtime.Handles.xml", + "ref/dotnet/System.Runtime.Handles.dll", + "ref/dotnet/System.Runtime.Handles.xml", + "ref/dotnet/zh-hans/System.Runtime.Handles.xml", + "ref/dotnet/zh-hant/System.Runtime.Handles.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll", + "System.Runtime.Handles.4.0.0.nupkg", + "System.Runtime.Handles.4.0.0.nupkg.sha512", + "System.Runtime.Handles.nuspec" + ] + }, + "System.Runtime.InteropServices/4.0.10": { + "type": "package", + "sha512": "3jb0+1SgSUGmk9QH2WfyKxom6aJmmd0rta8T4VrYuw7fZoHPv0wmhB8/YMSgivmCGHRINBqQunUN0Zcao4IlNA==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net451/_._", + "lib/win81/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Runtime.InteropServices.xml", + "ref/dotnet/es/System.Runtime.InteropServices.xml", + "ref/dotnet/fr/System.Runtime.InteropServices.xml", + "ref/dotnet/it/System.Runtime.InteropServices.xml", + "ref/dotnet/ja/System.Runtime.InteropServices.xml", + "ref/dotnet/ko/System.Runtime.InteropServices.xml", + "ref/dotnet/ru/System.Runtime.InteropServices.xml", + "ref/dotnet/System.Runtime.InteropServices.dll", + "ref/dotnet/System.Runtime.InteropServices.xml", + "ref/dotnet/zh-hans/System.Runtime.InteropServices.xml", + "ref/dotnet/zh-hant/System.Runtime.InteropServices.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net451/_._", + "ref/netcore50/de/System.Runtime.InteropServices.xml", + "ref/netcore50/es/System.Runtime.InteropServices.xml", + "ref/netcore50/fr/System.Runtime.InteropServices.xml", + "ref/netcore50/it/System.Runtime.InteropServices.xml", + "ref/netcore50/ja/System.Runtime.InteropServices.xml", + "ref/netcore50/ko/System.Runtime.InteropServices.xml", + "ref/netcore50/ru/System.Runtime.InteropServices.xml", + "ref/netcore50/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", + "ref/win81/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Runtime.InteropServices.4.0.10.nupkg", + "System.Runtime.InteropServices.4.0.10.nupkg.sha512", + "System.Runtime.InteropServices.nuspec" + ] + }, + "System.Text.Encoding/4.0.0": { + "type": "package", + "sha512": "AMxFNOXpA6Ab8swULbXuJmoT2K5w6TnV3ObF5wsmEcIHQUJghoZtDVfVHb08O2wW15mOSI1i9Wg0Dx0pY13o8g==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Text.Encoding.xml", + "ref/dotnet/es/System.Text.Encoding.xml", + "ref/dotnet/fr/System.Text.Encoding.xml", + "ref/dotnet/it/System.Text.Encoding.xml", + "ref/dotnet/ja/System.Text.Encoding.xml", + "ref/dotnet/ko/System.Text.Encoding.xml", + "ref/dotnet/ru/System.Text.Encoding.xml", + "ref/dotnet/System.Text.Encoding.dll", + "ref/dotnet/System.Text.Encoding.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.xml", + "ref/dotnet/zh-hant/System.Text.Encoding.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Text.Encoding.xml", + "ref/netcore50/es/System.Text.Encoding.xml", + "ref/netcore50/fr/System.Text.Encoding.xml", + "ref/netcore50/it/System.Text.Encoding.xml", + "ref/netcore50/ja/System.Text.Encoding.xml", + "ref/netcore50/ko/System.Text.Encoding.xml", + "ref/netcore50/ru/System.Text.Encoding.xml", + "ref/netcore50/System.Text.Encoding.dll", + "ref/netcore50/System.Text.Encoding.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Text.Encoding.4.0.0.nupkg", + "System.Text.Encoding.4.0.0.nupkg.sha512", + "System.Text.Encoding.nuspec" + ] + }, + "System.Text.Encoding.Extensions/4.0.0": { + "type": "package", + "sha512": "FktA77+2DC0S5oRhgM569pbzFrcA45iQpYiI7+YKl68B6TfI2N5TQbXqSWlh2YXKoFXHi2RFwPMha2lxiFJZ6A==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Text.Encoding.Extensions.xml", + "ref/dotnet/es/System.Text.Encoding.Extensions.xml", + "ref/dotnet/fr/System.Text.Encoding.Extensions.xml", + "ref/dotnet/it/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ja/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ko/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ru/System.Text.Encoding.Extensions.xml", + "ref/dotnet/System.Text.Encoding.Extensions.dll", + "ref/dotnet/System.Text.Encoding.Extensions.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/dotnet/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Text.Encoding.Extensions.xml", + "ref/netcore50/es/System.Text.Encoding.Extensions.xml", + "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", + "ref/netcore50/it/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", + "ref/netcore50/System.Text.Encoding.Extensions.dll", + "ref/netcore50/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Text.Encoding.Extensions.4.0.0.nupkg", + "System.Text.Encoding.Extensions.4.0.0.nupkg.sha512", + "System.Text.Encoding.Extensions.nuspec" + ] + }, + "System.Threading/4.0.0": { + "type": "package", + "sha512": "H6O/9gUrjPDNYanh/7OFGAZHjVXvEuITD0RcnjfvIV04HOGrOPqUBU0kmz9RIX/7YGgCQn1o1S2DX6Cuv8kVGQ==", + "files": [ + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "License.rtf", + "ref/dotnet/de/System.Threading.xml", + "ref/dotnet/es/System.Threading.xml", + "ref/dotnet/fr/System.Threading.xml", + "ref/dotnet/it/System.Threading.xml", + "ref/dotnet/ja/System.Threading.xml", + "ref/dotnet/ko/System.Threading.xml", + "ref/dotnet/ru/System.Threading.xml", + "ref/dotnet/System.Threading.dll", + "ref/dotnet/System.Threading.xml", + "ref/dotnet/zh-hans/System.Threading.xml", + "ref/dotnet/zh-hant/System.Threading.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/de/System.Threading.xml", + "ref/netcore50/es/System.Threading.xml", + "ref/netcore50/fr/System.Threading.xml", + "ref/netcore50/it/System.Threading.xml", + "ref/netcore50/ja/System.Threading.xml", + "ref/netcore50/ko/System.Threading.xml", + "ref/netcore50/ru/System.Threading.xml", + "ref/netcore50/System.Threading.dll", + "ref/netcore50/System.Threading.xml", + "ref/netcore50/zh-hans/System.Threading.xml", + "ref/netcore50/zh-hant/System.Threading.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "System.Threading.4.0.0.nupkg", + "System.Threading.4.0.0.nupkg.sha512", + "System.Threading.nuspec" + ] + }, + "System.Threading.Overlapped/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "X5LuQFhM5FTqaez3eXKJ9CbfSGZ7wj6j4hSVtxct3zmwQXLqG95qoWdvILcgN7xtrDOBIFtpiyDg0vmoI0jE2A==", + "files": [ + "lib/DNXCore50/System.Threading.Overlapped.dll", + "lib/net46/System.Threading.Overlapped.dll", + "lib/netcore50/System.Threading.Overlapped.dll", + "ref/dotnet/de/System.Threading.Overlapped.xml", + "ref/dotnet/es/System.Threading.Overlapped.xml", + "ref/dotnet/fr/System.Threading.Overlapped.xml", + "ref/dotnet/it/System.Threading.Overlapped.xml", + "ref/dotnet/ja/System.Threading.Overlapped.xml", + "ref/dotnet/ko/System.Threading.Overlapped.xml", + "ref/dotnet/ru/System.Threading.Overlapped.xml", + "ref/dotnet/System.Threading.Overlapped.dll", + "ref/dotnet/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hans/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hant/System.Threading.Overlapped.xml", + "ref/net46/System.Threading.Overlapped.dll", + "System.Threading.Overlapped.4.0.0.nupkg", + "System.Threading.Overlapped.4.0.0.nupkg.sha512", + "System.Threading.Overlapped.nuspec" + ] + }, + "System.Threading.Tasks/4.0.10": { + "type": "package", + "serviceable": true, + "sha512": "NOwJGDfk79jR0bnzosbXLVD/PdI8KzBeESoa3CofEM5v9R5EBfcI0Jyf18stx+0IYV9okmDIDxVtxq9TbnR9bQ==", + "files": [ + "lib/DNXCore50/System.Threading.Tasks.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Threading.Tasks.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/de/System.Threading.Tasks.xml", + "ref/dotnet/es/System.Threading.Tasks.xml", + "ref/dotnet/fr/System.Threading.Tasks.xml", + "ref/dotnet/it/System.Threading.Tasks.xml", + "ref/dotnet/ja/System.Threading.Tasks.xml", + "ref/dotnet/ko/System.Threading.Tasks.xml", + "ref/dotnet/ru/System.Threading.Tasks.xml", + "ref/dotnet/System.Threading.Tasks.dll", + "ref/dotnet/System.Threading.Tasks.xml", + "ref/dotnet/zh-hans/System.Threading.Tasks.xml", + "ref/dotnet/zh-hant/System.Threading.Tasks.xml", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll", + "System.Threading.Tasks.4.0.10.nupkg", + "System.Threading.Tasks.4.0.10.nupkg.sha512", + "System.Threading.Tasks.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "": [ + "System.Runtime >= 4.0.0", + "System.Resources.ResourceManager >= 4.0.0", + "System.Reflection.Primitives >= 4.0.0", + "System.Diagnostics.Debug >= 4.0.0", + "System.IO >= 4.0.0", + "System.IO.FileSystem >= 4.0.0", + "System.Collections >= 4.0.0", + "System.Text.Encoding >= 4.0.0", + "System.Runtime.InteropServices >= 4.0.10", + "System.Reflection >= 4.0.0", + "System.Runtime.Extensions >= 4.0.10", + "System.Threading >= 4.0.0", + "System.Text.Encoding.Extensions >= 4.0.0", + "System.Reflection.Extensions >= 4.0.0", + "System.Console >= 4.0.0-beta-*", + "System.AppContext >= 4.0.0", + "System.Collections.Immutable >= 1.1.37", + "System.Reflection.Metadata >= 1.0.22" + ], + "DNXCore,Version=v5.0": [] + } +} \ No newline at end of file diff --git a/src/JitInterface/src/CorInfoBase.cs b/src/JitInterface/src/CorInfoBase.cs index c22983910e8..a8f1430fd55 100644 --- a/src/JitInterface/src/CorInfoBase.cs +++ b/src/JitInterface/src/CorInfoBase.cs @@ -1,3 +1,4 @@ + // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. @@ -340,496 +341,495 @@ protected IntPtr CreateUnmanagedInstance() { IntPtr * vtable = (IntPtr *)Marshal.AllocCoTaskMem(sizeof(IntPtr) * 162); Object[] keepalive = new Object[162]; - Delegate d; _keepalive = keepalive; - d = new _getMethodAttribs(getMethodAttribs); - vtable[0] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[0] = d; - d = new _setMethodAttribs(setMethodAttribs); - vtable[1] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[1] = d; - d = new _getMethodSig(getMethodSig); - vtable[2] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[2] = d; - d = new _getMethodInfo(getMethodInfo); - vtable[3] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[3] = d; - d = new _canInline(canInline); - vtable[4] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[4] = d; - d = new _reportInliningDecision(reportInliningDecision); - vtable[5] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[5] = d; - d = new _canTailCall(canTailCall); - vtable[6] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[6] = d; - d = new _reportTailCallDecision(reportTailCallDecision); - vtable[7] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[7] = d; - d = new _getEHinfo(getEHinfo); - vtable[8] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[8] = d; - d = new _getMethodClass(getMethodClass); - vtable[9] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[9] = d; - d = new _getMethodModule(getMethodModule); - vtable[10] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[10] = d; - d = new _getMethodVTableOffset(getMethodVTableOffset); - vtable[11] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[11] = d; - d = new _getIntrinsicID(getIntrinsicID); - vtable[12] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[12] = d; - d = new _isInSIMDModule(isInSIMDModule); - vtable[13] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[13] = d; - d = new _getUnmanagedCallConv(getUnmanagedCallConv); - vtable[14] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[14] = d; - d = new _pInvokeMarshalingRequired(pInvokeMarshalingRequired); - vtable[15] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[15] = d; - d = new _satisfiesMethodConstraints(satisfiesMethodConstraints); - vtable[16] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[16] = d; - d = new _isCompatibleDelegate(isCompatibleDelegate); - vtable[17] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[17] = d; - d = new _isDelegateCreationAllowed(isDelegateCreationAllowed); - vtable[18] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[18] = d; - d = new _isInstantiationOfVerifiedGeneric(isInstantiationOfVerifiedGeneric); - vtable[19] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[19] = d; - d = new _initConstraintsForVerification(initConstraintsForVerification); - vtable[20] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[20] = d; - d = new _canSkipMethodVerification(canSkipMethodVerification); - vtable[21] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[21] = d; - d = new _methodMustBeLoadedBeforeCodeIsRun(methodMustBeLoadedBeforeCodeIsRun); - vtable[22] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[22] = d; - d = new _mapMethodDeclToMethodImpl(mapMethodDeclToMethodImpl); - vtable[23] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[23] = d; - d = new _getGSCookie(getGSCookie); - vtable[24] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[24] = d; - d = new _resolveToken(resolveToken); - vtable[25] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[25] = d; - d = new _findSig(findSig); - vtable[26] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[26] = d; - d = new _findCallSiteSig(findCallSiteSig); - vtable[27] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[27] = d; - d = new _getTokenTypeAsHandle(getTokenTypeAsHandle); - vtable[28] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[28] = d; - d = new _canSkipVerification(canSkipVerification); - vtable[29] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[29] = d; - d = new _isValidToken(isValidToken); - vtable[30] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[30] = d; - d = new _isValidStringRef(isValidStringRef); - vtable[31] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[31] = d; - d = new _shouldEnforceCallvirtRestriction(shouldEnforceCallvirtRestriction); - vtable[32] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[32] = d; - d = new _asCorInfoType(asCorInfoType); - vtable[33] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[33] = d; - d = new _getClassName(getClassName); - vtable[34] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[34] = d; - d = new _appendClassName(appendClassName); - vtable[35] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[35] = d; - d = new _isValueClass(isValueClass); - vtable[36] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[36] = d; - d = new _canInlineTypeCheckWithObjectVTable(canInlineTypeCheckWithObjectVTable); - vtable[37] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[37] = d; - d = new _getClassAttribs(getClassAttribs); - vtable[38] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[38] = d; - d = new _isStructRequiringStackAllocRetBuf(isStructRequiringStackAllocRetBuf); - vtable[39] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[39] = d; - d = new _getClassModule(getClassModule); - vtable[40] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[40] = d; - d = new _getModuleAssembly(getModuleAssembly); - vtable[41] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[41] = d; - d = new _getAssemblyName(getAssemblyName); - vtable[42] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[42] = d; - d = new _LongLifetimeMalloc(LongLifetimeMalloc); - vtable[43] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[43] = d; - d = new _LongLifetimeFree(LongLifetimeFree); - vtable[44] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[44] = d; - d = new _getClassModuleIdForStatics(getClassModuleIdForStatics); - vtable[45] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[45] = d; - d = new _getClassSize(getClassSize); - vtable[46] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[46] = d; - d = new _getClassAlignmentRequirement(getClassAlignmentRequirement); - vtable[47] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[47] = d; - d = new _getClassGClayout(getClassGClayout); - vtable[48] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[48] = d; - d = new _getClassNumInstanceFields(getClassNumInstanceFields); - vtable[49] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[49] = d; - d = new _getFieldInClass(getFieldInClass); - vtable[50] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[50] = d; - d = new _checkMethodModifier(checkMethodModifier); - vtable[51] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[51] = d; - d = new _getNewHelper(getNewHelper); - vtable[52] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[52] = d; - d = new _getNewArrHelper(getNewArrHelper); - vtable[53] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[53] = d; - d = new _getCastingHelper(getCastingHelper); - vtable[54] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[54] = d; - d = new _getSharedCCtorHelper(getSharedCCtorHelper); - vtable[55] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[55] = d; - d = new _getSecurityPrologHelper(getSecurityPrologHelper); - vtable[56] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[56] = d; - d = new _getTypeForBox(getTypeForBox); - vtable[57] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[57] = d; - d = new _getBoxHelper(getBoxHelper); - vtable[58] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[58] = d; - d = new _getUnBoxHelper(getUnBoxHelper); - vtable[59] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[59] = d; - d = new _getReadyToRunHelper(getReadyToRunHelper); - vtable[60] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[60] = d; - d = new _getHelperName(getHelperName); - vtable[61] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[61] = d; - d = new _initClass(initClass); - vtable[62] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[62] = d; - d = new _classMustBeLoadedBeforeCodeIsRun(classMustBeLoadedBeforeCodeIsRun); - vtable[63] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[63] = d; - d = new _getBuiltinClass(getBuiltinClass); - vtable[64] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[64] = d; - d = new _getTypeForPrimitiveValueClass(getTypeForPrimitiveValueClass); - vtable[65] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[65] = d; - d = new _canCast(canCast); - vtable[66] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[66] = d; - d = new _areTypesEquivalent(areTypesEquivalent); - vtable[67] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[67] = d; - d = new _mergeClasses(mergeClasses); - vtable[68] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[68] = d; - d = new _getParentType(getParentType); - vtable[69] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[69] = d; - d = new _getChildType(getChildType); - vtable[70] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[70] = d; - d = new _satisfiesClassConstraints(satisfiesClassConstraints); - vtable[71] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[71] = d; - d = new _isSDArray(isSDArray); - vtable[72] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[72] = d; - d = new _getArrayRank(getArrayRank); - vtable[73] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[73] = d; - d = new _getArrayInitializationData(getArrayInitializationData); - vtable[74] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[74] = d; - d = new _canAccessClass(canAccessClass); - vtable[75] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[75] = d; - d = new _getFieldName(getFieldName); - vtable[76] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[76] = d; - d = new _getFieldClass(getFieldClass); - vtable[77] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[77] = d; - d = new _getFieldType(getFieldType); - vtable[78] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[78] = d; - d = new _getFieldOffset(getFieldOffset); - vtable[79] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[79] = d; - d = new _isWriteBarrierHelperRequired(isWriteBarrierHelperRequired); - vtable[80] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[80] = d; - d = new _getFieldInfo(getFieldInfo); - vtable[81] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[81] = d; - d = new _isFieldStatic(isFieldStatic); - vtable[82] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[82] = d; - d = new _getBoundaries(getBoundaries); - vtable[83] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[83] = d; - d = new _setBoundaries(setBoundaries); - vtable[84] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[84] = d; - d = new _getVars(getVars); - vtable[85] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[85] = d; - d = new _setVars(setVars); - vtable[86] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[86] = d; - d = new _allocateArray(allocateArray); - vtable[87] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[87] = d; - d = new _freeArray(freeArray); - vtable[88] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[88] = d; - d = new _getArgNext(getArgNext); - vtable[89] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[89] = d; - d = new _getArgType(getArgType); - vtable[90] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[90] = d; - d = new _getArgClass(getArgClass); - vtable[91] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[91] = d; - d = new _getHFAType(getHFAType); - vtable[92] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[92] = d; - d = new _GetErrorHRESULT(GetErrorHRESULT); - vtable[93] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[93] = d; - d = new _GetErrorMessage(GetErrorMessage); - vtable[94] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[94] = d; - d = new _FilterException(FilterException); - vtable[95] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[95] = d; - d = new _HandleException(HandleException); - vtable[96] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[96] = d; - d = new _ThrowExceptionForJitResult(ThrowExceptionForJitResult); - vtable[97] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[97] = d; - d = new _ThrowExceptionForHelper(ThrowExceptionForHelper); - vtable[98] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[98] = d; - d = new _getEEInfo(getEEInfo); - vtable[99] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[99] = d; - d = new _getJitTimeLogFilename(getJitTimeLogFilename); - vtable[100] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[100] = d; - d = new _getMethodDefFromMethod(getMethodDefFromMethod); - vtable[101] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[101] = d; - d = new _getMethodName(getMethodName); - vtable[102] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[102] = d; - d = new _getMethodHash(getMethodHash); - vtable[103] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[103] = d; - d = new _findNameOfToken(findNameOfToken); - vtable[104] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[104] = d; - d = new _getIntConfigValue(getIntConfigValue); - vtable[105] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[105] = d; - d = new _getStringConfigValue(getStringConfigValue); - vtable[106] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[106] = d; - d = new _freeStringConfigValue(freeStringConfigValue); - vtable[107] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[107] = d; - d = new _getThreadTLSIndex(getThreadTLSIndex); - vtable[108] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[108] = d; - d = new _getInlinedCallFrameVptr(getInlinedCallFrameVptr); - vtable[109] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[109] = d; - d = new _getAddrOfCaptureThreadGlobal(getAddrOfCaptureThreadGlobal); - vtable[110] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[110] = d; - d = new _getAddrModuleDomainID(getAddrModuleDomainID); - vtable[111] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[111] = d; - d = new _getHelperFtn(getHelperFtn); - vtable[112] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[112] = d; - d = new _getFunctionEntryPoint(getFunctionEntryPoint); - vtable[113] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[113] = d; - d = new _getFunctionFixedEntryPoint(getFunctionFixedEntryPoint); - vtable[114] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[114] = d; - d = new _getMethodSync(getMethodSync); - vtable[115] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[115] = d; - d = new _getLazyStringLiteralHelper(getLazyStringLiteralHelper); - vtable[116] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[116] = d; - d = new _embedModuleHandle(embedModuleHandle); - vtable[117] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[117] = d; - d = new _embedClassHandle(embedClassHandle); - vtable[118] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[118] = d; - d = new _embedMethodHandle(embedMethodHandle); - vtable[119] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[119] = d; - d = new _embedFieldHandle(embedFieldHandle); - vtable[120] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[120] = d; - d = new _embedGenericHandle(embedGenericHandle); - vtable[121] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[121] = d; - d = new _getLocationOfThisType(getLocationOfThisType); - vtable[122] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[122] = d; - d = new _getPInvokeUnmanagedTarget(getPInvokeUnmanagedTarget); - vtable[123] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[123] = d; - d = new _getAddressOfPInvokeFixup(getAddressOfPInvokeFixup); - vtable[124] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[124] = d; - d = new _GetCookieForPInvokeCalliSig(GetCookieForPInvokeCalliSig); - vtable[125] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[125] = d; - d = new _canGetCookieForPInvokeCalliSig(canGetCookieForPInvokeCalliSig); - vtable[126] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[126] = d; - d = new _getJustMyCodeHandle(getJustMyCodeHandle); - vtable[127] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[127] = d; - d = new _GetProfilingHandle(GetProfilingHandle); - vtable[128] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[128] = d; - d = new _getCallInfo(getCallInfo); - vtable[129] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[129] = d; - d = new _canAccessFamily(canAccessFamily); - vtable[130] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[130] = d; - d = new _isRIDClassDomainID(isRIDClassDomainID); - vtable[131] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[131] = d; - d = new _getClassDomainID(getClassDomainID); - vtable[132] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[132] = d; - d = new _getFieldAddress(getFieldAddress); - vtable[133] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[133] = d; - d = new _getVarArgsHandle(getVarArgsHandle); - vtable[134] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[134] = d; - d = new _canGetVarArgsHandle(canGetVarArgsHandle); - vtable[135] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[135] = d; - d = new _constructStringLiteral(constructStringLiteral); - vtable[136] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[136] = d; - d = new _emptyStringLiteral(emptyStringLiteral); - vtable[137] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[137] = d; - d = new _getFieldThreadLocalStoreID(getFieldThreadLocalStoreID); - vtable[138] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[138] = d; - d = new _setOverride(setOverride); - vtable[139] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[139] = d; - d = new _addActiveDependency(addActiveDependency); - vtable[140] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[140] = d; - d = new _GetDelegateCtor(GetDelegateCtor); - vtable[141] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[141] = d; - d = new _MethodCompileComplete(MethodCompileComplete); - vtable[142] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[142] = d; - d = new _getTailCallCopyArgsThunk(getTailCallCopyArgsThunk); - vtable[143] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[143] = d; - d = new _getMemoryManager(getMemoryManager); - vtable[144] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[144] = d; - d = new _allocMem(allocMem); - vtable[145] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[145] = d; - d = new _reserveUnwindInfo(reserveUnwindInfo); - vtable[146] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[146] = d; - d = new _allocUnwindInfo(allocUnwindInfo); - vtable[147] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[147] = d; - d = new _allocGCInfo(allocGCInfo); - vtable[148] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[148] = d; - d = new _yieldExecution(yieldExecution); - vtable[149] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[149] = d; - d = new _setEHcount(setEHcount); - vtable[150] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[150] = d; - d = new _setEHinfo(setEHinfo); - vtable[151] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[151] = d; - d = new _logMsg(logMsg); - vtable[152] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[152] = d; - d = new _doAssert(doAssert); - vtable[153] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[153] = d; - d = new _reportFatalError(reportFatalError); - vtable[154] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[154] = d; - d = new _allocBBProfileBuffer(allocBBProfileBuffer); - vtable[155] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[155] = d; - d = new _getBBProfileData(getBBProfileData); - vtable[156] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[156] = d; - d = new _recordCallSite(recordCallSite); - vtable[157] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[157] = d; - d = new _recordRelocation(recordRelocation); - vtable[158] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[158] = d; - d = new _getRelocTypeHint(getRelocTypeHint); - vtable[159] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[159] = d; - d = new _getModuleNativeEntryPointRange(getModuleNativeEntryPointRange); - vtable[160] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[160] = d; - d = new _getExpectedTargetArchitecture(getExpectedTargetArchitecture); - vtable[161] = Marshal.GetFunctionPointerForDelegate(d); - keepalive[161] = d; + var d0 = new _getMethodAttribs(getMethodAttribs); + vtable[0] = Marshal.GetFunctionPointerForDelegate(d0); + keepalive[0] = d0; + var d1 = new _setMethodAttribs(setMethodAttribs); + vtable[1] = Marshal.GetFunctionPointerForDelegate(d1); + keepalive[1] = d1; + var d2 = new _getMethodSig(getMethodSig); + vtable[2] = Marshal.GetFunctionPointerForDelegate(d2); + keepalive[2] = d2; + var d3 = new _getMethodInfo(getMethodInfo); + vtable[3] = Marshal.GetFunctionPointerForDelegate(d3); + keepalive[3] = d3; + var d4 = new _canInline(canInline); + vtable[4] = Marshal.GetFunctionPointerForDelegate(d4); + keepalive[4] = d4; + var d5 = new _reportInliningDecision(reportInliningDecision); + vtable[5] = Marshal.GetFunctionPointerForDelegate(d5); + keepalive[5] = d5; + var d6 = new _canTailCall(canTailCall); + vtable[6] = Marshal.GetFunctionPointerForDelegate(d6); + keepalive[6] = d6; + var d7 = new _reportTailCallDecision(reportTailCallDecision); + vtable[7] = Marshal.GetFunctionPointerForDelegate(d7); + keepalive[7] = d7; + var d8 = new _getEHinfo(getEHinfo); + vtable[8] = Marshal.GetFunctionPointerForDelegate(d8); + keepalive[8] = d8; + var d9 = new _getMethodClass(getMethodClass); + vtable[9] = Marshal.GetFunctionPointerForDelegate(d9); + keepalive[9] = d9; + var d10 = new _getMethodModule(getMethodModule); + vtable[10] = Marshal.GetFunctionPointerForDelegate(d10); + keepalive[10] = d10; + var d11 = new _getMethodVTableOffset(getMethodVTableOffset); + vtable[11] = Marshal.GetFunctionPointerForDelegate(d11); + keepalive[11] = d11; + var d12 = new _getIntrinsicID(getIntrinsicID); + vtable[12] = Marshal.GetFunctionPointerForDelegate(d12); + keepalive[12] = d12; + var d13 = new _isInSIMDModule(isInSIMDModule); + vtable[13] = Marshal.GetFunctionPointerForDelegate(d13); + keepalive[13] = d13; + var d14 = new _getUnmanagedCallConv(getUnmanagedCallConv); + vtable[14] = Marshal.GetFunctionPointerForDelegate(d14); + keepalive[14] = d14; + var d15 = new _pInvokeMarshalingRequired(pInvokeMarshalingRequired); + vtable[15] = Marshal.GetFunctionPointerForDelegate(d15); + keepalive[15] = d15; + var d16 = new _satisfiesMethodConstraints(satisfiesMethodConstraints); + vtable[16] = Marshal.GetFunctionPointerForDelegate(d16); + keepalive[16] = d16; + var d17 = new _isCompatibleDelegate(isCompatibleDelegate); + vtable[17] = Marshal.GetFunctionPointerForDelegate(d17); + keepalive[17] = d17; + var d18 = new _isDelegateCreationAllowed(isDelegateCreationAllowed); + vtable[18] = Marshal.GetFunctionPointerForDelegate(d18); + keepalive[18] = d18; + var d19 = new _isInstantiationOfVerifiedGeneric(isInstantiationOfVerifiedGeneric); + vtable[19] = Marshal.GetFunctionPointerForDelegate(d19); + keepalive[19] = d19; + var d20 = new _initConstraintsForVerification(initConstraintsForVerification); + vtable[20] = Marshal.GetFunctionPointerForDelegate(d20); + keepalive[20] = d20; + var d21 = new _canSkipMethodVerification(canSkipMethodVerification); + vtable[21] = Marshal.GetFunctionPointerForDelegate(d21); + keepalive[21] = d21; + var d22 = new _methodMustBeLoadedBeforeCodeIsRun(methodMustBeLoadedBeforeCodeIsRun); + vtable[22] = Marshal.GetFunctionPointerForDelegate(d22); + keepalive[22] = d22; + var d23 = new _mapMethodDeclToMethodImpl(mapMethodDeclToMethodImpl); + vtable[23] = Marshal.GetFunctionPointerForDelegate(d23); + keepalive[23] = d23; + var d24 = new _getGSCookie(getGSCookie); + vtable[24] = Marshal.GetFunctionPointerForDelegate(d24); + keepalive[24] = d24; + var d25 = new _resolveToken(resolveToken); + vtable[25] = Marshal.GetFunctionPointerForDelegate(d25); + keepalive[25] = d25; + var d26 = new _findSig(findSig); + vtable[26] = Marshal.GetFunctionPointerForDelegate(d26); + keepalive[26] = d26; + var d27 = new _findCallSiteSig(findCallSiteSig); + vtable[27] = Marshal.GetFunctionPointerForDelegate(d27); + keepalive[27] = d27; + var d28 = new _getTokenTypeAsHandle(getTokenTypeAsHandle); + vtable[28] = Marshal.GetFunctionPointerForDelegate(d28); + keepalive[28] = d28; + var d29 = new _canSkipVerification(canSkipVerification); + vtable[29] = Marshal.GetFunctionPointerForDelegate(d29); + keepalive[29] = d29; + var d30 = new _isValidToken(isValidToken); + vtable[30] = Marshal.GetFunctionPointerForDelegate(d30); + keepalive[30] = d30; + var d31 = new _isValidStringRef(isValidStringRef); + vtable[31] = Marshal.GetFunctionPointerForDelegate(d31); + keepalive[31] = d31; + var d32 = new _shouldEnforceCallvirtRestriction(shouldEnforceCallvirtRestriction); + vtable[32] = Marshal.GetFunctionPointerForDelegate(d32); + keepalive[32] = d32; + var d33 = new _asCorInfoType(asCorInfoType); + vtable[33] = Marshal.GetFunctionPointerForDelegate(d33); + keepalive[33] = d33; + var d34 = new _getClassName(getClassName); + vtable[34] = Marshal.GetFunctionPointerForDelegate(d34); + keepalive[34] = d34; + var d35 = new _appendClassName(appendClassName); + vtable[35] = Marshal.GetFunctionPointerForDelegate(d35); + keepalive[35] = d35; + var d36 = new _isValueClass(isValueClass); + vtable[36] = Marshal.GetFunctionPointerForDelegate(d36); + keepalive[36] = d36; + var d37 = new _canInlineTypeCheckWithObjectVTable(canInlineTypeCheckWithObjectVTable); + vtable[37] = Marshal.GetFunctionPointerForDelegate(d37); + keepalive[37] = d37; + var d38 = new _getClassAttribs(getClassAttribs); + vtable[38] = Marshal.GetFunctionPointerForDelegate(d38); + keepalive[38] = d38; + var d39 = new _isStructRequiringStackAllocRetBuf(isStructRequiringStackAllocRetBuf); + vtable[39] = Marshal.GetFunctionPointerForDelegate(d39); + keepalive[39] = d39; + var d40 = new _getClassModule(getClassModule); + vtable[40] = Marshal.GetFunctionPointerForDelegate(d40); + keepalive[40] = d40; + var d41 = new _getModuleAssembly(getModuleAssembly); + vtable[41] = Marshal.GetFunctionPointerForDelegate(d41); + keepalive[41] = d41; + var d42 = new _getAssemblyName(getAssemblyName); + vtable[42] = Marshal.GetFunctionPointerForDelegate(d42); + keepalive[42] = d42; + var d43 = new _LongLifetimeMalloc(LongLifetimeMalloc); + vtable[43] = Marshal.GetFunctionPointerForDelegate(d43); + keepalive[43] = d43; + var d44 = new _LongLifetimeFree(LongLifetimeFree); + vtable[44] = Marshal.GetFunctionPointerForDelegate(d44); + keepalive[44] = d44; + var d45 = new _getClassModuleIdForStatics(getClassModuleIdForStatics); + vtable[45] = Marshal.GetFunctionPointerForDelegate(d45); + keepalive[45] = d45; + var d46 = new _getClassSize(getClassSize); + vtable[46] = Marshal.GetFunctionPointerForDelegate(d46); + keepalive[46] = d46; + var d47 = new _getClassAlignmentRequirement(getClassAlignmentRequirement); + vtable[47] = Marshal.GetFunctionPointerForDelegate(d47); + keepalive[47] = d47; + var d48 = new _getClassGClayout(getClassGClayout); + vtable[48] = Marshal.GetFunctionPointerForDelegate(d48); + keepalive[48] = d48; + var d49 = new _getClassNumInstanceFields(getClassNumInstanceFields); + vtable[49] = Marshal.GetFunctionPointerForDelegate(d49); + keepalive[49] = d49; + var d50 = new _getFieldInClass(getFieldInClass); + vtable[50] = Marshal.GetFunctionPointerForDelegate(d50); + keepalive[50] = d50; + var d51 = new _checkMethodModifier(checkMethodModifier); + vtable[51] = Marshal.GetFunctionPointerForDelegate(d51); + keepalive[51] = d51; + var d52 = new _getNewHelper(getNewHelper); + vtable[52] = Marshal.GetFunctionPointerForDelegate(d52); + keepalive[52] = d52; + var d53 = new _getNewArrHelper(getNewArrHelper); + vtable[53] = Marshal.GetFunctionPointerForDelegate(d53); + keepalive[53] = d53; + var d54 = new _getCastingHelper(getCastingHelper); + vtable[54] = Marshal.GetFunctionPointerForDelegate(d54); + keepalive[54] = d54; + var d55 = new _getSharedCCtorHelper(getSharedCCtorHelper); + vtable[55] = Marshal.GetFunctionPointerForDelegate(d55); + keepalive[55] = d55; + var d56 = new _getSecurityPrologHelper(getSecurityPrologHelper); + vtable[56] = Marshal.GetFunctionPointerForDelegate(d56); + keepalive[56] = d56; + var d57 = new _getTypeForBox(getTypeForBox); + vtable[57] = Marshal.GetFunctionPointerForDelegate(d57); + keepalive[57] = d57; + var d58 = new _getBoxHelper(getBoxHelper); + vtable[58] = Marshal.GetFunctionPointerForDelegate(d58); + keepalive[58] = d58; + var d59 = new _getUnBoxHelper(getUnBoxHelper); + vtable[59] = Marshal.GetFunctionPointerForDelegate(d59); + keepalive[59] = d59; + var d60 = new _getReadyToRunHelper(getReadyToRunHelper); + vtable[60] = Marshal.GetFunctionPointerForDelegate(d60); + keepalive[60] = d60; + var d61 = new _getHelperName(getHelperName); + vtable[61] = Marshal.GetFunctionPointerForDelegate(d61); + keepalive[61] = d61; + var d62 = new _initClass(initClass); + vtable[62] = Marshal.GetFunctionPointerForDelegate(d62); + keepalive[62] = d62; + var d63 = new _classMustBeLoadedBeforeCodeIsRun(classMustBeLoadedBeforeCodeIsRun); + vtable[63] = Marshal.GetFunctionPointerForDelegate(d63); + keepalive[63] = d63; + var d64 = new _getBuiltinClass(getBuiltinClass); + vtable[64] = Marshal.GetFunctionPointerForDelegate(d64); + keepalive[64] = d64; + var d65 = new _getTypeForPrimitiveValueClass(getTypeForPrimitiveValueClass); + vtable[65] = Marshal.GetFunctionPointerForDelegate(d65); + keepalive[65] = d65; + var d66 = new _canCast(canCast); + vtable[66] = Marshal.GetFunctionPointerForDelegate(d66); + keepalive[66] = d66; + var d67 = new _areTypesEquivalent(areTypesEquivalent); + vtable[67] = Marshal.GetFunctionPointerForDelegate(d67); + keepalive[67] = d67; + var d68 = new _mergeClasses(mergeClasses); + vtable[68] = Marshal.GetFunctionPointerForDelegate(d68); + keepalive[68] = d68; + var d69 = new _getParentType(getParentType); + vtable[69] = Marshal.GetFunctionPointerForDelegate(d69); + keepalive[69] = d69; + var d70 = new _getChildType(getChildType); + vtable[70] = Marshal.GetFunctionPointerForDelegate(d70); + keepalive[70] = d70; + var d71 = new _satisfiesClassConstraints(satisfiesClassConstraints); + vtable[71] = Marshal.GetFunctionPointerForDelegate(d71); + keepalive[71] = d71; + var d72 = new _isSDArray(isSDArray); + vtable[72] = Marshal.GetFunctionPointerForDelegate(d72); + keepalive[72] = d72; + var d73 = new _getArrayRank(getArrayRank); + vtable[73] = Marshal.GetFunctionPointerForDelegate(d73); + keepalive[73] = d73; + var d74 = new _getArrayInitializationData(getArrayInitializationData); + vtable[74] = Marshal.GetFunctionPointerForDelegate(d74); + keepalive[74] = d74; + var d75 = new _canAccessClass(canAccessClass); + vtable[75] = Marshal.GetFunctionPointerForDelegate(d75); + keepalive[75] = d75; + var d76 = new _getFieldName(getFieldName); + vtable[76] = Marshal.GetFunctionPointerForDelegate(d76); + keepalive[76] = d76; + var d77 = new _getFieldClass(getFieldClass); + vtable[77] = Marshal.GetFunctionPointerForDelegate(d77); + keepalive[77] = d77; + var d78 = new _getFieldType(getFieldType); + vtable[78] = Marshal.GetFunctionPointerForDelegate(d78); + keepalive[78] = d78; + var d79 = new _getFieldOffset(getFieldOffset); + vtable[79] = Marshal.GetFunctionPointerForDelegate(d79); + keepalive[79] = d79; + var d80 = new _isWriteBarrierHelperRequired(isWriteBarrierHelperRequired); + vtable[80] = Marshal.GetFunctionPointerForDelegate(d80); + keepalive[80] = d80; + var d81 = new _getFieldInfo(getFieldInfo); + vtable[81] = Marshal.GetFunctionPointerForDelegate(d81); + keepalive[81] = d81; + var d82 = new _isFieldStatic(isFieldStatic); + vtable[82] = Marshal.GetFunctionPointerForDelegate(d82); + keepalive[82] = d82; + var d83 = new _getBoundaries(getBoundaries); + vtable[83] = Marshal.GetFunctionPointerForDelegate(d83); + keepalive[83] = d83; + var d84 = new _setBoundaries(setBoundaries); + vtable[84] = Marshal.GetFunctionPointerForDelegate(d84); + keepalive[84] = d84; + var d85 = new _getVars(getVars); + vtable[85] = Marshal.GetFunctionPointerForDelegate(d85); + keepalive[85] = d85; + var d86 = new _setVars(setVars); + vtable[86] = Marshal.GetFunctionPointerForDelegate(d86); + keepalive[86] = d86; + var d87 = new _allocateArray(allocateArray); + vtable[87] = Marshal.GetFunctionPointerForDelegate(d87); + keepalive[87] = d87; + var d88 = new _freeArray(freeArray); + vtable[88] = Marshal.GetFunctionPointerForDelegate(d88); + keepalive[88] = d88; + var d89 = new _getArgNext(getArgNext); + vtable[89] = Marshal.GetFunctionPointerForDelegate(d89); + keepalive[89] = d89; + var d90 = new _getArgType(getArgType); + vtable[90] = Marshal.GetFunctionPointerForDelegate(d90); + keepalive[90] = d90; + var d91 = new _getArgClass(getArgClass); + vtable[91] = Marshal.GetFunctionPointerForDelegate(d91); + keepalive[91] = d91; + var d92 = new _getHFAType(getHFAType); + vtable[92] = Marshal.GetFunctionPointerForDelegate(d92); + keepalive[92] = d92; + var d93 = new _GetErrorHRESULT(GetErrorHRESULT); + vtable[93] = Marshal.GetFunctionPointerForDelegate(d93); + keepalive[93] = d93; + var d94 = new _GetErrorMessage(GetErrorMessage); + vtable[94] = Marshal.GetFunctionPointerForDelegate(d94); + keepalive[94] = d94; + var d95 = new _FilterException(FilterException); + vtable[95] = Marshal.GetFunctionPointerForDelegate(d95); + keepalive[95] = d95; + var d96 = new _HandleException(HandleException); + vtable[96] = Marshal.GetFunctionPointerForDelegate(d96); + keepalive[96] = d96; + var d97 = new _ThrowExceptionForJitResult(ThrowExceptionForJitResult); + vtable[97] = Marshal.GetFunctionPointerForDelegate(d97); + keepalive[97] = d97; + var d98 = new _ThrowExceptionForHelper(ThrowExceptionForHelper); + vtable[98] = Marshal.GetFunctionPointerForDelegate(d98); + keepalive[98] = d98; + var d99 = new _getEEInfo(getEEInfo); + vtable[99] = Marshal.GetFunctionPointerForDelegate(d99); + keepalive[99] = d99; + var d100 = new _getJitTimeLogFilename(getJitTimeLogFilename); + vtable[100] = Marshal.GetFunctionPointerForDelegate(d100); + keepalive[100] = d100; + var d101 = new _getMethodDefFromMethod(getMethodDefFromMethod); + vtable[101] = Marshal.GetFunctionPointerForDelegate(d101); + keepalive[101] = d101; + var d102 = new _getMethodName(getMethodName); + vtable[102] = Marshal.GetFunctionPointerForDelegate(d102); + keepalive[102] = d102; + var d103 = new _getMethodHash(getMethodHash); + vtable[103] = Marshal.GetFunctionPointerForDelegate(d103); + keepalive[103] = d103; + var d104 = new _findNameOfToken(findNameOfToken); + vtable[104] = Marshal.GetFunctionPointerForDelegate(d104); + keepalive[104] = d104; + var d105 = new _getIntConfigValue(getIntConfigValue); + vtable[105] = Marshal.GetFunctionPointerForDelegate(d105); + keepalive[105] = d105; + var d106 = new _getStringConfigValue(getStringConfigValue); + vtable[106] = Marshal.GetFunctionPointerForDelegate(d106); + keepalive[106] = d106; + var d107 = new _freeStringConfigValue(freeStringConfigValue); + vtable[107] = Marshal.GetFunctionPointerForDelegate(d107); + keepalive[107] = d107; + var d108 = new _getThreadTLSIndex(getThreadTLSIndex); + vtable[108] = Marshal.GetFunctionPointerForDelegate(d108); + keepalive[108] = d108; + var d109 = new _getInlinedCallFrameVptr(getInlinedCallFrameVptr); + vtable[109] = Marshal.GetFunctionPointerForDelegate(d109); + keepalive[109] = d109; + var d110 = new _getAddrOfCaptureThreadGlobal(getAddrOfCaptureThreadGlobal); + vtable[110] = Marshal.GetFunctionPointerForDelegate(d110); + keepalive[110] = d110; + var d111 = new _getAddrModuleDomainID(getAddrModuleDomainID); + vtable[111] = Marshal.GetFunctionPointerForDelegate(d111); + keepalive[111] = d111; + var d112 = new _getHelperFtn(getHelperFtn); + vtable[112] = Marshal.GetFunctionPointerForDelegate(d112); + keepalive[112] = d112; + var d113 = new _getFunctionEntryPoint(getFunctionEntryPoint); + vtable[113] = Marshal.GetFunctionPointerForDelegate(d113); + keepalive[113] = d113; + var d114 = new _getFunctionFixedEntryPoint(getFunctionFixedEntryPoint); + vtable[114] = Marshal.GetFunctionPointerForDelegate(d114); + keepalive[114] = d114; + var d115 = new _getMethodSync(getMethodSync); + vtable[115] = Marshal.GetFunctionPointerForDelegate(d115); + keepalive[115] = d115; + var d116 = new _getLazyStringLiteralHelper(getLazyStringLiteralHelper); + vtable[116] = Marshal.GetFunctionPointerForDelegate(d116); + keepalive[116] = d116; + var d117 = new _embedModuleHandle(embedModuleHandle); + vtable[117] = Marshal.GetFunctionPointerForDelegate(d117); + keepalive[117] = d117; + var d118 = new _embedClassHandle(embedClassHandle); + vtable[118] = Marshal.GetFunctionPointerForDelegate(d118); + keepalive[118] = d118; + var d119 = new _embedMethodHandle(embedMethodHandle); + vtable[119] = Marshal.GetFunctionPointerForDelegate(d119); + keepalive[119] = d119; + var d120 = new _embedFieldHandle(embedFieldHandle); + vtable[120] = Marshal.GetFunctionPointerForDelegate(d120); + keepalive[120] = d120; + var d121 = new _embedGenericHandle(embedGenericHandle); + vtable[121] = Marshal.GetFunctionPointerForDelegate(d121); + keepalive[121] = d121; + var d122 = new _getLocationOfThisType(getLocationOfThisType); + vtable[122] = Marshal.GetFunctionPointerForDelegate(d122); + keepalive[122] = d122; + var d123 = new _getPInvokeUnmanagedTarget(getPInvokeUnmanagedTarget); + vtable[123] = Marshal.GetFunctionPointerForDelegate(d123); + keepalive[123] = d123; + var d124 = new _getAddressOfPInvokeFixup(getAddressOfPInvokeFixup); + vtable[124] = Marshal.GetFunctionPointerForDelegate(d124); + keepalive[124] = d124; + var d125 = new _GetCookieForPInvokeCalliSig(GetCookieForPInvokeCalliSig); + vtable[125] = Marshal.GetFunctionPointerForDelegate(d125); + keepalive[125] = d125; + var d126 = new _canGetCookieForPInvokeCalliSig(canGetCookieForPInvokeCalliSig); + vtable[126] = Marshal.GetFunctionPointerForDelegate(d126); + keepalive[126] = d126; + var d127 = new _getJustMyCodeHandle(getJustMyCodeHandle); + vtable[127] = Marshal.GetFunctionPointerForDelegate(d127); + keepalive[127] = d127; + var d128 = new _GetProfilingHandle(GetProfilingHandle); + vtable[128] = Marshal.GetFunctionPointerForDelegate(d128); + keepalive[128] = d128; + var d129 = new _getCallInfo(getCallInfo); + vtable[129] = Marshal.GetFunctionPointerForDelegate(d129); + keepalive[129] = d129; + var d130 = new _canAccessFamily(canAccessFamily); + vtable[130] = Marshal.GetFunctionPointerForDelegate(d130); + keepalive[130] = d130; + var d131 = new _isRIDClassDomainID(isRIDClassDomainID); + vtable[131] = Marshal.GetFunctionPointerForDelegate(d131); + keepalive[131] = d131; + var d132 = new _getClassDomainID(getClassDomainID); + vtable[132] = Marshal.GetFunctionPointerForDelegate(d132); + keepalive[132] = d132; + var d133 = new _getFieldAddress(getFieldAddress); + vtable[133] = Marshal.GetFunctionPointerForDelegate(d133); + keepalive[133] = d133; + var d134 = new _getVarArgsHandle(getVarArgsHandle); + vtable[134] = Marshal.GetFunctionPointerForDelegate(d134); + keepalive[134] = d134; + var d135 = new _canGetVarArgsHandle(canGetVarArgsHandle); + vtable[135] = Marshal.GetFunctionPointerForDelegate(d135); + keepalive[135] = d135; + var d136 = new _constructStringLiteral(constructStringLiteral); + vtable[136] = Marshal.GetFunctionPointerForDelegate(d136); + keepalive[136] = d136; + var d137 = new _emptyStringLiteral(emptyStringLiteral); + vtable[137] = Marshal.GetFunctionPointerForDelegate(d137); + keepalive[137] = d137; + var d138 = new _getFieldThreadLocalStoreID(getFieldThreadLocalStoreID); + vtable[138] = Marshal.GetFunctionPointerForDelegate(d138); + keepalive[138] = d138; + var d139 = new _setOverride(setOverride); + vtable[139] = Marshal.GetFunctionPointerForDelegate(d139); + keepalive[139] = d139; + var d140 = new _addActiveDependency(addActiveDependency); + vtable[140] = Marshal.GetFunctionPointerForDelegate(d140); + keepalive[140] = d140; + var d141 = new _GetDelegateCtor(GetDelegateCtor); + vtable[141] = Marshal.GetFunctionPointerForDelegate(d141); + keepalive[141] = d141; + var d142 = new _MethodCompileComplete(MethodCompileComplete); + vtable[142] = Marshal.GetFunctionPointerForDelegate(d142); + keepalive[142] = d142; + var d143 = new _getTailCallCopyArgsThunk(getTailCallCopyArgsThunk); + vtable[143] = Marshal.GetFunctionPointerForDelegate(d143); + keepalive[143] = d143; + var d144 = new _getMemoryManager(getMemoryManager); + vtable[144] = Marshal.GetFunctionPointerForDelegate(d144); + keepalive[144] = d144; + var d145 = new _allocMem(allocMem); + vtable[145] = Marshal.GetFunctionPointerForDelegate(d145); + keepalive[145] = d145; + var d146 = new _reserveUnwindInfo(reserveUnwindInfo); + vtable[146] = Marshal.GetFunctionPointerForDelegate(d146); + keepalive[146] = d146; + var d147 = new _allocUnwindInfo(allocUnwindInfo); + vtable[147] = Marshal.GetFunctionPointerForDelegate(d147); + keepalive[147] = d147; + var d148 = new _allocGCInfo(allocGCInfo); + vtable[148] = Marshal.GetFunctionPointerForDelegate(d148); + keepalive[148] = d148; + var d149 = new _yieldExecution(yieldExecution); + vtable[149] = Marshal.GetFunctionPointerForDelegate(d149); + keepalive[149] = d149; + var d150 = new _setEHcount(setEHcount); + vtable[150] = Marshal.GetFunctionPointerForDelegate(d150); + keepalive[150] = d150; + var d151 = new _setEHinfo(setEHinfo); + vtable[151] = Marshal.GetFunctionPointerForDelegate(d151); + keepalive[151] = d151; + var d152 = new _logMsg(logMsg); + vtable[152] = Marshal.GetFunctionPointerForDelegate(d152); + keepalive[152] = d152; + var d153 = new _doAssert(doAssert); + vtable[153] = Marshal.GetFunctionPointerForDelegate(d153); + keepalive[153] = d153; + var d154 = new _reportFatalError(reportFatalError); + vtable[154] = Marshal.GetFunctionPointerForDelegate(d154); + keepalive[154] = d154; + var d155 = new _allocBBProfileBuffer(allocBBProfileBuffer); + vtable[155] = Marshal.GetFunctionPointerForDelegate(d155); + keepalive[155] = d155; + var d156 = new _getBBProfileData(getBBProfileData); + vtable[156] = Marshal.GetFunctionPointerForDelegate(d156); + keepalive[156] = d156; + var d157 = new _recordCallSite(recordCallSite); + vtable[157] = Marshal.GetFunctionPointerForDelegate(d157); + keepalive[157] = d157; + var d158 = new _recordRelocation(recordRelocation); + vtable[158] = Marshal.GetFunctionPointerForDelegate(d158); + keepalive[158] = d158; + var d159 = new _getRelocTypeHint(getRelocTypeHint); + vtable[159] = Marshal.GetFunctionPointerForDelegate(d159); + keepalive[159] = d159; + var d160 = new _getModuleNativeEntryPointRange(getModuleNativeEntryPointRange); + vtable[160] = Marshal.GetFunctionPointerForDelegate(d160); + keepalive[160] = d160; + var d161 = new _getExpectedTargetArchitecture(getExpectedTargetArchitecture); + vtable[161] = Marshal.GetFunctionPointerForDelegate(d161); + keepalive[161] = d161; IntPtr instance = Marshal.AllocCoTaskMem(sizeof(IntPtr)); *(IntPtr**)instance = vtable; diff --git a/src/JitInterface/src/CorInfoImpl.cs b/src/JitInterface/src/CorInfoImpl.cs index 358c4a0f310..e13828c8736 100644 --- a/src/JitInterface/src/CorInfoImpl.cs +++ b/src/JitInterface/src/CorInfoImpl.cs @@ -47,7 +47,7 @@ public CorInfoImpl(Compilation compilation) _comp = CreateUnmanagedInstance(); - string clrjitPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\clrjit.dll"; + string clrjitPath = AppContext.BaseDirectory + "\\clrjit.dll"; IntPtr jit = LoadLibraryEx(clrjitPath, new IntPtr(0), 0x1300); IntPtr proc = GetProcAddress(jit, "getJit"); @@ -790,7 +790,7 @@ void getFieldInfo(IntPtr _this, ref CORINFO_RESOLVED_TOKEN pResolvedToken, CORIN // In debug, write some bogus data to the struct to ensure we have filled everything // properly. fixed (CORINFO_FIELD_INFO* tmp = &pResult) - MemoryHelper.FillMemory((byte*)tmp, 0xcc, Marshal.SizeOf(typeof(CORINFO_FIELD_INFO))); + MemoryHelper.FillMemory((byte*)tmp, 0xcc, Marshal.SizeOf()); #endif Debug.Assert(((int)flags & ((int)CORINFO_ACCESS_FLAGS.CORINFO_ACCESS_GET | @@ -1198,16 +1198,14 @@ void setEHinfo(IntPtr _this, uint EHnumber, ref CORINFO_EH_CLAUSE clause) [return: MarshalAs(UnmanagedType.Bool)] bool logMsg(IntPtr _this, uint level, byte* fmt, IntPtr args) { - // TODO: Use Encoding.GetString(byte* bytes, int byteCount) - // Console.WriteLine(new String((sbyte*)fmt)); + // Console.WriteLine(Marshal.PtrToStringAnsi((IntPtr)fmt)); return false; } int doAssert(IntPtr _this, byte* szFile, int iLine, byte* szExpr) { - // TODO: Use Encoding.GetString(byte* bytes, int byteCount) - Log.WriteLine(new String((sbyte*)szFile) + ":" + iLine); - Log.WriteLine(new String((sbyte*)szExpr)); + Log.WriteLine(Marshal.PtrToStringAnsi((IntPtr)szFile) + ":" + iLine); + Log.WriteLine(Marshal.PtrToStringAnsi((IntPtr)szExpr)); return 1; } diff --git a/src/JitInterface/src/ThunkGenerator/Program.cs b/src/JitInterface/src/ThunkGenerator/Program.cs index 902cd8a2238..6b9ab02f474 100644 --- a/src/JitInterface/src/ThunkGenerator/Program.cs +++ b/src/JitInterface/src/ThunkGenerator/Program.cs @@ -220,16 +220,20 @@ static void WriteManagedThunkInterface(TextWriter tr, IEnumerable { // Write header tr.Write(@" +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + // DO NOT EDIT THIS FILE! It IS AUTOGENERATED using System; using System.Runtime.InteropServices; namespace Internal.JitInterface { - unsafe class CorInfoBase + unsafe partial class CorInfoImpl { "); +#if false foreach (FunctionDecl decl in functionData) { string returnType = decl.ReturnType.ManagedTypeName; @@ -247,6 +251,7 @@ unsafe class CorInfoBase tr.WriteLine(" { throw new NotImplementedException(); }"); } tr.WriteLine(); +#endif foreach (FunctionDecl decl in functionData) { @@ -274,7 +279,6 @@ protected IntPtr CreateUnmanagedInstance() { IntPtr * vtable = (IntPtr *)Marshal.AllocCoTaskMem(sizeof(IntPtr) * " + total + @"); Object[] keepalive = new Object[" + total + @"]; - Delegate d; _keepalive = keepalive; "); @@ -282,9 +286,9 @@ protected IntPtr CreateUnmanagedInstance() int index = 0; foreach (FunctionDecl decl in functionData) { - tr.WriteLine(" d = new _" + decl.FunctionName + "(" + decl.FunctionName + ");"); - tr.WriteLine(" vtable[" + index + "] = Marshal.GetFunctionPointerForDelegate(d);"); - tr.WriteLine(" keepalive[" + index + "] = d;"); + tr.WriteLine(" var d" + index + " = new _" + decl.FunctionName + "(" + decl.FunctionName + ");"); + tr.WriteLine(" vtable[" + index + "] = Marshal.GetFunctionPointerForDelegate(d" + index + ");"); + tr.WriteLine(" keepalive[" + index + "] = d" + index + ";"); index++; } From ab3e67a0b525f776b6fab7645b6051a9bc6d6714 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Wed, 30 Sep 2015 10:29:25 -0700 Subject: [PATCH 2/2] Add VS solution files for ad hoc testing --- src/ILToNative/ILToNative.sln | 28 + src/ILToNative/repro/Program.cs | 18 + src/ILToNative/repro/project.json | 22 + src/ILToNative/repro/project.lock.json | 1043 +++++++++++++++++ src/ILToNative/repro/repro.csproj | 45 + src/ILToNative/reproNative/common.cpp | 11 + src/ILToNative/reproNative/common.h | 102 ++ src/ILToNative/reproNative/main.cpp | 406 +++++++ .../reproNative/reproNative.vcxproj | 118 ++ src/ILToNative/reproNative/stubs.cpp | 48 + src/ILToNative/src/ILToNative.csproj | 1 - src/ILToNative/src/project.lock.json | 10 +- src/Native/gc/env/gcenv.h | 16 +- 13 files changed, 1861 insertions(+), 7 deletions(-) create mode 100644 src/ILToNative/ILToNative.sln create mode 100644 src/ILToNative/repro/Program.cs create mode 100644 src/ILToNative/repro/project.json create mode 100644 src/ILToNative/repro/project.lock.json create mode 100644 src/ILToNative/repro/repro.csproj create mode 100644 src/ILToNative/reproNative/common.cpp create mode 100644 src/ILToNative/reproNative/common.h create mode 100644 src/ILToNative/reproNative/main.cpp create mode 100644 src/ILToNative/reproNative/reproNative.vcxproj create mode 100644 src/ILToNative/reproNative/stubs.cpp diff --git a/src/ILToNative/ILToNative.sln b/src/ILToNative/ILToNative.sln new file mode 100644 index 00000000000..391aad9cf37 --- /dev/null +++ b/src/ILToNative/ILToNative.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILToNative", "src\ILToNative.csproj", "{DD5B6BAA-D41A-4A6E-9E7D-83060F394B10}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "repro", "repro\repro.csproj", "{FBA029C3-B184-4457-AEEC-38D0C2523067}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DD5B6BAA-D41A-4A6E-9E7D-83060F394B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD5B6BAA-D41A-4A6E-9E7D-83060F394B10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD5B6BAA-D41A-4A6E-9E7D-83060F394B10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD5B6BAA-D41A-4A6E-9E7D-83060F394B10}.Release|Any CPU.Build.0 = Release|Any CPU + {FBA029C3-B184-4457-AEEC-38D0C2523067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBA029C3-B184-4457-AEEC-38D0C2523067}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBA029C3-B184-4457-AEEC-38D0C2523067}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBA029C3-B184-4457-AEEC-38D0C2523067}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/ILToNative/repro/Program.cs b/src/ILToNative/repro/Program.cs new file mode 100644 index 00000000000..85dbd28ae30 --- /dev/null +++ b/src/ILToNative/repro/Program.cs @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; + +internal class Program +{ + public virtual void foo() + { + } + + private static void Main(string[] args) + { + var o = new Program(); + o.foo(); + } +} + diff --git a/src/ILToNative/repro/project.json b/src/ILToNative/repro/project.json new file mode 100644 index 00000000000..8948e431181 --- /dev/null +++ b/src/ILToNative/repro/project.json @@ -0,0 +1,22 @@ +{ + "dependencies": { + "System.Runtime": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.Collections": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Runtime.InteropServices": "4.0.10", + "System.Reflection": "4.0.0", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Console": "4.0.0-beta-*", + }, + "frameworks": { + "dnxcore50": {} + } +} \ No newline at end of file diff --git a/src/ILToNative/repro/project.lock.json b/src/ILToNative/repro/project.lock.json new file mode 100644 index 00000000000..2f20270dee4 --- /dev/null +++ b/src/ILToNative/repro/project.lock.json @@ -0,0 +1,1043 @@ +{ + "locked": false, + "version": 1, + "targets": { + "DNXCore,Version=v5.0": { + "System.Collections/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + } + }, + "System.Console/4.0.0-beta-23330": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.IO": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Console.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + } + }, + "System.Globalization/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + } + }, + "System.IO/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Text.Encoding": "[4.0.0, )", + "System.Threading.Tasks": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.20, )", + "System.Runtime.InteropServices": "[4.0.20, )", + "System.Resources.ResourceManager": "[4.0.0, )", + "System.IO.FileSystem.Primitives": "[4.0.0, )", + "System.Runtime.Handles": "[4.0.0, )", + "System.Threading.Overlapped": "[4.0.0, )", + "System.Text.Encoding": "[4.0.10, )", + "System.IO": "[4.0.10, )", + "System.Collections": "[4.0.10, )", + "System.Threading.Tasks": "[4.0.10, )", + "System.Runtime.Extensions": "[4.0.10, )", + "System.Text.Encoding.Extensions": "[4.0.10, )", + "System.Threading": "[4.0.10, )" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.20, )" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.Reflection/4.0.0": { + "dependencies": { + "System.IO": "[4.0.0, )", + "System.Reflection.Primitives": "[4.0.0, )", + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Reflection": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Reflection": "[4.0.0, )", + "System.Globalization": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.0": { + "compile": { + "ref/dotnet/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "[4.0.20, )" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.10": { + "dependencies": { + "System.Reflection": "[4.0.0, )", + "System.Reflection.Primitives": "[4.0.0, )", + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + } + }, + "System.Text.Encoding/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Text.Encoding": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Threading/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Threading.Tasks": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Runtime": "[4.0.0, )", + "System.Runtime.Handles": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "[4.0.0, )" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/DNXCore50/System.Threading.Tasks.dll": {} + } + } + } + }, + "libraries": { + "System.Collections/4.0.0": { + "sha512": "i2vsGDIEbWdHcUSNDPKZP/ZWod6o740el7mGTCy0dqbCxQh74W4QoC+klUwPEtGEFuvzJ7bJgvwJqscosVNyZQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Collections.nuspec", + "License.rtf", + "ref/dotnet/System.Collections.dll", + "ref/netcore50/System.Collections.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Collections.xml", + "ref/netcore50/zh-hant/System.Collections.xml", + "ref/dotnet/de/System.Collections.xml", + "ref/netcore50/de/System.Collections.xml", + "ref/dotnet/System.Collections.xml", + "ref/netcore50/System.Collections.xml", + "ref/dotnet/fr/System.Collections.xml", + "ref/netcore50/fr/System.Collections.xml", + "ref/dotnet/it/System.Collections.xml", + "ref/netcore50/it/System.Collections.xml", + "ref/dotnet/ja/System.Collections.xml", + "ref/netcore50/ja/System.Collections.xml", + "ref/dotnet/ko/System.Collections.xml", + "ref/netcore50/ko/System.Collections.xml", + "ref/dotnet/ru/System.Collections.xml", + "ref/netcore50/ru/System.Collections.xml", + "ref/dotnet/zh-hans/System.Collections.xml", + "ref/netcore50/zh-hans/System.Collections.xml", + "ref/dotnet/es/System.Collections.xml", + "ref/netcore50/es/System.Collections.xml", + "package/services/metadata/core-properties/24c5f986c3534c16ad303a35c4af021d.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Console/4.0.0-beta-23330": { + "sha512": "zsvCt5wo0eTkZXwzGLfJ5arE1gt4Be4HDPbl1k6Z3ajBOI/ez0BtCJLZCTWdGMTeIDpFoMKjJRaotp1DFQ39og==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Console.nuspec", + "lib/net46/System.Console.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.Console.dll", + "ref/net46/System.Console.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "package/services/metadata/core-properties/33e6fc365a2e455f89edfb4aa38e0eed.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Diagnostics.Debug/4.0.0": { + "sha512": "AYJsLLGDVTC/nyURjgAo7Lpye0+HuSkcQujUf+NgQVdC/C/ky5NyamQHCforHJzgqspitMMtBe8B4UBdGXy1zQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Diagnostics.Debug.nuspec", + "License.rtf", + "ref/dotnet/System.Diagnostics.Debug.dll", + "ref/netcore50/System.Diagnostics.Debug.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", + "ref/dotnet/de/System.Diagnostics.Debug.xml", + "ref/netcore50/de/System.Diagnostics.Debug.xml", + "ref/dotnet/System.Diagnostics.Debug.xml", + "ref/netcore50/System.Diagnostics.Debug.xml", + "ref/dotnet/fr/System.Diagnostics.Debug.xml", + "ref/netcore50/fr/System.Diagnostics.Debug.xml", + "ref/dotnet/it/System.Diagnostics.Debug.xml", + "ref/netcore50/it/System.Diagnostics.Debug.xml", + "ref/dotnet/ja/System.Diagnostics.Debug.xml", + "ref/netcore50/ja/System.Diagnostics.Debug.xml", + "ref/dotnet/ko/System.Diagnostics.Debug.xml", + "ref/netcore50/ko/System.Diagnostics.Debug.xml", + "ref/dotnet/ru/System.Diagnostics.Debug.xml", + "ref/netcore50/ru/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", + "ref/dotnet/es/System.Diagnostics.Debug.xml", + "ref/netcore50/es/System.Diagnostics.Debug.xml", + "package/services/metadata/core-properties/9589d3ad95ef4d84a1edf67426c7c00a.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Globalization/4.0.0": { + "sha512": "IBJyTo1y7ZtzzoJUA60T1XPvNTyw/wfFmjFoBFtlYfkekIOtD/AzDDIg0YdUa7eNtFEfliED2R7HdppTdU4t5A==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Globalization.nuspec", + "License.rtf", + "ref/dotnet/System.Globalization.dll", + "ref/netcore50/System.Globalization.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Globalization.xml", + "ref/netcore50/zh-hant/System.Globalization.xml", + "ref/dotnet/de/System.Globalization.xml", + "ref/netcore50/de/System.Globalization.xml", + "ref/dotnet/System.Globalization.xml", + "ref/netcore50/System.Globalization.xml", + "ref/dotnet/fr/System.Globalization.xml", + "ref/netcore50/fr/System.Globalization.xml", + "ref/dotnet/it/System.Globalization.xml", + "ref/netcore50/it/System.Globalization.xml", + "ref/dotnet/ja/System.Globalization.xml", + "ref/netcore50/ja/System.Globalization.xml", + "ref/dotnet/ko/System.Globalization.xml", + "ref/netcore50/ko/System.Globalization.xml", + "ref/dotnet/ru/System.Globalization.xml", + "ref/netcore50/ru/System.Globalization.xml", + "ref/dotnet/zh-hans/System.Globalization.xml", + "ref/netcore50/zh-hans/System.Globalization.xml", + "ref/dotnet/es/System.Globalization.xml", + "ref/netcore50/es/System.Globalization.xml", + "package/services/metadata/core-properties/7256e6303e10459782eff20c3ec90af5.psmdcp", + "[Content_Types].xml" + ] + }, + "System.IO/4.0.0": { + "sha512": "MoCHQ0u5n0OMwUS8OX4Gl48qKiQziSW5cXvt82d+MmAcsLq9OL90+ihnu/aJ1h6OOYcBswrZAEuApfZha9w2lg==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.IO.nuspec", + "License.rtf", + "ref/dotnet/System.IO.dll", + "ref/netcore50/System.IO.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.IO.xml", + "ref/netcore50/zh-hant/System.IO.xml", + "ref/dotnet/de/System.IO.xml", + "ref/netcore50/de/System.IO.xml", + "ref/dotnet/System.IO.xml", + "ref/netcore50/System.IO.xml", + "ref/dotnet/fr/System.IO.xml", + "ref/netcore50/fr/System.IO.xml", + "ref/dotnet/it/System.IO.xml", + "ref/netcore50/it/System.IO.xml", + "ref/dotnet/ja/System.IO.xml", + "ref/netcore50/ja/System.IO.xml", + "ref/dotnet/ko/System.IO.xml", + "ref/netcore50/ko/System.IO.xml", + "ref/dotnet/ru/System.IO.xml", + "ref/netcore50/ru/System.IO.xml", + "ref/dotnet/zh-hans/System.IO.xml", + "ref/netcore50/zh-hans/System.IO.xml", + "ref/dotnet/es/System.IO.xml", + "ref/netcore50/es/System.IO.xml", + "package/services/metadata/core-properties/93bf03c6f6d24eaf9a358a72856daa5f.psmdcp", + "[Content_Types].xml" + ] + }, + "System.IO.FileSystem/4.0.0": { + "sha512": "eo05SPWfG+54UA0wxgRIYOuOslq+2QrJLXZaJDDsfLXG15OLguaItW39NYZTqUb4DeGOkU4R0wpOLOW4ynMUDQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.IO.FileSystem.nuspec", + "lib/DNXCore50/System.IO.FileSystem.dll", + "lib/netcore50/System.IO.FileSystem.dll", + "lib/net46/System.IO.FileSystem.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.IO.FileSystem.dll", + "ref/dotnet/System.IO.FileSystem.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.xml", + "ref/dotnet/de/System.IO.FileSystem.xml", + "ref/dotnet/fr/System.IO.FileSystem.xml", + "ref/dotnet/it/System.IO.FileSystem.xml", + "ref/dotnet/ja/System.IO.FileSystem.xml", + "ref/dotnet/ko/System.IO.FileSystem.xml", + "ref/dotnet/ru/System.IO.FileSystem.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.xml", + "ref/dotnet/es/System.IO.FileSystem.xml", + "ref/net46/System.IO.FileSystem.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "package/services/metadata/core-properties/0405bad2bcdd403884f42a0a79534bc1.psmdcp", + "[Content_Types].xml" + ] + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "sha512": "7pJUvYi/Yq3A5nagqCCiOw3+aJp3xXc/Cjr8dnJDnER3/6kX3LEencfqmXUcPl9+7OvRNyPMNhqsLAcMK6K/KA==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.IO.FileSystem.Primitives.nuspec", + "lib/dotnet/System.IO.FileSystem.Primitives.dll", + "lib/net46/System.IO.FileSystem.Primitives.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.IO.FileSystem.Primitives.dll", + "ref/dotnet/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/de/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/fr/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/it/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ja/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ko/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ru/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/es/System.IO.FileSystem.Primitives.xml", + "ref/net46/System.IO.FileSystem.Primitives.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "package/services/metadata/core-properties/2cf3542156f0426483f92b9e37d8d381.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Reflection/4.0.0": { + "sha512": "g96Rn8XuG7y4VfxPj/jnXroRJdQ8L3iN3k3zqsuzk4k3Nq4KMXARYiIO4BLW4GwX06uQpuYwRMcAC/aF117knQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Reflection.nuspec", + "License.rtf", + "ref/dotnet/System.Reflection.dll", + "ref/netcore50/System.Reflection.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Reflection.xml", + "ref/netcore50/zh-hant/System.Reflection.xml", + "ref/dotnet/de/System.Reflection.xml", + "ref/netcore50/de/System.Reflection.xml", + "ref/dotnet/System.Reflection.xml", + "ref/netcore50/System.Reflection.xml", + "ref/dotnet/fr/System.Reflection.xml", + "ref/netcore50/fr/System.Reflection.xml", + "ref/dotnet/it/System.Reflection.xml", + "ref/netcore50/it/System.Reflection.xml", + "ref/dotnet/ja/System.Reflection.xml", + "ref/netcore50/ja/System.Reflection.xml", + "ref/dotnet/ko/System.Reflection.xml", + "ref/netcore50/ko/System.Reflection.xml", + "ref/dotnet/ru/System.Reflection.xml", + "ref/netcore50/ru/System.Reflection.xml", + "ref/dotnet/zh-hans/System.Reflection.xml", + "ref/netcore50/zh-hans/System.Reflection.xml", + "ref/dotnet/es/System.Reflection.xml", + "ref/netcore50/es/System.Reflection.xml", + "package/services/metadata/core-properties/1e935117d401458384a90c2c69f60bd2.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Reflection.Extensions/4.0.0": { + "sha512": "dbYaZWCyFAu1TGYUqR2n+Q+1casSHPR2vVW0WVNkXpZbrd2BXcZ7cpvpu9C98CTHtNmyfMWCLpCclDqly23t6A==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Reflection.Extensions.nuspec", + "lib/netcore50/System.Reflection.Extensions.dll", + "lib/DNXCore50/System.Reflection.Extensions.dll", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Reflection.Extensions.dll", + "ref/dotnet/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hant/System.Reflection.Extensions.xml", + "ref/dotnet/de/System.Reflection.Extensions.xml", + "ref/dotnet/fr/System.Reflection.Extensions.xml", + "ref/dotnet/it/System.Reflection.Extensions.xml", + "ref/dotnet/ja/System.Reflection.Extensions.xml", + "ref/dotnet/ko/System.Reflection.Extensions.xml", + "ref/dotnet/ru/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hans/System.Reflection.Extensions.xml", + "ref/dotnet/es/System.Reflection.Extensions.xml", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll", + "ref/net45/_._", + "ref/win8/_._", + "ref/netcore50/System.Reflection.Extensions.dll", + "ref/netcore50/System.Reflection.Extensions.xml", + "ref/wp80/_._", + "ref/wpa81/_._", + "package/services/metadata/core-properties/0bcc335e1ef540948aef9032aca08bb2.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Reflection.Primitives/4.0.0": { + "sha512": "n9S0XpKv2ruc17FSnaiX6nV47VfHTZ1wLjKZlAirUZCvDQCH71mVp+Ohabn0xXLh5pK2PKp45HCxkqu5Fxn/lA==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Reflection.Primitives.nuspec", + "lib/netcore50/System.Reflection.Primitives.dll", + "lib/DNXCore50/System.Reflection.Primitives.dll", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Reflection.Primitives.dll", + "ref/dotnet/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hant/System.Reflection.Primitives.xml", + "ref/dotnet/de/System.Reflection.Primitives.xml", + "ref/dotnet/fr/System.Reflection.Primitives.xml", + "ref/dotnet/it/System.Reflection.Primitives.xml", + "ref/dotnet/ja/System.Reflection.Primitives.xml", + "ref/dotnet/ko/System.Reflection.Primitives.xml", + "ref/dotnet/ru/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hans/System.Reflection.Primitives.xml", + "ref/dotnet/es/System.Reflection.Primitives.xml", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll", + "ref/net45/_._", + "ref/win8/_._", + "ref/netcore50/System.Reflection.Primitives.dll", + "ref/netcore50/System.Reflection.Primitives.xml", + "ref/wp80/_._", + "ref/wpa81/_._", + "package/services/metadata/core-properties/7070509f3bfd418d859635361251dab0.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Resources.ResourceManager/4.0.0": { + "sha512": "qmqeZ4BJgjfU+G2JbrZt4Dk1LsMxO4t+f/9HarNY6w8pBgweO6jT+cknUH7c3qIrGvyUqraBhU45Eo6UtA0fAw==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Resources.ResourceManager.nuspec", + "lib/netcore50/System.Resources.ResourceManager.dll", + "lib/DNXCore50/System.Resources.ResourceManager.dll", + "lib/net45/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Resources.ResourceManager.dll", + "ref/dotnet/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hant/System.Resources.ResourceManager.xml", + "ref/dotnet/de/System.Resources.ResourceManager.xml", + "ref/dotnet/fr/System.Resources.ResourceManager.xml", + "ref/dotnet/it/System.Resources.ResourceManager.xml", + "ref/dotnet/ja/System.Resources.ResourceManager.xml", + "ref/dotnet/ko/System.Resources.ResourceManager.xml", + "ref/dotnet/ru/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hans/System.Resources.ResourceManager.xml", + "ref/dotnet/es/System.Resources.ResourceManager.xml", + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll", + "ref/net45/_._", + "ref/win8/_._", + "ref/netcore50/System.Resources.ResourceManager.dll", + "ref/netcore50/System.Resources.ResourceManager.xml", + "ref/wp80/_._", + "ref/wpa81/_._", + "package/services/metadata/core-properties/657a73ee3f09479c9fedb9538ade8eac.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Runtime/4.0.0": { + "sha512": "Uq9epame8hEqJlj4KaWb67dDJvj4IM37jRFGVeFbugRdPz48bR0voyBhrbf3iSa2tAmlkg4lsa6BUOL9iwlMew==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Runtime.nuspec", + "License.rtf", + "ref/dotnet/System.Runtime.dll", + "ref/netcore50/System.Runtime.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Runtime.xml", + "ref/netcore50/zh-hant/System.Runtime.xml", + "ref/dotnet/de/System.Runtime.xml", + "ref/netcore50/de/System.Runtime.xml", + "ref/dotnet/System.Runtime.xml", + "ref/netcore50/System.Runtime.xml", + "ref/dotnet/fr/System.Runtime.xml", + "ref/netcore50/fr/System.Runtime.xml", + "ref/dotnet/it/System.Runtime.xml", + "ref/netcore50/it/System.Runtime.xml", + "ref/dotnet/ja/System.Runtime.xml", + "ref/netcore50/ja/System.Runtime.xml", + "ref/dotnet/ko/System.Runtime.xml", + "ref/netcore50/ko/System.Runtime.xml", + "ref/dotnet/ru/System.Runtime.xml", + "ref/netcore50/ru/System.Runtime.xml", + "ref/dotnet/zh-hans/System.Runtime.xml", + "ref/netcore50/zh-hans/System.Runtime.xml", + "ref/dotnet/es/System.Runtime.xml", + "ref/netcore50/es/System.Runtime.xml", + "package/services/metadata/core-properties/c5db97a122ad42aeb8e429022c1d1ab8.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Runtime.Extensions/4.0.10": { + "sha512": "5dsEwf3Iml7d5OZeT20iyOjT+r+okWpN7xI2v+R4cgd3WSj4DeRPTvPFjDpacbVW4skCAZ8B9hxXJYgkCFKJ1A==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Runtime.Extensions.nuspec", + "lib/netcore50/System.Runtime.Extensions.dll", + "lib/DNXCore50/System.Runtime.Extensions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.Runtime.Extensions.dll", + "ref/dotnet/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hant/System.Runtime.Extensions.xml", + "ref/dotnet/de/System.Runtime.Extensions.xml", + "ref/dotnet/fr/System.Runtime.Extensions.xml", + "ref/dotnet/it/System.Runtime.Extensions.xml", + "ref/dotnet/ja/System.Runtime.Extensions.xml", + "ref/dotnet/ko/System.Runtime.Extensions.xml", + "ref/dotnet/ru/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hans/System.Runtime.Extensions.xml", + "ref/dotnet/es/System.Runtime.Extensions.xml", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "package/services/metadata/core-properties/c7fee76a13d04c7ea49fb1a24c184f37.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Runtime.Handles/4.0.0": { + "sha512": "638VhpRq63tVcQ6HDb3um3R/J2BtR1Sa96toHo6PcJGPXEPEsleCuqhBgX2gFCz0y0qkutANwW6VPPY5wQu1XQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Runtime.Handles.nuspec", + "lib/DNXCore50/System.Runtime.Handles.dll", + "lib/netcore50/System.Runtime.Handles.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.Runtime.Handles.dll", + "ref/dotnet/System.Runtime.Handles.xml", + "ref/dotnet/zh-hant/System.Runtime.Handles.xml", + "ref/dotnet/de/System.Runtime.Handles.xml", + "ref/dotnet/fr/System.Runtime.Handles.xml", + "ref/dotnet/it/System.Runtime.Handles.xml", + "ref/dotnet/ja/System.Runtime.Handles.xml", + "ref/dotnet/ko/System.Runtime.Handles.xml", + "ref/dotnet/ru/System.Runtime.Handles.xml", + "ref/dotnet/zh-hans/System.Runtime.Handles.xml", + "ref/dotnet/es/System.Runtime.Handles.xml", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "package/services/metadata/core-properties/da57aa32ff2441d1acfe85bee4f101ab.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Runtime.InteropServices/4.0.10": { + "sha512": "3jb0+1SgSUGmk9QH2WfyKxom6aJmmd0rta8T4VrYuw7fZoHPv0wmhB8/YMSgivmCGHRINBqQunUN0Zcao4IlNA==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Runtime.InteropServices.nuspec", + "License.rtf", + "ref/dotnet/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.dll", + "ref/win81/_._", + "lib/win81/_._", + "ref/net451/_._", + "lib/net451/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", + "ref/dotnet/de/System.Runtime.InteropServices.xml", + "ref/netcore50/de/System.Runtime.InteropServices.xml", + "ref/dotnet/System.Runtime.InteropServices.xml", + "ref/netcore50/System.Runtime.InteropServices.xml", + "ref/dotnet/fr/System.Runtime.InteropServices.xml", + "ref/netcore50/fr/System.Runtime.InteropServices.xml", + "ref/dotnet/it/System.Runtime.InteropServices.xml", + "ref/netcore50/it/System.Runtime.InteropServices.xml", + "ref/dotnet/ja/System.Runtime.InteropServices.xml", + "ref/netcore50/ja/System.Runtime.InteropServices.xml", + "ref/dotnet/ko/System.Runtime.InteropServices.xml", + "ref/netcore50/ko/System.Runtime.InteropServices.xml", + "ref/dotnet/ru/System.Runtime.InteropServices.xml", + "ref/netcore50/ru/System.Runtime.InteropServices.xml", + "ref/dotnet/zh-hans/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", + "ref/dotnet/es/System.Runtime.InteropServices.xml", + "ref/netcore50/es/System.Runtime.InteropServices.xml", + "package/services/metadata/core-properties/24b79ae6e85e40ce84abacb77f864e25.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Text.Encoding/4.0.0": { + "sha512": "AMxFNOXpA6Ab8swULbXuJmoT2K5w6TnV3ObF5wsmEcIHQUJghoZtDVfVHb08O2wW15mOSI1i9Wg0Dx0pY13o8g==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Text.Encoding.nuspec", + "License.rtf", + "ref/dotnet/System.Text.Encoding.dll", + "ref/netcore50/System.Text.Encoding.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Text.Encoding.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.xml", + "ref/dotnet/de/System.Text.Encoding.xml", + "ref/netcore50/de/System.Text.Encoding.xml", + "ref/dotnet/System.Text.Encoding.xml", + "ref/netcore50/System.Text.Encoding.xml", + "ref/dotnet/fr/System.Text.Encoding.xml", + "ref/netcore50/fr/System.Text.Encoding.xml", + "ref/dotnet/it/System.Text.Encoding.xml", + "ref/netcore50/it/System.Text.Encoding.xml", + "ref/dotnet/ja/System.Text.Encoding.xml", + "ref/netcore50/ja/System.Text.Encoding.xml", + "ref/dotnet/ko/System.Text.Encoding.xml", + "ref/netcore50/ko/System.Text.Encoding.xml", + "ref/dotnet/ru/System.Text.Encoding.xml", + "ref/netcore50/ru/System.Text.Encoding.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.xml", + "ref/dotnet/es/System.Text.Encoding.xml", + "ref/netcore50/es/System.Text.Encoding.xml", + "package/services/metadata/core-properties/8740abce9d6a472db9f21ed43f2fb149.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Text.Encoding.Extensions/4.0.0": { + "sha512": "FktA77+2DC0S5oRhgM569pbzFrcA45iQpYiI7+YKl68B6TfI2N5TQbXqSWlh2YXKoFXHi2RFwPMha2lxiFJZ6A==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Text.Encoding.Extensions.nuspec", + "License.rtf", + "ref/dotnet/System.Text.Encoding.Extensions.dll", + "ref/netcore50/System.Text.Encoding.Extensions.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/dotnet/de/System.Text.Encoding.Extensions.xml", + "ref/netcore50/de/System.Text.Encoding.Extensions.xml", + "ref/dotnet/System.Text.Encoding.Extensions.xml", + "ref/netcore50/System.Text.Encoding.Extensions.xml", + "ref/dotnet/fr/System.Text.Encoding.Extensions.xml", + "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", + "ref/dotnet/it/System.Text.Encoding.Extensions.xml", + "ref/netcore50/it/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ja/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ko/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ru/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/dotnet/es/System.Text.Encoding.Extensions.xml", + "ref/netcore50/es/System.Text.Encoding.Extensions.xml", + "package/services/metadata/core-properties/c37aa1347f574e6c8df522449486a4d2.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Threading/4.0.0": { + "sha512": "H6O/9gUrjPDNYanh/7OFGAZHjVXvEuITD0RcnjfvIV04HOGrOPqUBU0kmz9RIX/7YGgCQn1o1S2DX6Cuv8kVGQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Threading.nuspec", + "License.rtf", + "ref/dotnet/System.Threading.dll", + "ref/netcore50/System.Threading.dll", + "ref/win8/_._", + "lib/win8/_._", + "ref/net45/_._", + "lib/net45/_._", + "ref/MonoAndroid10/_._", + "lib/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "lib/MonoTouch10/_._", + "ref/wp80/_._", + "lib/wp80/_._", + "ref/wpa81/_._", + "lib/wpa81/_._", + "ref/xamarinios10/_._", + "lib/xamarinios10/_._", + "ref/xamarinmac20/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/zh-hant/System.Threading.xml", + "ref/netcore50/zh-hant/System.Threading.xml", + "ref/dotnet/de/System.Threading.xml", + "ref/netcore50/de/System.Threading.xml", + "ref/dotnet/System.Threading.xml", + "ref/netcore50/System.Threading.xml", + "ref/dotnet/fr/System.Threading.xml", + "ref/netcore50/fr/System.Threading.xml", + "ref/dotnet/it/System.Threading.xml", + "ref/netcore50/it/System.Threading.xml", + "ref/dotnet/ja/System.Threading.xml", + "ref/netcore50/ja/System.Threading.xml", + "ref/dotnet/ko/System.Threading.xml", + "ref/netcore50/ko/System.Threading.xml", + "ref/dotnet/ru/System.Threading.xml", + "ref/netcore50/ru/System.Threading.xml", + "ref/dotnet/zh-hans/System.Threading.xml", + "ref/netcore50/zh-hans/System.Threading.xml", + "ref/dotnet/es/System.Threading.xml", + "ref/netcore50/es/System.Threading.xml", + "package/services/metadata/core-properties/bec033e95dbf4d6ba6595d2be7bb7e25.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Threading.Overlapped/4.0.0": { + "sha512": "X5LuQFhM5FTqaez3eXKJ9CbfSGZ7wj6j4hSVtxct3zmwQXLqG95qoWdvILcgN7xtrDOBIFtpiyDg0vmoI0jE2A==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Threading.Overlapped.nuspec", + "lib/netcore50/System.Threading.Overlapped.dll", + "lib/DNXCore50/System.Threading.Overlapped.dll", + "lib/net46/System.Threading.Overlapped.dll", + "ref/dotnet/System.Threading.Overlapped.dll", + "ref/dotnet/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hant/System.Threading.Overlapped.xml", + "ref/dotnet/de/System.Threading.Overlapped.xml", + "ref/dotnet/fr/System.Threading.Overlapped.xml", + "ref/dotnet/it/System.Threading.Overlapped.xml", + "ref/dotnet/ja/System.Threading.Overlapped.xml", + "ref/dotnet/ko/System.Threading.Overlapped.xml", + "ref/dotnet/ru/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hans/System.Threading.Overlapped.xml", + "ref/dotnet/es/System.Threading.Overlapped.xml", + "ref/net46/System.Threading.Overlapped.dll", + "package/services/metadata/core-properties/e9846a81e829434aafa4ae2e8c3517d7.psmdcp", + "[Content_Types].xml" + ] + }, + "System.Threading.Tasks/4.0.10": { + "sha512": "NOwJGDfk79jR0bnzosbXLVD/PdI8KzBeESoa3CofEM5v9R5EBfcI0Jyf18stx+0IYV9okmDIDxVtxq9TbnR9bQ==", + "type": "Package", + "files": [ + "_rels/.rels", + "System.Threading.Tasks.nuspec", + "lib/netcore50/System.Threading.Tasks.dll", + "lib/DNXCore50/System.Threading.Tasks.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/dotnet/System.Threading.Tasks.dll", + "ref/dotnet/System.Threading.Tasks.xml", + "ref/dotnet/zh-hant/System.Threading.Tasks.xml", + "ref/dotnet/de/System.Threading.Tasks.xml", + "ref/dotnet/fr/System.Threading.Tasks.xml", + "ref/dotnet/it/System.Threading.Tasks.xml", + "ref/dotnet/ja/System.Threading.Tasks.xml", + "ref/dotnet/ko/System.Threading.Tasks.xml", + "ref/dotnet/ru/System.Threading.Tasks.xml", + "ref/dotnet/zh-hans/System.Threading.Tasks.xml", + "ref/dotnet/es/System.Threading.Tasks.xml", + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "package/services/metadata/core-properties/a4ed35f8764a4b68bb39ec8d13b3e730.psmdcp", + "[Content_Types].xml" + ] + } + }, + "projectFileDependencyGroups": { + "": [ + "System.Runtime >= 4.0.0", + "System.Resources.ResourceManager >= 4.0.0", + "System.Reflection.Primitives >= 4.0.0", + "System.Diagnostics.Debug >= 4.0.0", + "System.IO >= 4.0.0", + "System.IO.FileSystem >= 4.0.0", + "System.Collections >= 4.0.0", + "System.Text.Encoding >= 4.0.0", + "System.Runtime.InteropServices >= 4.0.10", + "System.Reflection >= 4.0.0", + "System.Runtime.Extensions >= 4.0.10", + "System.Threading >= 4.0.0", + "System.Text.Encoding.Extensions >= 4.0.0", + "System.Reflection.Extensions >= 4.0.0", + "System.Console >= 4.0.0-beta-*" + ], + "DNXCore,Version=v5.0": [] + } +} \ No newline at end of file diff --git a/src/ILToNative/repro/repro.csproj b/src/ILToNative/repro/repro.csproj new file mode 100644 index 00000000000..34fba1f25ef --- /dev/null +++ b/src/ILToNative/repro/repro.csproj @@ -0,0 +1,45 @@ + + + + + Debug + AnyCPU + {FBA029C3-B184-4457-AEEC-38D0C2523067} + Exe + + + repro + en-US + 512 + false + + + true + full + false + bin\Debug\ + TRACE;DEBUG + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ILToNative/reproNative/common.cpp b/src/ILToNative/reproNative/common.cpp new file mode 100644 index 00000000000..8cadfb03c89 --- /dev/null +++ b/src/ILToNative/reproNative/common.cpp @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +// common.cpp : source file that includes just the standard includes +// testNative.pch will be the pre-compiled header +// common.obj will contain the pre-compiled type information + +#include "common.h" + +// TODO: reference any additional headers you need in common.H +// and not in this file diff --git a/src/ILToNative/reproNative/common.h b/src/ILToNative/reproNative/common.h new file mode 100644 index 00000000000..4c86d6cce9b --- /dev/null +++ b/src/ILToNative/reproNative/common.h @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +// common.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#ifndef __COMMON_H +#define __COMMON_H + +#define _CRT_SECURE_NO_WARNINGS + +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifndef WIN32 +#include +#endif + +using namespace std; + +class MethodTable; +class Object; + +template +class Array +{ +}; + +int __initialize_runtime(); +void __shutdown_runtime(); + +extern "C" Object * __allocate_object(MethodTable * pMT); +extern "C" Object * __allocate_array(MethodTable * pMT, size_t elements); +__declspec(noreturn) void __throw_exception(void * pEx); +Object * __load_string_literal(const char * string); + +Object * __castclass_class(void * p, MethodTable * pMT); +Object * __isinst_class(void * p, MethodTable * pMT); + +void __range_check(void * a, size_t elem); + +Object * __get_commandline_args(int argc, char * argv[]); + +// POD version of EEType to use for static initialization +struct RawEEType +{ + uint16_t m_componentSize; + uint16_t m_flags; + uint32_t m_baseSize; + MethodTable * m_pBaseType; + uint16_t m_usNumVtableSlots; + uint16_t m_usNumInterfaces; + uint32_t m_uHashCode; +}; + +struct ReversePInvokeFrame +{ + void* m_savedPInvokeTransitionFrame; + void* m_savedThread; +}; + +void __reverse_pinvoke(ReversePInvokeFrame* pRevFrame); +void __reverse_pinvoke_return(ReversePInvokeFrame* pRevFrame); + +struct StaticGcDesc +{ + struct GCSeries + { + uint32_t m_size; + uint32_t m_startOffset; + }; + + uint32_t m_numSeries; + GCSeries m_series[0]; +}; + +struct SimpleModuleHeader +{ + void* m_pStaticsGcDataSection; + StaticGcDesc* m_pStaticsGcInfo; + StaticGcDesc* m_pThreadStaticsGcInfo; +}; + +void __register_module(SimpleModuleHeader* pModule); + + +#pragma warning(disable:4102) + +#define AlignBaseSize(s) ((s < MIN_OBJECT_SIZE) ? MIN_OBJECT_SIZE : ((s + (sizeof(intptr_t)-1) & ~(sizeof(intptr_t)-1)))) + +#define ARRAY_BASE (2*sizeof(void*)) + +#endif // __COMMON_H diff --git a/src/ILToNative/reproNative/main.cpp b/src/ILToNative/reproNative/main.cpp new file mode 100644 index 00000000000..253f2dba517 --- /dev/null +++ b/src/ILToNative/reproNative/main.cpp @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +#include "common.h" + +#define USE_MRT 0 + +#include "gcenv.h" + +#if !USE_MRT +#include "gc.h" +#include "objecthandle.h" +#include "gcdesc.h" +#else +extern "C" Object * RhNewObject(MethodTable * pMT); +extern "C" Object * RhNewArray(MethodTable * pMT, int32_t elements); +extern "C" void RhpReversePInvoke2(ReversePInvokeFrame* pRevFrame); +extern "C" void RhpReversePInvokeReturn(ReversePInvokeFrame* pRevFrame); +extern "C" int32_t RhpEnableConservativeStackReporting(); +extern "C" void RhpRegisterSimpleModule(SimpleModuleHeader* pModule); +#endif // USE_MRT + +int __initialize_runtime() +{ +#if USE_MRT + RhpEnableConservativeStackReporting(); +#else + // + // Initialize system info + // + InitializeSystemInfo(); + + // + // Initialize free object methodtable. The GC uses a special array-like methodtable as placeholder + // for collected free space. + // + static MethodTable freeObjectMT; + freeObjectMT.InitializeFreeObject(); + g_pFreeObjectMethodTable = &freeObjectMT; + + // + // Initialize handle table + // + if (!Ref_Initialize()) + return -1; + + // + // Initialize GC heap + // + GCHeap *pGCHeap = GCHeap::CreateGCHeap(); + if (!pGCHeap) + return -1; + + if (FAILED(pGCHeap->Initialize())) + return -1; + + // + // Initialize current thread + // + ThreadStore::AttachCurrentThread(false); +#endif + + return 0; +} + +void __shutdown_runtime() +{ +} + +void __reverse_pinvoke(ReversePInvokeFrame* pRevFrame) +{ +#if USE_MRT + RhpReversePInvoke2(pRevFrame); +#endif // USE_MRT +} + +void __reverse_pinvoke_return(ReversePInvokeFrame* pRevFrame) +{ +#if USE_MRT + RhpReversePInvokeReturn(pRevFrame); +#endif // USE_MRT +} + +void __register_module(SimpleModuleHeader* pModule) +{ +#if USE_MRT + RhpRegisterSimpleModule(pModule); +#endif // USE_MRT +} + +namespace System { class Object { +public: + EEType * get_EEType() { return *(EEType **)this; } +}; }; + +namespace System { class Array : public System::Object { +public: + int32_t GetArrayLength() { + return *(int32_t *)((void **)this + 1); + } + void * GetArrayData() { + return (void **)this + 2; + } +}; }; + +namespace System { class String : public System::Object { public: +static MethodTable * __getMethodTable(); +}; }; + + + +// +// The fast paths for object allocation and write barriers is performance critical. They are often +// hand written in assembly code, etc. +// +extern "C" Object * __allocate_object(MethodTable * pMT) +{ +#if !USE_MRT + alloc_context * acontext = GetThread()->GetAllocContext(); + Object * pObject; + + size_t size = pMT->GetBaseSize(); + + BYTE* result = acontext->alloc_ptr; + BYTE* advance = result + size; + if (advance <= acontext->alloc_limit) + { + acontext->alloc_ptr = advance; + pObject = (Object *)result; + } + else + { + pObject = GCHeap::GetGCHeap()->Alloc(acontext, size, 0); + if (pObject == NULL) + return NULL; // TODO: Throw OOM + } + + pObject->SetMethodTable(pMT); + + return pObject; +#else + return RhNewObject(pMT); +#endif +} + +Object * __allocate_string(int32_t len) +{ + throw 42; +#if 0 +#if !USE_MRT + alloc_context * acontext = GetThread()->GetAllocContext(); + Object * pObject; + + // TODO: Overflow checks + size_t size = 2 * sizeof(intptr_t) + sizeof(int32_t) + 2 * len; + // Align up + size = (size + (sizeof(intptr_t) - 1)) & ~(sizeof(intptr_t) - 1); + + BYTE* result = acontext->alloc_ptr; + BYTE* advance = result + size; + if (advance <= acontext->alloc_limit) + { + acontext->alloc_ptr = advance; + pObject = (Object *)result; + } + else + { + pObject = GCHeap::GetGCHeap()->Alloc(acontext, size, 0); + if (pObject == NULL) + return NULL; // TODO: Throw OOM + } + + pObject->SetMethodTable(System::String::__getMethodTable()); + + *(int32_t *)(((intptr_t *)pObject)+1) = len; + + return pObject; +#else + return RhNewArray(System::String::__getMethodTable(), len); +#endif +#endif +} + +extern "C" Object * __allocate_array(MethodTable * pMT, size_t elements) +{ +#if !USE_MRT + alloc_context * acontext = GetThread()->GetAllocContext(); + Object * pObject; + + // TODO: Overflow checks + size_t size = 3 * sizeof(intptr_t) + (elements * pMT->RawGetComponentSize()); + // Align up + size = (size + (sizeof(intptr_t) - 1)) & ~(sizeof(intptr_t) - 1); + + BYTE* result = acontext->alloc_ptr; + BYTE* advance = result + size; + if (advance <= acontext->alloc_limit) + { + acontext->alloc_ptr = advance; + pObject = (Object *)result; + } + else + { + pObject = GCHeap::GetGCHeap()->Alloc(acontext, size, 0); + if (pObject == NULL) + return NULL; // TODO: Throw OOM + } + + pObject->SetMethodTable(pMT); + + *(int32_t *)(((intptr_t *)pObject)+1) = (int32_t)elements; + + return pObject; +#else + return RhNewArray(pMT, (int32_t)elements); // TODO: type mismatch +#endif +} + +void __throw_exception(void * pEx) +{ + // TODO: Exception throwing + throw pEx; +} + +Object * __load_string_literal(const char * string) +{ + // TODO: Cache/intern string literals + // TODO: Unicode string literals + + size_t len = strlen(string); + + Object * pString = __allocate_string((int32_t)len); + + uint16_t * p = (uint16_t *)((char*)pString + sizeof(intptr_t) + sizeof(int32_t)); + for (size_t i = 0; i < len; i++) + p[i] = string[i]; + return pString; +} + +// TODO: Rewrite in C# + +Object * __castclass_class(void * p, MethodTable * pTargetMT) +{ + Object * o = (Object *)p; + + if (o == NULL) + return o; + + MethodTable * pMT = o->RawGetMethodTable(); + + do { + if (pMT == pTargetMT) + return o; + + pMT = pMT->GetParent(); + } while (pMT); + + // TODO: Handle corner cases, throw proper exception + throw 1; +} + +Object * __isinst_class(void * p, MethodTable * pTargetMT) +{ + Object * o = (Object *)p; + + if (o == NULL) + return o; + + MethodTable * pMT = o->RawGetMethodTable(); + + do { + if (pMT == pTargetMT) + return o; + + pMT = pMT->GetParent(); + } while (pMT); + + // TODO: Handle corner cases + return NULL; +} + +__declspec(noreturn) +__declspec(noinline) +void ThrowRangeOverflowException() +{ + throw 0; +} + +void __range_check(void * a, size_t elem) +{ + if (elem >= *((size_t*)a + 1)) + ThrowRangeOverflowException(); +} + +namespace System { class String__Array : public System::Object { public: +static MethodTable * __getMethodTable(); +}; }; + + +Object * __get_commandline_args(int argc, char * argv[]) +{ +#if 0 + System::Array * p = (System::Array *)__allocate_array(System::String__Array::__getMethodTable(), argc); + + for (int i = 0; i < argc; i++) + { + // TODO: Write barrier + ((Object **)(p->GetArrayData()))[i] = __load_string_literal(argv[i]); + } + + return (Object *)p; +#endif + return NULL; +} + +// FCalls + +namespace System { namespace Runtime { class RuntimeImports : public System::Object { public: +static uint8_t TryArrayCopy(System::Array*, int32_t, System::Array*, int32_t, int32_t); +}; }; }; + + +FORCEINLINE bool CheckArraySlice(System::Array * pArray, int32_t index, int32_t length) +{ + int32_t arrayLength = pArray->GetArrayLength(); + + return (0 <= index) && (index <= arrayLength) && + (0 <= length) && (length <= arrayLength) && + (length <= arrayLength - index); +} + +uint8_t System::Runtime::RuntimeImports::TryArrayCopy(System::Array* pSourceArray, int32_t sourceIndex, System::Array* pDestinationArray, int32_t destinationIndex, int32_t length) +{ + if (pSourceArray == NULL || pDestinationArray == NULL) + return false; + + EEType* pArrayType = pSourceArray->get_EEType(); + EEType* pDestinationArrayType = pDestinationArray->get_EEType(); + + if (pArrayType != pDestinationArrayType) + { + // TODO: Type safety check + return false; +#if false + if (!pArrayType->IsEquivalentTo(pDestinationArrayType)) + return false; +#endif + } + + if (!pArrayType->HasComponentSize()) + return false; // an array + + size_t componentSize = pArrayType->RawGetComponentSize(); + + if (!CheckArraySlice(pSourceArray, sourceIndex, length)) + return false; + + if (!CheckArraySlice(pDestinationArray, destinationIndex, length)) + return false; + + if (length == 0) + return true; + + uint8_t * pSourceData = (uint8_t *)pSourceArray->GetArrayData() + sourceIndex * componentSize; + uint8_t * pDestinationData = (uint8_t *)pDestinationArray->GetArrayData() + destinationIndex * componentSize; + size_t size = length * componentSize; + + // TODO: Write barrier +#if false + if (pArrayType->HasReferenceFields()) + { + if (pDestinationData <= pSourceData || pSourceData + size <= pDestinationData) + ForwardGCSafeCopy(pDestinationData, pSourceData, size); + else + BackwardGCSafeCopy(pDestinationData, pSourceData, size); + + RhpBulkWriteBarrier(pDestinationData, (UInt32)size); + } + else +#endif + { + memmove(pDestinationData, pSourceData, size); + } + + return true; +} + + +SimpleModuleHeader __module = { NULL, NULL /* &__gcStatics, &__gcStaticsDescs */ }; + +extern "C" int Program__Main(); + +int main(int argc, char * argv[]) { + if (__initialize_runtime() != 0) return -1; + __register_module(&__module); + ReversePInvokeFrame frame; __reverse_pinvoke(&frame); + + Program__Main(); +#if 0 + Program::Main((System::String__Array*)__get_commandline_args(argc - 1, argv + 1)); +#endif + + __reverse_pinvoke_return(&frame); + __shutdown_runtime(); + return 0; +} diff --git a/src/ILToNative/reproNative/reproNative.vcxproj b/src/ILToNative/reproNative/reproNative.vcxproj new file mode 100644 index 00000000000..38730813290 --- /dev/null +++ b/src/ILToNative/reproNative/reproNative.vcxproj @@ -0,0 +1,118 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {ECB5D162-A31B-45FF-87C7-2E92BD445F5A} + Win32Proj + reproNative + + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + + + + + + + + + + + true + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + common.h + ..\..\Native\gc;..\..\Native\gc\env + 4477 + + + Console + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + common.h + ..\gc;..\..\Native\gc\env + 4477 + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + Create + Create + + + + true + + + + + "C:\Program Files\LLVM\bin\clang.exe" -c %(FullPath) -o $(IntermediateOutputPath)repro.obj + $(IntermediateOutputPath)repro.obj + + + + + + \ No newline at end of file diff --git a/src/ILToNative/reproNative/stubs.cpp b/src/ILToNative/reproNative/stubs.cpp new file mode 100644 index 00000000000..b89e6029240 --- /dev/null +++ b/src/ILToNative/reproNative/stubs.cpp @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +// +// Intrinsic +// + +void System::Runtime::RuntimeImports::memmove_0(unsigned char *, unsigned char *, int) +{ + throw 42; +} + +double System::Runtime::RuntimeImports::sqrt(double value) +{ + return sqrt(value); +} + +// +// BoundsChecking +// +void ThrowRangeOverflowException(); +unsigned short System::String::get_Chars(class System::String *pString, int index) +{ + if ((uint32_t)index >= (uint32_t)pString->m_stringLength) + ThrowRangeOverflowException(); + return *(&pString->m_firstChar + index); +} + + +#if 1 +// +// unattributed, no body method +// +void System::Buffer::BlockCopy(class System::Array * src, int srcOfs, class System::Array * dst, int dstOfs, int count) +{ + // TODO: Argument validation + memmove((uint8_t*)dst + 2 * sizeof(void*) + dstOfs, (uint8_t*)src + 2 * sizeof(void*) + srcOfs, count); +} +#endif + +#if 0 +typedef int (*pfnMain)(System::String__Array * args); + +int Internal::Runtime::Loader::LoaderImage::Call(__int64 p, class System::String__Array * args) +{ + return ((pfnMain)p)(args); +} +#endif diff --git a/src/ILToNative/src/ILToNative.csproj b/src/ILToNative/src/ILToNative.csproj index 8eac202fcdf..6d36e8bf909 100644 --- a/src/ILToNative/src/ILToNative.csproj +++ b/src/ILToNative/src/ILToNative.csproj @@ -21,7 +21,6 @@ prompt 4 true - true pdbonly diff --git a/src/ILToNative/src/project.lock.json b/src/ILToNative/src/project.lock.json index 9cf495f2026..154379dd8cc 100644 --- a/src/ILToNative/src/project.lock.json +++ b/src/ILToNative/src/project.lock.json @@ -43,7 +43,7 @@ "lib/dotnet/System.Collections.Immutable.dll": {} } }, - "System.Console/4.0.0-beta-23329": { + "System.Console/4.0.0-beta-23330": { "type": "package", "dependencies": { "System.IO": "4.0.0", @@ -402,10 +402,10 @@ "System.Collections.Immutable.nuspec" ] }, - "System.Console/4.0.0-beta-23329": { + "System.Console/4.0.0-beta-23330": { "type": "package", "serviceable": true, - "sha512": "gh2YHjUh3sY74pn/JpzktS8+z3rsPfsaNGPIyfrr90HC0XMy/wE/XLdMuFEUgr4Jn2VtYS26sopiEGUnK3ke0A==", + "sha512": "zsvCt5wo0eTkZXwzGLfJ5arE1gt4Be4HDPbl1k6Z3ajBOI/ez0BtCJLZCTWdGMTeIDpFoMKjJRaotp1DFQ39og==", "files": [ "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", @@ -419,8 +419,8 @@ "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "runtime.json", - "System.Console.4.0.0-beta-23329.nupkg", - "System.Console.4.0.0-beta-23329.nupkg.sha512", + "System.Console.4.0.0-beta-23330.nupkg", + "System.Console.4.0.0-beta-23330.nupkg.sha512", "System.Console.nuspec" ] }, diff --git a/src/Native/gc/env/gcenv.h b/src/Native/gc/env/gcenv.h index 6a9c4211bf7..c5ed07efce6 100644 --- a/src/Native/gc/env/gcenv.h +++ b/src/Native/gc/env/gcenv.h @@ -539,13 +539,16 @@ class ObjHeader #define MTFlag_ContainsPointers 1 #define MTFlag_HasFinalizer 2 +#define MTFlag_IsArray 4 class MethodTable { public: - uint32_t m_baseSize; uint16_t m_componentSize; uint16_t m_flags; + uint32_t m_baseSize; + + MethodTable * m_pRelatedType; public: void InitializeFreeObject() @@ -590,6 +593,17 @@ class MethodTable return false; } + bool IsArray() + { + return (m_flags & MTFlag_IsArray) != 0; + } + + MethodTable * GetParent() + { + _ASSERTE(!IsArray()); + return m_pRelatedType; + } + bool SanityCheck() { return true;