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

Commit0f5faad

Browse files
authored
Merge pull request #4022 from Microsoft/merges/master-to-dev15.6-20171127-080050
Merge master to dev15.6
2 parents6db8f4f +ae55828 commit0f5faad

File tree

15 files changed

+145
-44
lines changed

15 files changed

+145
-44
lines changed

‎DEVGUIDE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ For **Release**:
192192

193193
####Notes on the Windows .NET Framework build
194194

195-
1. The`update.cmd` script NGens the compiler and libraries. This requires admin privileges.
195+
1. The`update.cmd` scriptadds required strong name validation skips andNGens the compiler and libraries. This requires admin privileges.
196196
1. The compiler binaries produced are "private" and strong-named signed with a test key.
197197
1. Some additional tools are required to build the compiler, notably`fslex.exe`,`fsyacc.exe`,`FSharp.PowerPack.Build.Tasks.dll`,`FsSrGen.exe`,`FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the`lkg` directory.
198198
1. The overall bootstrapping process executes as follows

‎build.cmd‎

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,8 @@ if "%RestorePackages%"=="" (
497497
@echo VSSDKToolsPath:%VSSDKToolsPath%
498498
@echo VSSDKIncludes:%VSSDKIncludes%
499499

500+
@call src\update.cmd signonly
501+
500502
:: Check prerequisites
501503
ifnot"%VisualStudioVersion%"==""goto vsversionset
502504
ifexist"%VS150COMNTOOLS%\..\ide\devenv.exe"setVisualStudioVersion=15.0
@@ -587,6 +589,15 @@ if "%RestorePackages%" == "true" (
587589
%_nugetexe% restore setup\packages.config!_nugetoptions!
588590
@if ERRORLEVEL1echo Error: Nuget restore failed&&goto :failure
589591
)
592+
593+
setrestore_fsharp_suite=0
594+
if"%TEST_NET40_FSHARP_SUITE%"=="1"setrestore_fsharp_suite=1
595+
if"%TEST_CORECLR_FSHARP_SUITE%"=="1"setrestore_fsharp_suite=1
596+
597+
if"!restore_fsharp_suite!"=="1" (
598+
%_nugetexe% restore tests\fsharp\packages.config!_nugetoptions!
599+
@if ERRORLEVEL1echo Error: Nuget restore failed&&goto :failure
600+
)
590601
)
591602

592603
if"%BUILD_PROTO_WITH_CORECLR_LKG%"=="1" (
@@ -687,28 +698,20 @@ if not "%OSARCH%"=="x86" set REGEXE32BIT=%WINDIR%\syswow64\reg.exe
687698
echo SDK environment vars from Registry
688699
echo ==================================
689700

690-
::See https://stackoverflow.com/a/17113667/111575 on 2^>NUL for suppressing the error "ERROR: The system was unable to find the specified registry key or value." from reg.exe, this fixes #3619
691-
FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
692-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
693-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
694-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
695-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
696-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
697-
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL')DOSETWINSDKNETFXTOOLS=%%B
698-
699-
setPATH=%PATH%;%WINSDKNETFXTOOLS%
700701
for /d%%iin (%WINDIR%\Microsoft.NET\Framework\v4.0.?????)dosetCORDIR=%%i
701702
setPATH=%PATH%;%CORDIR%
702703

703704
setREGEXE32BIT=reg.exe
704705

705-
IFNOTDEFINED ildasmIFEXIST"%WINSDKNETFXTOOLS%\ildasm.exe"setildasm=%WINSDKNETFXTOOLS%ildasm.exe
706+
IFNOTDEFINED SNEXE32IFEXIST"%WINSDKNETFXTOOLS%\sn.exe"setSNEXE32=%WINSDKNETFXTOOLS%sn.exe
707+
IFNOTDEFINED SNEXE64IFEXIST"%WINSDKNETFXTOOLS%x64\sn.exe"setSNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
706708

707709
echo.
708710
echo SDK environment vars
709711
echo =======================
710712
echo WINSDKNETFXTOOLS:%WINSDKNETFXTOOLS%
711-
echo ILDASM:%ILDASM%
713+
echo SNEXE32:%SNEXE32%
714+
echo SNEXE64:%SNEXE64%
712715
echo
713716

714717
if"%TEST_NET40_COMPILERUNIT_SUITE%"=="0"if"%TEST_NET40_COREUNIT_SUITE%"=="0"if"%TEST_CORECLR_COREUNIT_SUITE%"=="0"if"%TEST_VS_IDEUNIT_SUITE%"=="0"if"%TEST_NET40_FSHARP_SUITE%"=="0"if"%TEST_NET40_FSHARPQA_SUITE%"=="0"goto :success
@@ -909,7 +912,7 @@ if "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
909912
setOUTPUTFILE=
910913
setERRORFILE=
911914
setXMLFILE=!RESULTSDIR!\test-coreclr-fsharp-results.xml
912-
echo"%_dotnetcliexe%""%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Core.Unittests\FSharp.Core.Unittests.dll"!WHERE_ARG_NUNIT!
915+
echo"%_dotnetcliexe%""%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll"!WHERE_ARG_NUNIT!
913916
"%_dotnetcliexe%""%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll"!WHERE_ARG_NUNIT!
914917

915918
iferrorlevel1 (

‎fcs/FSharp.Compiler.Service.Tests.netcore/FSharp.Compiler.Service.Tests.netcore.fsproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<DefineConstants>$(DefineConstants);DOTNETCORE;FX_ATLEAST_45;FX_ATLEAST_PORTABLE;FX_NO_RUNTIMEENVIRONMENT;FX_RESHAPED_REFLECTION;TODO_REWORK_ASSEMBLY_LOAD;</DefineConstants>
55
<NoWarn>$(NoWarn);44;</NoWarn>
66
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
7-
<PublicSign>true</PublicSign>
7+
<DelaySign>true</DelaySign>
88
<GenerateDocumentationFile>true</GenerateDocumentationFile>
99
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
1010
</PropertyGroup>

‎fcs/FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<DefineConstants>$(DefineConstants);TODO_REWORK_SERVER</DefineConstants>
6868
<NoWarn>$(NoWarn);44;69;65;54;61;75;62;9;2003;</NoWarn>
6969
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
70-
<PublicSign>true</PublicSign>
70+
<DelaySign>true</DelaySign>
7171
<GenerateDocumentationFile>true</GenerateDocumentationFile>
7272
</PropertyGroup>
7373
<ItemGroup>

‎src/FSharpSource.Settings.targets‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<SignAssembly>true</SignAssembly>
6161
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
6262
<StrongNames>true</StrongNames>
63-
<PublicSign>true</PublicSign>
63+
<DelaySign>true</DelaySign>
6464
</PropertyGroup>
6565

6666
<PropertyGroupCondition="'$(OS)' != 'Unix'">

‎src/FSharpSource.targets‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@
2929
<!-- We have to do unit test DLLs well because they can see the internals of other strong-named DLLs-->
3030
<Otherwise>
3131
<PropertyGroup>
32-
<OtherFlags>$(OtherFlags) --publicsign+</OtherFlags>
32+
<DelaySign>true</DelaySign>
3333
<StrongNames>true</StrongNames>
34-
<ExcludeSigningImport>true</ExcludeSigningImport>
3534
<MicroBuildAssemblyVersion>$(FSCoreVersion)</MicroBuildAssemblyVersion>
3635
<!-- certain delivered F# VS assemblies use a specific MicroBuildAssemblyVersion, otherwise use FSCoreVersion-->
3736
<MicroBuildAssemblyVersionCondition="'$(UseVsMicroBuildAssemblyVersion)' == 'true'">15.4.1.0</MicroBuildAssemblyVersion>
@@ -46,8 +45,7 @@
4645
<SignAssembly>true</SignAssembly>
4746
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
4847
<StrongNames>true</StrongNames>
49-
<ExcludeSigningImport>true</ExcludeSigningImport>
50-
<PublicSign>true</PublicSign>
48+
<DelaySign>true</DelaySign>
5149
<MicroBuildAssemblyVersion>$(FSCoreVersion)</MicroBuildAssemblyVersion>
5250
<MicroBuildAssemblyFileLanguage>fs</MicroBuildAssemblyFileLanguage>
5351
</PropertyGroup>

‎src/fsharp/CompileOps.fs‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
moduleinternalMicrosoft.FSharp.Compiler.CompileOps
55

66
openSystem
7+
openSystem.Collections.Concurrent
8+
openSystem.Collections.Generic
79
openSystem.Diagnostics
8-
openSystem.Text
910
openSystem.IO
10-
openSystem.Collections.Generic
1111
openSystem.Runtime.CompilerServices
12+
openSystem.Text
1213

1314
openInternal.Utilities
1415
openInternal.Utilities.Text
@@ -3509,14 +3510,14 @@ let PostParseModuleSpecs (defaultNamespace, filename, isLastCompiland, ParsedSig
35093510
ParsedInput.SigFile(ParsedSigFileInput(filename, qualName, scopedPragmas, hashDirectives, specs))
35103511

35113512
/// Checks if a module name is already given and deduplicates the name if needed.
3512-
letDeduplicateModuleName(moduleNamesDict:Dictionary<string,Set<string>>)(paths:Set<string>)path(qualifiedNameOfFile:QualifiedNameOfFile)=
3513+
letDeduplicateModuleName(moduleNamesDict:IDictionary<string,Set<string>>)(paths:Set<string>)path(qualifiedNameOfFile:QualifiedNameOfFile)=
35133514
letcount=if paths.Contains paththen paths.Countelse paths.Count+1
35143515
moduleNamesDict.[qualifiedNameOfFile.Text]<- Set.add path paths
35153516
letid= qualifiedNameOfFile.Id
35163517
if count=1then qualifiedNameOfFileelse QualifiedNameOfFile(Ident(id.idText+"___"+ count.ToString(), id.idRange))
35173518

35183519
/// Checks if a ParsedInput is using a module name that was already given and deduplicates the name if needed.
3519-
letDeduplicateParsedInputModuleName(moduleNamesDict:Dictionary<string,Set<string>>)input=
3520+
letDeduplicateParsedInputModuleName(moduleNamesDict:IDictionary<string,Set<string>>)input=
35203521
match inputwith
35213522
| ParsedInput.ImplFile(ParsedImplFileInput.ParsedImplFileInput(fileName, isScript, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules,(isLastCompiland, isExe)))->
35223523
letpath= Path.GetDirectoryName fileName
@@ -3525,7 +3526,7 @@ let DeduplicateParsedInputModuleName (moduleNamesDict:Dictionary<string, Set<str
35253526
letqualifiedNameOfFile= DeduplicateModuleName moduleNamesDict paths path qualifiedNameOfFile
35263527
ParsedInput.ImplFile(ParsedImplFileInput.ParsedImplFileInput(fileName, isScript, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules,(isLastCompiland, isExe)))
35273528
|_->
3528-
moduleNamesDict.Add(qualifiedNameOfFile.Text,Set.singleton path)
3529+
moduleNamesDict.[qualifiedNameOfFile.Text]<-Set.singleton path
35293530
input
35303531
| ParsedInput.SigFile(ParsedSigFileInput.ParsedSigFileInput(fileName, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules))->
35313532
letpath= Path.GetDirectoryName fileName
@@ -3534,7 +3535,7 @@ let DeduplicateParsedInputModuleName (moduleNamesDict:Dictionary<string, Set<str
35343535
letqualifiedNameOfFile= DeduplicateModuleName moduleNamesDict paths path qualifiedNameOfFile
35353536
ParsedInput.SigFile(ParsedSigFileInput.ParsedSigFileInput(fileName, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules))
35363537
|_->
3537-
moduleNamesDict.Add(qualifiedNameOfFile.Text,Set.singleton path)
3538+
moduleNamesDict.[qualifiedNameOfFile.Text]<-Set.singleton path
35383539
input
35393540

35403541
letParseInput(lexer,errorLogger:ErrorLogger,lexbuf:UnicodeLexing.Lexbuf,defaultNamespace,filename,isLastCompiland)=

‎src/fsharp/CompileOps.fsi‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ val ComputeQualifiedNameOfFileFromUniquePath: range * string list -> Ast.Qualifi
6565
val PrependPathToInput: Ast.Ident list-> Ast.ParsedInput-> Ast.ParsedInput
6666

6767
/// Checks if a module name is already given and deduplicates the name if needed.
68-
val DeduplicateModuleName:Dictionary<string,Set<string>>-> Set<string>-> string-> Ast.QualifiedNameOfFile-> Ast.QualifiedNameOfFile
68+
val DeduplicateModuleName:IDictionary<string,Set<string>>-> Set<string>-> string-> Ast.QualifiedNameOfFile-> Ast.QualifiedNameOfFile
6969

7070
/// Checks if a ParsedInput is using a module name that was already given and deduplicates the name if needed.
71-
val DeduplicateParsedInputModuleName:Dictionary<string,Set<string>>-> Ast.ParsedInput-> Ast.ParsedInput
71+
val DeduplicateParsedInputModuleName:IDictionary<string,Set<string>>-> Ast.ParsedInput-> Ast.ParsedInput
7272

7373
val ParseInput:(UnicodeLexing.Lexbuf-> Parser.token)* ErrorLogger* UnicodeLexing.Lexbuf* string option* string* isLastCompiland:(bool* bool)-> Ast.ParsedInput
7474

‎src/fsharp/fsc.fs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
moduleinternalMicrosoft.FSharp.Compiler.Driver
1414

1515
openSystem
16+
openSystem.Collections.Concurrent
1617
openSystem.Collections.Generic
1718
openSystem.Diagnostics
1819
openSystem.Globalization
@@ -1758,7 +1759,7 @@ let main0(ctok, argv, legacyReferenceResolver, bannerAlreadyPrinted, openBinarie
17581759

17591760
letinputs=
17601761
// Deduplicate module names
1761-
letmoduleNamesDict=Dictionary<string,Set<string>>()
1762+
letmoduleNamesDict=ConcurrentDictionary<string,Set<string>>()
17621763
inputs
17631764
|> List.map(fun(input,x)-> DeduplicateParsedInputModuleName moduleNamesDict input,x)
17641765

‎src/fsharp/vs/IncrementalBuild.fs‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ namespace Microsoft.FSharp.Compiler
44

55

66
openSystem
7-
openSystem.IO
7+
openSystem.Collections.Concurrent
88
openSystem.Collections.Generic
9+
openSystem.IO
910
openSystem.Threading
1011
openMicrosoft.FSharp.Compiler
1112
openMicrosoft.FSharp.Compiler.NameResolution
@@ -1239,7 +1240,7 @@ type IncrementalBuilder(tcGlobals, frameworkTcImports, nonFrameworkAssemblyInput
12391240
cache.GetFileTimeStamp filename
12401241

12411242
// Deduplicate module names
1242-
letmoduleNamesDict=Dictionary<string, Set<string>>()
1243+
letmoduleNamesDict=ConcurrentDictionary<string, Set<string>>()
12431244

12441245
/// This is a build task function that gets placed into the build rules as the computation for a VectorMap
12451246
///

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp