[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
Michael
Yes.
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.
br
Jörg
> 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