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