<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">See inline comments.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> On Sun Oct 15 13:39:18 CEST 2017 Chris wrote:</span></font><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">></span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> I believe access to intermediate variables can be done</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> without a static link. In the same way a programmer</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> would rewrite the source by adding reference parameters</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> for the used intermediate variables a compiler can
> do the same and pass one address for each used</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> variable. That does not complicate the regular case</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> without intermediate access at all.</span></font></div><div class=""><br class=""></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">Either way, *some* information needs to be passed on the</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">stack if one wants to access to the surrounding scope.</span></div><div class=""><br class=""></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">> </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Which objects are you thinking about here, which</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> are not covered by 1) or 3) ?</span></font></div><div class=""><br class=""></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">In Oberon-07 2) </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">follows </span><span style="font-family: monospace; white-space: pre-wrap;" class="">from 3) indeed. </span><span style="font-family: monospace; white-space: pre-wrap;" class="">Historically though,</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">3) </span><span style="font-family: monospace; white-space: pre-wrap;" class="">was not always implemented. But </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">you’re right: </span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">Now that</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">we are where we are, it is </span><span style="font-family: monospace; white-space: pre-wrap;" class="">sufficient to state 1) and 3).</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">> </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">The only necessary improvement I see compared to Oberon</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> is the removal of the hidden copy machine for structured</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> value parameters.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Made possible by postulating read-only semantics for</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">structured </span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">value parameters. Regarding</span></font><span style="font-family: monospace; white-space: pre-wrap;" class=""> the other changes</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">(leading to even </span><span style="font-family: monospace; white-space: pre-wrap;" class="">less data passed on the </span><span style="white-space: pre-wrap; font-family: monospace;" class="">stack) one may</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">debate whether </span><span style="white-space: pre-wrap; font-family: monospace;" class="">the </span><span style="white-space: pre-wrap; font-family: monospace;" class="">gain is material enough</span><span style="font-family: monospace; white-space: pre-wrap;" class="">. </span><span style="white-space: pre-wrap; font-family: monospace;" class="">Certainly</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">from a (stack) space </span><span style="font-family: monospace; white-space: pre-wrap;" class="">utilization perspective, </span><span style="font-family: monospace; white-space: pre-wrap;" class="">preventing</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">copy semantics for </span><span style="font-family: monospace; white-space: pre-wrap;" class="">structured types was the biggest change.</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">But there were other considerations, some academic/purist.</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">In any case, the question appears to be settled now.</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Specific implementations can of course “extend” the</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">language, as currently defined, in various ways.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">-AP</span></font></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>