<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Courier New";
        mso-fareast-language:EN-US;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE-CH link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Lyall<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>We have to clearly distinguish between "Oberon operating system" (a collection of modules with their APIs) and "Oberon programming language" (and its dialects).<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>"Contexts" are part of the Oberon language dialect/evolution "Active Oberon".<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>   MODULE xy <font color=red><span style='color:red'>IN Oberon;</span></font><o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>This can ONLY be written in "Active Oberon". Former Oberon dialects (namely Oberon and Oberon-2) do not offer contexts. So, when you run LinuxA2, you run the Oberon operating system A2 on top of Linux OS. And when you start the Oberon environment in A2, the legacy Oberon operating system runs on top of A2 that runs on top of Linux.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>The compiler in the A2 system understands “Active Oberon”, one of several extensions to Wirth’s original legacy Oberon language.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>There are papers describing the differences between the language dialect “Oberon” and “Oberon-2”, and there are papers describing the difference between the language “Oberon-2” and “Active Oberon”.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Now to the second part of your questions concerning the module “Text.Mod”.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>You have to know that the Oberon operating system has several versions/evolutions: it began with Wirth’s original V1 and his V2.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>But then it starts to get confusing: there are TWO different forks of V2, namely S3 and V4.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>The GUI in S3 is quite different from the original V2 and V4. V4 is closer to its original V2.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>S3 evolved to ETH Oberon and finally A2/Bluebottle. Development and evolution of V4 was moved over to Linz university.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>The TextDesc* = RECORD (Objects.ObjDesc) with the inheritance from Objects is part of S3 and ETH Oberon and A2.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>The TextDesc* = RECORD, without inheritance has roots in Wirth’s original V1, V2, V4 and now ProjectOberon.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Is somewhat unrelated to contexts..<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>br<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Jörg<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt;mso-fareast-language:DE-CH'>-----Original Message-----<br>From: Oberon [mailto:oberon-bounces@lists.inf.ethz.ch] On Behalf Of peter@easthope.ca<br>Sent: Friday, May 04, 2018 4:15 PM<br>To: oberon@lists.inf.ethz.ch<br>Subject: [Oberon] Re (2): Completeness; Ceres.</span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>From: =?utf-8?Q?J=C3=B6rg?= <<a href="mailto:joerg.straube@iaeth.ch"><font color=black><span style='color:windowtext;text-decoration:none'>joerg.straube@iaeth.ch</span></font></a>><o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Date: Thu, 3 May 2018 22:37:32 +0200<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>> <a href="http://www.ocp.inf.ethz.ch/wiki/Documentation/Language?action=3Ddownload&upn"><font color=black><span style='color:windowtext;text-decoration:none'>http://www.ocp.inf.ethz.ch/wiki/Documentation/Language?action=3Ddownload&upn</span></font></a>=<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>ame=3Dcontexts.pdf<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><a href="https://en.wikibooks.org/wiki/Oberon#cite_note-5"><font color=black><span style='color:windowtext;text-decoration:none'>https://en.wikibooks.org/wiki/Oberon#cite_note-5</span></font></a><o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>One of the earlier details added to the Wikibook.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>> The legacy Oberon OS gets the context âÄžOberonâÄœ and the new <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>> Bluebottle/A2 OS (coded in the programming language Active Oberon, a <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>> dialect of Oberon) gets the context âÄžA2âÄœ<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Currently I'm using the Oberon subsystem in Guenter's LinuxA2 Generic.  <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>This is copied from Oberon.Texts.Mod .<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>MODULE Texts IN Oberon; (** portable *)    (*JG 23.8.94*)<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>    ...<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>    TextDesc* = RECORD (Objects.ObjDesc)<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>      len*: LONGINT; (** Text consists of characters 0 to T.len - 1. *)<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>      obs: Objects.Library;     (* Library containing objects located in text. *)<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>      trailer: Piece;<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>      org: LONGINT; (*cache*)<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>      pce: Piece<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>    END;<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>So appears to be the Oberon context.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Martin Reiser's _The Oberon System_, page 139 has this.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>TYPE<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>  Text = POINTER TO TextDesc;<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>  TextDesc = RECORD<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>    len: LONGINT;<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>    notify: Notifier<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>  END;<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>That is Legacy Oberon or another?  Certainly not the Oberon context above.  <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Thanks,                         ... Lyall E.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>-- <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>This message was composed and transmitted by software designed to <o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>avoid the need, overhead and vulnerability of antivirus software.<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><o:p> </o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>123456789 123456789 123456789 123456789 123456789 123456789 123456789<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>Tel: +1 360 639 0202                      Pender Is.: +1 250 629 3757<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><a href="http://easthope.ca/Peter.html"><font color=black><span style='color:windowtext;text-decoration:none'>http://easthope.ca/Peter.html</span></font></a>              Bcc: peter at easthope. ca<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'>--<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><a href="mailto:Oberon@lists.inf.ethz.ch"><font color=black><span style='color:windowtext;text-decoration:none'>Oberon@lists.inf.ethz.ch</span></font></a> mailing list for ETH Oberon and related systems<o:p></o:p></span></font></p><p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US style='font-size:11.0pt'><a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon"><font color=black><span style='color:windowtext;text-decoration:none'>https://lists.inf.ethz.ch/mailman/listinfo/oberon</span></font></a><o:p></o:p></span></font></p></div></body></html>