[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A possible new port
> From: Frank Copeland <fjc@wossname.apana.org.au>
> Date: Mon, 5 Feb 96 18:13:50 +1000
>
> > The symbol file format is described in ooc/frontend/doc/SymbolFile.ebnf.
> > ...
>
> If the only difference is the IDs, then I would prefer it if they were
> compatible with OP2. If there is some compelling reason to change them then
> that is fair enough.
I simplified matters a bit. No, it's not just the IDs. I don't know
the OP2 stuff, but I'm pretty sure that changing OOC symbol files into
OP2 would need a major rework of the make stuff and it would prevent
me to put useful additions (like explicit side-effect info, GSA code
for cross module inlining, or a sym file extension mechanism) into the
syms.
> I'm a bit concerned about the memory issue myself, since I haven't been
> able to get a VM manager to work on my system. If the RAM requirements get
> too high it will seriously restrict my potential user base. 2 Meg is quite
> common on Amigas, and 6 Meg like I have is getting into 'power-user'
> territory.
I've almost finished the framework for compilation per procedure. I
can't make any measurements about the memory usage since I have only
the C based conservative gc (which is quite a memory hog itself). But
even with this gc I need less than half the mem to compile the largest
OOC module. A decent gc will reduce this number even further. I hope
to get the new driver / parser interface on cognac by the end of this
week.
> One solution that suggests itself is to pair OOC with an OP2-derived
> compiler. The OP2 compiler could be used for rapid development, and on
> low-memory systems, while OOC would be used for producing heavily optimised
> code on systems with sufficient memory to support it. In this scenario it
> would be a big help if the compilers produced compatible symbol files.
This is bound to fail as soon as you start interfacing with non-Oberon
libraries. The interface information varies from system to system,
and the two compilers will expect different information from those
interface. OOC, for example, will need side-effect information in
order to push efficiency of external calls to the limit. I do hope
that there'll be never a need to have a rapid development compiler
around. OOC won't be as fast as a single-pass compiler, but it's
compilation speed should never be unbearable. It's always possible to
identify the slow parts by running profiles and to disable them by a
"speed" option if the need arises. There not that many possiblities
to reduce memory usage. I hope that the changed translation process
will fix this problem.
-- mva