[Oberon] PO2013 - Garbage collection while compiling whole system (was: PO2013 - Show Heap Blocks)

Joerg joerg.straube at iaeth.ch
Wed Jun 24 12:26:43 CEST 2020


That‘s the solution I use as well, but I enabled only „background compilation“. Your solution is more generic/universal as all commands are possible to be „batch executed“

Instead of ORP.Compile A.Mod B.Mod ... ~
I use  My.Compile A.Mod B.Mod ... ~

„My“ breaks up the line in several ORP.Compile and GC in between.
I didn’t want to confuse Tomas with these non-standard solutions.


> Am 24.06.2020 um 13:09 schrieb Michael Schierl <schierlm at gmx.de>:
> Hello Joerg,
>> Am 24.06.2020 um 11:04 schrieb Joerg:
>> 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.
> Depends on what "one go" means. My own batch module has a Batch.Collect
> command which will trigger garbage collection, remember the current
> position in the script and enable a background task (and stop the script
> execution).
> The background task will detect that the GC (also a background task) has
> happened and resume the batch job where it left off. So for the user it
> looks like it is "one go", although in practice the Oberon main loop is
> running during the process.
> Regards,
> Michael
> --
> 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