Amazingly, the external-core parser was parsing recursive
groups with only one binding as non-recursive.

Fixed now (in CVS)

Simon

| -----Original Message-----
| From: Kirsten Chevalier [mailto:[EMAIL PROTECTED]] 
| Sent: 20 May 2002 03:01
| To: [EMAIL PROTECTED]
| Subject: Bug in external Core front end (again)?
| 
| 
| When I compile the following program with -fext-core:
| 
| 
| main = do
|   s <- getLine
|   putStr (show (foo s))
| 
| foo xs = go xs
|   where go [] = []
|         go (x:xs) = (x:(go xs))
| 
| 
| and then try to compile the resulting .hcr file, I get the 
| following error 
| message:
| 
| Failed to find interface decl for `Main.go'
| from module `Main'
| 
| I'm using a copy of GHC built from CVS sources on May 13, and 
| the .hcr file is as follows:
| 
| %module Main
|   zddShow :: GHCziShow.ZCTShow (GHCziBase.ZMZN GHCziBase.Char) =
|     GHCziShow.zdfShowZMZN @ GHCziBase.Char GHCziShow.zdfShowChar;
|   main1 :: GHCziPrim.ZLzmzgZR
|          (GHCziPrim.Statezh GHCziPrim.RealWorld)
|          (GHCziPrim.Z2H
|           (GHCziPrim.Statezh GHCziPrim.RealWorld)
|           GHCziBase.Z0T) =
|     %case GHCziIOBase.zdfMonadIO
|     %of (tpl::GHCziBase.ZCTMonad GHCziIOBase.IO)
|       {GHCziBase.ZCDMonad
|        (tpl1::%forall a b . GHCziPrim.ZLzmzgZR
|                           (GHCziPrim.ZLzmzgZR
|                            (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                            (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) a))
|                           (GHCziPrim.ZLzmzgZR
|                            (GHCziPrim.ZLzmzgZR
|                             a
|                             (GHCziPrim.ZLzmzgZR
|                              (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                              (GHCziPrim.Z2H 
| (GHCziPrim.Statezh GHCziPrim.RealWorld) b)))
|                            (GHCziPrim.ZLzmzgZR
|                             (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                             (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) b))))
|        (tpl2::%forall a b . GHCziPrim.ZLzmzgZR
|                           (GHCziPrim.ZLzmzgZR
|                            (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                            (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) a))
|                           (GHCziPrim.ZLzmzgZR
|                            (GHCziPrim.ZLzmzgZR
|                             (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                             (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) b))
|                            (GHCziPrim.ZLzmzgZR
|                             (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                             (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) b))))
|        (tpl3::%forall a . GHCziPrim.ZLzmzgZR
|                         a
|                         (GHCziPrim.ZLzmzgZR
|                          (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                          (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) a)))
|        (tpl4::%forall a . GHCziPrim.ZLzmzgZR
|                         (GHCziBase.ZMZN GHCziBase.Char)
|                         (GHCziPrim.ZLzmzgZR
|                          (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                          (GHCziPrim.Z2H (GHCziPrim.Statezh 
| GHCziPrim.RealWorld) a))) ->
|        tpl1 @ (GHCziBase.ZMZN GHCziBase.Char) @ GHCziBase.Z0T
|        SystemziIO.getLine
|        (\ (s::GHCziBase.ZMZN GHCziBase.Char) ->
|             %let %rec
|                  {go :: GHCziPrim.ZLzmzgZR
|                         (GHCziBase.ZMZN GHCziBase.Char)
|                         (GHCziBase.ZMZN GHCziBase.Char) =
|                     \ (ds::GHCziBase.ZMZN GHCziBase.Char) ->
|                         %case ds %of (wild::GHCziBase.ZMZN 
| GHCziBase.Char)
|                           {GHCziBase.ZC
|                            (x::GHCziBase.Char) 
| (xs::GHCziBase.ZMZN GHCziBase.Char) ->
|                              GHCziBase.zdwZC @ GHCziBase.Char 
| x (go xs);
|                            GHCziBase.ZMZN ->
|                              GHCziBase.zdwZMZN @ GHCziBase.Char}}
|             %in SystemziIO.putStr
|                 (%case zddShow
|                  %of (tpl5::GHCziShow.ZCTShow (GHCziBase.ZMZN 
| GHCziBase.Char))
|                    {GHCziShow.ZCDShow
|                     (tpl6::GHCziPrim.ZLzmzgZR
|                            GHCziBase.Int
|                            (GHCziPrim.ZLzmzgZR
|                             (GHCziBase.ZMZN GHCziBase.Char)
|                             (GHCziPrim.ZLzmzgZR
|                              (GHCziBase.ZMZN GHCziBase.Char)
|                              (GHCziBase.ZMZN GHCziBase.Char))))
|                     (tpl7::GHCziPrim.ZLzmzgZR
|                            (GHCziBase.ZMZN GHCziBase.Char)
|                            (GHCziBase.ZMZN GHCziBase.Char))
|                     (tpl8::GHCziPrim.ZLzmzgZR
|                            (GHCziBase.ZMZN (GHCziBase.ZMZN 
| GHCziBase.Char))
|                            (GHCziPrim.ZLzmzgZR
|                             (GHCziBase.ZMZN GHCziBase.Char)
|                             (GHCziBase.ZMZN GHCziBase.Char))) ->
|                       tpl7 (go s)}))};
|   Main.zdmain :: GHCziPrim.ZLzmzgZR
|                (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                (GHCziPrim.Z2H
|                 (GHCziPrim.Statezh GHCziPrim.RealWorld)
|                 GHCziBase.Z0T) =
|     GHCziTopHandler.runMain @ GHCziBase.Z0T main1;
| 
| 
| 
| -- 
| Kirsten Chevalier * [EMAIL PROTECTED] * Often in error, 
| never in doubt _______________________________________________
| Glasgow-haskell-bugs mailing list 
| [EMAIL PROTECTED] 
| http://www.haskell.org/mailman/listinfo/glasgow-| haskell-bugs
| 
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to