<div dir="ltr"><div>I am curious Mark: did you get the recursion working?</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 30, 2024 at 1:25 PM Mark Atherton <<a href="mailto:markaren1@xtra.co.nz">markaren1@xtra.co.nz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">All,<br>
<br>
The cross assembler is x86 based, has a deterministic exit condition, <br>
and debug code showing return values. It only exits once, hence checking <br>
compiler constraints before looking closer look for stupidity on my part.<br>
<br>
Thanks for all the comments.<br>
<br>
Mark<br>
<br>
On 3/30/2024 12:15 PM, Volker Kuhlmann wrote:<br>
>> I am building an RPN expression evaluator for the uCPU assembler; I can't<br>
>> see any other way to go other than to use recursion to do the nested<br>
>> processing that I wish.<br>
> <br>
> I agree that that should have nothing to do with gcc, although it is<br>
> possible that gcc has quite a few bugs affecting correct code generation<br>
> for some µC cores. Those are gcc version dependent too.<br>
> <br>
> What architecture are you generating code for? Is your assembler running<br>
> on x86? It's safe to assume for that that crashes are caused by your<br>
> code, not gcc.<br>
> <br>
> Recursive programming relies on having a reliable exit condition, taken<br>
> before resources like stack run out. An easy way to check is to write<br>
> out the parameters for each call on a single line, one line per call,<br>
> and any unrestrained criteria show up at the bottom of the screen.<br>
> <br>
>> It could be that the compiler is not generating re-entrant code.<br>
> <br>
> Not for x86. More likely a variable which changes with each call is not<br>
> local. A compiler bug, if it's for esoteric cores, would still be down<br>
> on my list.<br>
> <br>
> Why don't you just compile for x86 and test in a high-resource<br>
> environment first?<br>
> <br>
> Volker<br>
> <br>
<br>
<br>
_______________________________________________<br>
Chchrobotics mailing list <a href="mailto:Chchrobotics@lists.ourshack.com" target="_blank">Chchrobotics@lists.ourshack.com</a><br>
<a href="https://lists.ourshack.com/mailman/listinfo/chchrobotics" rel="noreferrer" target="_blank">https://lists.ourshack.com/mailman/listinfo/chchrobotics</a><br>
Mail Archives: <a href="http://lists.ourshack.com/pipermail/chchrobotics/" rel="noreferrer" target="_blank">http://lists.ourshack.com/pipermail/chchrobotics/</a><br>
Meetings usually 3rd Monday each month. See <a href="http://kiwibots.org" rel="noreferrer" target="_blank">http://kiwibots.org</a> for venue, directions and dates.<br>
When replying, please edit your Subject line to reflect new subjects.</blockquote></div>