Skip to content

Commit 3d049d1

Browse files
authored
Merge pull request #49693 from dotnet/main
Publish PR
2 parents e4bcb3e + 280f8d7 commit 3d049d1

File tree

15 files changed

+702
-7
lines changed

15 files changed

+702
-7
lines changed

docs/core/compatibility/cryptography/10.0/openssl-macos-unsupported.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
2-
title: "Breaking change: OpenSSL cryptographic primitives aren't supported on macOS"
2+
title: "Breaking change: OpenSSL cryptographic primitives not supported on macOS"
33
description: "Learn about the breaking change in .NET 10 where OpenSSL cryptographic primitives are no longer supported on macOS."
44
ms.date: 06/23/2025
55
ai-usage: ai-assisted
66
ms.custom: https://github.com/dotnet/docs/issues/46789
77
---
8-
# OpenSSL cryptographic primitives are not supported on macOS
8+
# OpenSSL cryptographic primitives not supported on macOS
99

1010
Starting in .NET 10, OpenSSL-backed cryptographic primitives are no longer supported on macOS. <xref:System.Security.Cryptography.AesCcm?displayProperty=fullName> and classes that are specific to OpenSSL, such as <xref:System.Security.Cryptography.RSAOpenSsl?displayProperty=fullName>, now throw a <xref:System.PlatformNotSupportedException> on macOS.
1111

docs/core/compatibility/unsupported-apis.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
title: Unsupported APIs on .NET Core and .NET 5+
33
titleSuffix: ""
44
description: Learn which .NET APIs always throw an exception on .NET Core and .NET 5 and later versions.
5-
ms.date: 09/08/2025
5+
ms.date: 11/07/2025
66
---
7-
# APIs that always throw exceptions on .NET Core and .NET 5+
7+
# APIs that always throw exceptions on .NET (Core)
88

9-
The following APIs will always throw an exception on .NET (Core) on all or a subset of platforms. In most cases, the exception that's thrown is <xref:System.PlatformNotSupportedException>.
9+
The following APIs always throw an exception on .NET (Core) on all or a subset of platforms. In most cases, the exception that's thrown is <xref:System.PlatformNotSupportedException>.
1010

1111
This article organizes the affected APIs by namespace.
1212

@@ -242,6 +242,7 @@ This article organizes the affected APIs by namespace.
242242

