-
Notifications
You must be signed in to change notification settings - Fork 802
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Map with Dictionary #13044
Replace Map with Dictionary #13044
Conversation
Have you benchmarked typechecking a decently sized file (thousands of lines)? |
I did, it was a very insignificant gain. open System
open System.Collections.Generic
open System.IO
open FSharp.Compiler.CodeAnalysis
open FSharp.Compiler.Text
open BenchmarkDotNet.Attributes
open BenchmarkDotNet.Running
module rec Project =
let private getTimeStamp () = DateTime.Now
let private loader _ = None
let memoization (f: string -> 'a) =
let cache = Dictionary<_, _>()
(fun x ->
match cache.TryGetValue(x) with
| true, cachedValue -> cachedValue
| _ ->
let result = f x
cache.Add(x, result)
result)
let FSharpCompilerService _ =
let projectOptions =
{ ProjectFileName =
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj"
ProjectId = None
SourceFiles =
[| @"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSComp.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSIstrings.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\UtilsStrings.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSharp.Compiler.Service.InternalsVisibleTo.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSharp.Compiler.Service.AssemblyInfo.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\sformat.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\sformat.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\sr.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\sr.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Logger.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Logger.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LanguageFeatures.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LanguageFeatures.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\ResizeArray.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\ResizeArray.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\HashMultiMap.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\HashMultiMap.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\EditDistance.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\EditDistance.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\TaggedCollections.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\TaggedCollections.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\illib.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\illib.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\FileSystem.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\FileSystem.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ildiag.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ildiag.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\zmap.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\zmap.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\zset.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\zset.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlAdapters.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlAdapters.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InternalCollections.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InternalCollections.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QueueList.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QueueList.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\lib.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\lib.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\block.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\block.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\rational.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\rational.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\PathMap.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\PathMap.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\RidHelpers.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\range.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\range.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Diagnostics.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Diagnostics.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TextLayoutRender.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TextLayoutRender.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ErrorLogger.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ErrorLogger.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ErrorResolutionHints.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ErrorResolutionHints.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\prim-lexing.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\prim-lexing.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\prim-parsing.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\prim-parsing.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\il.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\il.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilx.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilx.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilascii.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilascii.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\ilpars.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\illex.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilprint.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilprint.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilmorph.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilmorph.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilsign.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilsign.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilnativeres.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilnativeres.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilsupp.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilsupp.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilbinary.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilbinary.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilread.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilread.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilwritepdb.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilwritepdb.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilwrite.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilwrite.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilreflect.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\absil\ilreflect.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ReferenceResolver.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ReferenceResolver.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LegacyMSBuildReferenceResolver.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LegacyMSBuildReferenceResolver.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SimulatedMSBuildReferenceResolver.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SimulatedMSBuildReferenceResolver.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\CompilerLocationUtils.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\CompilerLocationUtils.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PrettyNaming.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PrettyNaming.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ilx\EraseClosures.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ilx\EraseClosures.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ilx\EraseUnions.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ilx\EraseUnions.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\UnicodeLexing.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\UnicodeLexing.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlDoc.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlDoc.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTrivia.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTrivia.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTree.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTree.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTreeOps.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SyntaxTreeOps.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ParseHelpers.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ParseHelpers.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\pppars.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\pars.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\lexhelp.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\lexhelp.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\pplex.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\lex.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LexFilter.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LexFilter.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\tainted.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\tainted.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ExtensionTyping.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ExtensionTyping.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QuotationPickler.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QuotationPickler.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerGlobalState.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerGlobalState.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTree.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreeBasics.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreeBasics.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TcGlobals.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreeOps.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreeOps.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreePickle.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypedTreePickle.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\import.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\import.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\infos.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\infos.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AccessibilityLogic.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AccessibilityLogic.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AttributeChecking.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AttributeChecking.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypeRelations.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\TypeRelations.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InfoReader.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InfoReader.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\NicePrint.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\NicePrint.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AugmentWithHashCompare.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\AugmentWithHashCompare.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\NameResolution.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\NameResolution.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SignatureConformance.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\SignatureConformance.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\MethodOverrides.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\MethodOverrides.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\MethodCalls.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\MethodCalls.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PatternMatchCompilation.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PatternMatchCompilation.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ConstraintSolver.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ConstraintSolver.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckFormatStrings.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckFormatStrings.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FindUnsolved.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FindUnsolved.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QuotationTranslator.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\QuotationTranslator.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PostInferenceChecks.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\PostInferenceChecks.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckExpressions.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckExpressions.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckComputationExpressions.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckComputationExpressions.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckDeclarations.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CheckDeclarations.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Optimizer.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\Optimizer.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DetupleArgs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DetupleArgs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InnerLambdasToTopLevelFuncs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\InnerLambdasToTopLevelFuncs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LowerCallsAndSeqs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LowerCallsAndSeqs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LowerStateMachines.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LowerStateMachines.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\autobox.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\autobox.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\IlxGen.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\IlxGen.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FxResolver.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\AssemblyResolveHandler.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\AssemblyResolveHandler.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\NativeDllResolveHandler.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\NativeDllResolveHandler.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\DependencyProvider.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\DependencyManager\DependencyProvider.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\BuildGraph.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\BuildGraph.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerConfig.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerConfig.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerImports.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerImports.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerDiagnostics.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerDiagnostics.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ParseAndCheckInputs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ParseAndCheckInputs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ScriptClosure.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\ScriptClosure.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerOptions.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CompilerOptions.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\OptimizeInputs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\OptimizeInputs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlDocFileWriter.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\XmlDocFileWriter.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\BinaryResourceFormats.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\BinaryResourceFormats.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\StaticLinking.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\StaticLinking.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CreateILModule.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\CreateILModule.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\fsc.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\fsc.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\SymbolHelpers.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\SymbolHelpers.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\Symbols.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\Symbols.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\Exprs.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\Exprs.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\SymbolPatterns.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\symbols\SymbolPatterns.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\SemanticClassification.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\SemanticClassification.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ItemKey.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ItemKey.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\SemanticClassificationKey.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\SemanticClassificationKey.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpSource.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpSource.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\IncrementalBuild.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\IncrementalBuild.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceCompilerDiagnostics.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceCompilerDiagnostics.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceConstants.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceDeclarationLists.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceDeclarationLists.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceLexing.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceLexing.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParseTreeWalk.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParseTreeWalk.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceNavigation.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceNavigation.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParamInfoLocations.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParamInfoLocations.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpParseFileResults.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpParseFileResults.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParsedInputOps.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceParsedInputOps.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceAssemblyContent.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceAssemblyContent.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceXmlDocParser.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceXmlDocParser.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ExternalSymbol.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ExternalSymbol.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\QuickParse.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\QuickParse.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpCheckerResults.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\FSharpCheckerResults.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\service.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\service.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceInterfaceStubGenerator.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceInterfaceStubGenerator.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceStructure.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceStructure.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceAnalysis.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\service\ServiceAnalysis.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\fsi\fsi.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\fsi\fsi.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\LegacyHostedCompilerForTesting.fs" |]
OtherOptions =
[| @"-o:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSharp.Compiler.Service.dll"
@"-g"
@"--debug:embedded"
@"--noframework"
@"--define:TRACE"
@"--define:COMPILER"
@"--define:ENABLE_MONO_SUPPORT"
@"--define:DEBUG"
@"--define:ENABLE_MONO_SUPPORT"
@"--define:NETFRAMEWORK"
@"--define:NET472"
@"--define:NET20_OR_GREATER"
@"--define:NET30_OR_GREATER"
@"--define:NET35_OR_GREATER"
@"--define:NET40_OR_GREATER"
@"--define:NET45_OR_GREATER"
@"--define:NET451_OR_GREATER"
@"--define:NET452_OR_GREATER"
@"--define:NET46_OR_GREATER"
@"--define:NET461_OR_GREATER"
@"--define:NET462_OR_GREATER"
@"--define:NET47_OR_GREATER"
@"--define:NET471_OR_GREATER"
@"--define:NET472_OR_GREATER"
@"--doc:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Compiler.Service\Debug\net472\FSharp.Compiler.Service.xml"
@"--publicsign+"
@"--optimize-"
@"-r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.Core\Debug\netstandard2.0\FSharp.Core.dll"
@"-r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll"
@"-r:C:\Users\nojaf\.nuget\packages\microsoft.build.framework\17.0.0\lib\net472\Microsoft.Build.Framework.dll"
@"-r:C:\Users\nojaf\.nuget\packages\microsoft.build.tasks.core\17.0.0\lib\net472\Microsoft.Build.Tasks.Core.dll"
@"-r:C:\Users\nojaf\.nuget\packages\microsoft.build.utilities.core\17.0.0\lib\net472\Microsoft.Build.Utilities.Core.dll"
@"-r:C:\Users\nojaf\.nuget\packages\microsoft.net.stringtools\1.0.0\lib\net472\Microsoft.NET.StringTools.dll"
@"-r:C:\Users\nojaf\.nuget\packages\microsoft.visualstudio.setup.configuration.interop\1.16.30\lib\net35\Microsoft.VisualStudio.Setup.Configuration.Interop.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\mscorlib.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\net45\System.Buffers.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\5.0.0\lib\net461\System.Collections.Immutable.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.ComponentModel.Composition.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.configuration.configurationmanager\4.7.0\ref\net461\System.Configuration.ConfigurationManager.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Configuration.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Core.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Data.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Data.OracleClient.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Diagnostics.Process.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Diagnostics.TraceSource.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Drawing.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.IO.Compression.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.IO.Compression.FileSystem.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.IO.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Linq.Expressions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.4\lib\net461\System.Memory.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Net.Security.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Numerics.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.5.0\ref\net46\System.Numerics.Vectors.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Reflection.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\5.0.0\lib\net461\System.Reflection.Metadata.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.typeextensions\4.3.0\ref\net462\System.Reflection.TypeExtensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.resources.extensions\4.6.0\ref\netstandard2.0\System.Resources.Extensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\5.0.0\ref\net461\System.Runtime.CompilerServices.Unsafe.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Runtime.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Runtime.InteropServices.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.runtime.loader\4.3.0\ref\netstandard1.5\System.Runtime.Loader.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Runtime.Serialization.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.security.accesscontrol\4.7.0\ref\net461\System.Security.AccessControl.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Security.Claims.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Security.Cryptography.Algorithms.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Security.Cryptography.Encoding.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Security.Cryptography.Primitives.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Security.Cryptography.X509Certificates.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Security.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.security.permissions\4.7.0\ref\net461\System.Security.Permissions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.security.principal.windows\4.7.0\ref\net461\System.Security.Principal.Windows.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.ServiceProcess.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.threading.tasks.dataflow\4.9.0\lib\netstandard2.0\System.Threading.Tasks.Dataflow.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Threading.Thread.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Threading.ThreadPool.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Transactions.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Windows.Forms.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Xaml.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Xml.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Xml.Linq.dll"
@"-r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\WindowsBase.dll"
@"--target:library"
@"--nowarn:FS2003,44,57,75,1204,NU5125,NU5105"
@"--warn:3"
@"--warnaserror:3239,1182,0025"
@"--fullpaths"
@"--flaterrors"
@"--subsystemversion:6.00"
@"--highentropyva+"
@"--targetprofile:mscorlib"
@"--nocopyfsharpcore"
@"--deterministic+"
@"--simpleresolution"
@"--nowarn:3384"
@"--extraoptimizationloops:1"
@"--times"
@"--warnon:1182"
@"--warnon:3218"
@"--warnon:3390" |]
ReferencedProjects =
[| memoFSharpDependencyManagerNuget "FSharpDependencyManagerNuget"
memoFSharpCore "FSharpCore" |]
IsIncompleteTypeCheckEnvironment = false
UseScriptResolutionRules = false
LoadTime = DateTime.Now
UnresolvedReferences = None
OriginalLoadReferences = []
Stamp = None }
projectOptions
let FSharpDependencyManagerNuget _ =
let projectOptions =
{ ProjectFileName =
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj"
ProjectId = None
SourceFiles =
[| @"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSDependencyManager.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\UtilsStrings.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.InternalsVisibleTo.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.AssemblyInfo.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\CompilerLocationUtils.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\CompilerLocationUtils.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.ProjectFile.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Utilities.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.fs" |]
OtherOptions =
[| @"-o:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll"
@"-g"
@"--debug:embedded"
@"--noframework"
@"--define:TRACE"
@"--define:COMPILER"
@"--define:DEBUG"
@"--define:NETSTANDARD"
@"--define:FX_NO_APP_DOMAINS"
@"--define:FX_NO_CORHOST_SIGNER"
@"--define:FX_NO_PDB_READER"
@"--define:FX_NO_PDB_WRITER"
@"--define:FX_NO_SYMBOLSTORE"
@"--define:FX_NO_SYSTEM_CONFIGURATION"
@"--define:FX_NO_WIN_REGISTRY"
@"--define:FX_NO_WINFORMS"
@"--define:FX_RESHAPED_REFEMIT"
@"--define:NETSTANDARD"
@"--define:NETSTANDARD2_0"
@"--define:NETSTANDARD1_0_OR_GREATER"
@"--define:NETSTANDARD1_1_OR_GREATER"
@"--define:NETSTANDARD1_2_OR_GREATER"
@"--define:NETSTANDARD1_3_OR_GREATER"
@"--define:NETSTANDARD1_4_OR_GREATER"
@"--define:NETSTANDARD1_5_OR_GREATER"
@"--define:NETSTANDARD1_6_OR_GREATER"
@"--define:NETSTANDARD2_0_OR_GREATER"
@"--doc:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.xml"
@"--publicsign+"
@"--optimize-"
@"-r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.Core\Debug\netstandard2.0\FSharp.Core.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\netstandard2.0\System.Buffers.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\5.0.0\lib\netstandard2.0\System.Collections.Immutable.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.4\lib\netstandard2.0\System.Memory.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.4.0\ref\netstandard2.0\System.Numerics.Vectors.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit\4.3.0\ref\netstandard1.1\System.Reflection.Emit.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit.ilgeneration\4.3.0\ref\netstandard1.0\System.Reflection.Emit.ILGeneration.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\5.0.0\lib\netstandard2.0\System.Reflection.Metadata.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.reflection.typeextensions\4.3.0\ref\netstandard1.5\System.Reflection.TypeExtensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\4.5.3\ref\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll"
@"-r:C:\Users\nojaf\.nuget\packages\system.runtime.loader\4.3.0\ref\netstandard1.5\System.Runtime.Loader.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll"
@"-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll"
@"--target:library"
@"--nowarn:FS2003,NU5105"
@"--warn:3"
@"--warnaserror:3239,1182,0025"
@"--fullpaths"
@"--flaterrors"
@"--highentropyva+"
@"--targetprofile:netstandard"
@"--nocopyfsharpcore"
@"--deterministic+"
@"--simpleresolution"
@"--nowarn:3384"
@"--warnon:1182"
@"--simpleresolution" |]
ReferencedProjects = [| memoFSharpCore "FSharpCore" |]
IsIncompleteTypeCheckEnvironment = false
UseScriptResolutionRules = false
LoadTime = DateTime.Now
UnresolvedReferences = None
OriginalLoadReferences = []
Stamp = None }
FSharpReferencedProject.CreateFSharp(
@"C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll",
projectOptions
)
let memoFSharpDependencyManagerNuget = memoization FSharpDependencyManagerNuget
let FSharpCore _ =
let projectOptions =
{ ProjectFileName = @"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\FSharp.Core.fsproj"
ProjectId = None
SourceFiles =
[| @"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\prim-types-prelude.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\prim-types-prelude.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Core\Debug\netstandard2.1\FSCore.fs"
@"C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Core\Debug\netstandard2.1\FSharp.Core.AssemblyInfo.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\prim-types.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\prim-types.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\local.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\local.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array2.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array2.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\option.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\option.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\result.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\result.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\collections.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\collections.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\seqcore.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\seqcore.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\seq.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\seq.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\string.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\string.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\list.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\list.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array3.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\array3.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\map.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\map.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\set.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\set.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\reflect.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\reflect.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\math\z.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\math\z.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\sformat.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\utils\sformat.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\printf.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\printf.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\quotations.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\quotations.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\nativeptr.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\nativeptr.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\event.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\event.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\resumable.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\resumable.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\async.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\async.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\tasks.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\tasks.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\eventmodule.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\eventmodule.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\observable.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\observable.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\mailbox.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\mailbox.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Nullable.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Nullable.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Linq.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Linq.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\MutableTuple.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\QueryExtensions.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Query.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\Query.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\SI.fs"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\fslib-extra-pervasives.fsi"
@"C:\Users\nojaf\Projects\fsharp\src\fsharp\FSharp.Core\fslib-extra-pervasives.fs" |]
OtherOptions =
[| @"-o:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Core\Debug\netstandard2.1\FSharp.Core.dll"
@"-g"
@"--debug:embedded"
@"--langversion:preview"
@"--noframework"
@"--define:TRACE"
@"--define:FSHARP_CORE"
@"--define:DEBUG"
@"--define:NETSTANDARD"
@"--define:FX_NO_APP_DOMAINS"
@"--define:FX_NO_CORHOST_SIGNER"
@"--define:FX_NO_PDB_READER"
@"--define:FX_NO_PDB_WRITER"
@"--define:FX_NO_SYMBOLSTORE"
@"--define:FX_NO_SYSTEM_CONFIGURATION"
@"--define:FX_NO_WIN_REGISTRY"
@"--define:FX_NO_WINFORMS"
@"--define:FX_RESHAPED_REFEMIT"
@"--define:NETSTANDARD"
@"--define:NETSTANDARD2_1"
@"--define:NETSTANDARD1_0_OR_GREATER"
@"--define:NETSTANDARD1_1_OR_GREATER"
@"--define:NETSTANDARD1_2_OR_GREATER"
@"--define:NETSTANDARD1_3_OR_GREATER"
@"--define:NETSTANDARD1_4_OR_GREATER"
@"--define:NETSTANDARD1_5_OR_GREATER"
@"--define:NETSTANDARD1_6_OR_GREATER"
@"--define:NETSTANDARD2_0_OR_GREATER"
@"--define:NETSTANDARD2_1_OR_GREATER"
@"--doc:C:\Users\nojaf\Projects\fsharp\artifacts\obj\FSharp.Core\Debug\netstandard2.1\FSharp.Core.xml"
@"--publicsign+"
@"--optimize-"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\Microsoft.Win32.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\mscorlib.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\netstandard.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.AppContext.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Buffers.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Collections.Concurrent.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Collections.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Collections.NonGeneric.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Collections.Specialized.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ComponentModel.Composition.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ComponentModel.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ComponentModel.EventBasedAsync.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ComponentModel.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ComponentModel.TypeConverter.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Console.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Core.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Data.Common.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Data.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.Contracts.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.Debug.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.FileVersionInfo.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.Process.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.StackTrace.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.TextWriterTraceListener.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.Tools.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.TraceSource.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Diagnostics.Tracing.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Drawing.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Drawing.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Dynamic.Runtime.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Globalization.Calendars.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Globalization.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Globalization.Extensions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.Compression.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.Compression.FileSystem.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.Compression.ZipFile.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.FileSystem.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.FileSystem.DriveInfo.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.FileSystem.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.FileSystem.Watcher.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.IsolatedStorage.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.MemoryMappedFiles.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.Pipes.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.IO.UnmanagedMemoryStream.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Linq.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Linq.Expressions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Linq.Parallel.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Linq.Queryable.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Memory.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Http.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.NameResolution.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.NetworkInformation.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Ping.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Requests.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Security.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.Sockets.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.WebHeaderCollection.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.WebSockets.Client.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Net.WebSockets.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Numerics.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Numerics.Vectors.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ObjectModel.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.DispatchProxy.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.Emit.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.Emit.ILGeneration.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.Emit.Lightweight.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.Extensions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Reflection.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Resources.Reader.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Resources.ResourceManager.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Resources.Writer.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.CompilerServices.VisualC.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Extensions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Handles.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.InteropServices.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.InteropServices.RuntimeInformation.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Numerics.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Serialization.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Serialization.Formatters.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Serialization.Json.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Serialization.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Runtime.Serialization.Xml.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Claims.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Cryptography.Algorithms.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Cryptography.Csp.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Cryptography.Encoding.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Cryptography.Primitives.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Cryptography.X509Certificates.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.Principal.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Security.SecureString.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ServiceModel.Web.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Text.Encoding.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Text.Encoding.Extensions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Text.RegularExpressions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Overlapped.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Tasks.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Tasks.Extensions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Tasks.Parallel.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Thread.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.ThreadPool.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Threading.Timer.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Transactions.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.ValueTuple.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Web.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Windows.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.Linq.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.ReaderWriter.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.Serialization.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.XDocument.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.XmlDocument.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.XmlSerializer.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.XPath.dll"
@"-r:C:\Program Files\dotnet\packs\NETStandard.Library.Ref\2.1.0\ref\netstandard2.1\System.Xml.XPath.XDocument.dll"
@"--target:library"
@"--nowarn:FS2003,62,75,1204,NU5105"
@"--warn:3"
@"--warnaserror:3239,1182,0025"
@"--fullpaths"
@"--flaterrors"
@"--highentropyva+"
@"--targetprofile:netstandard"
@"--nocopyfsharpcore"
@"--deterministic+"
@"--simpleresolution"
@"--nowarn:3384"
@"--warnon:3218"
@"--warnon:1182"
@"--warnon:3390"
@"--warnon:3520"
@"--warnon:1182"
@"--warnon:3390"
@"--nowarn:57"
@"--nowarn:3511"
@"--nowarn:3513"
@"--compiling-fslib"
@"--compiling-fslib-40"
@"--maxerrors:100"
@"--extraoptimizationloops:1"
@"--simpleresolution" |]
ReferencedProjects = [||]
IsIncompleteTypeCheckEnvironment = false
UseScriptResolutionRules = false
LoadTime = DateTime.Now
UnresolvedReferences = None
OriginalLoadReferences = []
Stamp = None }
FSharpReferencedProject.CreateFSharp(
@"C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.Core\Debug\netstandard2.1\FSharp.Core.dll",
projectOptions
)
let memoFSharpCore = memoization FSharpCore
[<MemoryDiagnoser>]
type CompilerService() =
let mutable checkerOpt = None
let mutable sourceOpt : (string * ISourceText) array option = None
let projectOptions : FSharpProjectOptions = Project.FSharpCompilerService ()
[<GlobalSetup>]
member _.Setup() =
match checkerOpt with
| None -> checkerOpt <- Some(FSharpChecker.Create(projectCacheSize = 200))
| _ -> ()
match sourceOpt with
| None ->
sourceOpt <-
projectOptions.SourceFiles
|> Array.filter (fun filePath -> filePath.EndsWith("CheckDeclarations.fs")) // || filePath.EndsWith("CheckExpressions.fs"))
// || filePath.EndsWith("lex.fs") || filePath.EndsWith("pars.fs"))
|> Array.map (fun filePath -> filePath, SourceText.ofString (File.ReadAllText(filePath)))
|> Some
| _ -> ()
[<Benchmark>]
member _.ParseAndCheckFileInProject() =
match checkerOpt, sourceOpt with
| None, _ -> failwith "no checker"
| _, None -> failwith "no source"
| Some checker, Some sourceFiles ->
checker.InvalidateAll()
sourceFiles
|> Array.iter (fun (filePath, sourceText) ->
let fileResult, checkResult =
checker.ParseAndCheckFileInProject(filePath, 0, sourceText, projectOptions)
|> Async.RunSynchronously
()
// if fileResult.Diagnostics.Length > 0 then
// failwith ($"Got parsing errors, {fileResult.Diagnostics}")
//
// match checkResult with
// | FSharpCheckFileAnswer.Succeeded checkFileResults ->
// if checkFileResults.Diagnostics.Length > 0 then
// failwith ($"Got checking errors, {checkFileResults.Diagnostics}")
// | FSharpCheckFileAnswer.Aborted _ -> ()
)
[<EntryPoint>]
let main _ =
BenchmarkRunner.Run<CompilerService>() |> ignore
0 Maybe my test to benchmark didn't hit the mark. I'm open to suggestions. |
Hm, perhaps there's something very particular about the project from the original issue. |
src/fsharp/import.fs
Outdated
@@ -583,7 +583,7 @@ let ImportILAssemblyTypeForwarders (amap, m, exportedTypes: ILExportedTypesAndFo | |||
yield (Array.ofList enc, exportedType.Name), tcref | |||
yield! nested net.Nested (enc @ [ net.Name ]) ] | |||
yield! nested exportedType.Nested (ns@[n]) | |||
] |> Map.ofList | |||
] |> dict |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the only non-empty dictionary, and I don't know which Equality dict
uses, but I suspect it's not Structural.
I've sent you a suggestion via DM, as my security software seems to be blocking the code snippet in this comment :(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typeof<string[] * string>.IsValueType
is indeed false, so dict
didn't do what I thought it would. source
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having profiled this for the big project I raised #13033 for, I see a reduction in time in CcuThunk.TryForward
using just dict
, and no further improvement for the updated version that explicitly uses the HashComparer.
I'll do some benchmarking of the different versions and put them in a comment.
This still didn't do all that much in my test. main branch:
This pr:
|
If the results are reliable, 2-3% is nothing to scoff at, I'd be happy with that. By the way, can you also submit the benchmark please (with relative paths where possible)? FSharp.Core parsing and typechecking is a great scenario to track over time and I'd definitely use it too. |
Benchmark sample added, it probably won't work on anything else than Windows though. |
Summary: This PR is 2.4s (or 4.6%) faster to compile on the project I raised the issue for. Notes about these values:
Here's the command I'm running:
My refs file looks like this: refs6.txt
My files.txt file contains:
|
Hello @dsyme, what are your thoughts on this? |
src/fsharp/import.fs
Outdated
let forwarders = Dictionary<_, _>(HashIdentity.Structural) | ||
|
||
let rec visit (exportedType: ILExportedTypeOrForwarder) (nets: ILNestedExportedTypes) (enc: string list) : unit = | ||
nets.AsList() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just use for net in nets.AsList() do ...
src/fsharp/import.fs
Outdated
yield! nested net.Nested (enc @ [ net.Name ]) ] | ||
yield! nested exportedType.Nested (ns@[n]) | ||
] |> Map.ofList | ||
exportedTypes.AsList() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just use a for
loop
src/fsharp/TypedTree.fs
Outdated
@@ -5291,7 +5291,7 @@ type CcuData = | |||
override x.ToString() = sprintf "CcuData(%A)" x.FileName | |||
|
|||
/// Represents a table of .NET CLI type forwarders for an assembly | |||
type CcuTypeForwarderTable = Map<string[] * string, Lazy<EntityRef>> | |||
type CcuTypeForwarderTable = IDictionary<string[] * string, Lazy<EntityRef>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you try using the ImmutableDictionary type? We should begin to be more disciplined about this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left three comments - but basically this is great. If we could try using ImmutableDictionary that would be great
@ChrisCanCompute could you please verify that changing the I had the same results here:
|
Isn't the main point to change the comparer itself and not the collection? If I'm not wrong the main culprit was not the collection itself e.g. bucket finding/treewalking etc. Maybe we can do better here and write custom comparer that can check the most important/fast to check bits first and then check other things? The problem of generic hash comparer is that it 1) doesn't know what we really should check first 2) it can easily box stuff right and left. For example, for these kinds of tuples we can first check string and array lengths and then check string part and only then array part. I don't think that generic comparer is optimized like that. Also, for some reason it is slow when comparing arrays. Manual for loop is quite faster. Also, same with lists comparsion. I guess it could be good to start making steps towards internal faster implementations of comparsion/equality etc. and gradually moving towards making them public. Personally I've made an analyzer which is checking for boxing on generic equality / generic comparsion (called via operators) and on out solution it fires a lot. You want to compare TimeSpans?, okay, here's some boxing for you. |
Hello @En3Tho, that is some good feedback there. |
@nojaf Also, thank you for your work. I think the tests you did should be added to FSharpBenchmarking (if it exists) repo so people can just clone, tweak compiler and just run benchmarks. It is a good step towards making better perf infrastructure. |
We have |
Yes. We're achieving this by changing the collection, which results in reference equality rather than a hash comparison |
Using immutable dictionaries, I get:
So looks equivalent to the regular dictionaries to me. |
99f66a7
to
cc85845
Compare
Hello @dsyme and @vzarytovskii. We changed the dictionary to a tree-like structure to try and further improve the lookup. The improvement is probably around 5%, although we lack the proper infrastructure to make accurate claims. |
src/Compiler/TypedTree/TypedTree.fs
Outdated
type CcuTypeForwarderTree<'TKey, 'TValue> = | ||
{ | ||
Value : 'TValue option | ||
Children : Dictionary<'TKey, CcuTypeForwarderTree<'TKey, 'TValue>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be at least IReadOnlyDictionary? It might introduce virtual interface call but it's more "correct" I believe
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd just prefer ImmutableDictionary tbh but it's ok as is, as long as a comment is added that it's immutable
src/Compiler/Checking/import.fs
Outdated
| [] -> CcuTypeForwarderTable.Empty | ||
| rootTypes -> | ||
rootTypes | ||
|> List.collect (fun exportedType -> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please check perf of List.collect vs Seq.collect in this case. Seq might be slower a little bit but it will certainly allocate less.
Using list or seq is up to debate of course.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not worth checking, there is code all over the compiler like this and it should be treated as orthogonal
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, but with all those we end up with 30-35% of compiler time taken by gc..
I've written custom array pool based builders. Do you think this approach might help here?
The code looks ok and given the huge number of type forwarders we now have in .NET it is to be expected that we need to improve this. @ChrisCanCompute @nojaf The benchmark here seems to be running the Debug version of the compiler. It would be much better to test the release version? I left a couple of other comments but I'll mark as approved. |
Hello @dsyme, thank you for the review. |
I'm curious to see GC stats before and after. |
@@ -5294,13 +5295,13 @@ type CcuData = | |||
type CcuTypeForwarderTree<'TKey, 'TValue> = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a comment that either
- Make this a generally-named thing in Utilities ("LookupTree") OR
- Key and Value should be specialized to their specific types
string
andLazy<EntityRef>>
.
At the moment the name is specific but the code is generic (and only ever instantiated at one type), which doesn't sit quite right
I would expect these to be much the same, since these data structures are not being reallocated (hopefully!). They were just being slow to lookup |
This is a naive attempt at addressing #13033.
I am most likely missing the point 🤔as I didn't notice much difference after changing the Map to a Dictionary.
There is probably something else I need to take into account, I'm all ears.