X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdocs%2Fusers_guide%2Fbugs.xml;h=ab0b9be7b9dab2f6d8d237e2f6fedc79f6abd5ab;hb=176c2483f443d499788663936cb3292cb1602cf5;hp=76ab87ddd70ed194d605774aeb6247b305a0fe72;hpb=b9de29ac3fbf5192049a0bcaf1ab0c8bbbd57a83;p=ghc-hetmet.git diff --git a/ghc/docs/users_guide/bugs.xml b/ghc/docs/users_guide/bugs.xml index 76ab87d..ab0b9be 100644 --- a/ghc/docs/users_guide/bugs.xml +++ b/ghc/docs/users_guide/bugs.xml @@ -46,7 +46,27 @@ Context-free syntax - + + + GHC is a little less strict about the layout rule when used + in do expressions. Specifically, the + restriction that "a nested context must be indented further to + the right than the enclosing context" is relaxed to allow the + nested context to be at the same level as the enclosing context, + if the enclosing context is a do + expression. + + For example, the following code is accepted by GHC: + + +main = do args <- getArgs + if null args then return [] else do + ps <- mapM process args + mapM print ps + + + + GHC doesn't do fixity resolution in expressions during parsing. For example, according to the Haskell report, the @@ -103,7 +123,7 @@ main = print (array (1,1) [(1,2), (1,3)]) -GHC's implemetation of array takes the value of an +GHC's implementation of array takes the value of an array slot from the last (index,value) pair in the list, and does no checking for duplicates. The reason for this is efficiency, pure and simple. @@ -145,6 +165,21 @@ checking for duplicates. The reason for this is efficiency, pure and simple. octal escapes, so it seems inconsistent not to do so for integers too. + + + isAlpha + + The Haskell 98 definition of isAlpha + is: + +isAlpha c = isUpper c || isLower c + + GHC's implementation diverges from the Haskell 98 + definition in the sense that Unicode alphabetic characters which + are neither upper nor lower case will still be identified as + alphabetic by isAlpha. + + @@ -248,9 +283,11 @@ checking for duplicates. The reason for this is efficiency, pure and simple. Known bugs or infelicities - In addition to the divergences from the Haskell 98 standard - listed above, GHC has the following known bugs or - infelicities. + The bug tracker lists bugs that have been reported in GHC but not + yet fixed: see the SourceForge GHC + page. In addition to those, GHC also has the following known bugs + or infelicities. These bugs are more permanent; it is unlikely that + any of them will be fixed in the short term. Bugs in GHC @@ -303,6 +340,17 @@ checking for duplicates. The reason for this is efficiency, pure and simple. url="http://research.microsoft.com/~simonpj/Papers/inlining"> Secrets of the GHC inliner. + + + GHC 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. This bug affects only the mode and + GHCi. + + @@ -321,15 +369,6 @@ checking for duplicates. The reason for this is efficiency, pure and simple. 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. - - On Windows, there's a GNU ld/BFD bug whereby it emits bogus PE object files that have more than @@ -356,6 +395,6 @@ Loading package javavm ... linking ... WARNING: Overflown relocation field (# re