diff --git a/VisualFSharp.sln b/VisualFSharp.sln index 4b138b8d499..dfaa5ce699d 100644 --- a/VisualFSharp.sln +++ b/VisualFSharp.sln @@ -22,8 +22,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ItemTemplates", "ItemTemplates", "{F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{D086C8C6-D00D-4C3B-9AB2-A4286C9F5922}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FSharp.Compiler.Service.tests Support", "FSharp.Compiler.Service.tests Support", "{35636A82-401A-4C3A-B2AB-EB7DC5E9C268}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Legacy", "Legacy", "{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}" @@ -110,8 +108,6 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HostedCompilerServer", "tes EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ILComparer", "tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj", "{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}" EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "LanguageServiceProfiling", "vsintegration\Utils\LanguageServiceProfiling\LanguageServiceProfiling.fsproj", "{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.UIResources", "vsintegration\src\FSharp.UIResources\FSharp.UIResources.csproj", "{C4586A06-1402-48BC-8E35-A1B8642F895B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharp_Analysis", "tests\service\data\CSharp_Analysis\CSharp_Analysis.csproj", "{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}" @@ -160,7 +156,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibraryProject", "vsintegra EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TutorialProject", "vsintegration\ProjectTemplates\TutorialProject\TutorialProject.csproj", "{2937CBEC-262D-4C94-BE1D-291FAB72E3E8}" EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "DependencyManager", "src\fsharp\Microsoft.DotNet.DependencyManager\Microsoft.DotNet.DependencyManager.fsproj", "{C2F38485-5F87-4986-985B-55D7ED96D5CE}" +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Microsoft.DotNet.DependencyManager", "src\fsharp\Microsoft.DotNet.DependencyManager\Microsoft.DotNet.DependencyManager.fsproj", "{C2F38485-5F87-4986-985B-55D7ED96D5CE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -664,18 +660,6 @@ Global {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.Build.0 = Release|Any CPU {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.ActiveCfg = Release|Any CPU {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.Build.0 = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|x86.ActiveCfg = Debug|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|x86.Build.0 = Debug|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|Any CPU.ActiveCfg = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|Any CPU.Build.0 = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|x86.ActiveCfg = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|x86.Build.0 = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|Any CPU.Build.0 = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|x86.ActiveCfg = Release|Any CPU - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|x86.Build.0 = Release|Any CPU {C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -948,7 +932,6 @@ Global {3F044931-FB83-4433-B934-AE66AB27B278} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} - {D086C8C6-D00D-4C3B-9AB2-A4286C9F5922} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} {35636A82-401A-4C3A-B2AB-EB7DC5E9C268} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} {991DCF75-C2EB-42B6-9A0D-AA1D2409D519} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} @@ -992,7 +975,6 @@ Global {1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA} {4239EFEA-E746-446A-BF7A-51FCBAB13946} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449} {2E60864A-E3FF-4BCC-810F-DC7C34E6B236} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449} - {E7FA3A71-51AF-4FCA-9C2F-7C853E515903} = {D086C8C6-D00D-4C3B-9AB2-A4286C9F5922} {C4586A06-1402-48BC-8E35-A1B8642F895B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} {887630A3-4B1D-40EA-B8B3-2D842E9C40DB} = {35636A82-401A-4C3A-B2AB-EB7DC5E9C268} {FF76BD3C-5E0A-4752-B6C3-044F6E15719B} = {35636A82-401A-4C3A-B2AB-EB7DC5E9C268} diff --git a/vsintegration/Utils/LanguageServiceProfiling/App.config b/vsintegration/Utils/LanguageServiceProfiling/App.config deleted file mode 100644 index 8324aa6ff15..00000000000 --- a/vsintegration/Utils/LanguageServiceProfiling/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vsintegration/Utils/LanguageServiceProfiling/AssemblyInfo.fs b/vsintegration/Utils/LanguageServiceProfiling/AssemblyInfo.fs deleted file mode 100644 index f67c0c9e9b4..00000000000 --- a/vsintegration/Utils/LanguageServiceProfiling/AssemblyInfo.fs +++ /dev/null @@ -1,28 +0,0 @@ -namespace LanguageServiceProfiling.AssemblyInfo - -open System.Reflection -open System.Runtime.CompilerServices -open System.Runtime.InteropServices - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[] -[] -[] -[] -[] -[] -[] -[] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[] - - -do () \ No newline at end of file diff --git a/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj b/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj deleted file mode 100644 index 256f7a68947..00000000000 --- a/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Exe - true - true - $(SystemValueTupleVersion) - true - - - - - - - - - - - - - - - diff --git a/vsintegration/Utils/LanguageServiceProfiling/Options.fs b/vsintegration/Utils/LanguageServiceProfiling/Options.fs deleted file mode 100644 index 5cc574b016f..00000000000 --- a/vsintegration/Utils/LanguageServiceProfiling/Options.fs +++ /dev/null @@ -1,430 +0,0 @@ -module internal LanguageServiceProfiling.Options - -open FSharp.Compiler -open FSharp.Compiler.Range -open FSharp.Compiler.SourceCodeServices -open System -open System.IO - -let private () x y = Path.Combine(x, y) - -type CompletionPosition = { - Position: pos - QualifyingNames : string list - PartialName : string -} - -type Options = - { Options: FSharpProjectOptions - FileToCheck: string - FilesToCheck: string list - SymbolText: string - SymbolPos: pos - CompletionPositions: CompletionPosition list } - - -let FCS (repositoryDir: string) : Options = - let files = - [| @"src\fsharp\FSharp.Compiler.Service\obj\Release\FSComp.fs" - @"src\fsharp\FSharp.Compiler.Service\obj\Release\FSIstrings.fs" - @"src\assemblyinfo\assemblyinfo.FSharp.Compiler.Private.dll.fs" - @"src\assemblyinfo\assemblyinfo.shared.fs" - @"src\utils\sformat.fsi" - @"src\utils\sformat.fs" - @"src\fsharp\sr.fsi" - @"src\fsharp\sr.fs" - @"src\utils\prim-lexing.fsi" - @"src\utils\prim-lexing.fs" - @"src\utils\prim-parsing.fsi" - @"src\utils\prim-parsing.fs" - @"src\utils\ResizeArray.fsi" - @"src\utils\ResizeArray.fs" - @"src\utils\HashMultiMap.fsi" - @"src\utils\HashMultiMap.fs" - @"src\utils\EditDistance.fs" - @"src\utils\TaggedCollections.fsi" - @"src\utils\TaggedCollections.fs" - @"src\fsharp\QueueList.fs" - @"src\absil\ildiag.fsi" - @"src\absil\ildiag.fs" - @"src\absil\illib.fs" - @"src\utils\filename.fsi" - @"src\utils\filename.fs" - @"src\absil\zmap.fsi" - @"src\absil\zmap.fs" - @"src\absil\zset.fsi" - @"src\absil\zset.fs" - @"src\absil\bytes.fsi" - @"src\absil\bytes.fs" - @"src\fsharp\lib.fs" - @"src\fsharp\ErrorResolutionHints.fs" - @"src\fsharp\InternalCollections.fsi" - @"src\fsharp\InternalCollections.fs" - @"src\fsharp\rational.fsi" - @"src\fsharp\rational.fs" - @"src\fsharp\range.fsi" - @"src\fsharp\range.fs" - @"src\fsharp\ErrorLogger.fs" - @"src\fsharp\ReferenceResolver.fs" - @"src\absil\il.fsi" - @"src\absil\il.fs" - @"src\absil\ilx.fsi" - @"src\absil\ilx.fs" - @"src\absil\ilascii.fsi" - @"src\absil\ilascii.fs" - @"src\absil\ilprint.fsi" - @"src\absil\ilprint.fs" - @"src\absil\ilmorph.fsi" - @"src\absil\ilmorph.fs" - @"src\absil\ilwritenativeres.fsi" - @"src\absil\ilwritenativeres.fs" - @"src\absil\ilsupp.fsi" - @"src\absil\ilsupp.fs" - @"src\fsharp\FSharp.Compiler.Service\ilpars.fs" - @"src\fsharp\FSharp.Compiler.Service\illex.fs" - @"src\absil\ilbinary.fsi" - @"src\absil\ilbinary.fs" - @"src\absil\ilread.fsi" - @"src\absil\ilread.fs" - @"src\absil\ilwritepdb.fsi" - @"src\absil\ilwritepdb.fs" - @"src\absil\ilwrite.fsi" - @"src\absil\ilwrite.fs" - @"src\absil\ilreflect.fs" - @"src\utils\CompilerLocationUtils.fs" - @"src\fsharp\PrettyNaming.fs" - @"src\ilx\ilxsettings.fs" - @"src\ilx\EraseClosures.fsi" - @"src\ilx\EraseClosures.fs" - @"src\ilx\EraseUnions.fsi" - @"src\ilx\EraseUnions.fs" - @"src\fsharp\UnicodeLexing.fsi" - @"src\fsharp\UnicodeLexing.fs" - @"src\fsharp\layout.fsi" - @"src\fsharp\layout.fs" - @"src\fsharp\ast.fs" - @"src\fsharp\FSharp.Compiler.Service\pppars.fs" - @"src\fsharp\FSharp.Compiler.Service\pars.fs" - @"src\fsharp\lexhelp.fsi" - @"src\fsharp\lexhelp.fs" - @"src\fsharp\FSharp.Compiler.Service\pplex.fs" - @"src\fsharp\FSharp.Compiler.Service\lex.fs" - @"src\fsharp\LexFilter.fs" - @"src\fsharp\tainted.fsi" - @"src\fsharp\tainted.fs" - @"src\fsharp\ExtensionTyping.fsi" - @"src\fsharp\ExtensionTyping.fs" - @"src\fsharp\QuotationPickler.fsi" - @"src\fsharp\QuotationPickler.fs" - @"src\fsharp\tast.fs" - @"src\fsharp\TcGlobals.fs" - @"src\fsharp\TastOps.fsi" - @"src\fsharp\TastOps.fs" - @"src\fsharp\.TypedTreePickle.fsi" - @"src\fsharp\.TypedTreePickle.fs" - @"src\fsharp\import.fsi" - @"src\fsharp\import.fs" - @"src\fsharp\infos.fs" - @"src\fsharp\AccessibilityLogic.fs" - @"src\fsharp\AttributeChecking.fs" - @"src\fsharp\InfoReader.fs" - @"src\fsharp\NicePrint.fs" - @"src\fsharp\AugmentWithHashCompare.fsi" - @"src\fsharp\AugmentWithHashCompare.fs" - @"src\fsharp\NameResolution.fsi" - @"src\fsharp\NameResolution.fs" - @"src\fsharp\TypeRelations.fs" - @"src\fsharp\SignatureConformance.fs" - @"src\fsharp\MethodOverrides.fs" - @"src\fsharp\MethodCalls.fs" - @"src\fsharp\PatternMatchCompilation.fsi" - @"src\fsharp\PatternMatchCompilation.fs" - @"src\fsharp\ConstraintSolver.fsi" - @"src\fsharp\ConstraintSolver.fs" - @"src\fsharp\CheckFormatStrings.fsi" - @"src\fsharp\CheckFormatStrings.fs" - @"src\fsharp\FindUnsolved.fsi" - @"src\fsharp\FindUnsolved.fs" - @"src\fsharp\QuotationTranslator.fsi" - @"src\fsharp\QuotationTranslator.fs" - @"src\fsharp\PostInferenceChecks.fsi" - @"src\fsharp\PostInferenceChecks.fs" - @"src\fsharp\TypeChecker.fsi" - @"src\fsharp\TypeChecker.fs" - @"src\fsharp\Optimizer.fsi" - @"src\fsharp\Optimizer.fs" - @"src\fsharp\DetupleArgs.fsi" - @"src\fsharp\DetupleArgs.fs" - @"src\fsharp\InnerLambdasToTopLevelFuncs.fsi" - @"src\fsharp\InnerLambdasToTopLevelFuncs.fs" - @"src\fsharp\LowerCallsAndSeqs.fsi" - @"src\fsharp\LowerCallsAndSeqs.fs" - @"src\fsharp\autobox.fsi" - @"src\fsharp\autobox.fs" - @"src\fsharp\IlxGen.fsi" - @"src\fsharp\IlxGen.fs" - @"src\fsharp\CompileOps.fsi" - @"src\fsharp\CompileOps.fs" - @"src\fsharp\CompileOptions.fsi" - @"src\fsharp\CompileOptions.fs" - @"src\fsharp\fsc.fsi" - @"src\fsharp\fsc.fs" - @"src\fsharp\service\IncrementalBuild.fsi" - @"src\fsharp\service\IncrementalBuild.fs" - @"src\fsharp\service\Reactor.fsi" - @"src\fsharp\service\Reactor.fs" - @"src\fsharp\service\ServiceConstants.fs" - @"src\fsharp\symbols\SymbolHelpers.fsi" - @"src\fsharp\symbols\SymbolHelpers.fs" - @"src\fsharp\symbols\Symbols.fsi" - @"src\fsharp\symbols\Symbols.fs" - @"src\fsharp\symbols\Exprs.fsi" - @"src\fsharp\symbols\Exprs.fs" - @"src\fsharp\service\ServiceLexing.fsi" - @"src\fsharp\service\ServiceLexing.fs" - @"src\fsharp\service\ServiceParseTreeWalk.fs" - @"src\fsharp\service\ServiceNavigation.fsi" - @"src\fsharp\service\ServiceNavigation.fs" - @"src\fsharp\service\ServiceParamInfoLocations.fsi" - @"src\fsharp\service\ServiceParamInfoLocations.fs" - @"src\fsharp\service\ServiceUntypedParse.fsi" - @"src\fsharp\service\ServiceUntypedParse.fs" - @"src\fsharp\SimulatedMSBuildReferenceResolver.fs" - @"src\fsharp\service\FSharpCheckerResults.fsi" - @"src\fsharp\service\FSharpCheckerResults.fs" - @"src\fsharp\service\service.fsi" - @"src\fsharp\service\service.fs" - @"src\fsharp\service\SimpleServices.fsi" - @"src\fsharp\service\SimpleServices.fs" - @"src\fsharp\fsi\fsi.fsi" - @"src\fsharp\fsi\fsi.fs" |] - - { Options = - {ProjectFileName = repositoryDir @"src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj" - ProjectId = None - SourceFiles = files |> Array.map (fun x -> repositoryDir x) - OtherOptions = - [|@"-o:obj\Release\FSharp.Compiler.Private.dll"; "-g"; "--noframework"; - @"--baseaddress:0x06800000"; "--define:DEBUG"; - @"--define:CROSS_PLATFORM_COMPILER"; - @"--define:FX_ATLEAST_40"; - @"--define:COMPILER"; - @"--define:ENABLE_MONO_SUPPORT"; "--define:FX_MSBUILDRESOLVER_RUNTIMELIKE"; - @"--define:FX_RESX_RESOURCE_READER"; "--define:FX_RESIDENT_COMPILER"; - @"--define:SHADOW_COPY_REFERENCES"; "--define:EXTENSIONTYPING"; - @"--define:COMPILER_SERVICE_DLL_ASSUMES_FSHARP_CORE_4_4_0_0"; - @"--define:COMPILER_SERVICE_DLL"; "--define:NO_STRONG_NAMES"; "--define:TRACE"; - @"--doc:..\..\..\bin\v4.5\FSharp.Compiler.Service.xml"; "--optimize-"; - @"--platform:anycpu"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll"; - @"-r:" + (repositoryDir @"packages\System.Collections.Immutable\lib\netstandard1.0\System.Collections.Immutable.dll"); - @"-r:" + (repositoryDir @"packages\FSharp.Core\lib\net40\FSharp.Core.dll"); - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Numerics.dll"; - @"-r:" + (repositoryDir @"packages\System.Reflection.Metadata\lib\portable-net45+win8\System.Reflection.Metadata.dll"); - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Runtime.Serialization.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Collections.Concurrent.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Collections.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.Annotations.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.EventBasedAsync.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Contracts.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Debug.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Tools.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Tracing.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Dynamic.Runtime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Globalization.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.IO.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Expressions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Parallel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Queryable.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.NetworkInformation.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.Requests.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ObjectModel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.ILGeneration.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.Lightweight.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Resources.ResourceManager.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.InteropServices.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.InteropServices.WindowsRuntime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Numerics.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Json.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Xml.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Security.Principal.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Duplex.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Http.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.NetTcp.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Security.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.Encoding.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.Encoding.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.RegularExpressions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.Parallel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.ReaderWriter.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XDocument.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XmlSerializer.dll"; - @"--target:library"; "--nowarn:44,62,9,69,65,54,61,75"; "--warnaserror:76"; - @"--vserrors"; "--utf8output"; "--fullpaths"; "--flaterrors"; - @"--subsystemversion:6.00"; "--highentropyva+"; "/warnon:1182"; "--times"; - @"--no-jit-optimize"; "--jit-tracking"|] - ReferencedProjects = [||] - IsIncompleteTypeCheckEnvironment = false - UseScriptResolutionRules = false - LoadTime = DateTime.Now - UnresolvedReferences = None; - OriginalLoadReferences = [] - ExtraProjectInfo = None - Stamp = None } - FilesToCheck = - files - |> Array.filter (fun s -> s.Contains "TypeChecker.fs" || - s.Contains "Optimizer.fs" || - s.Contains "IlxGen.fs" || - s.Contains "TastOps.fs" || - s.Contains "TcGlobals.fs" || - s.Contains "CompileOps.fs" || - s.Contains "CompileOptions.fs") - |> Array.map (fun x -> repositoryDir x) - |> Array.toList - FileToCheck = repositoryDir @"src\fsharp\TypeChecker.fs" - SymbolText = "Some" - SymbolPos = mkPos 120 7 - CompletionPositions = [] } - -let VFPT (repositoryDir: string) : Options = - { Options = - {ProjectFileName = repositoryDir @"src\FSharp.Editing\FSharp.Editing.fsproj" - ProjectId = None - SourceFiles = - [|@"src\FSharp.Editing\AssemblyInfo.fs"; - @"src\FSharp.Editing\Common\Utils.fs"; - @"src\FSharp.Editing\Common\CompilerLocationUtils.fs"; - @"src\FSharp.Editing\Common\UntypedAstUtils.fs"; - @"src\FSharp.Editing\Common\TypedAstUtils.fs"; - @"src\FSharp.Editing\Common\Lexer.fs"; - @"src\FSharp.Editing\Common\XmlDocParser.fs"; - @"src\FSharp.Editing\Common\IdentifierUtils.fs"; - @"src\FSharp.Editing\ProjectSystem\AssemblyContentProvider.fs"; - @"src\FSharp.Editing\ProjectSystem\OpenDocumentsTracker.fs"; - @"src\FSharp.Editing\ProjectSystem\LanguageService.fs"; - @"src\FSharp.Editing\ProjectSystem\SolutionProvider.fs"; - @"src\FSharp.Editing\Navigation\NavigableItemsCollector.fs"; - @"src\FSharp.Editing\Navigation\NavigateToIndex.fs"; - @"src\FSharp.Editing\Coloring\DepthParser.fs"; - @"src\FSharp.Editing\Coloring\OpenDeclarationsGetter.fs"; - @"src\FSharp.Editing\Coloring\UnopenedNamespacesResolver.fs"; - @"src\FSharp.Editing\Coloring\HighlightUsageInFile.fs"; - @"src\FSharp.Editing\Coloring\PrintfSpecifiersUsageGetter.fs"; - @"src\FSharp.Editing\Symbols\SourceCodeClassifier.fs"; - @"src\FSharp.Editing\CodeGeneration\CodeGeneration.fs"; - @"src\FSharp.Editing\CodeGeneration\SignatureGenerator.fs"; - @"src\FSharp.Editing\CodeGeneration\UnionPatternMatchCaseGenerator.fs"; - @"src\FSharp.Editing\CodeGeneration\InterfaceStubGenerator.fs"; - @"src\FSharp.Editing\CodeGeneration\RecordStubGenerator.fs"; - @"src\FSharp.Editing\TaskListCommentExtractor.fs"|] - |> Array.map (fun x -> repositoryDir x) - OtherOptions = - [|@"-o:obj\Release\FSharp.Editing.dll"; "--debug:pdbonly"; "--noframework"; - @"--define:TRACE"; "--doc:bin\Release\FSharp.Editing.XML"; "--optimize+"; - @"-r:" + (repositoryDir @"packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Private.dll"); - @"-r:" + (repositoryDir @"packages\FSharp.Compiler.Service\lib\net45\FSharp.Compiler.Service.MSBuild.v12.dll"); - @"-r:" + (repositoryDir @"packages\FSharp.Core\lib\net40\FSharp.Core.dll"); - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll"; - @"-r:" + (repositoryDir @"packages\System.Collections.Immutable\lib\netstandard1.0\System.Collections.Immutable.dll"); - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Numerics.dll"; - @"-r:" + (repositoryDir @"packages\System.Reflection.Metadata\lib\netstandard1.1\System.Reflection.Metadata.dll"); - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Collections.Concurrent.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Collections.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.Annotations.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ComponentModel.EventBasedAsync.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Contracts.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Debug.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Tools.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Diagnostics.Tracing.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Dynamic.Runtime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Globalization.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.IO.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Expressions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Parallel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Linq.Queryable.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.NetworkInformation.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Net.Requests.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ObjectModel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.ILGeneration.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Emit.Lightweight.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Reflection.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Resources.ResourceManager.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.InteropServices.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.InteropServices.WindowsRuntime.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Numerics.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Json.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.Serialization.Xml.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Security.Principal.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Duplex.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Http.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.NetTcp.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Primitives.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.ServiceModel.Security.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.Encoding.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.Encoding.Extensions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Text.RegularExpressions.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Threading.Tasks.Parallel.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.ReaderWriter.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XDocument.dll"; - @"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Xml.XmlSerializer.dll"; - @"--target:library"; "--nowarn:52"; "--warn:5"; "--warnaserror"; - @"--warnaserror:76"; "--vserrors"; "--utf8output"; "--fullpaths"; - @"--flaterrors"; "--subsystemversion:6.00"; "--highentropyva+"; - @"--warnon:1182"|]; - ReferencedProjects = [||] - IsIncompleteTypeCheckEnvironment = false - UseScriptResolutionRules = false - LoadTime = DateTime.Now - UnresolvedReferences = None - OriginalLoadReferences = [] - ExtraProjectInfo = None - Stamp = None } - FilesToCheck = [] - FileToCheck = repositoryDir @"src\FSharp.Editing\CodeGeneration\RecordStubGenerator.fs" - SymbolText = "option" - SymbolPos = mkPos 19 23 - CompletionPositions = - [{ - Position = mkPos 20 4 - QualifyingNames = [] - PartialName = "" - }] - } - -let get (repositoryDir: string) : Options = - let repositoryDir = Path.GetFullPath(repositoryDir) - match DirectoryInfo(Path.GetFullPath(repositoryDir)).Name.ToLower() with - | "fsharp.compiler.service" -> FCS(repositoryDir) - | "fsharpvspowertools" -> VFPT(repositoryDir) - | _ -> failwithf "%s is not supported" repositoryDir - diff --git a/vsintegration/Utils/LanguageServiceProfiling/Program.fs b/vsintegration/Utils/LanguageServiceProfiling/Program.fs deleted file mode 100644 index fc33ebc7d2d..00000000000 --- a/vsintegration/Utils/LanguageServiceProfiling/Program.fs +++ /dev/null @@ -1,279 +0,0 @@ -(* - -Background check a project "CXGSCGS" (Check, Flush, GC, Stats, Check, GC, Stats) - - .\Release\net40\bin\LanguageServiceProfiling.exe ..\FSharp.Compiler.Service CXGSCGS - -Foreground check new versions of multiple files in an already-checked project and keep intellisense info "CGSFGS" (Check, GC, Stats, File, GC, Stats) - - .\Release\net40\bin\LanguageServiceProfiling.exe ..\FSharp.Compiler.Service CGSFGS - - - -Use the following to collect memory usage stats, appending to the existing stats files: - - git clone https://github.com/fsharp/FSharp.Compiler.Service tests\scripts\tmp\FSharp.Compiler.Service - pushd tests\scripts\tmp\FSharp.Compiler.Service - git checkout 2d51df21ca1d86d4d6676ead3b1fb125b2a0d1ba - .\build Build.NetFx - popd - - git rev-parse HEAD > gitrev.txt - set /P gitrev=> tests\scripts\service-fcs-project-check-mem-results.txt - .\Release\net40\bin\LanguageServiceProfiling.exe ..\FSharp.Compiler.Service CGSFGS %gitrev% >> tests\scripts\service-fcs-file-check-mem-results.txt - -Results look like this: - - Background FCS project: - master: TimeDelta: 24.70 MemDelta: 318 G0: 880 G1: 696 G2: 8 - - Background FCS project (with keepAllBackgroundResolutions=true) : - master: TimeDelta: 23.84 MemDelta: 448 G0: 877 G1: 702 G2: 6 - - Multiple foreground files from FCS project keeping all results: - statistics: TimeDelta: 8.58 MemDelta: 143 G0: 260 G1: 192 G2: 4 - - - -*) - -open FSharp.Compiler -open FSharp.Compiler.Text -open FSharp.Compiler.SourceCodeServices -open System -open System.IO -open LanguageServiceProfiling -open System.Diagnostics -open System.Collections.Generic -// ---- taken from QuickInfoProviderTests.fs -let normalizeLineEnds (s: string) = s.Replace("\r\n", "\n").Replace("\n\n", "\n") -let internal getQuickInfoText (FSharpToolTipText.FSharpToolTipText elements) : string = - let rec parseElement = function - | FSharpToolTipElement.None -> "" - | FSharpToolTipElement.Group(xs) -> xs |> List.map (fun item -> item.MainDescription) |> String.concat "\n" - | FSharpToolTipElement.CompositionError(error) -> error - elements |> List.map (parseElement) |> String.concat "\n" |> normalizeLineEnds - -[] -let main argv = - let rootDir = argv.[0] - let scriptOpt = if argv.Length >= 2 then Some argv.[1] else None - let msgOpt = if argv.Length >= 3 then Some argv.[2] else None - let useConsole = scriptOpt.IsNone - let options = Options.get rootDir - let getFileLines () = File.ReadAllLines(options.FileToCheck) - let getFileText () = File.ReadAllText(options.FileToCheck) - let getLine line = (getFileLines ()).[line] - - eprintfn "Found options for %s." options.Options.ProjectFileName - let checker = FSharpChecker.Create(projectCacheSize = 200, keepAllBackgroundResolutions = false) - let waste = new ResizeArray() - - let checkProject() : Async = - async { - eprintfn "ParseAndCheckProject(%s)..." (Path.GetFileName options.Options.ProjectFileName) - let sw = Stopwatch.StartNew() - let! result = checker.ParseAndCheckProject(options.Options) - if result.HasCriticalErrors then - eprintfn "Finished with ERRORS: %+A" result.Errors - return None - else - eprintfn "Finished successfully in %O" sw.Elapsed - return Some result - } - - let checkFile (fileVersion: int) : Async = - async { - eprintfn "ParseAndCheckFileInProject(%s)..." options.FileToCheck - let sw = Stopwatch.StartNew() - let! _, answer = checker.ParseAndCheckFileInProject(options.FileToCheck, fileVersion, SourceText.ofString (File.ReadAllText options.FileToCheck), options.Options) - match answer with - | FSharpCheckFileAnswer.Aborted -> - eprintfn "Abortedin %O!" sw.Elapsed - return None - | FSharpCheckFileAnswer.Succeeded results -> - if results.Errors |> Array.exists (fun x -> x.Severity = FSharpErrorSeverity.Error) then - eprintfn "Finished with ERRORS in %O: %+A" sw.Elapsed results.Errors - return None - else - eprintfn "Finished successfully in %O" sw.Elapsed - return Some results - } - - let checkFiles (fileVersion: int) = - async { - eprintfn "multiple ParseAndCheckFileInProject(...)..." - let sw = Stopwatch.StartNew() - let answers = - options.FilesToCheck |> List.map (fun file -> - eprintfn "doing %s" file - checker.ParseAndCheckFileInProject(file, fileVersion, SourceText.ofString (File.ReadAllText file), options.Options) |> Async.RunSynchronously) - for _,answer in answers do - match answer with - | FSharpCheckFileAnswer.Aborted -> - eprintfn "Aborted!" - | FSharpCheckFileAnswer.Succeeded results -> - if results.Errors |> Array.exists (fun x -> x.Severity = FSharpErrorSeverity.Error) then - eprintfn "Finished with ERRORS: %+A" results.Errors - eprintfn "Finished in %O" sw.Elapsed - } - - let findAllReferences (fileVersion: int) : Async = - async { - eprintfn "Find all references (symbol = '%s', file = '%s')" options.SymbolText options.FileToCheck - let! projectResults = checkProject() - match projectResults with - | Some projectResults -> - let! fileResults = checkFile fileVersion - match fileResults with - | Some fileResults -> - let! symbolUse = fileResults.GetSymbolUseAtLocation(options.SymbolPos.Line, options.SymbolPos.Column, getLine(options.SymbolPos.Line),[options.SymbolText]) - match symbolUse with - | Some symbolUse -> - eprintfn "Found symbol %s" symbolUse.Symbol.FullName - let sw = Stopwatch.StartNew() - let! symbolUses = projectResults.GetUsesOfSymbol(symbolUse.Symbol) - eprintfn "Found %d symbol uses in %O" symbolUses.Length sw.Elapsed - return symbolUses - | None -> - eprintfn "Symbol '%s' was not found at (%d, %d) in %s" options.SymbolText options.SymbolPos.Line options.SymbolPos.Column options.FileToCheck - return [||] - | None -> - eprintfn "No file check results for %s" options.FileToCheck - return [||] - | None -> - eprintfn "No project results for %s" options.Options.ProjectFileName - return [||] - } - let getDeclarations (fileVersion: int) = - async { - let! projectResults = checkProject() - match projectResults with - | Some projectResults -> - let! fileResults = checkFile fileVersion - match fileResults with - | Some fileResults -> - let parsingOptions, _ = checker.GetParsingOptionsFromProjectOptions(options.Options) - let! parseResult = checker.ParseFile(options.FileToCheck, SourceText.ofString (getFileText()), parsingOptions) - for completion in options.CompletionPositions do - eprintfn "querying %A %s" completion.QualifyingNames completion.PartialName - let! listInfo = - fileResults.GetDeclarationListInfo( - Some parseResult, - completion.Position.Line, - getLine (completion.Position.Line), - { QualifyingIdents = completion.QualifyingNames - PartialIdent = completion.PartialName - EndColumn = completion.Position.Column - 1 - LastDotPos = None }, - fun() -> []) - - for i in listInfo.Items do - eprintfn "%s" (getQuickInfoText i.DescriptionText) - - | None -> eprintfn "no declarations" - | None -> eprintfn "no declarations" - } - - let wasteMemory () = - waste.Add(Array.zeroCreate (1024 * 1024 * 25)) - - if useConsole then - eprintfn """Press: - - for check the project - for GC.Collect(2) - for check TypeChecker.fs (you need to change it before rechecking) - for find all references - for completion lists - for wasting 100M of memory - to clear all caches -

to pause for key entry - to reclaim waste - for exit.""" - - let mutable tPrev = None - let stats() = - // Note that timing calls are relatively expensive on the startup path so we don't - // make this call unless showTimes has been turned on. - let uproc = System.Diagnostics.Process.GetCurrentProcess() - let timeNow = uproc.UserProcessorTime.TotalSeconds - let maxGen = System.GC.MaxGeneration - let gcNow = [| for i in 0 .. maxGen -> System.GC.CollectionCount(i) |] - let wsNow = uproc.WorkingSet64/1000000L - - match tPrev with - | Some (timePrev, gcPrev:int[], wsPrev)-> - let spanGC = [| for i in 0 .. maxGen -> System.GC.CollectionCount(i) - gcPrev.[i] |] - printfn "%s TimeDelta: %4.2f MemDelta: %4d G0: %4d G1: %4d G2: %4d" - (match msgOpt with Some msg -> msg | None -> "statistics:") - (timeNow - timePrev) - (wsNow - wsPrev) - spanGC.[min 0 maxGen] spanGC.[min 1 maxGen] spanGC.[min 2 maxGen] - - | _ -> () - tPrev <- Some (timeNow, gcNow, wsNow) - - let processCmd (fileVersion: int) c = - match c with - | 'C' -> - checkProject() |> Async.RunSynchronously |> ignore - fileVersion - | 'G' -> - eprintfn "GC is running..." - let sw = Stopwatch.StartNew() - GC.Collect 2 - eprintfn "GC is done in %O" sw.Elapsed - fileVersion - | 'F' -> - checkFiles fileVersion |> Async.RunSynchronously |> ignore - (fileVersion + 1) - | 'R' -> - findAllReferences fileVersion |> Async.RunSynchronously |> ignore - fileVersion - | 'L' -> - getDeclarations fileVersion |> Async.RunSynchronously - fileVersion - | 'W' -> - wasteMemory() - fileVersion - | 'M' -> - waste.Clear() - fileVersion - | 'S' -> - stats() - fileVersion - | 'X' -> - checker.ClearLanguageServiceRootCachesAndCollectAndFinalizeAllTransients() - fileVersion - | 'P' -> - eprintfn "pausing (press any key)..."; - System.Console.ReadKey() |> ignore - fileVersion - | _ -> fileVersion - - let rec console fileVersion = - match Console.ReadKey().Key with - | ConsoleKey.C -> processCmd fileVersion 'C' |> console - | ConsoleKey.G -> processCmd fileVersion 'G' |> console - | ConsoleKey.F -> processCmd fileVersion 'F' |> console - | ConsoleKey.R -> processCmd fileVersion 'R' |> console - | ConsoleKey.L -> processCmd fileVersion 'L' |> console - | ConsoleKey.W -> processCmd fileVersion 'W' |> console - | ConsoleKey.M -> processCmd fileVersion 'M' |> console - | ConsoleKey.X -> processCmd fileVersion 'X' |> console - | ConsoleKey.P -> processCmd fileVersion 'P' |> console - | ConsoleKey.Enter -> () - | _ -> console fileVersion - - let runScript (script:string) = - (0,script) ||> Seq.fold processCmd |> ignore - - match scriptOpt with - | None -> console 0 - | Some s -> runScript s - 0 \ No newline at end of file