RE: deriving Read and Show

2000-02-24 Thread Simon Peyton-Jones

| When I use deriving Read and Show on many datatypes,
| both ghc and hugs don't work.

Your program defines 1000 data types, each of which
has derived Show and Read.  The latter take a fair amount
of code each to do, so GHC gets indigestion.  If you give it
enough heap it'll probably work.

We should probably try to make GHC take less space for data
type decls, because this does come up every now and again,
but it's not high on the agenda just now.  (If lots of other people
get bitten by this, please tell us and we'll move it up.)

Simon



deriving Read and Show

2000-02-22 Thread Jan Kort

Hi,

When I use deriving Read and Show on many datatypes,
both ghc and hugs don't work.
I've attached an example, to get the error, do:
hugs Main.hs
or:
ghc Main.hs
Hugs quits with the error message:
ERROR "Main.hs": Type constructor storage space exhausted
And ghc quits with:
GHC's heap exhausted;
while trying to allocate 0 bytes in a 67108864-byte heap;
use the `-Hsize' option to increase the total heap size.

It's not urgent though, I can work around it.

I use Hugs98 and my setup for ghc is:
(~/project/genast 76) uname -sr
SunOS 5.6
(~/project/genast 77) dmesg | grep SUNW
cpu0: SUNW,UltraSPARC-IIi (upaid 0 impl 0x12 ver 0x12 clock 270 MHz)
SUNW,m64B0 is /pci@1f,0/pci@1,1/SUNW,m64B@2
stdout is /pci@1f,0/pci@1,1/SUNW,m64B@2 major 35 minor 0
SUNW,hme0: CheerIO 2.0 (Rev Id = c1) Found
SUNW,hme0 is /pci@1f,0/pci@1,1/network@1,1
SUNW,hme0: Using Internal Transceiver
SUNW,hme0: 100 Mbps full-duplex Link Up
(~/project/genast 78) cat /etc/release 
  Solaris 2.6 5/98 s297s_hw3smccDesktop_09 SPARC
   Copyright 1998 Sun Microsystems, Inc.  All Rights Reserved.
   Assembled on 24 April 1998
(~/project/genast 79) ghc --version
The Glorious Glasgow Haskell Compilation System, version 4.06
(~/project/genast 80) gcc --version
egcs-2.91.66
(~/project/genast 81) 

  Jan

module Main(main) where

data X1 = X1 String deriving (Read,Show)
data X2 = X2 String deriving (Read,Show)
data X3 = X3 String deriving (Read,Show)
data X4 = X4 String deriving (Read,Show)
data X5 = X5 String deriving (Read,Show)
data X6 = X6 String deriving (Read,Show)
data X7 = X7 String deriving (Read,Show)
data X8 = X8 String deriving (Read,Show)
data X9 = X9 String deriving (Read,Show)
data X10 = X10 String deriving (Read,Show)
data X11 = X11 String deriving (Read,Show)
data X12 = X12 String deriving (Read,Show)
data X13 = X13 String deriving (Read,Show)
data X14 = X14 String deriving (Read,Show)
data X15 = X15 String deriving (Read,Show)
data X16 = X16 String deriving (Read,Show)
data X17 = X17 String deriving (Read,Show)
data X18 = X18 String deriving (Read,Show)
data X19 = X19 String deriving (Read,Show)
data X20 = X20 String deriving (Read,Show)
data X21 = X21 String deriving (Read,Show)
data X22 = X22 String deriving (Read,Show)
data X23 = X23 String deriving (Read,Show)
data X24 = X24 String deriving (Read,Show)
data X25 = X25 String deriving (Read,Show)
data X26 = X26 String deriving (Read,Show)
data X27 = X27 String deriving (Read,Show)
data X28 = X28 String deriving (Read,Show)
data X29 = X29 String deriving (Read,Show)
data X30 = X30 String deriving (Read,Show)
data X31 = X31 String deriving (Read,Show)
data X32 = X32 String deriving (Read,Show)
data X33 = X33 String deriving (Read,Show)
data X34 = X34 String deriving (Read,Show)
data X35 = X35 String deriving (Read,Show)
data X36 = X36 String deriving (Read,Show)
data X37 = X37 String deriving (Read,Show)
data X38 = X38 String deriving (Read,Show)
data X39 = X39 String deriving (Read,Show)
data X40 = X40 String deriving (Read,Show)
data X41 = X41 String deriving (Read,Show)
data X42 = X42 String deriving (Read,Show)
data X43 = X43 String deriving (Read,Show)
data X44 = X44 String deriving (Read,Show)
data X45 = X45 String deriving (Read,Show)
data X46 = X46 String deriving (Read,Show)
data X47 = X47 String deriving (Read,Show)
data X48 = X48 String deriving (Read,Show)
data X49 = X49 String deriving (Read,Show)
data X50 = X50 String deriving (Read,Show)
data X51 = X51 String deriving (Read,Show)
data X52 = X52 String deriving (Read,Show)
data X53 = X53 String deriving (Read,Show)
data X54 = X54 String deriving (Read,Show)
data X55 = X55 String deriving (Read,Show)
data X56 = X56 String deriving (Read,Show)
data X57 = X57 String deriving (Read,Show)
data X58 = X58 String deriving (Read,Show)
data X59 = X59 String deriving (Read,Show)
data X60 = X60 String deriving (Read,Show)
data X61 = X61 String deriving (Read,Show)
data X62 = X62 String deriving (Read,Show)
data X63 = X63 String deriving (Read,Show)
data X64 = X64 String deriving (Read,Show)
data X65 = X65 String deriving (Read,Show)
data X66 = X66 String deriving (Read,Show)
data X67 = X67 String deriving (Read,Show)
data X68 = X68 String deriving (Read,Show)
data X69 = X69 String deriving (Read,Show)
data X70 = X70 String deriving (Read,Show)
data X71 = X71 String deriving (Read,Show)
data X72 = X72 String deriving (Read,Show)
data X73 = X73 String deriving (Read,Show)
data X74 = X74 String deriving (Read,Show)
data X75 = X75 String deriving (Read,Show)
data X76 = X76 String deriving (Read,Show)
data X77 = X77 String deriving (Read,Show)
data X78 = X78 String deriving (Read,Show)
data X79 = X79 String deriving (Read,Show)
data X80 = X80 String deriving (Read,Show)
data X81 = X81 String deriving (Read,Show)
data X82 = X82 String deriving (Read,Show)
data X83 = X83 String deriving (Read,Show)
data X84 = X84 String deriving (Read,Show)
data X85 =