Possible break of backward compatibility
Posted: 02 May 2009, 07:58
http://www.tim-mann.org/xboard/engine-intf.html#13 - Idioms and Backward Compatibility
That section is supposed to support backward compatbility, and I feel there might be one particular new component in version 2 that could break it - specifically the recognition of rsh fatal errors.
Reason: WinBoard is known to ignore commands it does not understand, this leaves programmers free to write human readable messages to the screen which are useful in interactive mode but are ignored by winboard. I've been using such output liberally... In particular, if at startup the book file is not found, I would print "Book file not found." and play openings via searching... However, Winboard reads the words 'not found' and pops up a fatal error and exits.
Now, for my engine this is fine because I can just rephrase. However, what if some old engines were using these phrases in normal output (maybe even 'command not found' or 'tried to increase hashtable but can't alloc more memory') possibly for debugging purposes...? Won't this break compatbility between WinBoard 1 and WinBoard 2?
That section is supposed to support backward compatbility, and I feel there might be one particular new component in version 2 that could break it - specifically the recognition of rsh fatal errors.
Reason: WinBoard is known to ignore commands it does not understand, this leaves programmers free to write human readable messages to the screen which are useful in interactive mode but are ignored by winboard. I've been using such output liberally... In particular, if at startup the book file is not found, I would print "Book file not found." and play openings via searching... However, Winboard reads the words 'not found' and pops up a fatal error and exits.
Now, for my engine this is fine because I can just rephrase. However, what if some old engines were using these phrases in normal output (maybe even 'command not found' or 'tried to increase hashtable but can't alloc more memory') possibly for debugging purposes...? Won't this break compatbility between WinBoard 1 and WinBoard 2?