[Oberon] SystemV- Heap + Module Space

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Wed Jan 2 22:01:23 CET 2019


   > Best fit strategy would also require to traverse module list to always find smallest size delta. 

This would however leave a lot of tiny holes which are unlikely to ever be filled again. It’s like
disk fragmentation. Finding the best fit does not always represent the.. well .. "best fit" :-)

   > Just thinking if System.Compact, may be tied as 2nd task after each GC run?

If you are thinking of moving module data around, like a “moving garbage collector” does -> don’t!
Absolute addresses are used everywhere, for procedure calls, for doing type tests, etc.

The one thing you could do though is to merge adjacent unused blocks - which is a simple extension
to the few lines of code that I posted earlier. But even that is not guaranteed to yield the best result.

Such strategies ultimately amount to heuristics. Of course, one can build infinitely complex systems
out of that - which however is sooo against the spirit of Oberon.


More information about the Oberon mailing list