[fpc-devel] Output flush on pipes
Florian Klaempfl
florian at freepascal.org
Sun May 14 11:46:33 CEST 2006
Michael Van Canneyt 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...
Parsing the current error messages isn't that hard?
More information about the fpc-devel
mailing list