You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<h1><aname="Compiler-Services-Notes-on-the-FSharpChecker-caches" class="anchor" href="#Compiler-Services-Notes-on-the-FSharpChecker-caches">Compiler Services: Notes on the FSharpChecker caches</a></h1>
36
+
<h1><aname="Compiler-Services-Notes-on-the-FSharpChecker-caches" class="anchor" href="#Compiler-Services-Notes-on-the-FSharpChecker-caches">Compiler Services: Notes on the FSharpChecker caches</a></h1>
38
37
<p>This is a design note on the FSharpChecker component and its caches. See also the notes on the <ahref="queue.html">FSharpChecker operations queue</a></p>
39
38
<p>Each FSharpChecker object maintains a set of caches. These are</p>
40
39
<ul>
41
40
<li>
42
41
<p><code>scriptClosureCache</code> - an MRU cache of default size <code>projectCacheSize</code> that caches the
43
-
computation of GetProjectOptionsFromScript. This computation can be lengthy as it can involve processing the transative closure
42
+
computation of GetProjectOptionsFromScript. This computation can be lengthy as it can involve processing the transitive closure
44
43
of all <code>#load</code> directives, which in turn can mean parsing an unbounded number of script files</p>
<p>Version 1.4.0.8 added a "maximum memory" limit specified by the <code>MaxMemory</code> property on FSharpChecker (in MB). If an FCS project operation
<h1><aname="Compiler-Services-Notes-on-FSharp-Core-dll" class="anchor" href="#Compiler-Services-Notes-on-FSharp-Core-dll">Compiler Services: Notes on FSharp.Core.dll</a></h1>
36
+
<h1><aname="Compiler-Services-Notes-on-FSharp-Core-dll" class="anchor" href="#Compiler-Services-Notes-on-FSharp-Core-dll">Compiler Services: Notes on FSharp.Core.dll</a></h1>
38
37
<h2><aname="Shipping-an-FSharp-Core-with-your-application" class="anchor" href="#Shipping-an-FSharp-Core-with-your-application">Shipping an FSharp.Core with your application</a></h2>
39
38
<p>When building applications or plug-in components which use FSharp.Compiler.Service.dll, you will normally also
40
39
include a copy of FSharp.Core.dll as part of your application.</p>
41
40
<p>For example, if you build a <code>HostedCompiler.exe</code>, you will normally place an FSharp.Core.dll (say 4.3.1.0) alongside
42
41
your <code>HostedCompiler.exe</code>.</p>
43
42
<h2><aname="Binding-redirects-for-your-application" class="anchor" href="#Binding-redirects-for-your-application">Binding redirects for your application</a></h2>
44
43
<p>The FSharp.Compiler.Service.dll component depends on FSharp.Core 4.4.0.0. Normally your application will target
45
-
a later version of FSharp.Core, and you may need a <ahref="http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx">binding redirect</a> to ensure
44
+
a later version of FSharp.Core, and you may need a <ahref="https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions">binding redirect</a> to ensure
46
45
that other versions of FSharp.Core forward to the final version of FSharp.Core.dll your application uses.
47
46
Binding redirect files are normally generated automatically by build tools. If not, you can use one like this
48
47
(if your tool is called <code>HostedCompiler.exe</code>, the binding redirect file is called <code>HostedCompiler.exe.config</code>)</p>
<p>You will need to determine the location of these assemblies. The easiest way to locate these DLLs in a cross-platform way and
115
-
convert them to command-line arguments is to <ahref="http://fsharp.github.io/FSharp.Compiler.Service/project.html">crack an F# project file</a>.<br/>
114
+
convert them to command-line arguments is to <ahref="https://fsharp.github.io/FSharp.Compiler.Service/project.html">crack an F# project file</a>.
116
115
Alternatively you can compute SDK paths yourself, and some helpers to do this are in <ahref="https://github.com/fsharp/FSharp.Compiler.Service/blob/8a943dd3b545648690cb3bed652a469bdb6dd869/tests/service/Common.fs#L54">the tests for FSharp.Compiler.Service.dll</a>.</p>
117
116
<h2><aname="What-about-if-I-am-processing-a-script-or-using" class="anchor" href="#What-about-if-I-am-processing-a-script-or-using">What about if I am processing a script or using <code>GetCheckOptionsFromScriptRoot</code></a></h2>
118
117
<p>If you do <em>not</em> explicitly reference an FSharp.Core.dll from an SDK location, or if you are processing a script
0 commit comments