[Oberon] Re. Compiler.Tool

easlab at absamail.co.za easlab at absamail.co.za
Sun May 2 14:10:44 CEST 2004

Peter E. wrote:

> cg> Yes I too think the use of the ":" after <partitonName> is inconsistent.
> I didn't intend to say that. How is it inconsistent?

On my 2001 version:
OFSTools.Unmount  Devlp   ==> Devlp: unmounted
       as does 
OFSTools.Unmount  Devlp:
  == inconsistent.

So is ":" part of the partition-ID or just a token separator ?
OFSTools.Mount  Devlp:  AosFS  IDE1#24 ~
  ==> Devlp:: mounted
So if ":" is a token separator what is "Devlp::"

Now with the following partitons mounted:
SYS: SYS: GCAosFS , C: GCFatFS , Persnl: GCAosFS , NoDocm: GCAosFS ,
OCGE: GCAosFS , Devlp:: GCAosFS    <--- !! NB !!
OFSTools.Unmount  Devlp:  == Devlp: not found
OFSTools.Unmount  Devlp:: == Devlp: not found
OFSTools.Unmount  Devlp == Devlp: not found

BTW I think you've forced me into a 'trap' where I can't close the Devlp:: 
partition.  That's what I meant by "learn to live with the bugs; just
'capture' the 'safe routes' [action-sets] in tools and scripts".
I expect partitions to have inconsistencies because they were an 
added-on facility.  

Consider, by analogy: 'a..de' is apparently a valid 5-char file-ID.
Since "." is a valid FileIDChar and NOT a token-delimiter.

> cg> The intention is NOT to pre-ppend partition identifiers.
> I don't follow.  Please elaborate.

Well, you've cut it out of the thread, but as I remember you use
Compiler.Compile \O<CharString>   *
with <CharString> = "SYS:"

You have to consider 2 independent levels of operations:
1. string manipulation,
2. valid operations on a string which is a fileID.

And since the Compiler.Tool operations  were designed before 
and independant of the partiton facilities/operations/commands,
the pre-ppend-ed<CharString> could be:
i) any CharString ?
ii) any valid fileID ?

If the /O option does the operation of prefixing  the 4 chars "SYS:",
that's understandable.   But the allocation of the resulting file in 
a non-default [eg. non SYS: partition] is another matter.
This whole discussion is getting very convoluted and 'lispy', but I'd
like to see if/how:
Compiler.Compile \O Partn2:  *
would put the *.Obj to partition: Partn2 ?!

I doubt it.   Naming the intended file and allocating it, using the
new partiton facilities are 2 separate operations.

You will remember that OFSTools operations need one operation
to build the text-strings which 'talk about' files, and a second 
operation to consume these text-strings to operate on the file(s).

== Chris Glur.

> Options, not operations.  They are listed 
> in the Compiler.Tool.

It's not certain that my ver 2001 Compiler.Tool looks like yours.
I'm analysing what the commands DO ie. their operation, NOT
that they are optional.  "optional" [like "feature"] is a marketing word:
it tells how the person [who decides to pay] interacts with the machine.

More information about the Oberon mailing list