Artur Zaroda wrote:
Thanks very much for the test programs. This was certainly the largest set of bug reports submitted at any one time. :-)
Apparently you've been very thorough, since you've covered some issues that were discussed here recently (such as declaring an identifier as a variable while using it as a type).
It wasn't my intension to repeat things you already know about. In particular, I omitted bugs I reported on comp.lang.pascal.ansi-iso, like the "-1 mod 2" problem.
Yes, that's also on my list.
BTW, we've had some alpha versions after 2.1, and a few of your tests (31, 38, 40, 41, 42) have been fixed meanwhile.
I wrote all the test programs a month ago. The only change I made before re-posting them to the list was inserting question mark after the word "latest".
My comments weren't meant as criticism. Quite the opposite -- since you found the same problems that were discussed here (independently) or fixed meanwhile, this suggests that your tests did indeed cover the whole standard quite thorougly.
That is my understanding of the standard. Not that it would mean anything, but even in Turbo Pascal "writeln(3:2:1)" is an error.
Indeed, it doesn't mean anything. ;-)
For a somewhat less obvious case try:
program az46(output); (* FLAG --classic-pascal *) begin writeln('failed: ',round(1)) (* WRONG - parameter of "round" should be of real-type *) end.
GNU Pascal issues a warning here; I believe that ISO says it is illegal.
Incidentally, BP accepts this, and BTW, this was the reason why I allowed these things in GPC -- someone did exactly this in a BP program that I should support in GPC. But I'll disable it in CP/EP mode then.
Frank