<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:small;"><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:small;"><div><pre>The latest RISC5 compiler handles this similar to the original Oberon compiler on Ceres: one single key per module. Thus, when the interface of a module is changed, *all* clients are invalidated. In the specific implementation, the key is simply the sum of all bytes in the symbol file, i.e. really is a checksum.</pre><pre><br></pre><pre>See procedure ORS.Export at <a href="http://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/ORB.Mod.txt" rel="nofollow" target="_blank">http://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/ORB.Mod.txt</a> .</pre><pre><br></pre><pre>AP</pre><pre><br></pre></div><div><br></div><div>--------------</div><div><br></div><div><b style="font-family: -webkit-standard;">Josef Templ</b><span style="font-family: -webkit-standard; font-size: medium;"><span class="ydpe41656dbApple-converted-space"> </span></span><a href="mailto:oberon%40lists.inf.ethz.ch?Subject=Re:%20Re%3A%20%5BOberon%5D%20OP2%20Vs%20Wirth%27s%20compiler.&In-Reply-To=%3CCAMfW0Z0oJ%3D%2BoUyiDeLm4CG7B1W%2B8D0DYCjpcJhq%2BjdD3EC0MVQ%40mail.gmail.com%3E" title="[Oberon] OP2 Vs Wirth's compiler." style="font-family: -webkit-standard;" rel="nofollow" target="_blank">josef.templ at gmail.com<span class="ydpe41656dbApple-converted-space"> </span></a><br style="font-family: -webkit-standard;"><i style="font-family: -webkit-standard;">Mon Jul 31 15:52:13 CEST 2017</i><span style="font-family: -webkit-standard; font-size: medium;"></span><p style="font-family: -webkit-standard;"></p><ul style="font-family: -webkit-standard;"><li>Previous message:<span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/010804.html" rel="nofollow" target="_blank">[Oberon] OP2 Vs Wirth's compiler.</a></li><li>Next message:<span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/010797.html" rel="nofollow" target="_blank">[Oberon] Re (2): Italicization of comments and emboldening of keywords.</a></li><li><b>Messages sorted by:</b><span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/date.html#10807" rel="nofollow" target="_blank">[ date ]</a><span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/thread.html#10807" rel="nofollow" target="_blank">[ thread ]</a><span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/subject.html#10807" rel="nofollow" target="_blank">[ subject ]</a><span class="ydpe41656dbApple-converted-space"> </span><a href="http://lists.inf.ethz.ch/pipermail/oberon/2017/author.html#10807" rel="nofollow" target="_blank">[ author ]</a></li></ul><hr style="font-family: -webkit-standard;"><pre>Besides the abstract syntax tree construction, one difference between OP2
and the original NW Oberon
compiler is the compatibility checking across module boundaries.
In OP2 there is a separate key (fingerprint) per exported object while in
the original compiler there is a single key
per module. Thus, whenever anything in a module is changed all clients are
invalidated. In OP2 only clients that
are using the changed object are invalidated. I don't know how this is
handled in the latest RISC5 compiler.

- JT</pre></div></div></div></body></html>