[Oberon] Module aliases - what is the correct way to handle them

Paul Reed paulreed at paddedcell.com
Fri Feb 14 06:20:09 CET 2020


Hi Andreas,

> http://github.com/andreaspirklbauer/Oberon-test-module-aliases/issues/1
> PS: Current iteration is ORB9, which however is still incomplete. Be 
> warned..

Thanks for this.  If I have it correctly, in summary:

1. "Invalid import order" is an implementation restriction to save the
compiler from having housekeeping code to stitch together the implicit
imports (re-exported types) and later explicit ones.  You have kindly
contributed alternative implementations which get round this limitation.

2. Prof. Wirth's current ORB.ThisModule code is incorrect, and should be
patched along the lines of Michael's fix, but comparing canonical 
orgnames, i.e.

   WHILE (obj # NIL) & (obj(Module).orgname # orgname) DO obj1 := obj; 
obj := obj1.next END ;

not

   WHILE (obj # NIL) & (obj.name # name) DO obj1 := obj; obj := obj1.next 
END ;

nor

   WHILE (obj # NIL) & (obj(Module).orgname # name) DO obj1 := obj; obj 
:= obj1.next END ;

Or is there more we need to look into at this stage?
Cheers,
Paul


More information about the Oberon mailing list