Hi Tom,<br><br>Thanks alot for the information. Those are great places to start. As far as loading the bytecode goes, for now I am still looking into that, but will have to load directly from memory, as you mentioned.<br><br>
Cheers,<br>&lt;/Alexis&gt;<br><br><div><span class="gmail_quote">On 7/24/07, <b class="gmail_sendername">Tom Shackell</b> &lt;<a href="mailto:shackell@cs.york.ac.uk">shackell@cs.york.ac.uk</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Alexis,<br><br>Alexis Morris wrote:<br>&gt; Hi all,<br> &gt; So far this all compiles fine, and will fit into ROM but I have yet to<br>&gt; test it...I would like to figure out what else I can skim...I really<br>&gt; want to be able to run it from RAM (64KB) eventually.
<br>&gt;<br>&gt; My question at the moment is whether I can remove stuff like pretty.c,<br>&gt; and sanity.c (and possibly jonkers) without having a major breakdown of<br>&gt; the system.<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/profile.c \
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/stable.c \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/pretty.c \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/sanity.c \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/stopcopy.c \<br><br>These should be safe to remove, indeed stopcopy isn&#39;t used at all.<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/Concurrent.c \
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/IORef.c \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/PackedString.c \<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/RuntimeAPI.c \<br><br>These should be possible to remove, Concurrent may be a bit more tricky<br>(but I think it&#39;s all optional).
<br><br> &gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/Array.c \<br><br>It is used in Numeric but you&#39;ll probably never used the function that<br>uses it (hence you should be able to remove it).<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/WrapPrimitive.c \<br><br>
You can remove any definitions made redundant by removing other things.<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; $(VM_DIR)/System.c \<br><br>Might be able to trim it down, primExitWith is essential but everything<br>else is not.<br><br>You might try removing jonkers (and mark) but of course you&#39;ll lose
<br>garbage collection. Since you&#39;ve only got a small amount of memory and<br>Haskell programs allocate memory like crazy I suspect the garbage<br>collector is going to be essential.<br><br>The other question is how are you loading the bytecode program? In
<br>standard Yhi it&#39;s loaded from the filesystem but I&#39;m guessing the<br>embedded processor doesn&#39;t have a file system? In which case I guess you<br>must load it directly from memory some how. If that&#39;s true then you
<br>might be able to remove some of the loading code (but maybe not, depends<br>on how you do it).<br><br>After that it starts getting hard to remove much more. Make sure debug<br>information is not added and change gcc from &quot;optimise for speed&quot; to
<br>&quot;optimize for size&quot;.<br><br>Hope that helps :-)<br><br><br>Tom<br></blockquote></div><br><br clear="all"><br>-- <br>&lt;/Alexis&gt;