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 |