[fpc-pascal] Need three things

Daniël Mantione daniel.mantione at freepascal.org
Sun Aug 12 09:22:20 CEST 2007



Op Sun, 12 Aug 2007, schreef ik:

> > Ok, one more: 4) I miss array slice syntax (str:= s[2..7];) from the Stony
> > Brook M2 days. So much more concise than Copy().;
> 
> Let me please quote Marco and say "this is a synthetic sugar", or at
> least sort of.. it's not like there is no way (without creating your
> own function) to do this... but if you really want, please write all
> the pro and cons about it, and if people will think that the pro's are
> better then the cons' I sure that more people will agree...

It is supported in FPC 2.2. The reason to support it is not the 
syntactic sugar aspects, but to allow passing dynamically allocated 
memory.

I.e. if you have a:

procedure sort(var a:array of word);

... and some dynamically allocated memory, a call to sort can be done 
like:

var p:Pword;

begin
  getmem(p,2000*sizeof(word));
  {.......}
  sort(p[0..1999])
end;

As there is no other way to do this, array slices are a usefull addition 
to the language. It also looks like they will allow better optimization in 
the future, because the compiler knows more information in advance, like 
wether the ranges can overlap or wether the data to be moved is already 
aligned.

Daniël


More information about the fpc-pascal mailing list