Bugs item #1362711, was opened at 2005-11-21 11:33
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1362711&group_id=8032

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Template Haskell
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Simon Peyton Jones (simonpj)
Assigned to: Simon Peyton Jones (simonpj)
Summary: Recompilation check fails for TH

Initial Comment:
The recompilation check only recompiles a module when 
the *interface* of a module it imports changes.  But 
with Template Haskell, it may need to be recompiled 
when the *implementation* changes.

Concrete example below.  It's quite awkward to fix.

* Perhaps a module that contains any splices should be 
recompiled always.
* Perhaps a module that exports any TH stuff (how 
would we tell?) should be flagged as changed if 
anything about it changes.  

Simon

The following scenario reproduces this error
(thanks to Bulat Ziganshin [EMAIL PROTECTED]):

1) create Main.hs containing code

module Main where
import Sub
main = print $x

and Sub.hs containing code

module Sub where
x = [| 1 |]



2) compile them with --make:

C:\!\Haskell\!>ghc --make -fth Main.hs
Chasing modules from: Main.hs
Compiling Sub              ( ./Sub.hs, ./Sub.o )
Compiling Main             ( Main.hs, Main.o )
Loading package base-1.0 ... linking ... done.
Loading package haskell98-1.0 ... linking ... done.
Loading package template-haskell-1.0 ... linking ... 
done.
Linking ...

C:\!\Haskell\!>main.exe
1


3) now change Sub.hs to the following code:

module Sub where
x = [| 2 |]



4) and recompile program:

C:\!\Haskell\!>ghc --make -fth Main.hs
Chasing modules from: Main.hs
Compiling Sub              ( ./Sub.hs, ./Sub.o )
Skipping  Main             ( Main.hs, Main.o )
Linking ...

C:\!\Haskell\!>main.exe
1


As you see, Main.hs is not recompiled despite the fact 
that definition
of x is changed and now program must print "2"



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1362711&group_id=8032
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to