[Oberon] Re. Compiler.Tool

easlab at absamail.co.za easlab at absamail.co.za
Fri Apr 30 18:06:07 CEST 2004

Peter E. wrote:

> I don't use the compiler often enough to remember 
> whether ":" is inserted automatically between SYS 
> and filename or I need to put it there.  
I have to take this admission, as further support for a
favourite topic of mine:
* one should not HAVE to 'remember', only to recognise.
* in trying to analyse what makes n-o so damn good,  
      I conclude that this fact is a main contributor:
       i) the most essential operations are eliminated/collapsed
      into subconcious/reflexes of mouse cording,  and the remainder
       ii) are available by RECOGNITION.   You never have to
          remember "was the file or command called "XyPvt" or "xYpvt";
          you just look and recognise.

These same attributes IMO made (at least) 2 other classical
killer-aps: spread-sheets and Norton commander [cloned to 
OS2, Win, Linux ...etc].
<end of side story>

Yes I too think the use of the ":" after <partitonName> is inconsistent.
But I've always been able to 'work around it'.
Because I REFUSE to remember arbitrary info, I make 'scripts'.
Here's one [which is an example of what I have for each of my 18
partitions] and which shows examples of the ":" present and missing.

----------   Called by:  Configuration.DoText  MountDevlp 
OFSTools.Mount  Devlp  AosFS  IDE1#24 ~
! OFSTools.Mount  Devlp  AosFS  IDE0#24  ~

! System.Directory  Devlp:*

! OFSTools.Unmount  Devlp

!  SmartDir.Directory Devlp:*\r3

!  Devlp:SearchTemplate

What I'm saying is that finding the answer to your question is
not as important as NOT LOSING it once you've found it.
> Seeing as how
> \P refers to path rather than partition, I understand
> ":" not being inserted automatically.  Nevertheless, 
> this example in Compiler.Tool helps.
> Compiler.Compile \OSYS: * 	

What does this mean ?

The 'authority' [before partition facilities existed] is that:
] an Oberon file name consists of the letters A to Z 
] (upper or lower case), the digits 0 to 9, and the period ".". 

Now [version 2001] ab:c  and ab:c:d show: "invalid name"
  on attempts to store, which confirms the syntax.
So SYS:dog is NOT a valid 'file name' by the above definition.
"SYS:" is the partition name and "dog" is the filename.

Looking at my 2001 version of Compiler.Tool :-
]	Ox	prefix output .Obj file with x

I guess the idea is to be able to create eg:
   Ver3<name>.Obj  from using Compiler.Compile \O Ver3 *
where the <name>.Mod frame is marked.

The intention is NOT to pre-ppend partition identifiers.
And if it did create SYS:<name>.Obj , that would be an unintended 
 consequence.   I don't feel like testing it.
Remember that the partiton facilities were developed independent
of the compiler.  One would hope that the partition facilities would
be orthogonal to compiler facilities.   They seem to be gathered in
OFS.Tool  ?

> Would also be nice to mention the distinction between
> an option applying to one file in a list and an option 
> applying to all files.

This doesn't apply to Compiler.Tool ?
What kind of operations are you refering to ?
It's starting to look like linux's 'make & makedev';
  now there's a can of worms !

== Chris Glur

More information about the Oberon mailing list