summaryrefslogtreecommitdiff
path: root/libraries/base/changelog.md
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2020-01-29 15:25:07 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-05-29 01:38:42 -0400
commitf10d11fa49fa9a7a506c4fdbdf86521c2a8d3495 (patch)
tree00eaa8c32c0706d6b80a6a231261f54df9c9156f /libraries/base/changelog.md
parent13d9380b1fc8b67057a9ad4fffe244040a7f9bc0 (diff)
downloadhaskell-f10d11fa49fa9a7a506c4fdbdf86521c2a8d3495.tar.gz
Fix "build/elem" RULE.
An redundant constraint prevented the rule from matching. Fixing this allows a call to elem on a known list to be translated into a series of equality checks, and eventually a simple case expression. Surprisingly this seems to regress elem for strings. To avoid this we now also allow foldrCString to inline and add an UTF8 variant. This results in elem being compiled to a tight non-allocating loop over the primitive string literal which performs a linear search. In the process this commit adds UTF8 variants for some of the functions in GHC.CString. This is required to make this work for both ASCII and UTF8 strings. There are also small tweaks to the CString related rules. We now allow ourselfes the luxury to compare the folding function via eqExpr, which helps to ensure the rule fires before we inline foldrCString*. Together with a few changes to allow matching on both the UTF8 and ASCII variants of the CString functions.
Diffstat (limited to 'libraries/base/changelog.md')
-rw-r--r--libraries/base/changelog.md9
1 files changed, 8 insertions, 1 deletions
diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index 06b9a108ef..3919e46431 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -15,7 +15,14 @@
`ConcFlags`, `DebugFlags`, `CCFlags`, `DoHeapProfile`, `ProfFlags`,
`DoTrace`, `TraceFlags`, `TickyFlags`, `ParFlags`, `RTSFlags`, `RTSStats`,
`GCStats`, `ByteOrder`, `GeneralCategory`, `SrcLoc`
-
+
+ * Add rules `unpackUtf8`, `unpack-listUtf8` and `unpack-appendUtf8` to `GHC.Base`.
+ They correspond to their ascii versions and hopefully make it easier
+ for libraries to handle utf8 encoded strings efficiently.
+
+ * An issue with list fusion and `elem` was fixed. `elem` applied to known
+ small lists will now compile to a simple case statement more often.
+
## 4.14.0.0 *TBA*
* Bundled with GHC 8.10.1