<div dir="ltr">Hallo,<div>further to the  report about my tests:</div><div><br></div><div>Unfortunately I have to report that also on my system strange things happen.</div><div>While doing some edit-compile-trap cycles to debug the dotty diagram software</div><div>I notice strange things happening in my Edit viewer. Text goes missing at random and </div><div>Oberon.Par.text and Oberon.Par.pos stop working as advertised.</div><div>Also copying from the Oberon.Log misbehaved once.</div><div><br></div><div>While I do this I keep a fresh copy open in Emacs that I update as and when required.</div><div>So fortunately I can always reload the module text, and my disk file does not get corrupted.</div><div><br></div><div>However, I suggest that we have a memory leak somewhere, in light of the various unexplained </div><div>happenings.</div><div><br></div><div>Cheers,</div><div><br></div><div>j.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 10, 2015 at 4:32 PM, Jan de Kruyf <span dir="ltr"><<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">PeterE,<div><br></div><div>Here is the results of my tests.</div><div>Setup:</div><div>I copied PeterM's mod to the Enumerate procedure so I now also have sub directory listings, like you.</div><div><br></div><div>It is very nifty in fact, Thank you Peter!.</div><div><br></div><div>I left my Match procedure in place for the time being. Although PM's works, that is no issue.</div><div><br></div><div>So this is what I put in the beginning of my Match procedure:</div><div>-------------------------</div><div><span class=""><div>PROCEDURE Match(VAR mask, name: ARRAY OF CHAR): BOOLEAN;</div><div>VAR m,n, om, on: LONGINT;</div><div><span style="white-space:pre-wrap">       </span> f: BOOLEAN;</div><div>BEGIN</div></span><div>   (* test *)</div><div>   n := 0; m := 0;</div><div>   WHILE (name[n] # 0X) DO INC(n) END;</div><div>   name [n + 1] := 055X;</div><div>   WHILE mask [m] # 0X DO INC (m) END;</div><div>   mask [m + 1] := 055X;</div><div>   </div><div>   </div><div>   Kernel.WriteString (name); (*======================*)</div><div>   Kernel.WriteLn;</div><div>   Kernel.WriteMemory (SYSTEM.ADR (name), 32);</div><div>   Kernel.WriteLn;</div><div>   (* end test *)</div><span class=""><div>   </div><div><span style="white-space:pre-wrap">        </span>m := 0; n := 0; om := -1;</div></span></div><div>..</div><div>..</div><div>----------------------------------------------------</div><div>So when I open Kernel.Log either on the Linux side or in Oberon I see the name string and what comes after it.</div><div><br></div><div>Without the 2 WHILE loops I had multiple 0X's after the name string</div><div>With those loops there is 0X, 055X as programmed for.</div><div><br></div><div>In both instances I get a perfectly normal directory or subdirectory listing.</div><div>QED.</div><div><br></div><div>So at this moment with the information I have I will say that there is a serious issue with the OLR setup.</div><div><br></div><div>You dont just get rubbish out of a piece of code that has worked for years and can be proven to be correct, no doubt.</div><div><br></div><div>The next step would be that Peter Matthias gives us some information on how the Linux kernel interface works in OLR.</div><div>I seem to have issues recognizing the assembly code (that says a lot about me of course :)</div><div>But as a general rule I do know my way around in the kernel and how to talk to it.</div><div><br></div><div>And could you send me perhaps the outcome of this incantation in a terminal on your machine:</div><div><br></div><div>uname -a</div><div><br></div><div>so we compare.</div><div><br></div><div>cheers,</div><div><br></div><div>j.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 8, 2015 at 10:37 PM, Jan de Kruyf <span dir="ltr"><<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I dont see it, but I will argue it tomorrow. This is getting like Emacs lisp programming :)<div><br></div><div>And I will need to get the Kernel log going here to print a few things.</div><div>Or maybe just set a trap, aha, that might work.</div><div><br></div><div>Cheers,</div><div><br></div><div>j.</div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 8, 2015 at 9:59 PM, Peter Matthias <span dir="ltr"><<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Jan,<br>
<br>
your Match procedure needs the filename to end with 0X, 0X (two times 0X). If the filesystem does that, it works. If not, not.<br>
<br>
Adding<br>
n:=0;<br>
WHILE name[n]#0 DO INC(n) END;<br>
name[n+1]:=0X;<br>
at the beginning of your Match procedure obviously fixes the problem.<br>
<br>
You can also call Match directly to see the bug:<br>
mask:="*.Mod"<br>
name:="ABCD.Mod"<br>
name:="123";<br>
IF Match(mask, name) THEN ...<span><br>
<br>
Regards,<br>
        Peter<br>
<br>
<br>
Am 07.10.2015 um 17:51 schrieb Jan de Kruyf:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
Hallo Peter,<br>
<br>
Could you send me your test cases please.<br>
I would like to duplicate your findings and see where I went wrong.<br>
<br>
Cheers,<br>
<br>
j.<br>
<br>
<br>
On Tue, Oct 6, 2015 at 10:21 PM, Peter Matthias <<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a><br></span><span>
<mailto:<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a>>> wrote:<br>
<br>
    Am 23.09.2015 um 17:26 schrieb Peter Easthope:<br>
<br>
        Hello,<br>
<br>
        In OLR, has anyone found a way to store user data separately<br>
        from OLR system data?  As a specific example, OLR is installed<br>
        in /home/peter/olr on the HDD.  User data is in a SDHC card.<br>
        The SDHC can be mounted at /home/peter/olr/SDHC.<br>
<br>
        ls /home/peter/olr/SDHC/* shows the contents of the SDHC.<br>
        System.Directory ./SDHC/* ~ shows nothing.<br>
<br>
        Does anyone have a clever solution?<br>
<br>
<br>
    Hi Peter,<br>
<br>
    I updated OLR.FileDir.Mod . File is here:<br>
    <a href="http://oberon.wdfiles.com/local--files/start/OLR.FileDir.Mod" rel="noreferrer" target="_blank">oberon.wdfiles.com/local--files/start/OLR.FileDir.Mod</a><br></span>
    <<a href="http://oberon.wdfiles.com/local--files/start/OLR.FileDir.Mod" rel="noreferrer" target="_blank">http://oberon.wdfiles.com/local--files/start/OLR.FileDir.Mod</a>><span><br>
    (and at <a href="http://oberon.wikidot.com/start" rel="noreferrer" target="_blank">http://oberon.wikidot.com/start</a> in "Get OLR" section)<br>
    download, store in olr directory and compile the module.<br>
<br>
    I did not update to Jan's matching procedure because I also get<br>
    wrong matches there.<br>
<br>
    Regards,<br>
             Peter<br>
<br>
    --<br></span>
    <a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a> <mailto:<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a>> mailing<span><br>
    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/mailman/listinfo/oberon</a><br>
<br>
<br>
<br>
<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">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/mailman/listinfo/oberon</a><br>
<br>
</span></blockquote><div><div>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">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/mailman/listinfo/oberon</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>