(And redirection is not easy with DJGPP anyway.)
Why? The only problem I know of is that Command.Com can't redirect stdout.
You mean: `stderr'.
Yes, of course.
But that's merely a problem of Dos' shell, and is solved by the REDIR utility. Otherwise it works fine for me. Or are there any other problems?
That's what I meant with "not easy": you need `REDIR' to redirect `stderr'.
Well, at least there is such a utility. If that was the biggest problem with Command.Com, it would be great... :-(
Yes. :-( It's a known bug in the GPI mechanism that pointer types transported through a GPI file aren't compatible with themselves.
To work around, patch your gpc-decl.c (or wait for the next alpha), and use `Const' :-P instead fo `Protected'. Then you will get some warnings, but the code will work.
Just wondering - what's the difference between "Const" and "Protected" parameters? Are they only handled differently internally in the compiler, or is there any semantic difference?
Another set problem is the following:
PROGRAM x;
TYPE IByte=__byte__ Integer; Byte=__unsigned__ IByte; TS=SET OF Byte;
PROCEDURE p(s:TS); VAR k:Integer; BEGIN FOR k:=0 TO $FF DO IF k IN s THEN Write(k) END;
BEGIN p([]) END.
Again, more or less random values. It's probably another instance of the problem with initialized set variables - I just wanted to mention it.
But after I could work around this, too, now my program compiles and runs with gpc for the first time! :-) And a whole lot faster than compiled with BP! :-)
Frank