Skip to content
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

[WIP, RFC FS-1072] task and state machine support #6634

Closed
wants to merge 62 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
f4bd221
use proto on mac and linux
dsyme Mar 29, 2019
8a4baf3
reduce diff
dsyme Mar 30, 2019
0474a23
reduce diff
dsyme Mar 30, 2019
b96120e
reduce diff
dsyme Mar 30, 2019
cf9147b
reduce diff
dsyme Mar 30, 2019
286c336
reduce diff
dsyme Mar 30, 2019
7a6448e
reduce diff
dsyme Mar 30, 2019
965d3b1
Merge branch 'master' of https://github.com/Microsoft/visualfsharp in…
dsyme Apr 2, 2019
978414c
Merge branch 'master' into proto
KevinRansom Apr 8, 2019
95d94de
integrate master
dsyme Apr 14, 2019
a15ef59
integrate master
dsyme Apr 14, 2019
aed6752
fix build
dsyme Apr 14, 2019
bb78e5f
fix build
dsyme Apr 14, 2019
b88d23c
Merge branch 'fix77' into proto
dsyme Apr 14, 2019
1aa6a41
load right FSHarp.Build
dsyme Apr 15, 2019
058bdc9
publish proto apps
dsyme Apr 15, 2019
688850f
revert test env changes
dsyme Apr 15, 2019
c2c7213
revert testing changes
dsyme Apr 16, 2019
fdcf82a
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Apr 16, 2019
e46dcd5
don't repeat bootstrap
dsyme Apr 16, 2019
75e9cc3
be systematic about verbosity
dsyme Apr 17, 2019
d0f51d7
Merge branch 'proto' of https://github.com/dsyme/visualfsharp into proto
dsyme Apr 17, 2019
63c64ef
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Apr 18, 2019
8f09004
remove verbosity flags
dsyme Apr 24, 2019
7b012b6
task builder insertion attempt
dsyme Apr 24, 2019
67d4815
fix build
dsyme Apr 24, 2019
4ab8297
fix build, re-enable commented-out bits, hide representations
dsyme Apr 25, 2019
4185ce6
add tests (not yet in test dll)
dsyme Apr 25, 2019
b288b48
butcher in state machine approximation
dsyme Apr 28, 2019
f43ec65
butcher in state machine approximation
dsyme Apr 28, 2019
07f9af0
butcher in state machine approximation
dsyme Apr 28, 2019
625170d
butcher code again for codegen approximation (does not run)
dsyme Apr 29, 2019
cd9f849
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Apr 30, 2019
126a9cc
sketch of generalized state machine compilation
dsyme Apr 30, 2019
547c0e9
some codegen for state machine tasks
dsyme May 8, 2019
b9ed10c
more fixes to state machines
dsyme May 8, 2019
08363a7
state machines now work
dsyme May 9, 2019
d043d72
more examples - taskSeq and sync
dsyme May 10, 2019
90fef02
add seq2 { ... } example
dsyme May 10, 2019
e22648a
add seq2 { ... } example
dsyme May 10, 2019
94504fa
add list/array/rsarray example
dsyme May 10, 2019
949888f
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme May 13, 2019
27f5173
add perf tests
dsyme May 13, 2019
24c0962
revist perf
dsyme May 13, 2019
a7690e9
improve benchmarks
dsyme May 13, 2019
71a9d53
improve benchmarks
dsyme May 13, 2019
13bb169
remove unwrap
dsyme May 14, 2019
068ef95
merge master
dsyme May 15, 2019
e8bf0b9
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme May 17, 2019
58cf03b
struct state machines
dsyme May 17, 2019
f0f848e
struct state machines
dsyme May 17, 2019
17154b9
run perf benchmarks
cartermp May 14, 2019
b5101de
run perf benchmarks
dsyme May 17, 2019
8729822
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme May 20, 2019
3cf5a58
remove boxing of result
dsyme May 20, 2019
171c40b
update for code review
dsyme May 20, 2019
bbe118d
updates
dsyme May 20, 2019
12c3341
update
dsyme May 20, 2019
636f8f5
Merge branch 'proto' into tasks
dsyme May 20, 2019
37e9d39
fix incremental build
dsyme May 21, 2019
a0122d3
Merge branch 'inc4' into tasks
dsyme May 21, 2019
7625075
lift restriction on union cases in state machines
dsyme May 21, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions FSharpBuild.Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
<PropertyGroup>
<FSharpSourcesRoot>$(RepoRoot)src</FSharpSourcesRoot>
<SymStoreDirectory>$(ArtifactsDir)\SymStore</SymStoreDirectory>
<ProtoOutputPath Condition="'$(OS)' != 'Unix'">$(ArtifactsDir)\Bootstrap</ProtoOutputPath>
<ProtoOutputPath Condition="'$(OS)' == 'Unix'">$(ArtifactsDir)/fsc/Proto/netcoreapp2.1</ProtoOutputPath>
<ProtoOutputPath>$(ArtifactsDir)\Bootstrap</ProtoOutputPath>
<ValueTupleImplicitPackageVersion>4.4.0</ValueTupleImplicitPackageVersion>
<WarningsAsErrors>1182;0025;$(WarningsAsErrors)</WarningsAsErrors>
</PropertyGroup>
Expand Down Expand Up @@ -96,10 +95,10 @@

