[Oberon] Project Oberon running from LPDDR memory on Pipistrello
andreas_pirklbauer at yahoo.com
Mon May 11 20:33:33 CEST 2020
> I guess it‘s a typo. Must be ORB iso ORS as the scanner doesn’t need heap space.
> If I rember correctly, some objects unintentionally got allocated more than once.
No, the issue was that a change made earlier replaced some BYTE with INTEGER in
ORB.ObjDesc, causing heap space consumption to double (from 64 to 128 byte for each
allocated object). I reverted that change, so that the fields now occupy 56 bytes again. If
you add 8 bytes (for the mark field and the type tag), you get 64 bytes per allocated obj.
PS: This is also the reason why ModDesc is an extension of ObjDesc.. so that 128 bytes
of heap space is allocated only for modules (typically there are only a few), whereas for
all other objects in the symbol table 64 bytes suffice.
More information about the Oberon