|[gnugo-devel] Gnu GO java1.5 porting
|Wed, 6 Apr 2005 20:01:46 +0300
Just to inform you for new GnuGo Java porting project. It is just changed for jdk1.5 to handle enums. Project started from GnuGo 3.4 and most 3.6 changes are added (thanks for good change logs).
Core Gnugos engine and pattern logic are target for porting. Ported Java code has currently 75 Java classes from small structs like "aa_move" to big classes like Owl. It has been such state that it compiles now about half year, but it is far from working state, there is lot more things which don't work than which work.
Biggest problem has been c pointer logic used in GNU-go. Also other c constructs(like function pointers, macros, global name space) where tough but are little easier to handle than pointers ( ok problem is not one pointer function but there is so many pointer functions). I think pointer logic really does not give anymore much benefits in c++? So please avoid it :) propably has no effects, but tried :))
There is some developer reasons for porting(there is other more subjective reasons also):
Javas collections framework and OO code makes code clearer than orginal.
Computers change faster and base speed is not so important anymore(actually it is easier to code very advanced
data structures using java and so on results can be sometimes even better) Most of data structures are change dynamic size for example.
XML makes input output implementations simpler and cooler :). XML is used file format. There is converter to convert GnuGo patterns for XML. XML is used also in game format instead of SGF(and converter still misses branches).
Out of porting or don't work:
Pattern reading and usage don't work yet.
Caches role are unclear or are out of porting like this new persistent cache.
all parts not belong AI are out of porting.
testing procedures are not ported(quite much work there)
features marked as #if 0 are out
If there is some intrest in GnuGo community for those XML things or porting details I send more info. So far porting has been advancing faster than new code is added gnugo I think.
|[Prev in Thread]
|[Next in Thread]