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"
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