From: simonpj Date: Mon, 18 Nov 2002 14:57:09 +0000 (+0000) Subject: [project @ 2002-11-18 14:57:09 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~1440 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a4a1d352cb16d1e7017b52fc0b657c72db3e0224;p=ghc-hetmet.git [project @ 2002-11-18 14:57:09 by simonpj] Record some known bugs --- diff --git a/ghc/docs/users_guide/bugs.sgml b/ghc/docs/users_guide/bugs.sgml index 3967634..036bf00 100644 --- a/ghc/docs/users_guide/bugs.sgml +++ b/ghc/docs/users_guide/bugs.sgml @@ -271,11 +271,45 @@ main = print (array (1,1) [(1,2), (1,3)]) - Known bugs + Known bugs or infelicities -GHC has the following known bugs: +GHC has the following known bugs or infelicities: +Dangers with multiple Main modules. + + + GHC does not insist that module Main lives in a file called Main.hs. + This is useful if you want multiple versions of Main. But there's a danger: when + compiling module Main (regardless of what file it comes from), GHC looks for + the interface Main.hi; it uses this to get version information from the last + time it recompiled Main. The trouble is that this Main.hi + may not correspond to the source file being compiled. + + + Solution: remove Main.hi first. A better solution would be for GHC to + record the source-file filename in the interface file, or even an MD5 checksum. + + + + + +GHCi does not respect the default declaration in the module whose +scope you are in. Instead, for expressions typed at the command line, you always +get the default default-type behaviour; that is, default(Int,Double). + + +It would be better for GHCi to record what the default settings in each module are, and +use those of the 'current' module (whatever that is). + + + +GHCi does not keep careful track of what instance declarations are 'in scope' if they +come from other packages. +Instead, all instance declarations that GHC has seen in other packages are all in scope +everywhere, whether or not the module from that package is used by the command-line expression. + + GHC's inliner can be persuaded into non-termination using the standard way to encode recursion via a data type: