Mail Archives: djgpp/2001/09/19/14:04:13
(* POSTED and MAILED *)
Hans-Bernhard Broeker wrote:
>
> In article <3BA89555 DOT 2D4FB0BF AT yahoo DOT com DOT NOSPAM> you wrote:
> > (* POSTED and MAILED *)
>
> I didn't see no mail coming in about this, but the News post made it.
> [...]
> > This is totally unclear to me. I don't know where a "$D" should
> > have come from or where is should be. I assume before the "JDIR",
>
> Yes.
>
> > but then I don't know what created that either?
>
> I don't, either, otherwise my reply would have been more
> affirmative. It just struck me as something that definitely didn't
> look sane.
>
> > No. Maybe it needs it.
>
> Probably not. Ordinary users are not supposed to ever have to edit
> DJGPP.ENV. It's just too fragile to let J. Average User get his dirty
> fingers at it on an anywhere near regular basis.
>
> >> This smells of version mixup. You have directories from two different
> >> GCC releases sitting around. The contents of other directories
> >> confirms it: you've mixed GPC version 2.95.2 with GCC version 2.95.3.
> >> That's exactly the reason for your troubles, I think.
>
> > I installed GCC first, and it worked in rhide. Then went looking
> > for GPC, which included the 2.95.2 stuff, and installed that.
>
> And that's exactly the problem. That version of GPC assumes you're
> using GCC version 2.95.2, not 2.95.3. A subtle, but possibly important
> difference. On a quick peek at a DJGPP ftp mirror near me, I found a
> gpc2953b.zip. I think you should remove your gpc20b and install that
> one, instead.
Confirmation - installing that made things go away.
Now I have been fooling about with it, checking some things out.
The test program so far is as follows:
PROGRAM hello(input, output);
CONST
maxi = 32767;
mini = -32768;
maxwd = 65535;
TYPE
integer = mini .. maxi;
word16 = 0 .. maxwd;
VAR
ch : char;
i : integer;
BEGIN (* hello *)
writeln('Hello, World');
writeln('Maxint = ', maxint : 0);
writeln('Maxi = ', maxi : -20, ' Mini = ', mini : 1);
(* disappointing that -ve field neither right justifies *)
(* nor is flagged as an error *)
(* My pref: 0 for default, -ve for rt just, +ve as usual *)
writeln('Enter lines until eof');
WHILE NOT eof DO
IF eoln THEN BEGIN
writeln;
write(input^, 'Enter: new line: ' : 6);
(* This ^ should be a blank *) (* Check truncates *)
readln; END
ELSE BEGIN
output^ := input^;
put(output);
get(input); END;
FOR i := -8 to 8 DO
writeln(i : 3, '"', maxi : i, '"');
FOR i := maxi - 3 TO maxi + 3 DO
write(i : 6); (* should crash *)
writeln(' Should have crashed here');
END. (* hello *)
(* ^ Nothing should count after this period *)
(* However gpc throws errors down here *)
And I am disturbed by two things - failure to detect range errors
above (and I can find no documentation on possible enable/disable
in the docs) and failure to ignore everything in the source after
the terminal '.'. The latter makes it hard to protect source
files with an eof mark followed by a CRC (which my validate
program does). The lack of run time checking makes subranges
rather useless. I can't believe that they are really omitted.
--
Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT XXXXworldnet DOT att DOT net)
(Remove "XXXX" from reply address. yahoo works unmodified)
mailto:uce AT ftc DOT gov (for spambots to harvest)
- Raw text -