Skip to content

Quasiquoting without bloating

Quasiquoting is a compile-time feature, and sometimes can be useful for purposes as modest as multiline strings (see Hackage packages such as interpolatedstring-perl6).

However, I found that using quasiquoting would add about twelve megabytes to final executable size (on 6.12.1 and 6.13.20090607). It seems GHC links all of the libraries used at compile time into the final executable as well. Could GHC prune these?

Note: you can reproduce this effect with a simple hello world program like below:

    import Text.InterpolatedString.Perl6 (q)
    foo :: String
    foo = [$q|
       Well here is a
       multi-line string!
    |]
    main = putStrLn foo
Trac metadata
Trac field Value
Version 6.13
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