<!-- SDK targets override -->
<PropertyGroup Condition="'$(Configuration)' != 'Proto' AND '$(DisableCompilerRedirection)'!='true' AND Exists('$(ProtoOutputPath)')">
<FSharpTargetsPath>$(ProtoOutputPath)\Microsoft.FSharp.Targets</FSharpTargetsPath>
<FSharpPropsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
<FSharpTargetsPath>$(ProtoOutputPath)\fsc\Microsoft.FSharp.Targets</FSharpTargetsPath>
<FSharpPropsShim>$(ProtoOutputPath)\fsc\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim>$(ProtoOutputPath)\fsc\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim>$(ProtoOutputPath)\fsc\Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
</PropertyGroup>

</Project>
4 changes: 2 additions & 2 deletions FSharpBuild.Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" WriteOnlyWhenDifferent="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup >
Expand Down Expand Up @@ -51,7 +51,7 @@
<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(IntermediateOutputPath)buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" />
<WriteLinesToFile File="$(IntermediateOutputPath)buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" WriteOnlyWhenDifferent="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions FSharpTests.Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

<!-- SDK targets override -->
<PropertyGroup>
<_FSharpBuildTargetFramework Condition="'$(FSharpTestCompilerVersion)' == 'net40'">net472</_FSharpBuildTargetFramework>
<_FSharpBuildTargetFramework Condition="'$(FSharpTestCompilerVersion)' == 'coreclr'">netcoreapp2.1</_FSharpBuildTargetFramework>
<_FSharpBuildBinPath>$(MSBuildThisFileDirectory)artifacts\bin\FSharp.Build\$(Configuration)\$(_FSharpBuildTargetFramework)</_FSharpBuildBinPath>
<_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'!='Core'">net472</_FSharpBuildTargetFramework>
<_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'=='Core'">netcoreapp2.1</_FSharpBuildTargetFramework>
<_FSharpBuildBinPath>$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\$(_FSharpBuildTargetFramework)</_FSharpBuildBinPath>

<FSharpBuildAssemblyFile>$(_FSharpBuildBinPath)\FSharp.Build.dll</FSharpBuildAssemblyFile>

