suggestion: add a .ehs file type
Alex Jacobson
alex at alexjacobson.com
Fri Nov 23 14:33:59 EST 2007
Yeah, since I use searchpath rather than cabal, I made searchpath
default to adding -fglasgow-exts when the "compiler" is ghc, ghci, or
runghc. Passing -fno-glasgow-exts on the command line turns this off.
-Alex-
Simon Marlow wrote:
> Alex Jacobson wrote:
>
>> In any case, I'm pretty sure the correct answer is not 50 language
>> pragmas with arbitrary spellings for various language features at the
>> top of each source file.
>
> You probably won't like any of these, but there are many ways to avoid
> writing out all the pragmas at the top of each file.
>
> 1. Use Cabal's extensions field.
>
> 2. Use CPP
>
> MyExtensions.h:
> {-# LANGUAGE TemplateHaskell, FlexibleInstances,
> OverlappingInstances, UndecidableInstances, CPP,
> ScopedTypeVariables, PatternSignatures, GADTs,
> PolymorphicComponents, FlexibleContexts,
> MultiParamTypeClasses, DeriveDataTypeable,
> PatternGuards #-}
>
> MyModule.hs:
> {-# LANGUAGE CPP #-}
> #include "MyExtensions.h"
>
> 3. Use a shell alias
>
> alias ghce='ghc -XTemplateHaskell -XFlexibleInstances ...'
>
> 4. use a script wrapper for GHC
>
> #!/bin/sh
> exec ghc -XTemplateHaskell -XFlexibleInstances ... $*
>
> I'm sure there are more...
>
> Cheers,
> Simon
>
>> -Alex-
>>
>> Simon Marlow wrote:
>>> Alex Jacobson wrote:
>>>> I'm fine with that as well. I'm just opposed to being force to look
>>>> up the precise names the compiler happens to use for each language
>>>> extension I happen to use. Having -fglasgow-exts turned on by
>>>> default also works.
>>>
>>> -fglasgow-exts is a historical relic. It's just an arbitrary
>>> collection of extensions. It doesn't contain all the extensions
>>> provided by GHC, as many of them steal syntax and you probably don't
>>> want them all on at the same time. We're trying to move away from
>>> -fglasgow-exts, which is why GHC 6.8.1 provides separate flags for
>>> all the extensions we provide. Eventually we'll have a new standard
>>> (Haskell' or whatever) that will collect many of the extensions
>>> together, so you'll just have to write {-# LANGUAGE Haskell' #-}.
>>>
>>> Cheers,
>>> Simon
>>> _______________________________________________
>>> Glasgow-haskell-users mailing list
>>> Glasgow-haskell-users at haskell.org
>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>
>>
More information about the Glasgow-haskell-users
mailing list