Skip to content

Commit 007c2b5

Browse files
authored
Merge branch 'main' into UpdateNuget_14.0
2 parents eb00cdb + f487d45 commit 007c2b5

File tree

128 files changed

+5151
-2084
lines changed

Some content is hidden

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

128 files changed

+5151
-2084
lines changed

.config/service-branch-merge.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"ExtraSwitches": "-QuietComments"
1111
},
1212
"main": {
13-
"MergeToBranch": "release/dev17.14",
13+
"MergeToBranch": "release/dev18.0",
1414
"ExtraSwitches": "-QuietComments"
1515
}
1616
}
17-
}
17+
}

.github/copilot-instructions.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# GitHub Copilot Instructions for F# Compiler
2+
3+
## Language and Environment
4+
- Use modern F# with functional-first approach
5+
- Target .NET Standard 2.0 for compatibility
6+
- Avoid external dependencies - the codebase is self-contained
7+
8+
## Code Style and Standards
9+
- Follow [coding standards](docs/coding-standards.md), especially:
10+
- Prefer immutability and pure functions
11+
- Use consistent naming (see abbreviation guide)
12+
- Process complex types recursively with pattern matching
13+
- Avoid single-character identifiers except in established patterns
14+
- This project uses .fsi signature files. When adding a new public API to a namespace/module which will be consumed from other file, add it to the respective .fsi signature file as well
15+
- Follow [overview](docs/overview.md) for key compiler data formats and representations
16+
17+
## Type System Handling
18+
- When working with `TType` instances, use appropriate stripping functions:
19+
- `stripTyparEqns` - Removes inference equations from type parameters
20+
- `stripTyEqns` - Removes type equations and type abbreviations
21+
- `stripTyEqnsAndErase` - Also erases compilation representations
22+
- Match the appropriate stripper to the context (e.g., display vs compilation)
23+
- Check equality with `typeEquiv` after stripping rather than direct comparison
24+
25+
## Core Data Structures
26+
- Use F# discriminated unions for type representations
27+
- Respect representation hiding through access control
28+
- Use `remapX` functions when transforming types across boundaries
29+
- Be aware of performance implications for recursive type operations
30+
31+
## Documentation and Naming
32+
- Document public APIs with XML comments
33+
- Use descriptive function names that indicate transformation direction
34+
- Follow established naming conventions in error messages
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
id:
2+
name: GitOps.PullRequestIssueManagement
3+
description: GitOps.PullRequestIssueManagement primitive
4+
owner:
5+
resource: repository
6+
disabled: false
7+
where:
8+
configuration:
9+
resourceManagementConfiguration:
10+
eventResponderTasks:
11+
- if:
12+
- payloadType: Issues
13+
- labelAdded:
14+
label: Breaking-change
15+
then:
16+
- addReply:
17+
reply: >-
18+
Refer to the [.NET SDK breaking change guidelines](https://github.com/dotnet/sdk/blob/main/documentation/project-docs/breaking-change-guidelines.md#required-process-for-all-net-sdk-breaking-changes)
19+
description: Add breaking change doc instructions to issue
20+
- if:
21+
- payloadType: Pull_Request
22+
- labelAdded:
23+
label: Breaking-change
24+
then:
25+
- addLabel:
26+
label: needs-breaking-change-doc-created
27+
- addReply:
28+
reply: >-
29+
Added `needs-breaking-change-doc-created` label because this PR has the `breaking-change` label.
30+
31+
32+
When you commit this breaking change:
33+
34+
35+
1. [ ] Create and link to this PR and the issue a matching issue in the dotnet/docs repo using the [breaking change documentation template](https://aka.ms/dotnet/docs/new-breaking-change-issue), then remove this `needs-breaking-change-doc-created` label.
36+
37+
2. [ ] Ask a committer to mail the `.NET SDK Breaking Change Notification` email list.
38+
39+
40+
You can refer to the [.NET SDK breaking change guidelines](https://github.com/dotnet/sdk/blob/main/documentation/project-docs/breaking-change-guidelines.md)
41+
description: Add breaking change instructions to PR.
42+
onFailure:
43+
onSuccess:

DEVGUIDE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,15 @@ For example:
252252
module TimeCritical =
253253
```
254254

255+
For stress testing async code you can use a custom `FSharp.Test.StressAttribute`.
256+
For example, applied to a single xUnit test case:
257+
```fsharp
258+
[<Theory; Stress(Count = 1000)>]
259+
```
260+
it will start it many times at the same time, and execute in parallel.
261+
262+
263+
255264

256265
### Updating FCS surface area baselines
257266

FSharp.Profiles.props

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66
<DefineConstants>BUILDING_WITH_LKG;$(DefineConstants)</DefineConstants>
77
</PropertyGroup>
88

9+
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.fsproj' and $(TolerateUnusedBindings) != 'true'">
10+
<WarningsAsErrors>1182;$(WarningsAsErrors)</WarningsAsErrors>
11+
<WarnOn>1182;$(WarnOn)</WarnOn>
12+
</PropertyGroup>
13+
14+
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.fsproj' and $(TolerateUnusedBindings) == 'true'">
15+
<WarningsNotAsErrors>1182;$(WarningsNotAsErrors)</WarningsNotAsErrors>
16+
<NoWarn>1182;$(NoWarn)</NoWarn>
17+
</PropertyGroup>
18+
919
<PropertyGroup Condition="'$(Configuration)' != 'Proto' and '$(BUILDING_USING_DOTNET)' != 'true' and '$(MSBuildProjectExtension)' == '.fsproj'"> <!-- VB.NET does not understand "preview". It only knows "old","older" and "boomer" :-)) (jk)-->
1020
<LangVersion>preview</LangVersion>
1121
</PropertyGroup>

FSharpBuild.Directory.Build.props

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
<SymStoreDirectory>$(ArtifactsDir)\SymStore</SymStoreDirectory>
2828
<ProtoOutputPath>$(ArtifactsDir)\Bootstrap</ProtoOutputPath>
2929
<ValueTupleImplicitPackageVersion>4.4.0</ValueTupleImplicitPackageVersion>
30-
<WarnOn>$(WarnOn);1182</WarnOn>
3130
<WarningsAsErrors>0025;$(WarningsAsErrors)</WarningsAsErrors>
3231
<OtherFlags>$(OtherFlags) --nowarn:3384</OtherFlags>
3332
<OtherFlags>$(OtherFlags) --times --nowarn:75</OtherFlags>

NuGet.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<clear />
99
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
1010
<!-- Begin: Package sources from DotNet-msbuild-Trusted -->
11-
<add key="darc-pub-DotNet-msbuild-Trusted-0ca03f8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-0ca03f84/nuget/v3/index.json" />
11+
<add key="darc-pub-DotNet-msbuild-Trusted-7a09d5e" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-7a09d5ee/nuget/v3/index.json" />
1212
<!-- End: Package sources from DotNet-msbuild-Trusted -->
1313
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
1414
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />

azure-pipelines-PR.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,11 @@ stages:
208208
enablePublishBuildAssets: true
209209
enablePublishUsingPipelines: $(_PublishUsingPipelines)
210210
enableSourceBuild: true
211+
sourceBuildParameters:
212+
platforms:
213+
- name: 'Managed'
214+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
215+
buildArguments: '--source-build'
211216
enableTelemetry: true
212217
helixRepo: dotnet/fsharp
213218
jobs:

azure-pipelines.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ extends:
103103
enablePublishBuildAssets: true
104104
enablePublishUsingPipelines: $(_PublishUsingPipelines)
105105
enableSourceBuild: true
106+
sourceBuildParameters:
107+
platforms:
108+
- name: 'Managed'
109+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
110+
buildArguments: '--source-build'
106111
enableTelemetry: true
107112
helixRepo: dotnet/fsharp
108113
jobs:

buildtools/fslex/fslex.fsproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
<TargetFramework>$(FSharpNetCoreProductTargetFramework)</TargetFramework>
66
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
77
<RollForward Condition="'$(BUILDING_USING_DOTNET)' == 'true'">LatestMajor</RollForward>
8-
<NoWarn>$(NoWarn);64;1182;1204</NoWarn> <!--Temporary fix for sourcebuild -->
8+
<NoWarn>$(NoWarn);64;1204</NoWarn> <!--Temporary fix for sourcebuild -->
9+
<TolerateUnusedBindings>true</TolerateUnusedBindings>
910
</PropertyGroup>
1011

1112
<PropertyGroup>

0 commit comments

Comments
 (0)