Ticket #4417 (closed feature request: fixed)
Quasiquoting without bloating
|Reported by:||rrnewton||Owned by:||simonmar|
|Keywords:||executable size||Cc:||rrnewton@…, gideon@…, michal.terepeta@…, bos@…|
|Type of failure:||None/Unknown||Difficulty:|
|Test Case:||Blocked By:|
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