pawnslinger wrote:then I Googled Fruit and download the source code package for 2.1. Man, that is one well written piece of code!! Fabien hasn't touched it in years and Code::Blocks compiled it almost error free. It only complained about some printf format strings, which I fixed in about 2 seconds. Loaded it into Chessbase and... wam bam thank you mam, it works flawlessly.
Thanks for your kind words!
Can you show me one of the bugs?
%ll related perhaps?
Fabien, since you are on the forums again and seem interested in CC again ... how about some more of your super squeaky clean code with MP support and of course Gaviota TB support . Also maybe add some of the new search tricks that allow heavy pruning with limited penalty.
pawnslinger wrote:then I Googled Fruit and download the source code package for 2.1. Man, that is one well written piece of code!! Fabien hasn't touched it in years and Code::Blocks compiled it almost error free. It only complained about some printf format strings, which I fixed in about 2 seconds. Loaded it into Chessbase and... wam bam thank you mam, it works flawlessly.
Thanks for your kind words!
Can you show me one of the bugs?
%ll related perhaps?
Fabien.
There were about 4 places that I had to fix. This is an example. It is from the file util.h...
You can see the part that I commented out and below that added a new line. The MinGW compiler did not like the "%lld", but it was happy as a clam with the I64 specifier.
You can see the part that I commented out and below that added a new line. The MinGW compiler did not like the "%lld", but it was happy as a clam with the I64 specifier.
Do you know why your compiler accepts %016llX but not %lld?
This looks inconsistent to me.
pawnslinger wrote:There were about 4 places that I had to fix. This is an example. It is from the file util.h...
Be careful with this! We had a similar problem in WinBoard. The MINGW compile produces warnings. 'Fixing' it so that the warnings go away actually breaks the code: it will no longer run properly!
The problem is a mismatch between what the printf routines in the MicroSoft run-time system (with which MINGW links) actually do, and what GCC thinks they do (ANSI standard). Passing the proper ANSI format (to make the warnings go away) makes the run-time printing fail, because the printf routines will be fed formats they do not understand. And often the latter is not obvious, because IIRC the symptoms are to ignore the high word of the int64, (which is usually zero) and all following things to be printed out of phase.
I'm slightly confused. I've never seen any source give anything other than %lld as the format specifier for a "long long" integer. When I fed my code to MinGW, it didn't actually complain about the occurrences of %lld in the code either.
Am I missing something?