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 |