[Oberon] Oberon for a C++ user.

chris chris at gcjd.org
Fri Oct 7 20:46:28 CEST 2016


On Fri, 7 Oct 2016 17:17:22 +0000, Skulski, Wojciech wrote:
> I do agree that code unloading is infrequent and it needs not be time 
> critical. At the same time, I insist that code unloading needs be 
> robust. It should not lead to system instability. Also note, that the 
> user needs not be a developer to unload the code. A regular user can 
> unload by accident while interclicking the mouse. Or the user may 
> want to unload code after being done with an application, in order to 
> make space for another application. 

There are no applications in Oberon. To the other points I agree.

> The only practical difference between the Oberon System and other 
> OS's is that unloading the Oberon application happens on demand. 

The major difference is, that a module is dynamically linked into the 
Oberon system like an object file into the Firefox process for example. 
Try unloading parts of Firefox that where in different object files 
during (static) link time of Firefox while Firefox is running and 
replace them with a different version. Good luck!

> The only difference seems to be that we call system instability a bug 
> under Windows, and a feature under Oberon. And this is backwards in 
> my opinion. We need to make unloading robust and safe, rather than 
> trying to convince ourselves that it is an infrequent nuisance that 
> does not need to be robust.

I have not seen any evidence yet that a double indirection scheme is 
more robust than a garbage collector that operates on direct pointers. 
The common garbage collector for the Oberon heap works this way and I 
have not heard of any problems related to this.
I think that is an implementation detail, that does not matter until 
there is some understanding how module unloading should work in detail.

Greetings, chris


More information about the Oberon mailing list