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

Commit805e0b2

Browse files
committed
Merge branch 'master' into fsharp4
Conflicts:src/fsharp/FSharp.Core/seq.fs
2 parentsdc83c2c +4f6c0d8 commit805e0b2

File tree

28 files changed

+633
-326
lines changed

28 files changed

+633
-326
lines changed

‎.gitignore‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,25 @@ 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/*.diff
62+
tests/fsharp/typecheck/sigs/*.err
63+
tests/fsharp/typecheck/sigs/*.vsdiff
64+
tests/fsharp/typecheck/sigs/*.vserr
65+
src/fsharp/FSharp.LanguageService.Compiler/illex.*
66+
src/fsharp/FSharp.LanguageService.Compiler/ilpars.*
67+
src/fsharp/FSharp.LanguageService.Compiler/lex.*
68+
src/fsharp/FSharp.LanguageService.Compiler/pars.*
69+
tests/fsharp/typecheck/sigs/*.dll
70+
tests/fsharp/typecheck/sigs/*.exe
71+
vsintegration/src/unittests/Unittests.fsi
72+
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.dll
73+
tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.pdb
74+
tests/fsharp/typeProviders/helloWorld/bincompat1/
75+
tests/fsharp/typeProviders/helloWorld/bincompat2/
76+
tests/XFSharpQA_Failures.log.*
77+
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/FSharp.ProjectSystem.FSharp.fsi
78+
vsintegration/src/vs/FsPkgs/FSharp.Project/FS/ctofiles/
79+
tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Utils.dll
80+
tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLibrary.dll
81+

‎DEVGUIDE.html‎

Lines changed: 84 additions & 114 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,134 @@ <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-
418-
<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.
422-
</p>
423-
<h3>6. [Optional] Build Visual Studio components</h3>
401+
<h3>4. [Optional] Build and Install the Visual F# IDE Tools</h3>
424402
<p>
425403
To build the VS components:
426404
</p>
427405
<pre>
428-
cd ..\vsintegration
429-
msbuild fsharp-vsintegration-build.proj
406+
msbuild vsintegration\fsharp-vsintegration-build.proj
430407
</pre>
431-
432-
<h3>6. [Optional] Build and install Visual Studio components</h3>
433408
<p>
434409
To install the VS components:
435410
</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>
411+
<ul>
412+
<li>
413+
First ensure that the VSIX package is uninstalled, in VS select Tools/Extensions and Updates,
414+
If the packages VisualStudio.FSharp.EnableOpenSource is installed, select Uninstall
415+
</li>
416+
<li>Then:</li>
417+
</ul>
440418
<pre>
441-
..\Debug\net40\bin\EnableOpenSource.vsix
419+
Debug\net40\bin\EnableOpenSource.vsix
442420
</pre>
443421
<p>
444-
RestartVisual Studio, now it should be runningthe open source FSharp.VS.FSI.
422+
Now restartVisual Studio, now it should be runningyour freshly built Visual F# IDE Tools.
445423
</p>
446-
<pre>
447-
</pre>
448424

449425
<h3>Notes on the build</h3>
450426

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>
461427
<ul>
428+
<li>
429+
The<code>update.cmd</code> script add the built FSharp.Core to the
430+
GAC, adds required strong name validation skips, and NGens the compiler and libraries.
431+
This requires admin privileges.
432+
</li>
433+
<li>
434+
The compiler binaries produced are "private" and strong-named signed with a test key (src\fsharp\test.snk).
435+
</li>
462436
<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>
463437
<li>
464438
We use this compiler to compile the source in this distribution, to produce a "proto" compiler, in the Proto
465439
directory. When run, this compiler still relies on the FSharp.Core.dll with version X.
466440
</li>
467441
<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.
442+
We use the proto compiler to compile the source for FSharp.Core.dll in this distribution.
470443
</li>
471444
<li>
472445
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.
446+
binaries found in this distribution.
447+
</li>
448+
<li>
449+
Some additional tools are required to build the compiler, notably fslex.exe, fsyacc.exe,
450+
FSharp.PowerPack.Build.Tasks.dll, FsSrGen.exe, FSharp.SRGen.Build.Tasks.dll and the other
451+
tools found in the lkg directory.
476452
</li>
477453
</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>
484454

485455

486456
</body>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp