Back-porting WinBoard to xboard
Posted: 09 Aug 2008, 06:22
To make this discussion accessible to everyone, rather than just keep it a private e-mail exchange between Zach and me, I created this thread. Zach is the main person currently working on shaping up the xboard part of the xboard/WinBoard code base so that it will catch up with WinBoard again, and offer all the new features that have been added to WinBoard since version 4.2.7b, (after which development by the GNU-Savannah project effectively ceased).
For clarity: The xboard/WinBoard code base consists of 3 parts:
* A WinBoard-specific part
* An xboard-specific part
* A common part (the 'back-end')
This is necessary because the 'front-end', responsible for communication with the user, the graphics display, management of display windows an the like is very platform-dependent. This makes that any change in the WinBoard-specific code has to be parallelled in the xboard front-end and vice versa, duplicating the amount of work needed for any front-end change. Changes in the back-end, which is responsible for communication with the engines or ICS, and handling all th Chess-related stuff such as legality checking and adjudications, automatically benefit both WinBoard and xboard.
The recent years have seen an enormous development of WinBoard by individuals outside the GNU-Savannah team. As many of these improvements were in the front-end, this development that was not parallelled in xboard at all, and created a situation where the xboard front-end code was no longer compatible with the back-end code used by WinBoard. This meant that xboard users can not even profit anymore from back-end changes that are not dependent on any front-end modifications per se.
We are now going to correct this situation. The upcoming release f WinBoard 4.3.14 will contain also the source code for an xboard front-end that is at least compatible with the back-end used by this most recent WinBoard. Some of the added back-end functions have even be made availabe under xboard, by adding a few new xboard command-line options (mainly for the adjudication of engine-engine games). Existing options for which the new back-end defines additional values (such as the -variant option) of course work automatically. The xboard display handling was quickly patched in order to allow display and handling of the crazyhouse holdings.
But that was really all; no full-scale effort was made yet to make xboard functionally equivalent to WinBoard. In this version (4.3.14), we only tried to restore compatibility with rather minimal effort. So it should be seen as a starting point; the main catching up is still to be done. Especially many of the WinBoard_x options, added by Allessandro Scotti, were front-end options, and require extensiv modification of xboard to work there too. Also in the area of menus xboard severely laggs: none of the new options is available through the menus yet, the back-end options that already do work in xboard can only be controlled through command-line arguments.
In this thread, I want to discuss the plan on how to close the remaining gap.
For clarity: The xboard/WinBoard code base consists of 3 parts:
* A WinBoard-specific part
* An xboard-specific part
* A common part (the 'back-end')
This is necessary because the 'front-end', responsible for communication with the user, the graphics display, management of display windows an the like is very platform-dependent. This makes that any change in the WinBoard-specific code has to be parallelled in the xboard front-end and vice versa, duplicating the amount of work needed for any front-end change. Changes in the back-end, which is responsible for communication with the engines or ICS, and handling all th Chess-related stuff such as legality checking and adjudications, automatically benefit both WinBoard and xboard.
The recent years have seen an enormous development of WinBoard by individuals outside the GNU-Savannah team. As many of these improvements were in the front-end, this development that was not parallelled in xboard at all, and created a situation where the xboard front-end code was no longer compatible with the back-end code used by WinBoard. This meant that xboard users can not even profit anymore from back-end changes that are not dependent on any front-end modifications per se.
We are now going to correct this situation. The upcoming release f WinBoard 4.3.14 will contain also the source code for an xboard front-end that is at least compatible with the back-end used by this most recent WinBoard. Some of the added back-end functions have even be made availabe under xboard, by adding a few new xboard command-line options (mainly for the adjudication of engine-engine games). Existing options for which the new back-end defines additional values (such as the -variant option) of course work automatically. The xboard display handling was quickly patched in order to allow display and handling of the crazyhouse holdings.
But that was really all; no full-scale effort was made yet to make xboard functionally equivalent to WinBoard. In this version (4.3.14), we only tried to restore compatibility with rather minimal effort. So it should be seen as a starting point; the main catching up is still to be done. Especially many of the WinBoard_x options, added by Allessandro Scotti, were front-end options, and require extensiv modification of xboard to work there too. Also in the area of menus xboard severely laggs: none of the new options is available through the menus yet, the back-end options that already do work in xboard can only be controlled through command-line arguments.
In this thread, I want to discuss the plan on how to close the remaining gap.