Skip to content

Commit 095a9f9

Browse files
authored
Merge branch 'main' into merges/release/dev17.8-to-main
2 parents 6552688 + 0881a90 commit 095a9f9

File tree

154 files changed

+2738
-1691
lines changed

Some content is hidden

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

154 files changed

+2738
-1691
lines changed

.devcontainer/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ RUN apt-get update \
1414
&& apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \
1515
# Verify bash, git, process tools, lsb-release (common in install instructions for CLIs) installed
1616
&& apt-get -y install bash git openssh-client less iproute2 procps lsb-release \
17+
&& apt-get -y install gnupg \
1718
# Clean up
1819
&& apt-get autoremove -y \
1920
&& apt-get clean -y \
@@ -23,4 +24,4 @@ RUN apt-get update \
2324
ENV DEBIAN_FRONTEND=dialog
2425

2526
# Make sure we can build using plain dotnet
26-
ENV BUILDING_USING_DOTNET="true"
27+
ENV BUILDING_USING_DOTNET="true"

.vscode/tasks.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@
2020
"type": "shell",
2121
"args": [
2222
"build",
23-
"-c Debug",
23+
"-c",
24+
"Debug",
2425
"FSharp.Compiler.Service.sln"
2526
],
2627
"windows": {
2728
"command": "dotnet",
2829
"args": [
2930
"build",
30-
"-c Debug",
31+
"-c",
32+
"Debug",
3133
"FSharp.Compiler.Service.sln"
3234
],
3335
},
@@ -40,14 +42,16 @@
4042
"type": "shell",
4143
"args": [
4244
"build",
43-
"-c Release",
45+
"-c",
46+
"Release",
4447
"FSharp.Compiler.Service.sln"
4548
],
4649
"windows": {
4750
"command": "dotnet",
4851
"args": [
4952
"build",
50-
"-c Release",
53+
"-c",
54+
"Release",
5155
"FSharp.Compiler.Service.sln"
5256
],
5357
},

DEVGUIDE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ You can find all test options as separate flags. For example `build -testAll`:
122122

123123
Running any of the above will build the latest changes and run tests against them.
124124

125+
## Using your custom compiler to build this repository
126+
127+
By removing all the subfolders called `Proto` under `artifacts` and running the `build` script again, the proto compiler will include your changes.
128+
129+
Once the "proto" compiler is built, it won't be built again, so you may want to perform those steps again to ensure your changes don't break building the compiler itself.
130+
125131
## Using your custom compiler to build other projects
126132

127133
Building the compiler using `build.cmd` or `build.sh` will output artifacts in `artifacts\bin`.

INTERNAL.md

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -98,29 +98,6 @@ Since github issue filtering is currently not flexible enough, that query was ge
9898
Invoke-WebRequest -Uri "https://api.github.com/repos/dotnet/fsharp/labels?per_page=100" | ConvertFrom-Json | % { $_.name } | ? { $_.StartsWith("Area-") } | % { Write-Host -NoNewLine ('-label:"' + $_ + '" ') }
9999
```
100100

101-
## Less interesting links
102-
103-
[FSharp.Core (Official NuGet Release)](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=72).
104-
Uploads the final `FSharp.Core` package from the specified build to NuGet. This should only be run when we know for
105-
certain which build produced the final offical package.
106-
107-
[FSharp.Core (Preview NuGet Release)](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=92).
108-
Uploads the preview `FSharp.Core.*-beta.*` package from the specified build to NuGet. This should be run every time
109-
a new SDK preview is released.
110-
111-
[FCS (Official NuGet Release)](https://dev.azure.com/dnceng/internal/_release?view=mine&_a=releases&definitionId=99).
112-
Uploads the final `FSharp.Compiler.Service` package from the specified build to NuGet. Only builds from the `release/fcs`
113-
branch can be selected. This should only be run when we're fairly certain that the package is complete.
114-
115-
[FCS (Preview NuGet Release)](https://dev.azure.com/dnceng/internal/_release?view=mine&_a=releases&definitionId=98).
116-
Uploads the preview `FSharp.Compiler.Service.*-preview.*` package from the specified build to NuGet. Only builds from the
117-
`main` branch can be selected. This can be run whenever we think we're ready to preview a new FCS build.
118-
119-
[Nightly VSIX (main) uploader](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=70). Uploads
120-
a package from every build of `main` to the [Nightly VSIX feed](README.md#using-nightly-releases-in-visual-studio).
121-
122-
[Nightly VSIX (preview) uploader](https://dev.azure.com/dnceng/internal/_release?_a=releases&definitionId=71). Uploads
123-
a package from every build of the branch that corresponds to the current Visual Studio preview to the
124-
[Preview VSIX feed](README.md#using-nightly-releases-in-visual-studio).
101+
## Other links
125102

126103
[Internal source mirror](https://dev.azure.com/dnceng/internal/_git/dotnet-fsharp).

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ Even if you find a single-character typo, we're happy to take the change! Althou
7575
<add key="fsharp-prerelease" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
7676
```
7777

