[Oberon] PO2013 - Show Heap Blocks

Joerg joerg.straube at iaeth.ch
Wed Jun 24 11:04:23 CEST 2020


Hi Tomas

The heap is not soooo dynamic after all;
it only changes after a call to NEW().

As long as a program runs, the GC is NOT working. The GC is only called from the Oberon loop. This is the reason, why you can‘t compile the whole system + compiler source in one go on a 1MB machine, as the compiler (ORB) needs a lot of memory that is not freed up by the GC until the compiler ends.

I have a solution for that but this is another topic.

br
Jörg

> Am 24.06.2020 um 11:53 schrieb Tomas Kral <thomas.kral at email.cz>:
> 
> 
>> 
>> The heap has two different blocks
>> a) free blocks
>> b) blocks allocated by NEW
>> 
>> - list0 to list3 cover a).
>> - the garbage collector tries to catch all b).
> 
> Paul, Joerg,
> 
> Thanks for encouragement, this helps. Lists chain free blocks, need to
> realise this once again.
> 
> Heap is so dynamic, e.g. clicking Tools.Inspect command allocates heap,
> so the situation one looks at changes constantly.
> 
> I use SWI[5] to temporarily disable GC (patched Kernel).
> Plus some tools in the hope to catch a still picture.
> 
> -- 
> Tomas Kral <thomas.kral at email.cz>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon



More information about the Oberon mailing list