Crashing Hugs for fun and profit
"Neil Mitchell" <[email protected]> Fri, 20 Apr 2007 01:42:52 +0100
| Newsgroups | gmane.comp.lang.haskell.hugs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi I've attached 3 separate bugs in the Hugs compiler, they are all a bit perplexing, and all seem to ruffle similar areas. I suspect there is an underlying memory bug, such as overwriting areas of memory or something. * Silly fails to derive something that should be obvious, as sent in a previous mail to hugs-users@ * Nonterm generates: > hugs Nonterm.hs -98 ERROR "Nonterm.hs":56 - Unresolved top-level overloading *** Binding : test *** Outstanding context : (Play b, Typeable b, Play ((bad type) ((bad type) ((ba d type) ((bad type) (bad type)))) ((bad type) ((bad type) ((bad type) ((bad type ) ((bad type) ((bad type) ((bad type) (bad type)))) ((bad type) ((bad type) ((ba Running with WinHugs causes an immediate shutdown. * Segfault generates: > hugs Segfault.hs -98 Unexpected signal With WinHugs I get an immediate shutdown. Thanks Neil _______________________________________________ Hugs-Bugs mailing list [email protected] http://www.haskell.org/mailman/listinfo/hugs-bugs
Silly.hs
(text/x-haskell, 371 B)
test :: T1 -> T1 test = test2 test2 :: C3 (T2 a) a => a -> a test2 = undefined data T1 = C1 deriving Show data T2 a = T2 a deriving Show class C1 a where class C2 a where class C3 a b where instance C1 T1 where instance C1 a => C1 (T2 a) where instance (C1 a, C2 a) => C3 T1 a where instance (C3 a (T2 a)) => C2 (T2 a) where instance (C2 (T2 a)) => C3 (T2 a) b where
Nonterm.hs
(text/x-haskell, 1015 B)
import Data.Typeable
import Data.Maybe
class Play on where
-- | Children are defined as the top-most items of type to
-- /starting at the root/.
class (Typeable from, Play to) => PlayEx from to where
-- | Children are defined as the top-most items of type to
-- /starting beneath the root/.
class (Typeable from, Typeable to, Play to) => PlayAll from to where
instance PlayAll a b => PlayEx a b where
-- * The Operations
everythingEx :: PlayEx from to => from -> [to]
everythingEx = undefined
data Expr = Val Int -- a literal value
deriving (Eq, Show)
typename_Expr = mkTyCon "Expr"
instance Typeable Expr where
instance Play Expr where
instance (Typeable a, Play a) => PlayAll Expr a where
data Foo a = Foo a
instance Typeable1 Foo where
instance Typeable a => Typeable (Foo a) where
test = everythingEx (Foo (Val 1))
instance (PlayAll a (Foo a)) => Play (Foo a) where
instance (Typeable b, Play (Foo a), PlayAll a b) => PlayAll (Foo a) b where
Segfault.hs
(text/x-haskell, 1 KB)
import Data.Typeable
import Data.Maybe
class Play on where
-- | Children are defined as the top-most items of type to
-- /starting at the root/.
class (Typeable from, Typeable to, Play to) => PlayEx from to where
-- | Children are defined as the top-most items of type to
-- /starting beneath the root/.
class (Typeable from, Typeable to, Play to) => PlayAll from to where
instance PlayAll a b => PlayEx a b where
-- * The Operations
everythingEx :: PlayEx from to => from -> [to]
everythingEx = undefined
data Expr = Val Int -- a literal value
deriving (Eq, Show)
typename_Expr = mkTyCon "Expr"
instance Typeable Expr where
instance Play Expr where
instance (Typeable a, Play a) => PlayAll Expr a where
data Foo a = Foo a
instance Typeable1 Foo where
instance Typeable a => Typeable (Foo a) where
test = everythingEx (Foo (Val 1))
instance (PlayAll a (Foo a)) => Play (Foo a) where
instance (Typeable b, Play (Foo a), PlayAll a b) => PlayAll (Foo a) b where