243243
| Member | Platforms that throw |
244244
|--------|----------------------|
245+
| <xref:System.Security.Cryptography.AesCcm.%23ctor*> | macOS |
245246
| <xref:System.Security.Cryptography.AsymmetricAlgorithm.Create(System.String)?displayProperty=nameWithType> | All |
246247
| <xref:System.Security.Cryptography.CngAlgorithm?displayProperty=nameWithType> | Linux and macOS |
247248
| <xref:System.Security.Cryptography.CngAlgorithmGroup?displayProperty=nameWithType> | Linux and macOS |
@@ -264,14 +265,17 @@ This article organizes the affected APIs by namespace.
264265
| <xref:System.Security.Cryptography.CspKeyContainerInfo.RandomlyGenerated?displayProperty=nameWithType> | Linux and macOS |
265266
| <xref:System.Security.Cryptography.CspKeyContainerInfo.Removable?displayProperty=nameWithType> | Linux and macOS |
266267
| <xref:System.Security.Cryptography.CspKeyContainerInfo.UniqueKeyContainerName?displayProperty=nameWithType> | Linux and macOS |
268+
| <xref:System.Security.Cryptography.DSAOpenSsl.%23ctor*> | macOS |
267269
| <xref:System.Security.Cryptography.ECDiffieHellmanCng.FromXmlString(System.String,System.Security.Cryptography.ECKeyXmlFormat)?displayProperty=nameWithType> | All |
268270
| <xref:System.Security.Cryptography.ECDiffieHellmanCng.ToXmlString(System.Security.Cryptography.ECKeyXmlFormat)?displayProperty=nameWithType> | All |
269271
| <xref:System.Security.Cryptography.ECDiffieHellmanCngPublicKey.FromXmlString(System.String)?displayProperty=nameWithType> | All |
270272
| <xref:System.Security.Cryptography.ECDiffieHellmanCngPublicKey.ToXmlString?displayProperty=nameWithType> | All |
273+
| <xref:System.Security.Cryptography.ECDiffieHellmanOpenSsl.%23ctor*> | macOS |
271274
| <xref:System.Security.Cryptography.ECDiffieHellmanPublicKey.ToByteArray?displayProperty=nameWithType> | Linux and macOS |
272275
| <xref:System.Security.Cryptography.ECDiffieHellmanPublicKey.ToXmlString?displayProperty=nameWithType> | All |
273276
| <xref:System.Security.Cryptography.ECDsaCng.FromXmlString(System.String,System.Security.Cryptography.ECKeyXmlFormat)?displayProperty=nameWithType> | All |
274277
| <xref:System.Security.Cryptography.ECDsaCng.ToXmlString(System.Security.Cryptography.ECKeyXmlFormat)?displayProperty=nameWithType> | All |
278+
| <xref:System.Security.Cryptography.ECDsaOpenSsl.%23ctor*> | macOS |
275279
| <xref:System.Security.Cryptography.HashAlgorithm.Create?displayProperty=nameWithType> | All |
276280
| <xref:System.Security.Cryptography.HMAC.Create?displayProperty=nameWithType> | All |
277281
| <xref:System.Security.Cryptography.HMAC.Create(System.String)?displayProperty=nameWithType> | All |
@@ -284,10 +288,12 @@ This article organizes the affected APIs by namespace.
284288
| <xref:System.Security.Cryptography.ProtectedData.Unprotect%2A?displayProperty=nameWithType> | Linux and macOS |
285289
| <xref:System.Security.Cryptography.RSACryptoServiceProvider.DecryptValue(System.Byte[])?displayProperty=fullName> | All |
286290
| <xref:System.Security.Cryptography.RSACryptoServiceProvider.EncryptValue(System.Byte[])?displayProperty=fullName> | All |
291+
| <xref:System.Security.Cryptography.RSAOpenSsl.%23ctor*> | macOS |
287292
| <xref:System.Security.Cryptography.RSA.DecryptValue(System.Byte[])?displayProperty=fullName> | All |
288293
| <xref:System.Security.Cryptography.RSA.EncryptValue(System.Byte[])?displayProperty=fullName> | All |
289294
| <xref:System.Security.Cryptography.RSA.FromXmlString%2A?displayProperty=nameWithType> | All |
290295
| <xref:System.Security.Cryptography.RSA.ToXmlString%2A?displayProperty=nameWithType> | All |
296+
| <xref:System.Security.Cryptography.SafeEvpPKeyHandle?displayProperty=nameWithType> | macOS |
291297
| <xref:System.Security.Cryptography.SymmetricAlgorithm.Create?displayProperty=nameWithType> | All |
292298
| <xref:System.Security.Cryptography.SymmetricAlgorithm.Create(System.String)?displayProperty=nameWithType> | All |
293299

docs/core/tutorials/netcore-hosting.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ You also need to build a .NET component to test the host with, so you should ins
2424

2525
Hosting the .NET runtime is done with the `nethost` and `hostfxr` libraries' APIs. These entry points handle the complexity of finding and setting up the runtime for initialization and allow both launching a managed application and calling into a static managed method.
2626

27+
> [!IMPORTANT]
28+
> The `nethost` and `hostfxr` hosting APIs only support framework-dependent deployments. Self-contained deployments should be treated as stand-alone executables. If you're evaluating deployment models for your application, use a framework-dependent deployment to ensure compatibility with these native hosting APIs.
29+
2730
## Create a host using `nethost.h` and `hostfxr.h`
2831

