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...
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, regards,
-Andrzej Gasienica-Samek
