[Oberon] predeclared procedure SIZE

Jörg Straube joerg.straube at iaeth.ch
Mon Feb 11 09:00:40 CET 2013

Hi Zdenek

The module SYSTEM is incorporated into the compiler; this is the reason, why you can't find an own source file for it.
Roughly, the compiler generates two lists of identifiers:
 A) one list with identifiers being part of the Oberon language 
 B) one list with identifiers being part of the internal pseudo module SYSTEM

If you are interested in these two lists, you can extract them out of the compiler code.
Change into your source directory (e.g. cd /usr/aos/source) and execute the following command:
 A) grep system.globalScope *.Mod
 B) grep system.systemScope *,Mod

You'll find that ADDRESSOF and SIZEOF are in list A.

Have fun!

Let's assume the source files are installed in /usr/aos/sourceIf you installed UnixAos in st
Am 09.02.2013 um 11:03 schrieb Zdenek <oberon at moravcik.info>:

> I am new to this list. After I have installed AOS for Linux revisions
> 5040 and 5165
> I am having problem compiling following program:
> MODULE Test1;
> TestRec = RECORD
>  a: LONGINT;
>  b: CHAR;
> END;
> n : LONGINT;
>  n := SIZE(TestRec);
> END Size;
> END Test1.
> Test1.GetSize ~
> SystemTools.Free Test1 ~
> Compiler says: pos 124 err 256 Undeclared identifier.
> Apparently it does not know the predeclared Oberon procedure SIZE.
> Why? Is predeclared procedure SIZE omitted in Active Oberon?
> It works in Oberon-2.
> I have found out that there is a SYSTEM.SIZEOF() procedure probably
> replacing it?
> Is there any list of differences between oberon-2 and active oberon?
> Where can I find list of procedures in module SYSTEM for AOS?
> I cannot find such module in the AOS source directory.
> Zdenek
> --
> 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