[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