diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2019-01-18 12:30:31 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-03-08 14:05:10 -0500 |
commit | 224a6b864c6aa0d851fcbf79469e5702b1116dbc (patch) | |
tree | 888b79e9f177c988d06365d0a218c41878225467 /libraries/template-haskell/changelog.md | |
parent | 5be7ad7861c8d39f60b7101fd8d8e816ff50353a (diff) | |
download | haskell-224a6b864c6aa0d851fcbf79469e5702b1116dbc.tar.gz |
TH: support raw bytes literals (#14741)
GHC represents String literals as ByteString internally for efficiency
reasons. However, until now it wasn't possible to efficiently create
large string literals with TH (e.g. to embed a file in a binary, cf #14741):
TH code had to unpack the bytes into a [Word8] that GHC then had to re-pack
into a ByteString.
This patch adds the possibility to efficiently create a "string" literal
from raw bytes. We get the following compile times for different sizes
of TH created literals:
|| Size || Before || After || Gain ||
|| 30K || 2.307s || 2.299 || 0% ||
|| 3M || 3.073s || 2.400s || 21% ||
|| 30M || 8.517s || 3.390s || 60% ||
Ticket #14741 can be fixed if the original code uses this new TH feature.
Diffstat (limited to 'libraries/template-haskell/changelog.md')
-rw-r--r-- | libraries/template-haskell/changelog.md | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libraries/template-haskell/changelog.md b/libraries/template-haskell/changelog.md index a64795b5b9..9928df9ba9 100644 --- a/libraries/template-haskell/changelog.md +++ b/libraries/template-haskell/changelog.md @@ -8,6 +8,9 @@ * Add a `ForallVisT` constructor to `Type` to represent visible, dependent quantification. + * Introduce support for `Bytes` literals (raw bytes embedded into the output + binary) + ## 2.15.0.0 *TBA* * In `Language.Haskell.TH.Syntax`, `DataInstD`, `NewTypeInstD`, `TySynEqn`, |