78+
**NOTE:** Official NuGet releases of FCS and FSharp.Core are synched with SDK releases (on purpose - we want to be in sync). Nightly packages release to Azure feeds on every successful insertion.
79+
7880
## Branches
7981

8082
These are the branches in use:

azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ stages:
437437
vs_release:
438438
_configuration: Release
439439
_testKind: testVs
440-
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
440+
${{ if eq(variables['Build.Reason'], 'Flaky, disabled, was PullRequest') }}:
441441
inttests_release:
442442
_configuration: Release
443443
_testKind: testIntegration
@@ -805,7 +805,7 @@ stages:
805805
- template: eng/release/insert-into-vs.yml
806806
parameters:
807807
componentBranchName: refs/heads/release/dev17.8
808-
insertTargetBranch: rel/d17.8
808+
insertTargetBranch: main
809809
insertTeamEmail: fsharpteam@microsoft.com
810810
insertTeamName: 'F#'
811811
completeInsertion: 'auto'

eng/Version.Details.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Dependencies>
33
<ProductDependencies>
4-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.23468.3">
4+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.23509.2">
55
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
6-
<Sha>b88b567fbf54c5404d039b80cfb86f09a681f604</Sha>
6+
<Sha>8a2f652b1f23d493fcce31b73e829de56df38d5f</Sha>
77
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
88
</Dependency>
99
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.7.0-preview-23217-02">
@@ -39,25 +39,25 @@
3939
<Sha>194f32828726c3f1f63f79f3dc09b9e99c157b11</Sha>
4040
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
4141
</Dependency>
42-
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.23471.3">
42+
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.23515.2">
4343
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
44-
<Sha>ee166d79f3a269d2a1c6b7d400df7e284b1aa67b</Sha>
44+
<Sha>0e20c85562e8c4615c2a3a9e28371a34d9d0a398</Sha>
4545
</Dependency>
46-
<Dependency Name="optimization.windows_nt-x86.MIBC.Runtime" Version="1.0.0-prerelease.23471.3">
46+
<Dependency Name="optimization.windows_nt-x86.MIBC.Runtime" Version="1.0.0-prerelease.23515.2">
4747
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
48-
<Sha>ee166d79f3a269d2a1c6b7d400df7e284b1aa67b</Sha>
48+
<Sha>0e20c85562e8c4615c2a3a9e28371a34d9d0a398</Sha>
4949
</Dependency>
50-
<Dependency Name="optimization.linux-x64.MIBC.Runtime" Version="1.0.0-prerelease.23471.3">
50+
<Dependency Name="optimization.linux-x64.MIBC.Runtime" Version="1.0.0-prerelease.23515.2">
5151
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
52-
<Sha>ee166d79f3a269d2a1c6b7d400df7e284b1aa67b</Sha>
52+
<Sha>0e20c85562e8c4615c2a3a9e28371a34d9d0a398</Sha>
5353
</Dependency>
54-
<Dependency Name="optimization.windows_nt-arm64.MIBC.Runtime" Version="1.0.0-prerelease.23471.3">
54+
<Dependency Name="optimization.windows_nt-arm64.MIBC.Runtime" Version="1.0.0-prerelease.23515.2">
5555
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
56-
<Sha>ee166d79f3a269d2a1c6b7d400df7e284b1aa67b</Sha>
56+
<Sha>0e20c85562e8c4615c2a3a9e28371a34d9d0a398</Sha>
5757
</Dependency>
58-
<Dependency Name="optimization.linux-arm64.MIBC.Runtime" Version="1.0.0-prerelease.23471.3">
58+
<Dependency Name="optimization.linux-arm64.MIBC.Runtime" Version="1.0.0-prerelease.23515.2">
5959
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
60-
<Sha>ee166d79f3a269d2a1c6b7d400df7e284b1aa67b</Sha>
60+
<Sha>0e20c85562e8c4615c2a3a9e28371a34d9d0a398</Sha>
6161
</Dependency>
6262
</ToolsetDependencies>
6363
</Dependencies>

