Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1d9928d

Browse files
committed
Merge branch 'fsharp4' ofhttps://git01.codeplex.com/visualfsharp into multi-intf
2 parentse655395 +51d7b62 commit1d9928d

File tree

377 files changed

+12847
-2811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

377 files changed

+12847
-2811
lines changed

‎.gitignore‎

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,28 @@ tests/projects/Sample_VS2012_FSharp_ConsoleApp_net45_with_resource/Sample_VS2012
5757
*.suo
5858
obj
5959
extras
60-
ossreadme*.txt
60+
ossreadme*.txt
61+
tests/fsharp/typecheck/sigs/*.exe
62+
tests/fsharp/typecheck/sigs/*.diff
63+
tests/fsharp/typecheck/sigs/*.err
64+
tests/fsharp/typecheck/sigs/*.vsdiff
65+
tests/fsharp/typecheck/sigs/*.dll
66+
tests/fsharp/typecheck/sigs/*.vserr
67+
src/fsharp/FSharp.LanguageService.Compiler/illex.*
68+
src/fsharp/FSharp.LanguageService.Compiler/ilpars.*
69+
src/fsharp/FSharp.LanguageService.Compiler/lex.*
70+
src/fsharp/FSharp.LanguageService.Compiler/pars.*
71+
tests/fsharp/typecheck/sigs/*.dll
72+
tests/fsharp/typecheck/sigs/*.exe
73+
vsintegration/src/unittests/Unittests.fsi
74+
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.dll
75+
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.pdb
76+
tests/fsharp/typeProviders/helloWorld/bincompat1/
77+
tests/fsharp/typeProviders/helloWorld/bincompat2/
78+
tests/XFSharpQA_Failures.log.*
79+
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/FSharp.ProjectSystem.FSharp.fsi
80+
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/ctofiles/
81+
tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Utils.dll
82+
tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLibrary.dll
83+
84+
*.csproj.user

‎DEVGUIDE.html‎

Lines changed: 85 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<head>
44
<attribute>
5-
<title>Visual F# Tools</title>
5+
<title>F# Compiler, Core Library andVisual F# Tools</title>
66

77

88
<styletype="text/css">
@@ -305,10 +305,10 @@
305305

306306
<body>
307307

308-
<h1>F# Compiler + Library Open Contribution Repository</h1>
308+
<h1>F# Compiler, Core Library and Visual F# Tools Open Contribution Repository</h1>
309309

310310
<p>
311-
This repo is where you can contribute to the F# compiler.
311+
This repo is where you can contribute to the F# compiler, core library and the Visual F# Tools.
312312
To learn what F# is and why it&#39;s interesting, go to<ahref="http://fsharp.org">fsharp.org</a>.
313313
To get a free F# environment, go to<ahref="http://fsharp.org/use/windows">fsharp.org</a>.
314314
</p>
@@ -323,164 +323,137 @@ <h1>F# Compiler + Library Open Contribution Repository</h1>
323323
<b>Questions?</b> If you have questions about the source code, please ask in the issues and discussion forums.
324324
</p>
325325

326-
<h3>Compilation Instructions</h3>
327326

327+
<h3>1. Building a Proto Compiler</h3>
328328

329329
<p>
330330
The compiler is compiled as a set of .NET 4.0 components using a bootstrap process.
331-
When you build the compiler using the standard instructions below, you get<code>fsc.exe</code>,<code>fsi.exe</code>,<code>FSharp.Core.dll</code>,<code>FSharp.Compiler.dll</code> and some related DLLs.
332-
</p>
333-
331+
This uses the lkg compiler to build. Note that you need the .NET framework 3.5 installed on your machine in order to complete this step.</p>
332+
<pre>
333+
gacutil /i lkg\FSharp-2.0.50726.900\bin\FSharp.Core.dll
334+
msbuild src/fsharp-proto-build.proj
335+
</pre>
334336

335-
<h3>1. Buildinga Proto Compiler</h3>
337+
<h3>2. Buildingan F# (Debug) library and compiler</h3>
336338

337-
<p>This uses thelkg compiler to build. Note that you need the .NET framework 3.5 installed on your machine in order to complete this step.</p>
339+
<p>This uses theproto compiler to build<code>FSharp.Core.dll</code><code>FSharp.Compiler.dll</code>,<code>fsc.exe</code> and<code>fsi.exe</code></p>
338340
<pre>
339-
cd src
340-
gacutil /i ..\lkg\FSharp-2.0.50726.900\bin\FSharp.Core.dll
341-
msbuild fsharp-proto-build.proj
341+
msbuild src/fsharp-library-build.proj
342+
msbuild src/fsharp-compiler-build.proj
342343
</pre>
344+
<p>You can now use the updated F# compiler in<code>Debug\net40\bin\fsc.exe</code> and F# Interactive in<code>Debug\net40\bin\fsi.exe</code> to develop and test basic language and tool features.<p>
345+
<p><b>Note:</b> The updated library is not used until you run<code>update.cmd</code>, see below. The updated
346+
compiler is not run 'pre-compiled' until you run<code>update.cmd -ngen</code>, see below.</p>
343347

344-
<h3>2. Building an F# (Debug) library, compiler, type providers and unit tests</h3>
345348

346-
<p>This uses the proto compiler to build FSharp.Core.dll, FSharp.Compiler.dll and fsc.exe to run on for Mono/.NET 4.0.</p>
349+
<h3>3. Full Steps Before Running Tests</h3>
350+
351+
<p>See<ahref="TESTGUIDE.html">TESTGUIDE.html</a> for instructions on how to run tests.</p>
352+
353+
<p>Prior to a<b>Debug</b> test run, you need to complete<b>all</b> of these steps:</p>
347354
<pre>
348-
msbuild fsharp-library-build.proj /p:TargetFramework=net40
349-
msbuild fsharp-compiler-build.proj /p:TargetFramework=net40
350-
msbuild fsharp-typeproviders-build.proj /p:TargetFramework=net40
351-
msbuild fsharp-library-unittests-build.proj /p:TargetFramework=net40
352-
msbuild fsharp-library-build.proj /p:TargetFramework=net20
353-
msbuild fsharp-library-build.proj /p:TargetFramework=portable47
354-
msbuild fsharp-library-build.proj /p:TargetFramework=portable7
355+
msbuild src/fsharp-library-build.proj /p:Configuration=Debug
356+
msbuild src/fsharp-compiler-build.proj /p:Configuration=Debug
357+
msbuild src/fsharp-typeproviders-build.proj /p:Configuration=Debug
358+
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Debug
359+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Debug
360+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Debug
361+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Debug
362+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Debug
363+
msbuild src/fsharp-library-unittests-build.proj /p:Configuration=Debug
364+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=Debug
365+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=Debug
366+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=Debug
367+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=Debug
368+
src\update.cmd debug -ngen
369+
tests\BuildTestTools.cmd Debug
355370
</pre>
356-
<p>
357-
Use this script to add the built FSharp.Core to the
358-
GAC,<b>add required strong name validation skips</b>, and NGen the compiler and libraries.
359-
This requires admin privileges.
360-
</p>
371+
<p>[Optional] If testing the Visual Studio bits (see below) you will also need:</p>
361372
<pre>
362-
update.cmd debug -ngen
373+
msbuild vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Debug
374+
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=Debug
363375
</pre>
364376

365-
<h3>3. Running Tests</h3>
366-
367-
<p>There are language tests under the<code>tests</code> directory. The test apparatus uses batch files, assuming<ahref="http://www.perl.org/get.html">Perl</a> (ActiveState Perl 5.16.3 is known to work fine) is installed. You can run these on Windows using:</p>
368-
<pre>
369-
cd ..\tests
370-
BuildTestTools.cmd debug
371-
Runtests.cmd debug fsharp
372-
Runtests.cmd debug fsharpqa
373-
Runtests.cmd debug coreunit
374-
</pre>
375-
<p>
376-
For more details on how to run, debug, and write tests, see<ahref="tests\TESTGUIDE.html">tests\TESTGUIDE.html</a>.
377-
</p>
378-
379-
380-
<p>You can also use the F# compiler and F# interactive as follows:</p>
381-
382-
<pre>
383-
..\Debug\net40\bin\fsc.exe /help
384-
..\Debug\net40\bin\fsi.exe /help
385-
..\Debug\net40\bin\fsi.exe
386-
1 + 1;;
387-
#q;;
388-
</pre>
389-
<p>Compile hello world.</p>
390-
<pre>
391-
echo printfn "hello world"> hello.fs
392-
..\Debug\net40\bin\fsc.exe hello.fs
393-
copy ..\Debug\net40\bin\FSharp.Core.dll .
394-
hello.exe
395-
del /q hello.fs
396-
del /q FSharp.Core.dll
397-
</pre>
398-
399-
<h3>4. [Optional] Building and testing the "release" compiler</h3>
400-
401-
<p>This uses the proto compiler to build the FSharp.Compiler.dll and fsc.exe to run on for Mono/.NET 4.0.</p>
377+
<p>Prior to a<b>Release</b> test run, you need to do<b>all</b> of these:</p>
402378
<pre>
403-
msbuild fsharp-compiler-build.proj /p:TargetFramework=net40 /p:Configuration=Release
379+
msbuild src/fsharp-library-build.proj /p:Configuration=Release
380+
msbuild src/fsharp-compiler-build.proj /p:Configuration=Release
381+
msbuild src/fsharp-typeproviders-build.proj /p:Configuration=Release
382+
msbuild src/fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release
383+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
384+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
385+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
386+
msbuild src/fsharp-library-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
387+
msbuild src/fsharp-library-unittests-build.proj /p:Configuration=Release
388+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable47 /p:Configuration=Release
389+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable7 /p:Configuration=Release
390+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable78 /p:Configuration=Release
391+
msbuild src/fsharp-library-unittests-build.proj /p:TargetFramework=portable259 /p:Configuration=Release
392+
src\update.cmd release -ngen
393+
tests\BuildTestTools.cmd Release
404394
</pre>
405-
<p>
406-
Use this script to add the built FSharp.Core to the
407-
GAC,<b>add required strong name validation skips</b>, and NGen the compiler and libraries.
408-
This requires admin privileges.
409-
</p>
395+
<p>[Optional] If testing the Visual F# IDE Tools (see below) you will also need:</p>
410396
<pre>
411-
update.cmd debug -ngen
397+
msbuild vsintegration\fsharp-vsintegration-build.proj /p:Configuration=Release
398+
msbuild vsintegration\fsharp-vsintegration-unittests-build.proj /p:Configuration=Release
412399
</pre>
413400

414-
415-
416-
<h3>5. [Optional] Open a solution with Visual Studio</h3>
417-
401+
<h3>4. [Optional] Build and Install the Visual F# IDE Tools</h3>
418402
<p>
419-
You can use "fsharp.sln" to browse source code using Visual Studio.
420-
However, you need to complete step 1) and 2) in order to properly
421-
open this solution. In addition, FSharp.Core.Unittests project requires NUnit installed.
403+
Prerequisites:<ahref="http://msdn.microsoft.com/en-us/library/bb166441.aspx">Visual Studio Software Development Kit (SDK)</a>
422404
</p>
423-
<h3>6. [Optional] Build Visual Studio components</h3>
424405
<p>
425406
To build the VS components:
426407
</p>
427408
<pre>
428-
cd ..\vsintegration
429-
msbuild fsharp-vsintegration-build.proj
409+
msbuild vsintegration\fsharp-vsintegration-build.proj
430410
</pre>
431-
432-
<h3>6. [Optional] Build and install Visual Studio components</h3>
433411
<p>
434412
To install the VS components:
435413
</p>
436-
<p>
437-
Ensure that the VSIX package is uninstalled, in VS select Tools/Extensions and Updates,
438-
If the packages VisualStudio.FSharp.EnableOpenSource is installed, select Uninstall
439-
</p>
414+
<ul>
415+
<li>
416+
First ensure that the VSIX package is uninstalled, in VS select Tools/Extensions and Updates,
417+
If the packages VisualStudio.FSharp.EnableOpenSource is installed, select Uninstall
418+
</li>
419+
<li>Then:</li>
420+
</ul>
440421
<pre>
441-
..\Debug\net40\bin\EnableOpenSource.vsix
422+
Debug\net40\bin\EnableOpenSource.vsix
442423
</pre>
443424
<p>
444-
RestartVisual Studio, now it should be runningthe open source FSharp.VS.FSI.
425+
Now restartVisual Studio, now it should be runningyour freshly built Visual F# IDE Tools.
445426
</p>
446-
<pre>
447-
</pre>
448427

449428
<h3>Notes on the build</h3>
450429

451-
<p>
452-
The compiler binaries produced are "private" and
453-
strong-named signed with a test key (src\fsharp\test.snk). They use CLI assembly version nunmber 2.9.9.999. You can place these components in the GAC but they will not replace
454-
the components used by Visual Studio or other normal F# programs.
455-
</p>
456-
457-
<p>
458-
The prerequisites and build command line for compiling the source (on Windows) are shown
459-
later in this README. Here's the logic of the build:
460-
</p>
461430
<ul>
431+
<li>
432+
The<code>update.cmd</code> script add the built FSharp.Core to the
433+
GAC, adds required strong name validation skips, and NGens the compiler and libraries.
434+
This requires admin privileges.
435+
</li>
436+
<li>
437+
The compiler binaries produced are "private" and strong-named signed with a test key (src\fsharp\test.snk).
438+
</li>
462439
<li>We first need an existing F# compiler, using the one in the 'lkg' directory. Let's assume this compiler has an FSharp.Core.dll with version X.</li>
463440
<li>
464441
We use this compiler to compile the source in this distribution, to produce a "proto" compiler, in the Proto
465442
directory. When run, this compiler still relies on the FSharp.Core.dll with version X.
466443
</li>
467444
<li>
468-
We use the proto compiler to compile the source for FSharp.Core.dll in this distribution, producing
469-
an FSharp.Core.dll with the version identified in src\source-build-version, usually 1.9.999.
445+
We use the proto compiler to compile the source for FSharp.Core.dll in this distribution.
470446
</li>
471447
<li>
472448
We use the proto compiler to compile the source for FSharp.Compiler.dll, fsc.exe, fsi.exe and other
473-
binaries found in this distribution. When run, these binaries will rely on the FSharp.Core.dll with version
474-
1.9.999. This is good, since it means the 1.9.999 binaries now form a consistent, bootstrapped compiler. If
475-
you like you should now be able to throw away the compiler with version X.
449+
binaries found in this distribution.
450+
</li>
451+
<li>
452+
Some additional tools are required to build the compiler, notably fslex.exe, fsyacc.exe,
453+
FSharp.PowerPack.Build.Tasks.dll, FsSrGen.exe, FSharp.SRGen.Build.Tasks.dll and the other
454+
tools found in the lkg directory.
476455
</li>
477456
</ul>
478-
<p>
479-
Some additional tools are required to build the compiler, notably fslex.exe, fsyacc.exe,
480-
FSharp.PowerPack.Build.Tasks.dll, FsSrGen.exe, FSharp.SRGen.Build.Tasks.dll and the other
481-
tools found in the lkg directory. These are "Last Known Good" binaries created from a version of the F# Power Pack
482-
on CodePlex. If you like you can throw away these binaries and use your own compiled versions of these tools.
483-
</p>
484457

485458

486459
</body>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp