Skip to content

GHC.CString.unpackCStringUtf8# is inlineable, shouldn't be?

While looking through the logs of a build of a project I have lying around with a GHC 8.0 snapshot, I noticed that there may still be some fragile rules in the text package (see #11528 (closed) for a previous issue).

The problem is that GHC.CString.unpackCStringUtf8# may be inlined, which may preempt the TEXT literal UTF8 rule in Data.Text.Show. unpackCStringUtf8# doesn't seem like a terribly great candidate for inlining as it produces a list,

unpackCStringUtf8# :: Addr# -> [Char]

Moreover, the other functions in this module along these lines (e.g. unpackCString# are marked NOINLINE. Perhaps this should have a NOINLINE pragma as well?

Trac metadata
Trac field Value
Version 7.10.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Core Libraries
Test case
Differential revisions
BlockedBy
Related
Blocking
CC ekmett
Operating system
Architecture
Edited by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information