[Oberon] FPGA - Garbage Collector - GC

Tomas Kral thomas.kral at email.cz
Mon Apr 17 18:15:55 CEST 2017


Hi Andreas, Paul,

I only rebuilt the `FileDir.Mod' to obtain a symbol file needed as
import to `System.Mod'.

I had backed the `System.rsc' to .Bak and deleted FileDir.{smb.rsc}
afterwards.

It breaks GC all the same.

This is diff on `System.Mod'

pi at raspberrypi /usr/src/oberon/PO.V5.1 $ diff
System.Mod.txt ../PO.V5.0/System.Mod.txt
1c1
< MODULE System; (*JG 3.10.90 / NW 12.10.93 / NW 20.6.2016*)
---
> MODULE System; (*JG 3.10.90 / NW 12.10.93 / NW 28.11.2015*)
89c89
<   PROCEDURE Clear*;  (*clear Log*)
---
>   PROCEDURE Clear*;  (*used to clear Log*)
93c93
<       NEW(buf); Texts.OpenBuf(buf); T :=
F.next(TextFrames.Frame).text; Texts.Delete(T, 0, T.len, buf)
---
>       T := F.next(TextFrames.Frame).text; Texts.Delete(T, 0, T.len,
> buf)

FileDir.Mod does not seem to have changed


pi at raspberrypi /usr/src/oberon/PO.V5.1 $ grep MODULE
> FileDir.Mod.txt
MODULE FileDir;   (*NW 12.1.86 / 23.8.90 / 15.8.2013*)

Tomas
 

On Fri, 14 Apr 2017 10:21:45 +0000
Andreas Pirklbauer <andreas_pirklbauer at yahoo.com> wrote:

> If you have changed module FileDir, its variable size and/or its code
> size will very likely have changed (even if the module interface
> itself has not changed). Therefore, pointers from within the module
> descriptor of FileDir, such as mod.code and mod.ptr, will no longer
> point to "correct" starting addresses in the various sections inside
> the module block of FileDir.
> 
> So you will likely have to rebuild the inner core and load it onto
> the disk's boot area, e.g., by executing the commands [1]
> 
>  ORP.Compile Kernel.Mod FileDir.Mod Files.Mod Modules.Mod ~
>  Linker.Link Modules ~
>  Builder.Build Modules ~
> 
> Note: It is the linking process that will update the module area
> layout (i.e. the linked list of the four modules Kernel, FileDir,
> Files and Modules), such that *after* rebooting, pointers like
> mod.ptr will be correct again. With the updated mod.ptr, the GC
> should work. Please make sure to also recompile the rest of the
> Oberon system including the compiler itself *before* rebooting system
> - just in case module keys of the inner core modules have changed.
> Otherwise it may not come up again.
> 
> Andreas
> 
> [1] e.g. see
> http://github.com/andreaspirklbauer/Oberon-building-tools 
> 
> 
> 
> ------------------------------------------
> Tomas Kral thomas.kral at email.cz Fri Apr 14 10:49:39 CEST 2017Hi,
> 
> Now I have figured out, recompiling OR.Compile FileDir.Mod System.Mod
> ~ with most recent changes, stopped GC to collect garbage. Any ideas
> what I may have done wrong? Do I have to rebuild inner core?Tomas



More information about the Oberon mailing list