Hello,<br><br>  Both solutions you proposed worked.  Oddly I think, may-page-heap true was significantly faster than -drop-pass deepFlatten.  If you like, you can grab my program at<br><br><a href="http://github.com/seanmcl/imogen.git">http://github.com/seanmcl/imogen.git</a><br>

<br>In case you don&#39;t get to it for awhile, the commit you want is <br><br><a href="http://github.com/seanmcl/imogen/commit/6f6d8f6b224a3b38aa1fc259a7dc6b8149ef1c62">6f6d8f6b224a3b38aa1f</a><br><br>Once you download the sources, you need to set the environment variable IMOGEN_HOME, then cd to modal-prop, then run make. <br>

<br>Best,<br><br>Sean<br><br><br><div class="gmail_quote">On Tue, Jun 1, 2010 at 1:40 PM, Matthew Fluet <span dir="ltr">&lt;<a href="mailto:matthew.fluet@gmail.com">matthew.fluet@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im">On Tue, Jun 1, 2010 at 12:18 PM, Sean McLaughlin &lt;<a href="mailto:seanmcl@gmail.com">seanmcl@gmail.com</a>&gt; wrote:<br>
&gt;   I&#39;m getting an out-of-memory error from MLton, though I have 4GB of<br>
&gt; memory.  I don&#39;t understand it because my program<br>
&gt; is significantly smaller than the MLton source.  Is there a way around this?<br>
&gt;<br>
</div><div class="im">&gt;      ssa2Simplify starting<br>
&gt;         typeCheck starting<br>
&gt;         typeCheck finished in 0.55 + 0.00 (0% GC)<br>
&gt;         deepFlatten starting<br>
&gt; Out of memory.  Unable to allocate heap with 1,192,034,304 bytes.<br>
<br>
</div>There are some performance issues with the deep flatten pass, where it<br>
consumes an excessive amount of memory, as you observe.  See some<br>
notes at the end of<br>
  <a href="http://mlton.org/DeepFlatten" target="_blank">http://mlton.org/DeepFlatten</a><br>
<br>
The simplest course of action is to compile with &quot;-drop-pass deepFlatten&quot;.<br>
<br>
You are also running up against the maximum amount of contiguous<br>
memory that you can get from the operating system.  Due to MLton&#39;s<br>
heap resizing policy, it can sometimes grow one heap so large that it<br>
can&#39;t allocate another (larger) heap.  You can also try compiling with<br>
&quot;@MLton may-page-heap true&quot;, which will allow MLton to write the heap<br>
to a temporary file, free the heap, and then try to allocate a new<br>
heap in a less constrained virtual address space.  MacOSX should be<br>
able to give you about 2.1GiB of heap.  But, if DeepFlatten is<br>
seriously over allocating, then that might not help.<br>
<br>
In any case, if you can send a snapshot of the program that<br>
demonstrates the out-of-memory, then it might help to have another<br>
example of the issue.<br>
</blockquote></div><br>