Skip to content

Add StringPrimL to template-haskell

In designing a template haskell lexer, you cannot get the same performance as alex, due to the fact that you cannot encode a "string"# literal to house the lookup tables for the encoded lexer.

Proposal: add "string"# literals to template-haskell as StringPrimL (or another suitable constructor) to Lit.

Then the quasiquoter can emit a data type that contains Addr# references to the link-time-locatable "string"#s permitting constant folding and inlining away the particular link time choice of Addr#.

Trac metadata
Trac field Value
Version 6.12.3
Type FeatureRequest
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information