The following program should print "e" but gets an execution-time error: Program error: {slist Bool_True} data Set = Leaf Int | Empty selem Empty = False slist Empty = "e" main = do let t = not $ selem Empty if t || t then do let e = Empty putStrLn (slist e) else return () This is Hugs 98 December 2001 built for Solaris. Current settings: +fewuiR -stgl.qQkI -h2500000 -p"%s> " -r$$ -c40 Compatibility : Haskell 98 (+98) Tried it also on Windows 2000 and got an access violation. Scott Turner Member of Technical Staff, Product Development, MKS Inc., www.mks.com Burlington, MA, USA; tel: 781-359-3309; fax: 781-359-3399 Build Better Software
Hi Scott, thanks for the report; this bug was fixed in the CVS repository version of Hugs a couple of weeks ago. The CVS contents is in-flux at the moment, so if you don't want to brave the waters, change machine.c:asEVAL() to: static Void local asEVAL() { /* load and eval stack element */ instrNone(iEVAL); srsp--; } and, I believe, you should be on your merry way again.. hth --sigbjorn ----- Original Message ----- From: "Scott Turner" <sturner@mks.com> To: <hugs-bugs@haskell.org> Sent: Friday, June 14, 2002 10:38 Subject: odd Hugs runtime error
The following program should print "e" but gets an execution-time error: Program error: {slist Bool_True}
data Set = Leaf Int | Empty selem Empty = False slist Empty = "e"
main = do let t = not $ selem Empty if t || t then do let e = Empty putStrLn (slist e) else return ()
This is Hugs 98 December 2001 built for Solaris. Current settings: +fewuiR -stgl.qQkI -h2500000 -p"%s> " -r$$ -c40 Compatibility : Haskell 98 (+98)
Tried it also on Windows 2000 and got an access violation.
Scott Turner Member of Technical Staff, Product Development, MKS Inc., www.mks.com Burlington, MA, USA; tel: 781-359-3309; fax: 781-359-3399 Build Better Software
participants (2)
-
Scott Turner -
Sigbjorn Finne