[clean-list] Clean compiler bug
Martin Wierich
martinw@cs.kun.nl
Tue, 06 Feb 2001 10:42:30 +0100
Hi Eli,
eli+@gs211.sp.cs.cmu.edu wrote:
>
> "Clean compiler exited abnormally" is all it tells me.
..
> Am I doing something illegal to trigger this bug? Or, in any event,
> is there a workaround?
You are doing nothing illegal, it's a compiler bug. The only workaround I've
found is to specialize your functions to certain kinds of arrays (this will also
speed up your code). You can choose between lazy ({a}), strict ({!a}) and
unboxed ({#a}) arrays. The latter doesn't make sense when the array elements
can't be unboxed, like in the critical functions of your code. Your program
compiles well if you change for instance the following function types
ev_pwc :: a u:(b v:(Event a)) -> .(c a)
| ArrayElem a & Array .b & Array .c, [u <= v]
ev_pwclist :: a [(.Time,a)] -> .(b a) | Array .b & ArrayElem a
into
ev_pwc :: a u:(b v:(Event a)) -> .{!a}
| Array b, [u <= v]
ev_pwclist :: a [(.Time,a)] -> .{!a}
or even
ev_pwc :: a {!Event a} -> .{!a}
cheers
Martin Wierich