[fpc-devel] Output flush on pipes
Mattias Gaertner
nc-gaertnma at netcologne.de
Sun May 14 11:48:31 CEST 2006
On Sun, 14 May 2006 12:03:34 +0200 (CEST)
Michael Van Canneyt <michael at freepascal.org> wrote:
>
>
> On Sun, 14 May 2006, Daniël Mantione wrote:
>
> >
> >
> > Op Sun, 14 May 2006, schreef Michael Van Canneyt:
> >
> > >
> > >
> > > On Sun, 14 May 2006, Daniël Mantione wrote:
> > >
> > > >
> > > >
> > > > Op Sun, 14 May 2006, schreef Martin Schreiber:
> > > >
> > > > > Since some time FPC doesn't flush output on pipes after writeln.
> > > > > On linux I can use a pseudo terminal, what can I do on win32 to
> > > > > get flushed output from FPC into the message window of MSEide?
> > > >
> > > > It is strongly recommended against to parse the compiler output, as
> > > > it is designed for humans, not computers. The formatting of the
> > > > compiler output can therefore change in time and can also be
> > > > configured by the user in any language. Some people are doing it
> > > > anyway, like Lazarus.
> > > >
> > > > The compiler has an interface designed for computers and that is
> > > > through the compiler and comphook units. This allows you to
> > > > retrieve the messages neatly. If you want process separation,
> > > > please write a wrapper that puts the messages in a computer
> > > > friendly way, and we'll include it in FPC.
> > >
> > > We could do this ourselves by assigning a unique number to each error.
> > > (and keeping these numbers)
> >
> > I think a command line output for computers needs to be a bit more
> > advanced, take for example this error message:
> >
> > testc.pas(11,1) Fatal: Syntax error, "BEGIN" expected but "identifier Z"
> > found
> >
> > We have:
> > * The source file
> > * The error location
> > * The error severity
> > * The error message, containing two parameters.
> >
> > Both the severity and error message are currently unpredictable, i.e.
> > they can be translated for example. Some IDE's may want to have access
> > to the error messages their parameters as well.
> >
> > A command line output for computers also needs to be extendable, if we
> > want to output more information, this should not break existing
> > applications.
> >
> > For example, a good way to output this error message in a computer
> > friendly format would be:
> >
> > error:(file='testc.pas';line=11;column=1;message_code='02003_F';
> > message='Syntax error, $1 expected but $2 found';
> > parameters=('BEGIN','IDENTIFIER Z'));
>
> I'm all for such a message form; it should be easy to add with some -v
> switch... But
> - This is no use if the message code changes over time,
> because that is still the unique identifier for the error...
> - The message itself should not be given, IMHO.
> The program can look it up in the error message file...
How can it find out, which message file to use?
Mattias
More information about the fpc-devel
mailing list