2932
A [sample host](https://github.com/dotnet/samples/tree/main/core/hosting) demonstrating the steps outlined in the tutorial below is available in the dotnet/samples GitHub repository. Comments in the sample clearly associate the numbered steps from this tutorial with where they're performed in the sample. For download instructions, see [Samples and Tutorials](../../samples-and-tutorials/index.md#view-and-download-samples).

docs/core/whats-new/dotnet-10/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ The F# updates in .NET 10 include several new features and improvements across t
7575

7676
General improvements and bug fixes in the compiler implementation.
7777

78-
For more information, see the [F# release notes](https://fsharp.github.io/fsharp-compiler-docs/release-notes/About.html).
78+
For more information, see [What's new in F# 10](../../../fsharp/whats-new/fsharp-10.md) or the [F# release notes](https://fsharp.github.io/fsharp-compiler-docs/release-notes/About.html).
7979

8080
## Visual Basic
8181

docs/fsharp/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ landingContent:
120120
linkLists:
121121
- linkListType: whats-new
122122
links:
123+
- text: "What's new in F# 10"
124+
url: whats-new/fsharp-10.md
123125
- text: "What's new in F# 9"
124126
url: whats-new/fsharp-9.md
125127
- text: "What's new in F# 8"

docs/fsharp/language-reference/computation-expressions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ The following table describes methods that can be used in a workflow builder cla
264264
|`Delay`|`(unit -> M<'T>) -> Delayed<'T>`|Wraps a computation expression as a function. `Delayed<'T>` can be any type, commonly `M<'T>` or `unit -> M<'T>` are used. The default implementation returns a `M<'T>`.|
265265
|`Return`|`'T -> M<'T>`|Called for `return` in computation expressions.|
266266
|`ReturnFrom`|`M<'T> -> M<'T>`|Called for `return!` in computation expressions.|
267+
|`ReturnFromFinal`|`M<'T> -> M<'T>`|If present, called for `return!` and `do!` when in tail-call position.|
267268
|`BindReturn`|`(M<'T1> * ('T1 -> 'T2)) -> M<'T2>`|Called for an efficient `let! ... return` in computation expressions.|
268269
|`BindNReturn`|`(M<'T1> * M<'T2> * ... * M<'TN> * ('T1 * 'T2 ... * 'TN -> M<'U>)) -> M<'U>`|Called for efficient `let! ... and! ... return` in computation expressions without merging inputs.<br /><br />for example, `Bind3Return`, `Bind4Return`.|
269270
|`MergeSources`|`(M<'T1> * M<'T2>) -> M<'T1 * 'T2>`|Called for `and!` in computation expressions.|
@@ -277,6 +278,7 @@ The following table describes methods that can be used in a workflow builder cla
277278
|`While`|`(unit -> bool) * Delayed<'T> -> M<'T>`or<br /><br />`(unit -> bool) * Delayed<unit> -> M<unit>`|Called for `while...do` expressions in computation expressions.|
278279
|`Yield`|`'T -> M<'T>`|Called for `yield` expressions in computation expressions.|
279280
|`YieldFrom`|`M<'T> -> M<'T>`|Called for `yield!` expressions in computation expressions.|
281+
|`YieldFromFinal`|`M<'T> -> M<'T>`|If present, called for `yield!` when in tail-call position and in case of `do!` in tail-call position as a fallback for `ReturnFromFinal`|
280282
|`Zero`|`unit -> M<'T>`|Called for empty `else` branches of `if...then` expressions in computation expressions.|
281283
|`Quote`|`Quotations.Expr<'T> -> Quotations.Expr<'T>`|Indicates that the computation expression is passed to the `Run` member as a quotation. It translates all instances of a computation into a quotation.|
282284

docs/fsharp/language-reference/parameters-and-arguments.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,18 @@ Baud Rate: 9600 Duplex: Full Parity: false
150150
Baud Rate: 4800 Duplex: Half Parity: false
151151
```
152152

153+
You can also specify an optional parameter to be a [Value Option](./value-options.md) type by applying a `[<Struct>]` attribute to it.
154+
155+
```fsharp
156+
type T() =
157+
static member M([<Struct>] ?p : string) =
158+
match p with
159+
| ValueSome s -> printfn "%s" s
160+
| ValueNone -> printfn "None"
161+
```
162+
163+
When using struct-backed optional parameter, as seen above, you would use `defaultValueArg` instead of `defaultArg` to set the default value of the parameter.
164+
153165
### Optional parameters (C# interop)
154166

155167
For the purposes of C# interop, you can use the attributes `[<Optional; DefaultParameterValue<(...)>]` in F#, so that callers will see an argument as optional. This is equivalent to defining the argument as optional in C# as in `MyMethod(int i = 3)`. This form was introduced in F# 4.1 to help facilitate interoperation with C# code.

docs/fsharp/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ items:
292292
href: tutorials/using-functions.md
293293
- name: What's new
294294
items:
295+
- name: F# 10
296+
href: whats-new/fsharp-10.md
295297
- name: F# 9
296298
href: whats-new/fsharp-9.md
297299
- name: F# 8

0 commit comments

Comments
 (0)