Bug in external Core front end (again)?

Simon Peyton-Jones simonpj at microsoft.com
Tue May 21 10:04:46 EDT 2002


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:krc at uclink.berkeley.edu] 
| Sent: 20 May 2002 03:01
| To: glasgow-haskell-bugs at haskell.org
| 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 * krc at uclink.berkeley.edu * Often in error, 
| never in doubt _______________________________________________
| Glasgow-haskell-bugs mailing list 
| Glasgow-haskell-bugs at haskell.org 
| http://www.haskell.org/mailman/listinfo/glasgow-| haskell-bugs
| 



More information about the Glasgow-haskell-bugs mailing list