<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: [clean-list] Fusion crash --
&quot;collectVariables [BoundV</title></head><body>
<div>Tk wrote:</div>
<blockquote type="cite" cite>To reproduce get<br>
<br>
<a
href=
"https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/OptEnv"
>https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/Op<span
></span>tEnv</a><br>
<br>
and compile<br>
<br>
module test<br>
import OptGen<br>
Start&nbsp;&nbsp;&nbsp; = 1<br>
</blockquote>
<blockquote type="cite" cite>with fusion enabled.</blockquote>
<div><br></div>
<div>This is caused by a bug in the implementation of generics. The
arity</div>
<div>of a generated function is not correctly initialized.</div>
<div><br></div>
<div>You can fix this by changing this record update in the local
function</div>
<div>&quot;update_dcl_function&quot; in generics1.icl (near line 1900)
of the source</div>
<div>code of the compiler:</div>
<div><br></div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; { fun</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; &amp; ft_ident =
genericIdentToFunIdent gc_ident gc_type_cons</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; , ft_type = symbol_type</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; }<br>
</div>
<div>to:</div>
<div><br></div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; { fun</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; &amp; ft_ident =
genericIdentToFunIdent gc_ident gc_type_cons</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; , ft_type = symbol_type</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; , ft_arity =
symbol_type.st_arity</div>
<div
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp; }</div>
<div><br></div>
<div>(add line that updates &quot;ft_arity&quot;)</div>
<div><br></div>
<div>Then recompile the compiler and replace Tools/Clean
System/CleanCompiler.exe.</div>
<div><br></div>
<div>Kind regards,</div>
<div><br></div>
<div>John van Groningen</div>
</body>
</html>