<div dir="auto"><div>Since we have a garbage collector, unlike the Astrobe system designed for microcontrollers, probably it is cleaner to implement dynamic arrays like in Oberon-2. I would rather pay the price of longer collection cycles (that only happens if dynamic arrays are used) than a longer prolog/epilog for each function that you pay at every invocation even if the feature is not used.</div><div dir="auto">Don't get me wrong, I like Chris's implementation very much.<br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Oct 12, 2017 21:07, "Andreas Pirklbauer" <<a href="mailto:andreas_pirklbauer@yahoo.com">andreas_pirklbauer@yahoo.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span style="font-family:monospace;white-space:pre-wrap">></span><div><span style="font-family:monospace;white-space:pre-wrap">> </span><font face="monospace"><span style="white-space:pre-wrap">I am afraid the frame pointer is really needed. </span></font></div><div><font face="monospace"><span style="white-space:pre-wrap">></span></font></div><div><br></div><div><font face="monospace"><span style="white-space:pre-wrap">I am now convinced that a</span></font><span style="font-family:monospace;white-space:pre-wrap">t least one additional element on the stack is needed.</span></div><div><span style="font-family:monospace;white-space:pre-wrap">Reading </span><span style="font-family:monospace;white-space:pre-wrap">Astrobe’s solution, </span><span style="white-space:pre-wrap;font-family:monospace">the FP indeed appears to be the easiest/best approach.</span></div><div><font face="monospace"><span style="white-space:pre-wrap"><br></span></font></div><div><font face="monospace"><span style="white-space:pre-wrap">(I tried to implement the “counter" idea and very quickly realized that </span></font><font face="monospace"><span style="white-space:pre-wrap">it *is*</span></font></div><div><span style="white-space:pre-wrap;font-family:monospace">in fact encoding essentially the same information as the FP; so c</span><span style="font-family:monospace;white-space:pre-wrap">ase closed).</span></div><div><br></div><div><font face="monospace"><span style="white-space:pre-wrap">I think using the stack for local dynamic arrays is worth adopting..</span></font></div><div><font face="monospace"><span style="white-space:pre-wrap"><br></span></font></div><div><br></div><div><font face="monospace"><span style="white-space:pre-wrap"><br></span></font></div><div><font face="monospace"><span style="white-space:pre-wrap"><br></span></font></div><div><div><br></div></div></div><br>--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" rel="noreferrer" target="_blank">https://lists.inf.ethz.ch/<wbr>mailman/listinfo/oberon</a><br>
<br></blockquote></div><br></div></div></div>