[Oberon] Oberon for a C++ user.

Skulski, Wojciech skulski at pas.rochester.edu
Wed Oct 5 15:23:52 CEST 2016


Chris:

> I see one problem with the pure garbage collection strategy.
> If there are still references to procedures and after unloading and
> reloading a module like in a typical development cycle there are two
> (or more) versions of the same procedure in the system. That can lead
> to some confusion for example for a symbolic debugger or any other
> reflection service.

A development cycle is driven by a human. A human can wait 0.1 second while the GC is working. Therefore, calling the GC should be an automatic part of the module unloading action. 

Even a full second waiting time is a fair deal for a system that is not crashing. A crash is costing more grief than the short wait time which will be pretty much unnoticeable in a the Oberon 2013 system with a few megabyte memory.

I also seem to remember that the procedure code is in the 2nd heap which is typically much smaller than the heap devoted to records. Traversing the procedure heap should be lightning fast even if the machine has a gigabyte on board. You do not need to scan the entire gigabyte, but rather the code hep only. Correct me if I am mistaken.

Wojtek


More information about the Oberon mailing list