[GHC] #7867: Allow template-haskell to communicate with itself between compilation units through the interface file

GHC cvs-ghc at haskell.org
Mon Apr 29 15:35:35 CEST 2013


#7867: Allow template-haskell to communicate with itself between compilation units
through the interface file
---------------------------------+------------------------------------------
    Reporter:  errge             |       Owner:                  
        Type:  feature request   |      Status:  new             
    Priority:  normal            |   Milestone:                  
   Component:  Template Haskell  |     Version:  7.6.3           
    Keywords:                    |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown    
  Difficulty:  Unknown           |    Testcase:                  
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by errge):

 Hi Simon,

 Thanks for your reply.

 I actually found annotations before reporting this issue and my plan was
 to look into them and if they are persisted in interface files then add
 some access for them from Template Haskell reify (currently that's not
 there), but this is what I found:

 {{{
 errge at curry:/tmp $ cat Foo.hs
 module Foo (foo) where

 {-# ANN foo "my message" #-}
 foo x = x
 errge at curry:/tmp $ ghc -c -o Foo.o Foo.hs
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 errge at curry:/tmp $ cp Foo.hi Foo.hi.old
 // Edit file to have "my message newer"
 errge at curry:/tmp $ cat Foo.hs
 module Foo (foo) where

 {-# ANN foo "my message newer" #-}
 foo x = x
 errge at curry:/tmp $ ghc -c -o Foo.o Foo.hs
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 errge at curry:/tmp $ cmp Foo.hi.old Foo.hi
 errge at curry:/tmp $ echo $?
 0
 errge at curry:/tmp $ ghc --version
 The Glorious Glasgow Haskell Compilation System, version 7.6.2
 }}}

 So my annotation is definitely not persisted in the Foo.hi file with
 7.6.2.  Am I doing something wrong?  Is this different with GHC HEAD?

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7867#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list