Re: [MLton] Finding source code corresponding to failed type check of SSA after simplification
Matthew Fluet <[email protected]> Tue, 16 Dec 2025 08:17:34 -0500
| Newsgroups | gmane.comp.lang.ml.mlton.devel |
|---|---|
| Message-ID | <CAMrhFL5dRTr+yrNtxaJ_AShviijvcy_ChzsVKBc6t0PmqhPXSw@mail.gmail.com> |
--===============8572264954444938336==
Content-Type: multipart/alternative; boundary="000000000000d0947d0646118d01"
--000000000000d0947d0646118d01
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
If MLton doesn't generate an error during type checking of the SML source,
but does trigger an internal IR type checking error, then that is (most
likely) a bug in the compiler itself.
You can keep the pre and post versions of individual passes with
`-keep-pass <regex>` (can be given multiple times). For example,
`-keep-pass closureConvert` will keep the SXML just before closure
conversion and the SSA just after.
Typically, to narrow in on internal compiler errors:
* compile with `-type-check true`; this will type check IRs after every
individual pass, not just at the end of the major simplification
pipelines. That will more likely identify the pass where the error occurs.
* then compile with `-type-check true -keep-pass <failing-pass>` for the
pass that triggered the internal type checking error. Now the identifiers
in the error message should correspond to the `prog.failingPass.post.ssa`
file. (The post optimization IR is dumped before the type checking.)
Compiling with a .sxml or .ssa file will generally be slower in the
front-end than compiling with an .mlb or .sml file. The SXML and SSA IRs
are much more verbose than SML source code and the parser combinator
parsing is slower than ml-lex/ml-yacc parsing. Once the source file is
parsed, the rest of compilation should be as fast as normal. But note that
compiler a .sxml file starts at the beginning of the SXML simplification
pipeline, while `-keep sxml` saves the SXML IR from the end of the SXML
simplification pipeline --- so the code will be run through the SXML
simplification pipeline a second time. (One can use the `-disable-pass
sxmlSimplify` to effectively skip all of the SXML simplification passes and
immediately resume with closure conversion.)
I wasn't able to compile
https://github.com/david-wang-0/temporal-planning-certification/tree/dev
$ cd ML
$ make build_certifier_unsafe
mkdir -p out/test
mlton -const 'MLton.safe false' -verbose 2 -default-type int64 -default-ann
'allowExtendedTextConsts true' -output out/plan_cert
plan_cert/src/plan_cert.mlb
MLton 20241230 starting
Compile SML starting
frontend starting
parseAndElaborate starting
Error: converter.mlb 13.7-13.28.
File Check_Unsolvability.ML does not exist.
...
But, presumably that is because I didn't do the Isabelle export of
generated SML code.
On Tue, Dec 16, 2025 at 5:08=E2=80=AFAM 'David Wang' via MLton-devel <
[email protected]> wrote:
> Dear MLton developers,
>
> I am writing to ask you for help to diagnose the cuase of a type-checking
> error that happens in an intermediate language
> <http://mlton.org/IntermediateLanguage> other than AST.
>
> I am currently attempting to compile a project
> <https://github.com/david-wang-0/temporal-planning-certification/tree/dev=
> using
> MLton.
>
> When I set the `-const 'MLton.safe false'` option, it compiles, but
> crashes with a segmentation fault before anything interesting happens.
>
> When I omit the option, I get the following error, which I guess is
> related (because replacing enough suspected lines in (.sml source files)
> with `raise` statements will eventually make parts of the code run):
> *```*
>
> *ssaSimplify:typeCheck starting ssaSimplify:typeCheck raised:
> Fail: TypeError (SSA): Ssa.TypeCheck.primApp (Array_copyArray(dBMEntry_0)
> ((dBMEntry_0) array, word64, (word64) array, word64, word64)) in val _:
> unit =3D prim Array_copyArray[dBMEntry_0] (x_2, global_0, x_1, global_0, =
x_0)
> in L_0 in x_3*
> *```*
>
> I found out that there is a flag to print the simplified SSA
> <http://mlton.org/SSA> code (`-keep ssa`), but not one for the SSA output
> by ClosureConvert <http://mlton.org/ClosureConvert>.
> Changing a few lines in a local copy of MLton allowed me to print the
> output of ClosureConvert.
> I added `val toFilePre =3D {display =3D Control.Layouts layouts, style =
=3D
> Control.ML, suffix =3D "ssa_pre"}` at
> https://github.com/MLton/mlton/blob/61baac7108fbd91413f0537b7a42d9a102345=
5f4/mlton/ssa/ssa-tree.fun#L1778
> .
> I also changed
> https://github.com/MLton/mlton/blob/61baac7108fbd91413f0537b7a42d9a102345=
5f4/mlton/main/compile.fun#L489 to
> print according to the value of the `keepSSA` variable.
>
> I have the unsimplified SSA code and the simplified version in files.
> I can't easily see which line causes the error, because indices in the
> error correspond to no indices in the SSA files.
> I found out that the indices that identify variables and functions (`x_0`=
,
> `x_1`, `global_0`, etc.) are assigned when they are first converted to
> strings by calls of `Layout.toString` for instance.
> Is there a way to find out which lines of SSA (or preferably .sml source)
> code cause the error?
>
> I also changed the code in
> https://github.com/MLton/mlton/blob/master/mlton/ssa/analyze.fun to print
> every statement that is being analyzed and output that to a file to maybe
> find out more.
> That way I get some idea of the order in which statements are checked in
> which order, but not much more.
>
> If I compile the SXML <http://mlton.org/SXML> files output by `-keep sxml=
`,
> I get a type error, but the type check after ClosureConvert passes when I
> compile directly from (.mlb, .sml, and .ML) source files.
> The unsimplified SSA after ClosureConvert and before SSASimplifly seems t=
o
> have no syntax errors, but MLton is taking a long time to process the fil=
e.
> Is that because MLton expects simplified SSA input?
>
> How do you suggest I continue in identifying the cause of the type-error
> in the .sml source code?
>
> With kind regards,
>
> David Wang
>
> _______________________________________________
> MLton-devel mailing list
> [email protected]; [email protected]
> https://lists.sourceforge.net/lists/listinfo/mlton-devel
>
--000000000000d0947d0646118d01
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,sa=
ns-serif;font-size:large">If MLton doesn't generate an error during typ=
e checking of the SML source, but does trigger an internal IR type checking=
error, then that is (most likely) a bug in the compiler itself.</div><div =
class=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:lar=
ge"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,sans-=
serif;font-size:large">You can keep the pre and post versions of individual=
passes with `-keep-pass <regex>` (can be given multiple times).=C2=
=A0 For example, `-keep-pass closureConvert` will keep the SXML just before=
closure conversion and the SSA just after.</div><div class=3D"gmail_defaul=
t" style=3D"font-family:arial,sans-serif;font-size:large"><br></div><div cl=
ass=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:large=
">Typically, to narrow in on internal compiler errors:</div><div class=3D"g=
mail_default" style=3D"font-family:arial,sans-serif;font-size:large">=C2=A0=
* compile with `-type-check true`; this will type check IRs after every ind=
ividual pass, not just at the end of the major simplification pipelines.=C2=
=A0 That will more likely identify the pass where the error occurs.</div><d=
iv class=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:=
large">=C2=A0* then compile with `-type-check true -keep-pass <failing-p=
ass>` for the pass that triggered the internal type checking error.=C2=
=A0 Now the identifiers in the error message should correspond to the `prog=
.failingPass.post.ssa` file.=C2=A0 (The post optimization IR is dumped befo=
re the type checking.)</div><div class=3D"gmail_default" style=3D"font-fami=
ly:arial,sans-serif;font-size:large"><br></div><div class=3D"gmail_default"=
style=3D"font-family:arial,sans-serif;font-size:large">Compiling with a .s=
xml or .ssa file will generally be slower in the front-end than compiling w=
ith an .mlb or .sml file.=C2=A0 The SXML and SSA IRs are much more verbose =
than SML source code and the parser combinator parsing is slower than ml-le=
x/ml-yacc parsing.=C2=A0 Once the source file is parsed, the rest of compil=
ation should be as fast as normal.=C2=A0 But note that compiler a .sxml fil=
e starts at the beginning of the SXML simplification pipeline, while `-keep=
sxml` saves the SXML IR from the end of the SXML simplification pipeline -=
-- so the code will be run through the SXML simplification pipeline a secon=
d time.=C2=A0 =C2=A0(One can use the `-disable-pass sxmlSimplify` to effect=
ively skip all of the SXML simplification passes and immediately resume wit=
h closure conversion.)</div><div class=3D"gmail_default" style=3D"font-fami=
ly:arial,sans-serif;font-size:large"><br></div><div class=3D"gmail_default"=
style=3D"font-family:arial,sans-serif;font-size:large">I wasn't able t=
o compile=C2=A0<a href=3D"https://github.com/david-wang-0/temporal-planning=
-certification/tree/dev">https://github.com/david-wang-0/temporal-planning-=
certification/tree/dev</a></div><div class=3D"gmail_default" style=3D"font-=
family:arial,sans-serif;font-size:large"><br></div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,sans-serif;font-size:large">$ cd ML</div><d=
iv class=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:=
large">$ make build_certifier_unsafe <br>mkdir -p out/test<br>mlton -const =
'MLton.safe false' -verbose 2 -default-type int64 -default-ann '=
;allowExtendedTextConsts true' -output out/plan_cert plan_cert/src/plan=
_cert.mlb<br>MLton 20241230 starting<br>=C2=A0 =C2=A0Compile SML starting<b=
r>=C2=A0 =C2=A0 =C2=A0 frontend starting<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0parseAndElaborate starting<br>Error: converter.mlb 13.7-13.28.<br>=C2=A0=
File Check_Unsolvability.ML does not exist.</div><div class=3D"gmail_defau=
lt" style=3D"font-family:arial,sans-serif;font-size:large">...</div><div cl=
ass=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:large=
"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,sans-se=
rif;font-size:large">But, presumably that is because I didn't do the Is=
abelle export of generated SML code.</div><div class=3D"gmail_default" styl=
e=3D"font-family:arial,sans-serif;font-size:large"><br></div></div><br><div=
class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Tue, Dec 16, 2025 at 5:08=E2=80=AFAM 'David Wang' via ML=
ton-devel <<a href=3D"mailto:[email protected]">[email protected]=
g</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
><div class=3D"msg7919876646569603211">
<div dir=3D"ltr">
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Dear MLton developers,</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I am writing to ask you for help to diagnose the cuase of a type-checking e=
rror that happens in an
<a style=3D"color:rgb(0,0,0)" title=3D"http://mlton.org/IntermediateLanguag=
e" id=3D"m_7919876646569603211OWAb7e0f176-032c-0f01-dfb4-26acb9ca3ceb" href=
=3D"http://mlton.org/IntermediateLanguage" target=3D"_blank">
intermediate language</a>=C2=A0other than AST.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I am currently attempting to compile a <a style=3D"color:rgb(0,0,0)" title=
=3D"https://github.com/david-wang-0/temporal-planning-certification/tree/de=
v" id=3D"m_7919876646569603211OWAec86ddab-7984-969c-7a3e-2e65693ffc7b" href=
=3D"https://github.com/david-wang-0/temporal-planning-certification/tree/de=
v" target=3D"_blank">
project</a>=C2=A0using MLton.=C2=A0</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
When I set the `-const 'MLton.safe false'` option, it compiles, but=
crashes with a segmentation fault before anything interesting happens.</di=
v>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
When I omit the option, I get the following error, which I guess is related=
(because replacing enough suspected lines in (.sml source files) with `rai=
se` statements will eventually make parts of the code run):</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>```</b></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFont,Aptos_=
MSFontService,monospace"><b>ssaSimplify:typeCheck starting
<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ssaSimpli=
fy:typeCheck raised: Fail: TypeError (SSA): Ssa.TypeCheck.primApp (Array_co=
pyArray(dBMEntry_0) ((dBMEntry_0) array, word64, (word64) array, word64, wo=
rd64)) in val _: unit =3D prim Array_copyArray[dBMEntry_0] (x_2, global_0, =
x_1, global_0,
x_0) in L_0 in x_3</b></span><b><br>
</b></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>```</b></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-size:12pt"><span style=3D"font-family:Aptos,Aptos_Embedd=
edFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;color:rgb(0,0,0)">I=
found out that there is a flag to print the simplified
<a title=3D"http://mlton.org/SSA" href=3D"http://mlton.org/SSA" target=3D"_=
blank">SSA</a>=C2=A0code (</span><span style=3D"font-family:Aptos,Aptos_Emb=
eddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;color:rgb(0,0,0)=
">`</span><span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedF=
ont,Aptos_MSFontService,monospace;color:rgb(0,0,0)">-keep
ssa</span><span style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFont=
Service,Calibri,Helvetica,sans-serif;color:rgb(0,0,0)">`)</span><span style=
=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvet=
ica,sans-serif;color:rgb(0,0,0)">,
but not one for the SSA output by <a title=3D"http://mlton.org/ClosureConv=
ert" id=3D"m_7919876646569603211OWA9dc433fc-4c31-7d9a-049a-552c2b0ca50f" hr=
ef=3D"http://mlton.org/ClosureConvert" target=3D"_blank">
ClosureConvert</a>.=C2=A0</span></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Changing a few lines in a local copy of MLton allowed me to print the outpu=
t of ClosureConvert.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt">
<span style=3D"color:rgb(0,0,0)">I added `</span><span style=3D"font-family=
:"Aptos Mono",Aptos_EmbeddedFont,Aptos_MSFontService,monospace;co=
lor:rgb(0,0,0)">val toFilePre=C2=A0=3D {display=C2=A0=3D Control.Layouts la=
youts, style=C2=A0=3D Control.ML, suffix=C2=A0=3D "ssa_pre"}</spa=
n><span style=3D"color:rgb(0,0,0)">`
at </span><span style=3D"color:rgb(0,0,0)"><a id=3D"m_7919876646569603211O=
WAdccf32ba-f354-d9cc-4ec8-1f083f4e0cc7" href=3D"https://github.com/MLton/ml=
ton/blob/61baac7108fbd91413f0537b7a42d9a1023455f4/mlton/ssa/ssa-tree.fun#L1=
778" target=3D"_blank">https://github.com/MLton/mlton/blob/61baac7108fbd914=
13f0537b7a42d9a1023455f4/mlton/ssa/ssa-tree.fun#L1778</a>.=C2=A0</span></di=
v>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I also changed <a id=3D"m_7919876646569603211OWAe9ecdf91-a42b-00a6-85aa-483=
9816280e3" href=3D"https://github.com/MLton/mlton/blob/61baac7108fbd91413f0=
537b7a42d9a1023455f4/mlton/main/compile.fun#L489" target=3D"_blank">
https://github.com/MLton/mlton/blob/61baac7108fbd91413f0537b7a42d9a1023455f=
4/mlton/main/compile.fun#L489</a>=C2=A0to print according to the value of t=
he `<span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFont,Ap=
tos_MSFontService,monospace">keepSSA</span>`
variable.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I have the unsimplified SSA code and the simplified version in files.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I can't easily see which line causes the error, because indices in the =
error correspond to no indices in the SSA files.</div>
<div style=3D"font-size:12pt;color:rgb(0,0,0)"><span style=3D"font-family:A=
ptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">I=
found out that the indices that identify variables and functions (`</span>=
<span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFont,Aptos_=
MSFontService,monospace">x_0</span><span style=3D"font-family:Aptos,Aptos_E=
mbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">`,
`</span><span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFo=
nt,Aptos_MSFontService,monospace">x_1</span><span style=3D"font-family:Apto=
s,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">`, `=
</span><span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFont=
,Aptos_MSFontService,monospace">global_0</span><span style=3D"font-family:A=
ptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">`=
,
etc.) are assigned when they are first converted to strings by calls of `<=
/span><span style=3D"font-family:"Aptos Mono",Aptos_EmbeddedFont,=
Aptos_MSFontService,monospace">Layout.toString</span><span style=3D"font-fa=
mily:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-se=
rif">`
for instance.</span></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Is there a way to find out which lines of SSA (or preferably .sml source) c=
ode cause the error?</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I also changed the code in <a id=3D"m_7919876646569603211OWA3432a5c2-30fe-3=
21e-b8b7-807c7f2463c6" href=3D"https://github.com/MLton/mlton/blob/master/m=
lton/ssa/analyze.fun" target=3D"_blank">
https://github.com/MLton/mlton/blob/master/mlton/ssa/analyze.fun</a>=C2=A0t=
o print every statement that is being analyzed and output that to a file to=
maybe find out more.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
That way I get some idea of the order in which statements are checked in wh=
ich order, but not much more.=C2=A0</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-size:12pt;color:rgb(0,0,0)"><span style=3D"font-family:A=
ptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif">I=
f I compile the
<a title=3D"http://mlton.org/SXML" id=3D"m_7919876646569603211OWA67ea0378-f=
70a-53e5-7c24-58b57a5eb40d" href=3D"http://mlton.org/SXML" target=3D"_blank=
">
SXML</a>=C2=A0files output by `</span><span style=3D"font-family:"Apto=
s Mono",Aptos_EmbeddedFont,Aptos_MSFontService,monospace">-keep sxml</=
span><span style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontServic=
e,Calibri,Helvetica,sans-serif">`, I get
a type error, but the type check after ClosureConvert passes when I compil=
e directly from (.mlb, .sml, and .ML) source files.</span></div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The unsimplified SSA after ClosureConvert and before SSASimplifly seems to =
have no syntax errors, but MLton is taking a long time to process the file.=
Is that because MLton expects simplified SSA input?</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
How do you suggest I continue in identifying the cause of the type-error in=
the .sml source code?</div>
<div id=3D"m_7919876646569603211Signature">
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
With kind regards,</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
David Wang</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
</div>
</div>
_______________________________________________<br>
MLton-devel mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">MLto=
[email protected]</a>; <a href=3D"mailto:[email protected]"=
target=3D"_blank">[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/mlton-devel" rel=3D=
"noreferrer" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo=
/mlton-devel</a><br>
</div></blockquote></div>
--000000000000d0947d0646118d01--
--===============8572264954444938336==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============8572264954444938336==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
MLton-devel mailing list
[email protected]; [email protected]
https://lists.sourceforge.net/lists/listinfo/mlton-devel
--===============8572264954444938336==--