<div dir="ltr">Hallo,<div><br></div><div>Stock Debian on a stock Dell E6430.</div><div><br></div><div><div>jan@janDell:~$ uname -a</div><div>Linux janDell 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux</div><div>jan@janDell:~$ </div></div><div><br></div><div>Peter, I agree with your statement. But I do get the right results. </div><div>But I get problems when compiling and testing.</div><div><br></div><div>It is Possible that my problems are caused by the trap I set, I do not know. </div><div>It manifests itself by corrupting the display windows. Or likely the underlying Texts since also the </div><div>Oberon 'middleclick for command' does not function right anymore after the corruption.</div><div><br></div><div>Here is the trap Procedure: </div><div>--------------------------------------------</div><div><div>(* Trap generator</div><div>*)</div><div>PROCEDURE Trap ();</div><div> VAR</div><div> m : INTEGER;</div><div>BEGIN</div><div> m := 0;</div><div> m := 3 DIV m;</div><div>END Trap;</div></div><div>-----------------------------------</div><div><br></div><div>And here is the resulting trap after I call the trap routine somewhere:</div><div><br></div><div>--------------------------------</div><div><div>TRAP 0 HALT statement (Linux X86 2015-07-18)</div><div>ImportGraph.Trap PC = 244</div><div><span class="" style="white-space:pre"> </span>m = 0</div><div>ImportGraph.ExtractSub PC = 2472</div><div><span class="" style="white-space:pre"> </span>ds = 00000000H</div><div><span class="" style="white-space:pre"> </span>dst = 00000000H</div><div><span class="" style="white-space:pre"> </span>i = -1</div><div><span class="" style="white-space:pre"> </span>j = 10</div><div><span class="" style="white-space:pre"> </span>k = 0</div><div><span class="" style="white-space:pre"> </span>len = 15</div><div><span class="" style="white-space:pre"> </span>m = 0</div><div><span class="" style="white-space:pre"> </span>modf = ".Mod"</div><div><span class="" style="white-space:pre"> </span>name = "ImportGraph.Mod"</div><div><span class="" style="white-space:pre"> </span>subs = ""</div><div><span class="" style="white-space:pre"> </span>ts = ""</div><div>ImportGraph.Compile PC = 5826</div><div><span class="" style="white-space:pre"> </span>S = 00000024H</div><div><span class="" style="white-space:pre"> </span>T = 00000000H</div><div><span class="" style="white-space:pre"> </span>beg = 0</div><div><span class="" style="white-space:pre"> </span>dotfile = 00000000H</div><div><span class="" style="white-space:pre"> </span>dottext = 00000000H</div><div><span class="" style="white-space:pre"> </span>end = 0</div><div><span class="" style="white-space:pre"> </span>m = 00000000H</div><div><span class="" style="white-space:pre"> </span>name = "ImportGraph.Mod"</div><div><span class="" style="white-space:pre"> </span>reduced = TRUE</div><div><span class="" style="white-space:pre"> </span>time = 0</div><div><span class="" style="white-space:pre"> </span>tmp = 00000000H</div><div><span class="" style="white-space:pre"> </span>v = 00000000H</div><div>Oberon.Call PC = 4860</div></div><div>-----------------------------------------------</div><div><br></div><div>note these lines:</div><div><br></div><div><div>ImportGraph.Compile PC = 5826</div><div><span class="" style="white-space:pre"> </span>S = 00000024H</div><div><span class="" style="white-space:pre"> </span>T = 00000000H</div></div><div><br></div><div>I know for sure that S and T are valid pointers: they are the Texts.Text and the Texts.Scanner used for </div><div>scanning the command line. And that works I do get the name of the file to compile into a graph</div><div>"ImportGraph.Mod"<br></div><div><br></div><div>But in the section with the Oberon.Call procedure the pointers display more or less normally.</div><div>Could you maybe put this trap routine somewhere in a test program and see what values you get for the pointers,</div><div>If they are valid values or not?</div><div><br></div><div>--------------------------------</div><div><div>Oberon.Call PC = 4860</div><div><span class="" style="white-space:pre"> </span>Mod = 09607020H</div><div><span class="" style="white-space:pre"> </span>P = ImportGraph.Compile PC = 5594</div><div><span class="" style="white-space:pre"> </span>i = 12</div><div><span class="" style="white-space:pre"> </span>j = 19</div><div><span class="" style="white-space:pre"> </span>name = "Compile"</div><div><span class="" style="white-space:pre"> </span>new = FALSE</div><div><span class="" style="white-space:pre"> </span>par = 09606EC0H</div><div><span class="" style="white-space:pre"> </span>res = 1</div><div><br></div><div>TextFrames.CallCmd PC = 11642</div><div><span class="" style="white-space:pre"> </span>F = 0966DD20H</div><div><span class="" style="white-space:pre"> </span>cmd = "ImportGraph.Compile"</div><div><span class="" style="white-space:pre"> </span>new = FALSE</div><div><span class="" style="white-space:pre"> </span>par = 09606EC0H</div><div><span class="" style="white-space:pre"> </span>pos = 19238</div><div><span class="" style="white-space:pre"> </span>res = 1</div><div><br></div><div>TextFrames.Call PC = 12531</div><div><span class="" style="white-space:pre"> </span>F = 0966DD20H</div><div><span class="" style="white-space:pre"> </span>S = 00000048H</div><div><span class="" style="white-space:pre"> </span>h = 0</div><div><span class="" style="white-space:pre"> </span>hint = ""</div><div><span class="" style="white-space:pre"> </span>i = 0</div><div><span class="" style="white-space:pre"> </span>new = FALSE</div><div><span class="" style="white-space:pre"> </span>pos = 19219</div><div><br></div><div>TextFrames.Edit PC = 19635</div><div><span class="" style="white-space:pre"> </span>F = 0966DD20H</div><div><span class="" style="white-space:pre"> </span>Keys = {1}</div><div><span class="" style="white-space:pre"> </span>M = 00000060H</div><div><span class="" style="white-space:pre"> </span>R = 0000004CH</div><div><span class="" style="white-space:pre"> </span>X = 69</div><div><span class="" style="white-space:pre"> </span>Y = 629</div><div><span class="" style="white-space:pre"> </span>beg = 0</div><div><span class="" style="white-space:pre"> </span>buf = 00000000H</div><div><span class="" style="white-space:pre"> </span>ch = 00000000X</div><div><span class="" style="white-space:pre"> </span>end = 0</div><div><span class="" style="white-space:pre"> </span>keysum = {1}</div><div><span class="" style="white-space:pre"> </span>pos = 19219</div><div><span class="" style="white-space:pre"> </span>text = 00000000H</div><div><span class="" style="white-space:pre"> </span>time = 0</div><div><br></div><div>TextFrames.Handle PC = 20720</div><div><span class="" style="white-space:pre"> </span>F = 0966DD20H</div><div><span class="" style="white-space:pre"> </span>F1 = 00000000H</div><div><span class="" style="white-space:pre"> </span>M = 00000030H</div><div><br></div><div>MenuViewers.Handle PC = 4365</div><div><span class="" style="white-space:pre"> </span>M = 00000028H</div><div><span class="" style="white-space:pre"> </span>Main = 0966DD20H</div><div><span class="" style="white-space:pre"> </span>Menu = 095FA4E0H</div><div><span class="" style="white-space:pre"> </span>V = 0966DDC0H</div><div><span class="" style="white-space:pre"> </span>V1 = 00000000H</div></div><div><br></div><div><div>Oberon.Loop PC = 8557</div><div><span class="" style="white-space:pre"> </span>M = 00000010H</div><div><span class="" style="white-space:pre"> </span>N = 0000000CH</div><div><span class="" style="white-space:pre"> </span>V = 0966DDC0H</div><div><span class="" style="white-space:pre"> </span>X = 69</div><div><span class="" style="white-space:pre"> </span>Y = 629</div><div><span class="" style="white-space:pre"> </span>ch = 0000007FX</div><div><span class="" style="white-space:pre"> </span>keys = {1}</div><div><span class="" style="white-space:pre"> </span>oldshift = {}</div><div><span class="" style="white-space:pre"> </span>shift = {}</div><div><br></div><div>System.Init PC = 18847</div><div><span class="" style="white-space:pre"> </span>F = 09630A60H</div><div><span class="" style="white-space:pre"> </span>S = 0000003CH</div><div><span class="" style="white-space:pre"> </span>T = 096308C0H</div><div><span class="" style="white-space:pre"> </span>Wt = 00000048H</div><div><span class="" style="white-space:pre"> </span>f = 00000000H</div><div><span class="" style="white-space:pre"> </span>ok = FALSE</div></div><div><br></div><div>------------------------------------------</div><div>At the same time I do not know what your memory map looks like, so I may be up the wrong path here.</div><div><br></div><div>But it is true that software that does run here does not run on your machine and that I do get strange corruption of my text buffer.</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 Tue, Oct 13, 2015 at 8:35 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">Hi Jan,<br>
<br>
which exact system are you using?<br>
<br>
As long as a direct call of this kind:<span class=""><br>
<br>
mask:="*.Mod"<br>
name:="ABCD.Mod"<br>
name:="123";<br>
IF Match(mask, name) THEN ...<br>
<br></span>
leads to wrong results, the matching problem is clearly caused by the algorithm. I don't have other systems, but I am sure, other systems will give same wrong result. The algorithm worked at conditions which can not be taken as guaranteed.<br>
<br>
Regards,<br>
Peter<span class=""><br>
<br>
Am 12.10.2015 um 14:08 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 class="">
Hallo,<br>
further to the report about my tests:<br>
<br>
Unfortunately I have to report that also on my system strange things happen.<br>
While doing some edit-compile-trap cycles to debug the dotty diagram<br>
software<br>
I notice strange things happening in my Edit viewer. Text goes missing<br>
at random and<br>
Oberon.Par.text and Oberon.Par.pos stop working as advertised.<br>
Also copying from the Oberon.Log misbehaved once.<br>
<br>
While I do this I keep a fresh copy open in Emacs that I update as and<br>
when required.<br>
So fortunately I can always reload the module text, and my disk file<br>
does not get corrupted.<br>
<br>
However, I suggest that we have a memory leak somewhere, in light of the<br>
various unexplained<br>
happenings.<br>
<br>
Cheers,<br>
<br>
j.<br>
<br>
<br>
<br>
On Sat, Oct 10, 2015 at 4:32 PM, Jan de Kruyf <<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a><br></span><div><div class="h5">
<mailto:<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a>>> wrote:<br>
<br>
PeterE,<br>
<br>
Here is the results of my tests.<br>
Setup:<br>
I copied PeterM's mod to the Enumerate procedure so I now also have<br>
sub directory listings, like you.<br>
<br>
It is very nifty in fact, Thank you Peter!.<br>
<br>
I left my Match procedure in place for the time being. Although PM's<br>
works, that is no issue.<br>
<br>
So this is what I put in the beginning of my Match procedure:<br>
-------------------------<br>
PROCEDURE Match(VAR mask, name: ARRAY OF CHAR): BOOLEAN;<br>
VAR m,n, om, on: LONGINT;<br>
f: BOOLEAN;<br>
BEGIN<br>
(* test *)<br>
n := 0; m := 0;<br>
WHILE (name[n] # 0X) DO INC(n) END;<br>
name [n + 1] := 055X;<br>
WHILE mask [m] # 0X DO INC (m) END;<br>
mask [m + 1] := 055X;<br>
Kernel.WriteString (name); (*======================*)<br>
Kernel.WriteLn;<br>
Kernel.WriteMemory (SYSTEM.ADR (name), 32);<br>
Kernel.WriteLn;<br>
(* end test *)<br>
m := 0; n := 0; om := -1;<br>
..<br>
..<br>
----------------------------------------------------<br>
So when I open Kernel.Log either on the Linux side or in Oberon I<br>
see the name string and what comes after it.<br>
<br>
Without the 2 WHILE loops I had multiple 0X's after the name string<br>
With those loops there is 0X, 055X as programmed for.<br>
<br>
In both instances I get a perfectly normal directory or subdirectory<br>
listing.<br>
QED.<br>
<br>
So at this moment with the information I have I will say that there<br>
is a serious issue with the OLR setup.<br>
<br>
You dont just get rubbish out of a piece of code that has worked for<br>
years and can be proven to be correct, no doubt.<br>
<br>
The next step would be that Peter Matthias gives us some information<br>
on how the Linux kernel interface works in OLR.<br>
I seem to have issues recognizing the assembly code (that says a lot<br>
about me of course :)<br>
But as a general rule I do know my way around in the kernel and how<br>
to talk to it.<br>
<br>
And could you send me perhaps the outcome of this incantation in a<br>
terminal on your machine:<br>
<br>
uname -a<br>
<br>
so we compare.<br>
<br>
cheers,<br>
<br>
j.<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
On Thu, Oct 8, 2015 at 10:37 PM, Jan de Kruyf<br></div></div><span class="">
<<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a> <mailto:<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a>>> wrote:<br>
<br>
I dont see it, but I will argue it tomorrow. This is getting<br>
like Emacs lisp programming :)<br>
<br>
And I will need to get the Kernel log going here to print a few<br>
things.<br>
Or maybe just set a trap, aha, that might work.<br>
<br>
Cheers,<br>
<br>
j.<br>
<br>
<br>
On Thu, Oct 8, 2015 at 9:59 PM, Peter Matthias<br></span><div><div class="h5">
<<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a> <mailto:<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a>>> wrote:<br>
<br>
Hello Jan,<br>
<br>
your Match procedure needs the filename to end with 0X, 0X<br>
(two times 0X). If the filesystem does that, it works. If<br>
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<br>
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 ...<br>
<br>
Regards,<br>
Peter<br>
<br>
<br>
Am 07.10.2015 um 17:51 schrieb Jan de Kruyf:<br>
<br>
Hallo Peter,<br>
<br>
Could you send me your test cases please.<br>
I would like to duplicate your findings and see where I<br>
went wrong.<br>
<br>
Cheers,<br>
<br>
j.<br>
<br>
<br>
On Tue, Oct 6, 2015 at 10:21 PM, Peter Matthias<br>
<<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a> <mailto:<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a>><br></div></div>
<mailto:<a href="mailto:PeterMatthias@web.de" target="_blank">PeterMatthias@web.de</a><div><div class="h5"><br>
<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<br>
data separately<br>
from OLR system data? As a specific example,<br>
OLR is installed<br>
in /home/peter/olr on the HDD. User data is in<br>
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<br>
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>
<<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>><br>
<br>
<<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>><br>
(and at <a href="http://oberon.wikidot.com/start" rel="noreferrer" target="_blank">http://oberon.wikidot.com/start</a> in "Get<br>
OLR" section)<br>
download, store in olr directory and compile the<br>
module.<br>
<br>
I did not update to Jan's matching procedure<br>
because I also get<br>
wrong matches there.<br>
<br>
Regards,<br>
Peter<br>
<br>
--<br>
<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a><br>
<mailto:<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a>><br></div></div>
<mailto:<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a><span class=""><br>
<mailto:<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a>>> mailing<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><br>
<mailto:<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank">Oberon@lists.inf.ethz.ch</a>> mailing list for ETH<br>
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>
<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>><br>
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>
<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 class="HOEnZb"><div class="h5">
--<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>