RE: Bug in external Core front end (again)?

2002-05-21 Thread Simon Peyton-Jones

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

Bug in external Core front end (again)?

2002-05-19 Thread Kirsten Chevalier

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