Thanks Mathieu. This works pretty well for gcc ( https://gcc.gnu.org/onlinedocs/cpp/Traditional-macros.html) but sadly it does not work for clang cpp as Brandon too pointed out earlier that clang does not have a traditional mode.
-harendra On 22 August 2016 at 02:01, Boespflug, Mathieu <m...@tweag.io> wrote: > Hi Harendra, > > I ran into this very problem recently. Turns out -traditional knows string > concatenation too. I seem to remember learning this by browsing the GHC > source code, but now I can't find any occurrence of this pattern. But > here's an example of how to do string concatenation with CPP in > -traditional mode: https://github.com/tweag/sparkle/blob/ > a4e481aa5180b6ec93c219f827aefe932b66a953/inline-java/src/ > Foreign/JNI.hs#L274. > > HTH, > > -- > Mathieu Boespflug > Founder at http://tweag.io. > > On 20 August 2016 at 20:33, Brandon Allbery <allber...@gmail.com> wrote: > >> On Sat, Aug 20, 2016 at 2:27 PM, Harendra Kumar <harendra.ku...@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 >> allber...@gmail.com >> ballb...@sinenomine.net >> unix, openafs, kerberos, infrastructure, xmonad >> http://sinenomine.net >> >> _______________________________________________ >> ghc-devs mailing list >> ghc-d...@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> >> >
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users