Don Cross wrote:If careful compatibility with older versions of WinBoard/xboard is of concern (as it is with me, trying to support both Windows and Linux with the same C++ chess engine source code), perhaps there are other options available if "feature debug=1" is rejected.
What you suggest seems indeed a perfectly safe kludge to get stuff in the debug (unless some later version would define parts of what you print as new features). Nevertheless, I would like to encourage people to try the debug=1 feature first, and not immediately go for the kludge.
Note that WinBoard 4.3.14 is also available for Linux (as xboard 4.3.14).
Usually it is not the older versions of WinBoard or compatible GUIs that cause problems: people that have their engines print spurious output by now know pretty well what to avoid. The "do so at your own risk" pertains mostly to the risk that some future version will attach a meaning to something you happened to print. This could in principle also happen inside 'feature' commands.
Most versions of WinBoard do actually have a bug, in the sense that the free-form of the PV field in the Thinking Output is not as free as the protocol specifies, but can confuse WinBoard. I have seen the case where an engine printed the word "Draw" in its PV when it encountered a repetition. WinBoard took this for a result claim!
The suggestion of using '#' for commenting out engine lines actually came from the original WinBoard team's draft for the protocol v3 specs, which one of the team members was kind enough to leak to me. As a similar feature was high on my to-do list as well, it seems better to do it according to their specs, than devise a different mechanism to do the same thing independently.