[clean-list] Fusion crash -- "collectVariables [BoundVar] (transform, 1227)"

John van Groningen johnvg at cs.ru.nl
Thu Dec 20 16:31:32 MET 2007


Tk wrote:
>To reproduce get
>
><https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/OptEnv>https://cleanoptenv.svn.sourceforge.net/svnroot/cleanoptenv/trunk/OptEnv
>
>and compile
>
>module test
>import OptGen
>Start    = 1
>
>with fusion enabled.

This is caused by a bug in the implementation of generics. The arity
of a generated function is not correctly initialized.

You can fix this by changing this record update in the local function
"update_dcl_function" in generics1.icl (near line 1900) of the source
code of the compiler:

                 { fun
                 & ft_ident = genericIdentToFunIdent gc_ident gc_type_cons
                 , ft_type = symbol_type
                 }

to:

                 { fun
                 & ft_ident = genericIdentToFunIdent gc_ident gc_type_cons
                 , ft_type = symbol_type
                 , ft_arity = symbol_type.st_arity
                 }

(add line that updates "ft_arity")

Then recompile the compiler and replace Tools/Clean System/CleanCompiler.exe.

Kind regards,

John van Groningen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.science.ru.nl/pipermail/clean-list/attachments/20071220/b41cd921/attachment.html


More information about the clean-list mailing list