[Hackage] #50: create compiler frameworks for new compilers

Hackage trac at galois.com
Mon Jan 21 13:06:56 EST 2008


#50: create compiler frameworks for new compilers
----------------------------+-----------------------------------------------
  Reporter:  ijones         |        Owner:  ijones         
      Type:  enhancement    |       Status:  new            
  Priority:  normal         |    Milestone:                 
 Component:  Cabal library  |      Version:                 
  Severity:  normal         |   Resolution:                 
  Keywords:                 |   Difficulty:  project(> week)
Ghcversion:  6.2.2          |     Platform:                 
----------------------------+-----------------------------------------------
Changes (by duncan):

  * difficulty:  very hard => project(> week)
  * ghcversion:  => 6.2.2
  * platform:  =>

Comment:

 The `Compiler` abstraction should certainly be beefed up. I'm not sure we
 need to go as far as making a external serialised form.

 Currently the `Compiler` value is passed around but is used as a bit of
 dumb data when it should really carry methods for doing interesting things
 and we should not be switching on the `CompilerFlavour`. The difficulty
 with doing this is that currently the `Compiler` value is passed around
 using the `LocalBuildInfo` which implements Show. We should really pass
 `Compiler` as a parameter but we cannot do that without changing the type
 signatures of the `UserHooks` which would break all custom `Setup` script
 again.

 So we have to synchronise this change with our next planned break of
 `UserHooks`. Ideally that break should include a plan for an api style
 that does not involve so many breaks when we want to pass just a bit more
 info, like using some kind of monad where we can extend the environment
 without breaking existing code.

-- 
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/50#comment:1>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects


More information about the cabal-devel mailing list