Expand Down
36 changes: 36 additions & 0 deletions VisualFSharp.sln
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProject", "vsintegr
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.Core.nuget", "src\fsharp\FSharp.Core.nuget\FSharp.Core.nuget.csproj", "{8EC30B2E-F1F9-4A98-BBB5-DD0CF6C84DDC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Perf", "Perf", "{D3DE4E8F-DD05-4D58-BCFC-848988878640}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tasks", "Tasks", "{E071023E-4D10-406F-9D31-0A02522D2779}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TaskPerfCSharp", "tests\fsharp\perf\tasks\CS\TaskPerfCSharp.csproj", "{218BD16B-D9BB-402A-970B-72A86E30AA41}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "TaskPerf", "tests\fsharp\perf\tasks\FS\TaskPerf.fsproj", "{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -884,6 +892,30 @@ Global
{8EC30B2E-F1F9-4A98-BBB5-DD0CF6C84DDC}.Release|Any CPU.Build.0 = Release|Any CPU
{8EC30B2E-F1F9-4A98-BBB5-DD0CF6C84DDC}.Release|x86.ActiveCfg = Release|Any CPU
{8EC30B2E-F1F9-4A98-BBB5-DD0CF6C84DDC}.Release|x86.Build.0 = Release|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Debug|x86.ActiveCfg = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Debug|x86.Build.0 = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Proto|Any CPU.Build.0 = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Proto|x86.ActiveCfg = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Proto|x86.Build.0 = Debug|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Release|Any CPU.Build.0 = Release|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Release|x86.ActiveCfg = Release|Any CPU
{218BD16B-D9BB-402A-970B-72A86E30AA41}.Release|x86.Build.0 = Release|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Debug|x86.ActiveCfg = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Debug|x86.Build.0 = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Proto|Any CPU.Build.0 = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Proto|x86.ActiveCfg = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Proto|x86.Build.0 = Debug|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Release|Any CPU.Build.0 = Release|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Release|x86.ActiveCfg = Release|Any CPU
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -956,6 +988,10 @@ Global
{C32806E0-71C2-40E4-AEC4-517F73F6A18A} = {BED74F9E-A0D2-48E2-9EE7-449832100487}
{7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1} = {BED74F9E-A0D2-48E2-9EE7-449832100487}
{8EC30B2E-F1F9-4A98-BBB5-DD0CF6C84DDC} = {647810D0-5307-448F-99A2-E83917010DAE}
{D3DE4E8F-DD05-4D58-BCFC-848988878640} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{E071023E-4D10-406F-9D31-0A02522D2779} = {D3DE4E8F-DD05-4D58-BCFC-848988878640}
{218BD16B-D9BB-402A-970B-72A86E30AA41} = {E071023E-4D10-406F-9D31-0A02522D2779}
{0018B20C-1AE7-4E81-8E9E-A273FCA10A70} = {E071023E-4D10-406F-9D31-0A02522D2779}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {48EDBBBE-C8EE-4E3C-8B19-97184A487B37}
Expand Down
7 changes: 4 additions & 3 deletions eng/Build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ function Print-Usage() {
Write-Host ""
Write-Host "Actions:"
Write-Host " -restore Restore packages (short: -r)"
Write-Host " -norestore Don't restore packages"
Write-Host " -build Build main solution (short: -b)"
Write-Host " -rebuild Rebuild main solution"
Write-Host " -pack Build NuGet packages, VS insertion manifests and installer"
Expand Down Expand Up @@ -106,6 +107,7 @@ function Process-Arguments() {
Print-Usage
exit 0
}
$script:nodeReuse = $False;

if ($testAll) {
$script:testDesktop = $True
Expand Down Expand Up @@ -143,7 +145,7 @@ function Process-Arguments() {
}

function Update-Arguments() {
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc.exe")) {
if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.exe")) {
$script:bootstrap = $True
}
}
Expand Down Expand Up @@ -177,7 +179,6 @@ function BuildSolution() {
/p:Publish=$publish `
/p:ContinuousIntegrationBuild=$ci `
/p:OfficialBuildId=$officialBuildId `
/p:BootstrapBuildPath=$bootstrapDir `
/p:QuietRestore=$quietRestore `
/p:QuietRestoreBinaryLog=$binaryLog `
/p:TestTargetFrameworks=$testTargetFrameworks `
Expand Down Expand Up @@ -211,7 +212,7 @@ function UpdatePath() {
}

function VerifyAssemblyVersions() {
$fsiPath = Join-Path $ArtifactsDir "bin\fsi\Proto\net472\fsi.exe"
$fsiPath = Join-Path $ArtifactsDir "bin\fsi\Proto\net472\publish\fsi.exe"

# Only verify versions on CI or official build
if ($ci -or $official) {
Expand Down
18 changes: 7 additions & 11 deletions eng/build-utils.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ function Get-PackageDir([string]$name, [string]$version = "") {
return $p
}

function Run-MSBuild([string]$projectFilePath, [string]$buildArgs = "", [string]$logFileName = "", [switch]$parallel = $true, [switch]$summary = $true, [switch]$warnAsError = $true, [string]$configuration = $script:configuration) {
function Run-MSBuild([string]$projectFilePath, [string]$buildArgs = "", [string]$logFileName = "", [switch]$parallel = $true, [switch]$summary = $true, [switch]$warnAsError = $true, [string]$configuration = $script:configuration, [string]$verbosity = $script:verbosity) {
# Because we override the C#/VB toolset to build against our LKG package, it is important
# that we do not reuse MSBuild nodes from other jobs/builds on the machine. Otherwise,
# we'll run into issues such as https://github.com/dotnet/roslyn/issues/6211.
Expand Down Expand Up @@ -216,10 +216,6 @@ function Run-MSBuild([string]$projectFilePath, [string]$buildArgs = "", [string]
$args += " /p:ContinuousIntegrationBuild=true"
}

if ($bootstrapDir -ne "") {
$args += " /p:BootstrapBuildPath=$bootstrapDir"
}

$args += " $buildArgs"
$args += " $projectFilePath"
$args += " $properties"
Expand All @@ -241,15 +237,15 @@ function Make-BootstrapBuild() {
Create-Directory $dir

# prepare FsLex and Fsyacc
Run-MSBuild "$RepoRoot\src\buildtools\buildtools.proj" "/restore /t:Build" -logFileName "BuildTools" -configuration $bootstrapConfiguration
Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\netcoreapp2.1\*" -Destination $dir
Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\netcoreapp2.1\*" -Destination $dir
Run-MSBuild "$RepoRoot\src\buildtools\buildtools.proj" "/restore /t:Publish" -logFileName "BuildTools" -configuration $bootstrapConfiguration
Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\netcoreapp2.1\publish" -Destination "$dir\fslex" -Force -Recurse
Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\netcoreapp2.1\publish" -Destination "$dir\fsyacc" -Force -Recurse

# prepare compiler
$projectPath = "$RepoRoot\proto.proj"
Run-MSBuild $projectPath "/restore /t:Build" -logFileName "Bootstrap" -configuration $bootstrapConfiguration
Copy-Item "$ArtifactsDir\bin\fsc\$bootstrapConfiguration\$bootstrapTfm\*" -Destination $dir
Copy-Item "$ArtifactsDir\bin\fsi\$bootstrapConfiguration\$bootstrapTfm\*" -Destination $dir
Run-MSBuild $projectPath "/restore /t:Publish" -logFileName "Bootstrap" -configuration $bootstrapConfiguration
Copy-Item "$ArtifactsDir\bin\fsc\$bootstrapConfiguration\$bootstrapTfm\publish" -Destination "$dir\fsc" -Force -Recurse
Copy-Item "$ArtifactsDir\bin\fsi\$bootstrapConfiguration\$bootstrapTfm\publish" -Destination "$dir\fsi" -Force -Recurse

return $dir
}
38 changes: 30 additions & 8 deletions eng/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ usage()
echo " --binaryLog Create MSBuild binary log (short: -bl)"
echo ""
echo "Actions:"
echo " --bootstrap Force the build of the bootstrap compiler"
echo " --restore Restore projects required to build (short: -r)"
echo " --norestore Don't restore projects required to build"
echo " --build Build all projects (short: -b)"
echo " --rebuild Rebuild all projects"
echo " --pack Build nuget packages"
Expand Down Expand Up @@ -54,6 +56,7 @@ test_core_clr=false
configuration="Debug"
verbosity='minimal'
binary_log=false
force_bootstrap=false
ci=false
skip_analyzers=false
prepare_machine=false
Expand Down Expand Up @@ -88,6 +91,9 @@ while [[ $# > 0 ]]; do
--binarylog|-bl)
binary_log=true
;;
--bootstrap)
force_bootstrap=true
;;
--restore|-r)
restore=true
;;
Expand Down Expand Up @@ -205,17 +211,33 @@ function BuildSolution {
quiet_restore=true
fi

# Node reuse fails because multiple different versions of FSharp.Build.dll get loaded into MSBuild nodes
node_reuse=false

# build bootstrap tools
bootstrap_config=Proto
MSBuild "$repo_root/src/buildtools/buildtools.proj" \
/restore \
/p:Configuration=$bootstrap_config \
/t:Build

bootstrap_dir=$artifacts_dir/Bootstrap
mkdir -p "$bootstrap_dir"
cp $artifacts_dir/bin/fslex/$bootstrap_config/netcoreapp2.1/* $bootstrap_dir
cp $artifacts_dir/bin/fsyacc/$bootstrap_config/netcoreapp2.1/* $bootstrap_dir
if [[ "$force_bootstrap" == true ]]; then
rm -fr $bootstrap_dir
fi
if [ ! -f "$bootstrap_dir/fslex.dll" ]; then
MSBuild "$repo_root/src/buildtools/buildtools.proj" \
/restore \
/p:Configuration=$bootstrap_config \
/t:Publish

mkdir -p "$bootstrap_dir"
cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/netcoreapp2.1/publish $bootstrap_dir/fslex
cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/netcoreapp2.1/publish $bootstrap_dir/fsyacc
fi
if [ ! -f "$bootstrap_dir/fsc.exe" ]; then
MSBuild "$repo_root/proto.proj" \
/restore \
/p:Configuration=$bootstrap_config \
/t:Publish

cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/netcoreapp2.1/publish $bootstrap_dir/fsc
fi

# do real build
MSBuild $toolset_build_proj \
Expand Down
1 change: 0 additions & 1 deletion fcs/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
<!-- The LKG FSI.EXE requires MSBuild 15 to be installed, which is painful -->
<ToolsetFsiToolPath>$(FSharpSourcesRoot)\..\packages\FSharp.Compiler.Tools.4.1.27\tools</ToolsetFsiToolPath>
<ToolsetFsiToolExe>fsi.exe</ToolsetFsiToolExe>
<ProtoOutputPath>$(ArtifactsBinDir)\FSharp.Build\Proto\net472</ProtoOutputPath>
<FcsFSharpCorePkgVersion>4.6.2</FcsFSharpCorePkgVersion>
<FcsTargetNetFxFramework>net461</FcsTargetNetFxFramework>
</PropertyGroup>
Expand Down
4 changes: 2 additions & 2 deletions fcs/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" />
<WriteLinesToFile File="$(__TargetFilePath)" Lines="$(_ReplacementText)" Overwrite="true" WriteOnlyWhenDifferent="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup >
Expand Down Expand Up @@ -46,7 +46,7 @@
<MakeDir
Directories="$(IntermediateOutputPath)$(ProjectName)"
Condition="!Exists('$(IntermediateOutputPath)$(ProjectName)')" />
<WriteLinesToFile File="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" />
<WriteLinesToFile File="$(IntermediateOutputPath)$(ProjectName)\buildproperties.fs" Lines="@(_BuildPropertyLines)" Overwrite="true" WriteOnlyWhenDifferent="true" />

<!-- Make sure it will get cleaned -->
<ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions proto.proj
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>

<Target Name="Publish">
<MSBuild Projects="@(Projects)" Targets="Publish" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>

<Target Name="Clean">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
Expand Down
13 changes: 7 additions & 6 deletions src/buildtools/buildtools.proj
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,32 @@

<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<DisableCompilerRedirection>true</DisableCompilerRedirection>
</PropertyGroup>

<ItemGroup>
<Projects Include="fslex\fslex.fsproj" />
<Projects Include="fsyacc\fsyacc.fsproj" />
</ItemGroup>

<Target Name="Build">
<MSBuild Projects="@(Projects)" Targets="Build" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="@(Projects)" Targets="Build" Properties="Configuration=$(Configuration);DisableCompilerRedirection=$(DisableCompilerRedirection)" />
</Target>

<Target Name="Rebuild">
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration);DisableCompilerRedirection=$(DisableCompilerRedirection)" />
</Target>

<Target Name="Clean">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration);DisableCompilerRedirection=$(DisableCompilerRedirection)" />
</Target>

<Target Name="Restore">
<MSBuild Projects="@(Projects)" Targets="Restore" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="@(Projects)" Targets="Restore" Properties="Configuration=$(Configuration);DisableCompilerRedirection=$(DisableCompilerRedirection)" />
</Target>

<Target Name="Publish">
<MSBuild Projects="@(Projects)" Targets="Publish" Properties="Configuration=$(Configuration)" />
<MSBuild Projects="@(Projects)" Targets="Publish" Properties="Configuration=$(Configuration);DisableCompilerRedirection=$(DisableCompilerRedirection)" />
</Target>

</Project>
4 changes: 2 additions & 2 deletions src/buildtools/buildtools.targets
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
BeforeTargets="CoreCompile">

<PropertyGroup>
<FsLexPath Condition="'$(FsLexPath)' == ''">$(ArtifactsDir)\Bootstrap\fslex.dll</FsLexPath>
<FsLexPath Condition="'$(FsLexPath)' == ''">$(ArtifactsDir)\Bootstrap\fslex\fslex.dll</FsLexPath>
</PropertyGroup>

<!-- Create the output directory -->
Expand All @@ -43,7 +43,7 @@
BeforeTargets="CoreCompile">

<PropertyGroup>
<FsYaccPath Condition="'$(FsYaccPath)' == ''">$(ArtifactsDir)\Bootstrap\fsyacc.dll</FsYaccPath>
<FsYaccPath Condition="'$(FsYaccPath)' == ''">$(ArtifactsDir)\Bootstrap\fsyacc\fsyacc.dll</FsYaccPath>
</PropertyGroup>

<!-- Create the output directory -->
Expand Down
2 changes: 1 addition & 1 deletion src/fsharp/DetupleArgs.fs
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ module GlobalUsageAnalysis =
let context = []
recognise context origExpr

let targetIntercept exprF z = function TTarget(_argvs, body, _) -> Some (foldUnderLambda exprF z body)
let targetIntercept exprF z = function TTarget(_argvs, body, _, _) -> Some (foldUnderLambda exprF z body)
let tmethodIntercept exprF z = function TObjExprMethod(_, _, _, _, e, _m) -> Some (foldUnderLambda exprF z e)

{ExprFolder0 with
Expand Down
5 changes: 4 additions & 1 deletion src/fsharp/DotNetFrameworkDependencies.fs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies
let file =
try
let depsJsonPath = Path.ChangeExtension(Assembly.GetEntryAssembly().Location, "deps.json")
File.ReadAllText(depsJsonPath)
if File.Exists depsJsonPath then
File.ReadAllText(depsJsonPath)
else
""
with _ -> ""

let tfmPrefix=".NETCoreApp,Version=v"
Expand Down
Loading