<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Tomas<div><br></div><div>It‘s true that Load() is recursive. Every recursive procedure contains some checks to see whether recursion is needed or not:</div><div><br></div><div>PROCEDURE factorial(x: INTEGER): INTEGER;</div><div>  BEGIN</div><div>    IF x<=1 THEN x :=1 ELSE x:= x*factorial(x-1)</div><div>    END</div><div>  RETURN x END facrorial;<br><br>Try to understand the checks in Load() and see why it always terminates.</div><div><br></div><div>Chapter 6 might help <a href="https://inf.ethz.ch/personal/wirth/ProjectOberon/PO.System.pdf">https://inf.ethz.ch/personal/wirth/ProjectOberon/PO.System.pdf</a></div><div><br><div dir="ltr">br<br><div>Jörg</div></div><div dir="ltr"><br><blockquote type="cite">Am 21.05.2020 um 08:00 schrieb Tomas Kral <thomas.kral@email.cz>:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>On Wed, 20 May 2020 19:00:13 +0200</span><br><span>Tomas Kral <thomas.kral@email.cz> wrote:</span><br><span></span><br><blockquote type="cite"><span>MenuViewers, TextFrames</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>But they both depend back on Oberon, which is not loaded, but to be</span><br></blockquote><blockquote type="cite"><span>loaded.</span><br></blockquote><span></span><br><span>Modules.Load recursion, how can it possibly be terminated?</span><br><span></span><br><span>Oberon -> MenuViewers -> Oberon ....</span><br><span></span><br><span>-- </span><br><span>Tomas Kral <thomas.kral@email.cz></span><br><span>--</span><br><span>Oberon@lists.inf.ethz.ch mailing list for ETH Oberon and related systems</span><br><span>https://lists.inf.ethz.ch/mailman/listinfo/oberon</span><br></div></blockquote></div></body></html>