eng/Versions.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,10 @@
206206
<FluentAssertionsVersion>5.10.3</FluentAssertionsVersion>
207207
<HumanizerCoreVersion>2.2.0</HumanizerCoreVersion>
208208
<!-- MIBC profile packages -->
209-
<optimizationwindows_ntx64MIBCRuntimeVersion>1.0.0-prerelease.23471.3</optimizationwindows_ntx64MIBCRuntimeVersion>
210-
<optimizationwindows_ntx86MIBCRuntimeVersion>1.0.0-prerelease.23471.3</optimizationwindows_ntx86MIBCRuntimeVersion>
211-
<optimizationwindows_ntarm64MIBCRuntimeVersion>1.0.0-prerelease.23471.3</optimizationwindows_ntarm64MIBCRuntimeVersion>
212-
<optimizationlinuxx64MIBCRuntimeVersion>1.0.0-prerelease.23471.3</optimizationlinuxx64MIBCRuntimeVersion>
213-
<optimizationlinuxarm64MIBCRuntimeVersion>1.0.0-prerelease.23471.3</optimizationlinuxarm64MIBCRuntimeVersion>
209+
<optimizationwindows_ntx64MIBCRuntimeVersion>1.0.0-prerelease.23515.2</optimizationwindows_ntx64MIBCRuntimeVersion>
210+
<optimizationwindows_ntx86MIBCRuntimeVersion>1.0.0-prerelease.23515.2</optimizationwindows_ntx86MIBCRuntimeVersion>
211+
<optimizationwindows_ntarm64MIBCRuntimeVersion>1.0.0-prerelease.23515.2</optimizationwindows_ntarm64MIBCRuntimeVersion>
212+
<optimizationlinuxx64MIBCRuntimeVersion>1.0.0-prerelease.23515.2</optimizationlinuxx64MIBCRuntimeVersion>
213+
<optimizationlinuxarm64MIBCRuntimeVersion>1.0.0-prerelease.23515.2</optimizationlinuxarm64MIBCRuntimeVersion>
214214
</PropertyGroup>
215215
</Project>

global.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"sdk": {
33
"version": "8.0.100-rc.1.23463.5",
4-
"allowPrerelease": true,
5-
"rollForward": "latestMajor"
4+
"allowPrerelease": true
65
},
76
"tools": {
87
"dotnet": "8.0.100-rc.1.23463.5",

src/Compiler/Checking/CheckComputationExpressions.fs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,10 @@ let TcComputationExpression (cenv: cenv) env (overallTy: OverallTy) tpenv (mWhol
229229
// Give bespoke error messages for the FSharp.Core "query" builder
230230
let isQuery =
231231
match stripDebugPoints interpExpr with
232-
| Expr.Val (vref, _, m) ->
232+
// An unparameterized custom builder, e.g., `query`, `async`.
233+
| Expr.Val (vref, _, m)
234+
// A parameterized custom builder, e.g., `builder<…>`, `builder ()`.
235+
| Expr.App (funcExpr = Expr.Val (vref, _, m)) ->
233236
let item = Item.CustomBuilder (vref.DisplayName, vref)
234237
CallNameResolutionSink cenv.tcSink (m, env.NameEnv, item, emptyTyparInst, ItemOccurence.Use, env.eAccessRights)
235238
valRefEq cenv.g vref cenv.g.query_value_vref
@@ -2210,14 +2213,15 @@ let TcSequenceExpression (cenv: cenv) env tpenv comp (overallTy: OverallTy) m =
22102213

22112214
let env = { env with eContextInfo = ContextInfo.SequenceExpression genOuterTy }
22122215

2213-
if enableImplicitYield then
2216+
if enableImplicitYield then
22142217
let hasTypeUnit, expr, tpenv = TryTcStmt cenv env tpenv comp
22152218
if hasTypeUnit then
22162219
Choice2Of2 expr, tpenv
22172220
else
22182221
let genResultTy = NewInferenceType g
22192222
let mExpr = expr.Range
22202223
UnifyTypes cenv env mExpr genOuterTy (mkSeqTy cenv.g genResultTy)
2224+
let expr, tpenv = TcExprFlex cenv flex true genResultTy env tpenv comp
22212225
let exprTy = tyOfExpr cenv.g expr
22222226
AddCxTypeMustSubsumeType env.eContextInfo env.DisplayEnv cenv.css mExpr NoTrace genResultTy exprTy
22232227
let resExpr = mkCallSeqSingleton cenv.g mExpr genResultTy (mkCoerceExpr(expr, genResultTy, mExpr, exprTy))

0 commit comments

Comments
 (0)