Skip to content

Commit e45a7b6

Browse files
authored
Merge pull request #1753 from fsprojects/repo-assist/perf-htmlcharrefs-dict-2026-04-20-4e4998b335019aeb
[Repo Assist] perf: HtmlCharRefs entity lookup uses Dictionary for O(1) instead of Map O(log n)
2 parents b40f167 + 1c2912c commit e45a7b6

11 files changed

Lines changed: 59 additions & 40 deletions

RELEASE_NOTES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release Notes
22

3+
## 8.1.10 - Apr 20 2026
4+
5+
- Performance: `HtmlCharRefs` entity lookup now uses a `Dictionary<string, string>` instead of an F# `Map`, giving O(1) lookups instead of O(log n) for ~2230 HTML named-entity entries. Also avoids a repeated `char[]` allocation in the `TrimEnd` call inside the active pattern.
6+
37
## 8.1.9 - Apr 18 2026
48

59
- Fix: `Caching.hashString` now disposes the `SHA1` instance after use; on .NET 5+ uses `SHA1.HashData` (static, pool-backed) to avoid allocation entirely (PR #1745)

src/AssemblyInfo.Csv.Core.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Csv.Core")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Csv.Core"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.DesignTime.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.DesignTime")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.DesignTime"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.Html.Core.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Html.Core")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Html.Core"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.Http.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Http")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Http"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.Json.Core.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Json.Core")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Json.Core"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.Runtime.Utilities.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Runtime.Utilities")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Runtime.Utilities"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.WorldBank.Core.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.WorldBank.Core")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.WorldBank.Core"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.Xml.Core.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data.Xml.Core")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data.Xml.Core"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

src/AssemblyInfo.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open System.Reflection
55
[<assembly: AssemblyTitleAttribute("FSharp.Data")>]
66
[<assembly: AssemblyProductAttribute("FSharp.Data")>]
77
[<assembly: AssemblyDescriptionAttribute("Library of F# type providers and data access tools")>]
8-
[<assembly: AssemblyVersionAttribute("8.1.9.0")>]
9-
[<assembly: AssemblyFileVersionAttribute("8.1.9.0")>]
8+
[<assembly: AssemblyVersionAttribute("8.1.10.0")>]
9+
[<assembly: AssemblyFileVersionAttribute("8.1.10.0")>]
1010
do ()
1111

1212
module internal AssemblyVersionInformation =
1313
let [<Literal>] AssemblyTitle = "FSharp.Data"
1414
let [<Literal>] AssemblyProduct = "FSharp.Data"
1515
let [<Literal>] AssemblyDescription = "Library of F# type providers and data access tools"
16-
let [<Literal>] AssemblyVersion = "8.1.9.0"
17-
let [<Literal>] AssemblyFileVersion = "8.1.9.0"
16+
let [<Literal>] AssemblyVersion = "8.1.10.0"
17+
let [<Literal>] AssemblyFileVersion = "8.1.10.0"

0 commit comments

Comments
 (0)