[fpc-devel]let Pascal stay Pascal
Peter Vreman
peter at freepascal.org
Fri Oct 27 13:33:50 CEST 2000
At 12:35 27-10-00, you wrote:
>Hi there!
>
>I found something that drives me mad, and besides that I found a little bug
>in the compiler. First thing. I know Pascal really well and I had to write
>something in PPC. Simplest possible example looks like this:
>
>var
> a: Integer;
>
>function fact: Integer;
>begin
> fact := 1;
> if a <> 0 then
> begin
> Dec(a);
> fact := (a+1)*fact;
> end;
>end;
>
>begin
> a := 3;
> Writeln(fact);
>end.
>
>Of course it will write 6, and give the variable "a" value 0. Not in PPC. I
>think that Pascal should stay Pascal, not C or C++. When you add C-like
>operators - ok. It'll be harder to read code for others, it'll not be easier
>to write code, but it's your choice. But all basic concepts must be in
>harmony with Wirth's Pascal. Result variable is really convenient, but in
>Delphi. Borland gives the result variable one name for all functions -
>"Result". It's much clearer and easier to use it than using function name
>all the time. It's easier than to change function name. But using the name
>of a parameter-less function not in assignment in that function must always
>call it. Let Pascal stay Pascal...
You've 3 possibilities:
1. Use -So on the commandline
2. Add {$mode tp} to the top of the source
3. Use 'fact:=(a+1)*fact();'
Next time read the documentation before saying thing like 'Let Pascal stay
Pascal'
>Now the small bug I mentioned at the beginning. Compiling program with
>PPC386 for Win95:
>
>var
> a: Comp;
>begin
> a := 2E40;
>end.
>
>gives error:
>
>Free Pascal Compiler version 1.0.2 [2000/10/12] for i386
>Copyright (c) 1993-2000 by Florian Klaempfl
>Target OS: Win32 for i386
>Compiling a.pas
>a.pas(2,3) Note: Local variable A is assigned but never used
>Linking a.exe
>Compilation aborted :6
>Runtime error 207 at 0x0043DB68
> 0x0043DB68
> 0x0043DD55
> 0x004AAE50
> 0x004AA471
>
>waiting for the appearence of unsigned and 64-bit integers,
They are already available !
Peter
More information about the fpc-devel
mailing list