
On Tue, Sep 19, 2006 at 02:33:46PM +0400, Bulat Ziganshin wrote:
3. ghc 6.6 includes smart relinking capability which don't relink exe file if it already exists and .hs source files was not changed. that's great but ignores other .o files that can be also linked to program, for example those that was compiled from C sources:
gcc -c -o a.o a.c ghc --make Main.hs a.o
this command incorrectly don't relinks executable if a.c was changed but Main.hs wasn't
The is another similar problem. Let's say I have an up-to-date compiled program and I want to recompile it with profiling turned on. In older ghc version adding -prof option caused all modules to be recompiled and the whole application relinked. Now I have to manually delete the application binary to force recompilation or use -fno-recomp. BTW. The -fno-recomp option has a very unintuitive name, at least for me. When I see "-fno-recomp", my brain thinks "no recompilation", meaning "no unneccesary recompilation", which is what --make does by default. Using "-fno-recomp" causes all modules to be recompiled, whether they changed or not. I think one of -frecomp or -fno-recomp-checking would be much clearer. But it's probably too late to change that... Best regards Tomasz