[MLton] Crash "Vector.foldi2From" with MLton 20070826

Matthew Fluet fluet at tti-c.org
Mon Sep 8 08:54:18 PDT 2008


On Mon, 8 Sep 2008, Nicolas Bertolotti wrote:
> I am facing the following crash :
>                removeUnused4 starting
>                removeUnused4 raised in 0.09 + 0.00 (0% GC)
>             ssaSimplify raised in 78.67 + 14.34 (15% GC)
>      pre codegen raised in 120.05 + 29.36 (20% GC)
>   Compile SML raised in 120.05 + 29.36 (20% GC)
> MLton raised in 120.06 + 29.36 (20% GC)
> Vector.foldi2From
>
> Unfortunately, I can not identify a simple change in the code that 
> caused the crash because it appeared after we implement a complex change 
> in order to reduce the complexity of some big data types.
>
> You will find the full build log in attachment.

Logs are significantly less helpful than example programs.

> Also note that the crash is still reproducible using a compiler built from a recent checkout from the SVN trunk.
>
> Any idea is welcome.

If there is an internal compiler error, always try compiling with 
'-type-check true'.  An error like the above is usually indicative of the 
IL program being ill-formed.  For example, Vector.foldi2From is used by 
Vector.foreach, which is used by removeUnused to process matching vectors 
of actuals and formals; a mismatch in the lengths of the actuals and 
formals triggers the error in Vector.foldi2From, but the real error is 
that the IL is ill-formed: the lengths of the actuals and formals in a 
well-typed IL program should always be equal.  If the IL program is 
ill-formed, then the bug is actually an earlier pass that produced an 
ill-formed program.  Compiling with '-type-check true' should reveal which 
pass produced an ill-typed IL program.



More information about the MLton mailing list