|
RE: GHCi 5.04.2 segfaults on expression evaluation: msg#00016lang.haskell.glasgow.bugs
Yes, this is a bug all right. (The right mailing list is glasgow-haskell-bugs@xxxxxxxxxxx, not the Haskell mailing list, incidentally) I've fixed it in the HEAD. Whether the fix will make it into 5.04.4 (if we ever release that) is moot. But it'll certainly be in the next major release. Thanks for finding it Simon | -----Original Message----- | From: Carlos Eduardo Scheidegger [mailto:carlos.scheidegger@xxxxxxxxxxxx] | Sent: 07 March 2003 06:22 | To: haskell@xxxxxxxxxxx | | Hello. | | I think I've come across a GHCi bug. | | Using the following module, GHCi version 5.04.2 segfaults, apparently | trying to compute a type using functional dependencies. The segfault | happens when I try to calculate (v1 .> v2). I tried the code on Hugs, | and it answers | | Main> v1 .> v2 | V [] :: PSOp (Pop a Id) | | as expected. I think the problem is occuring in the line | | > instance Reverse a b c => CheckPS Id a b c | | because if I remove the line | | > instance Reverse a (Pop t b) c => Reverse (Pop t a) b c | | instead of segfaulting, GHCi rightfully complains: | | <interactive>:1: | No instance for (Reverse (Pop a Id) Id c) | arising from use of `.>' at <interactive>:1 | In the definition of `it': v1 .> v2 | | | GHC compiles the program just fine and runs it without any issues. I | installed GHC 5.04.2 using the RedHat 8.0 RPM's. If there's any | important information you may need from me, please, tell me and I will | be glad to help. I've also cross-posted this to the bug section at | sourceforge.net, and there the module file can be found as a separate | file. | | Thank you, | Carlos | | ------------------------------------------------------------------------ -------- | | > class ComposePS a b c | a b -> c where | > (.>) :: PSOp a -> PSOp b -> PSOp c | > (V a) .> (V b) = V (a ++ b) | | > instance (ConcatPS a b c, CheckPS c Id Id d) => ComposePS a b d | | ------------------------------------------------------------------------ -------- | | > data PSOp a = V [String] deriving Show | | > data Id | > data Push t rest | > data Pop t rest | | | > class Reverse a b c | a b -> c | > instance Reverse Id b b | > instance Reverse a (Pop t b) c => Reverse (Pop t a) b c | > instance Reverse a (Push t b) c => Reverse (Push t a) b c | | ------------------------------------------------------------------------ -------- | | > class ConcatPS a b c | a b -> c where | > ccat :: a -> b -> c | > instance ConcatPS Id a a | > instance ConcatPS a b c => ConcatPS (Pop t a) b (Pop t c) | > instance ConcatPS a b c => ConcatPS (Push t a) b (Push t c) | | ------------------------------------------------------------------------ -------- | | > class CheckPS a b c d | a b c -> d where | > check :: a -> b -> c -> d | > check _ _ _ = error "oki" | | > instance Reverse a b c => CheckPS Id a b c | | -- instance CheckPS a b (Push t c) d => CheckPS (Push t a) b c d | | > instance CheckPS a (Pop t b) Id d => CheckPS (Pop t a) b Id d | | -- instance CheckPS a b c d => CheckPS (Pop t a) b (Push t c) d | | -- instance (SameType t1 t2, CheckPS a b c d) => CheckPS (Pop t1 a) b (Push t2 c) | d | | > u = undefined | | > v1 :: PSOp (Pop a Id) | > v1 = V [] | | > v2 :: PSOp Id | > v2 = V [] | | _______________________________________________ | Haskell mailing list | Haskell@xxxxxxxxxxx | http://www.haskell.org/mailman/listinfo/haskell
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | `updateWithIndirection' undeclared, Ralf Hinze |
|---|---|
| Next by Date: | RE: floating point literals, Simon Peyton-Jones |
| Previous by Thread: | `updateWithIndirection' undeclared, Ralf Hinze |
| Next by Thread: | RE: floating point literals, Simon Peyton-Jones |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |