[Oberon] NAstrobe for RISC5 on Pepino
Chris Burrows
chris at cfbsoftware.com
Thu Aug 2 10:53:56 CEST 2018
> -----Original Message-----
> From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of
> Tomas Kral
> Sent: Thursday, 2 August 2018 12:17 AM
> To: oberon at lists.inf.ethz.ch
> Subject: Re: [Oberon] NAstrobe for RISC5 on Pepino
>
> On Wed, 1 Aug 2018 21:39:18 +0930
> Chris Burrows <chris at cfbsoftware.com> wrote:
>
> > About 90% of the source code is identical to Wirth's latest
> compiler.
> > It generates identical symbol and object files for identical source
> > files that have been compiled by the latest official compiler.
>
> Hi Christopher,
>
> Good work!
> You had also once reported to have implemented New(addr,
> size) allocator. Is it also part within that 10% of your compiler
> extension?
>
No. 'addr'? That is something I would NOT encourage.
You might be thinking of the local dynamic array extension that Wirth
implemented in his ARM compiler and we support in the Astrobe for Cortex-M
compilers e.g.
PROCEDURE P(s: ARRAY OF CHAR);
VAR
local: ARRAY OF CHAR;
BEGIN
NEW(local, LEN(s));
local := s;
The original discussion is here:
http://lists.inf.ethz.ch/pipermail/oberon/2017/011201.html
It requires the use of a stack 'frame' pointer in addition to the normal
stack pointer. The RISC5 compiler doesn't need a frame pointer (since access
to intermediate locals is not allowed - a restriction I agree with). While
dynamic local arrays sounds a neat idea, I have yet to find a real need for
them. Having to maintain a frame pointer just for them is a sufficient
deterrent not to support that extension.
Regards,
Chris
Chris Burrows
CFB Software
http://www.astrobe.com/RISC5
More information about the Oberon
mailing list