
On Wed, Jun 5, 2013 at 10:15 AM, Ivan Lazar Miljenovic < ivan.miljenovic@gmail.com> wrote:
On 5 June 2013 12:02, silly8888
wrote: I was wondering today, why hasn't hsc2hs been merged with ghc so that it would be possible to add a
{-# LANGUAGE ForeignFunctionInterface #-}
at the top of a source file and then load it with ghci or compile it, without the intermediate step of calling hsc2hs? This would be exactly like the CPP extension. I don't have to call cpp manually. All I have to do is to add {-# LANGUAGE CPP #-} and then ghc will take care of the rest. This would also mean that there would be no need to have a separate file extension. Surely I must not be the first person to have that thought, so there must be a good reason why this hasn't happen yet, but what is it?
Isn't this done automatically when you have files with the .hsc extension?
cabal handles this transparently, but not ghc. It's frustrating when you want to develop a project with ghci. I don't think it's a good idea to merge hsc2hs syntax into Haskell files. In particular, it's often useful to inspect the intermediate .hs file produced by hsc2hs during development or debugging. Also it would complicate ghc's parser, etc... My preferred solution would be to have ghc/ghci automatically run hsc2hs (support c2hs also?) when necessary. But so long as it's handled automatically, I wouldn't be particularly bothered by the implementation.