[Oberon] LinuxA2.generic.tgz versus LinuxA2.tgz.
felix.friedrich at inf.ethz.ch
Wed Oct 4 11:57:30 CEST 2017
The "generic" refers to the object file format chosen for A2. Years ago
we have introduced this generic format and used it to build A2 for
Windows and native variants. More recently we have adapted Linux A2 to
it. The adaption is nontrivial because with the generic object file
format we have also replaced legacy data structures with versions being
more appropriate for the purpose of A2. [example: heap data structures]
The reason for its introduction is genericity: we can use the same
loader and linker for all target systems and independent of the changes
we make in the language or the runtime system. Before we had this object
file format, any change to runtime data structures such as
Modules.Module would require modification to (a) the compiler, (b) the
(runtime) loader, (c) the (static) linker, separately for each target
hardware (!). The generic object file format is versatile enough (yet
extremely simple) such that the only modifications required are actually
to the compiler. The trick is that the compiler generates all runtime
data structures and puts them into the object file directly. The loader
only has to load and patch fixups.
If you are interested, you can read about our motivations and the format
> Until the current UnixAos there was only one archive for
> each of Darwin, Linux and Solaris. Now in 7355 there are two for
> Linux and two for Solaris.
> LinuxA2.generic.tgz 27-Jul-2017 17:06 57M
> LinuxA2.tgz 03-Aug-2017 15:38 46M
> Nothing about this in Changelog.txt or in install.UnixAos. Can anyone
> explain the difference between plain and generic variants?
> Thanks, ... Lyall E.
More information about the Oberon