[Oberon] SystemV- Heap + Module Space
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