Ian Lynagh wrote:
On Mon, Oct 09, 2006 at 05:42:14PM -0700, Deborah Goldsmith wrote:

I was able to build this release using the 20060915 Intel build that's available, on 10.4.8. ghci seems to work OK (except for Readline),


That sounds like good news, thanks  :-)


but an attempt to compile gives:

$ ghc example25.hs
/usr/bin/ld: Undefined symbols:
_mtlzm1zi0_ControlziMonadziState_evalStateT_closure
_mtlzm1zi0_ControlziMonadziState_gets_closure
_mtlzm1zi0_ControlziMonadziState_zdf1_closure
_mtlzm1zi0_ControlziMonadziState_zdf7_closure
_mtlzm1zi0_ControlziMonadziState_zdf9_closure
_mtlzm1zi0_ControlziMonadziWriter_zdf5_closure
_mtlzm1zi0_ControlziMonadziWriter_zdf7_closure
collect2: ld returned 1 exit status

This didn't happen before.

Any ideas? Am I doing something wrong, or is there something wrong with the 20061008 snapshot?


Are you sure it used to work before, exactly like that? It looks like it
is failing to link because you didn't use "-package mtl" or "--make".

I think that

  ghc foo.hs

should imply --make, since that's usually what you want. The tricky thing is deciding exactly which command lines fall into this category, and devising a rule that isn't too obscure.

Perhaps the old "default is to compile everything in one-shot mode and link" should be replaced by "default is --make". There's a couple of problems with this: 'ghc -o prog foo.o bar.o' should just link as it does now, and 'ghc -c foo.hs' should *not* invoke --make. The -c flag does not however force one-shot mode - it used to, but now it just means "don't link" and works with --make too.

So perhaps the rule is:

  - if the command line doesn't contain any mode flags or -c
  - and there are one or more Haskell source files on the command line
  - then default to --make, otherwise default to one-shot compile & link

This means to get the '--make but don't link' behaviour you have to say 'ghc --make -c' rather than just 'ghc -c'.

It's slightly obscure, perhaps there's a better formulation? Or perhaps we should drop backwards compatibility and design a better command-line syntax?

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to