Using stringize and string concatenation in ghc preprocessing

Brandon Allbery allbery.b at gmail.com
Sat Aug 20 18:33:08 UTC 2016


On Sat, Aug 20, 2016 at 2:27 PM, Harendra Kumar <harendra.kumar at gmail.com>
wrote:

> But "-optP" seems to only append to the flags that GHC already passes and
> gcc has no "-no-traditional" option to undo the effect of the
> "-traditional" that GHC has already passed. I think "-optP" should override
> the flags passed by ghc rather than appending to them. Is there a reason
> not to do that?
>
> Is there any other better way to achieve this? What is the standard way of
> doing this if any?
>

Removing -traditional will break much Haskell source. Go look at the
history of clang with ghc (clang doesn't do -traditional) to see what
happens. (tl;dr: without -traditional, cpp knows too much about what
constitutes valid C, and mangles and/or throws errors on valid Haskell that
doesn't lex the way C does.)

You might want to look at cpphs as an alternative preprocessor. There are
some ancient K&R-era hacks that could be used if absolutely necessary, but
cpphs should be a much simpler and cleaner solution.

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/glasgow-haskell-users/attachments/20160820/71e096ee/attachment.html>


More information about the Glasgow-haskell-users mailing list