Programmers Open Letter to ICGA on Rybka/Fruit

General discussion about computer chess...
benstoker
Posts: 110
Joined: Thu Jun 10, 2010 7:32 pm
Real Name: Ben Stoker

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by benstoker » Sat Mar 05, 2011 1:19 am

hyatt wrote:excellent idea...

Or should I make that blue and all caps to refine the point?

:)
I kinda liked michael. His posts looked like Walt Disney's puke.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sat Mar 05, 2011 4:21 am

With the pawn-hash clearing issue -- such code appeared in Crafty in three places: init.c, option.c, and utility.c. The double clearing of "passed_w" was fixed in init.c in Crafty 19.1, but persisted up through Crafty 19.15 in option.c, and in utility.c up through and including 21.6, at which the whole "passed_w" concept vanished, being replaced by "passed[white/black]" instead.

In the pre-Beta Rybka version in question, the code for pawn-hash clearing again appears in three places. In two of these three the double clearing (of a byte in the pawn-hash structure) occurs, and in the other it does not. As I say, the bytes in the comparative Rybka/Crafty structures don't match up exactly [as for instance in Crafty/ELChinito], etc., but if we are able to determine that surrounding code of the "correct" one is like that of init.c and the other two look like the code in option.c/utility.c, it would be seem to be quite strong evidence that this is another thing copied from Crafty.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sat Mar 05, 2011 6:20 am

Maybe at some point I'll make a new thread for all the Crafty-Rybka evidence from the pre-Beta Rybka, as it looks like there's going to be a lot. The latest:

Code: Select all

0x00402a00:     push   %ebp                   # start of pre-Beta Rybka Evaluate()
0x00402a01:     mov    %esp,%ebp
0x00402a03:     sub    $0x44,%esp
0x00402a06:     push   %ebx
0x00402a07:     mov    0x10(%ebp),%ebx
0x00402a0a:     push   %esi
0x00402a0b:     mov    0x8(%ebp),%esi
0x00402a0e:     mov    0xb0a(%esi),%cl
0x00402a14:     mov    $0xd,%al               # 0xd is 13
0x00402a16:     cmp    %al,%cl                # compare something to 13
0x00402a18:     push   %edi
0x00402a19:     movl   $0x3,-0x1c(%ebp)       # set something to 3, let's call it "can_win"
0x00402a20:     jge    0x402a53
0x00402a22:     cmp    %al,0xb0b(%esi)        # compare something else to 13
0x00402a28:     jge    0x402a53               # if both < 13
0x00402a2a:     push   %esi                        
0x00402a2b:     call   0x401630                 # call a function
0x00402a30:     mov    %eax,%edi
0x00402a32:     push   %ebx
0x00402a33:     push   %esi
0x00402a34:     mov    %edi,-0x1c(%ebp)         # store function result in "can_win"
0x00402a37:     call   0x401130                 # call another function
0x00402a3c:     add    $0xc,%esp
0x00402a3f:     test   %eax,%eax                # if the function result is nonzero
0x00402a41:     jne    0x402a47                   # jump to loading DrawScore(wtm) and return
0x00402a43:     test   %edi,%edi                # if the first function result was zero 
0x00402a45:     jne    0x402a53                 # then do the next two lines (else skip)
0x00402a47:     mov    0x6b8d78(,%ebx,4),%eax   # get DrawScore(wtm), it seems
0x00402a4e:     jmp    0x402b9a                 # jump to function exit, returning this
[...]
Here's the Crafty 19.1 code (edited for simplicity):

Code: Select all

int Evaluate(TREE * RESTRICT tree, int ply, int wtm, int alpha, int beta) {
  register BITBOARD temp;
  register int square, file, score, tscore, w_tropism=0, b_tropism=0;
  register int w_spread, b_spread, trop, can_win=3;
// ... comments and #if stuff omitted
  if (TotalWhitePieces<13 && TotalBlackPieces<13) {
    can_win=EvaluateWinner(tree);
    if (EvaluateStalemate(tree,wtm)) can_win=0;
  }
  if (can_win == 0) return(DrawScore(wtm));
I leave it to the reader to finish labelling the variables in the pre-Beta Rybka ASM dump.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sat Mar 05, 2011 6:37 am

In the last post I claimed that Rybka returns something like the "DrawScore(wtm)" of Crafty in some cases:

Code: Select all

0x00402a47:     mov    0x6b8d78(,%ebx,4),%eax   # get DrawScore(wtm), it seems
0x00402a4e:     jmp    0x402b9a                 # jump to function exit, returning this
It appears as though Zach is more diligent than I, as he points out that the code at 0x402b9a does some sort of fiddling and/or renormalisation with the score before returning, like ensuring it is within certain bounds, scaling it to 1/16th pawn or something, who knows.

Code: Select all

0x00402b9a:     cltd   
0x00402b9b:     sub    %edx,%eax
0x00402b9d:     sar    %eax
0x00402b9f:     test   %eax,%eax
0x00402ba1:     jle    0x404519
0x00402ba7:     cmp    $0x80,%eax
0x00402bac:     jl     0x404531
0x00402bb2:     add    $0xffffff80,%eax
0x00402bb5:     cltd   
0x00402bb6:     and    $0xf,%edx
0x00402bb9:     add    %edx,%eax
0x00402bbc:     sar    $0x4,%eax
0x00402bc0:     add    $0x80,%eax
0x00402bc9:     ret    
[...]
0x00404519:     cmp    $0xffffff80,%eax
0x0040451c:     jg     0x404531
0x0040451e:     add    $0x80,%eax
0x00404523:     cltd   
0x00404524:     and    $0xf,%edx
0x00404527:     add    %edx,%eax
0x00404529:     sar    $0x4,%eax
0x0040452c:     sub    $0x80,%eax
0x00404537:     ret    
I omitted all the "pop" and %esp instructions having to do with function exit.

zwegner
Posts: 57
Joined: Thu Jun 10, 2010 5:38 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by zwegner » Sat Mar 05, 2011 7:05 am

Pseudocode for the aforementioned "renormalization". I think BB is a bit generous here, I'd personally call it an "obfuscation". :)

And a rather crappy one, too.

Code: Select all

score /= 2; // with rounding towards zero
if (score > 0) {
	if (score >= 128) {
		score -= 128;
		if (score < 0) score += 15; // Never executed??
		score = score >> 4 + 128;
	}
} else {
	if (score <= -128) {
		score += 128;
		if (score < 0) score += 15;
		score = score >> 4 - 128; // round towards -inf
	}
}
return score;

User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

Re: ICGA, find faults at yourselves instead of at others!!

Post by Olivier Deville » Sat Mar 05, 2011 10:15 am

MichaelIsGreat wrote:Hello to All,

Junk deleted
Hi Anonymous

Do you have anything against blind people ?

Olivier

User avatar
Sean Evans
Posts: 173
Joined: Fri Jun 11, 2010 1:21 am
Real Name: Sean Evans

Re: THE ICGA IS A COMPLETELY IRRELEVANT ORGANIZATION!!

Post by Sean Evans » Sat Mar 05, 2011 1:28 pm

MichaelIsGreat wrote:I do not use capitals to shout, just to highlight important points!!

Hello to All,


Now you want to set up a ICGA tribunal? Well, I told you that you, the people of the ICGA, you are nothing less than inquisitors!! The inquisition all over again!

AND WHAT ARE YOUR COMPLAINTS?
---THE FACTS:
NOT A SINGLE AMONG THE ONES POSTING ON THIS THREAD OR AMONG THE ICGA PEOPLE HAS READ THE SOURCE CODE OF THE RYBKA CHESS ENGINE PROGRAMS!!
---THE FALSE ACCUSATIONS.
HOWEVER, YOU NEVERTHELESS HAVE MADE COMPLETELY FALSE AND DEFAMATORY ACCUSATIONS AGAINST VASIK RAJLICH, ONE OF THE TWO BEST CHESS ENGINE PROGRAMMERS IN THE WORLD WHOSE HUGE CONTRIBUTION TO CHESS ENGINE PROGRAMS WITH RYBKA HAS BEEN THE MAIN CATALYST FOR OTHERS TO FOLLOW IN VASIK RAJLICH’S FOOTSTEPS!!

---And how important today is the ICGA? WHAT GIVE YOU THE RIGHT TO CREATE AN ICGA TRIBUNAL IN THE FIRST PLACE?
ONLY THE ICGA WORLD COMPUTER CHESS CHAMPIONSHIPS THAT ARE COMPLETELY USELESS AND TOTALLY IRRELEVANT because the number of games played between each opponent is simply too small.
THE TCEC TOURNAMENTS at http://www.tcec-chess.org/archive.php ARE THE TRUE WORLD COMPUTER CHESS CHAMPIONSHIPS. LOL, LOL.
WHO WILL STILL EVEN WANT TO PARTICIPATE IN THE FUTURE AT THIS MASQUERADE OF “WORLD CHESS CHAMPIONSHIPS” WHEN, IN 2010, SHREDDER WAS OFFICIALLY DECLARED THE WORLD COMPUTER CHESS CHAMPION WHEN HE SURELY WAS NOT!!!
---WHAT CONTRIBUTION TO CHESS ENGINE PROGRAMS HAS THE ICGA BEEN RESPONSIBLE OF? BASICALLY, NONE!
I ASSUME THAT THIS LACK OF CONTRIBUTION TO CHESS ENGINE PROGRAMS GIVE THE ICGA FANATICS THE RIGHT TO SPREAD FALSE AND DEFAMATORY ACCUSATIONS AGAINST THE BEST CHESS ENGINE PROGRAMMERS?!!!
The ICGA people are a group of useless academics whose accomplishments concerning chess engine programs are basically ZERO! Not only that, but most of them are arrogant, egoistic, vain, and more and yet are very loud!! LOL, LOL!!


NOW ABOUT THE CENSORHIP AT OPEN-CHESS.ORG AND THEIR SHAMEFUL MODERATORS!
---I used the word “pathetic” against the original poster of this thread and my post was censored! True story! Yet, this original poster kept attacking me on the content of the post that he had asked to have censored. Yes, very pathetic and very childish!! And who is this poster? A member of the useless and completely irrelevant ICGA!! Suprise!!
---Not satisfied to have censored completely unfairly one of my posts, the fanatic people on this thread decided that it was not enough and that they should also censor my use of colors!! I guess these ICGA people are very black and white!! One of the censors (you know yourself, isn’t it? You should be ashamed of yourself!!!) prevented me from using colors!


YES, THE MODERATOR CANCELED MY USE OF COLORS AND BASICALLY TRANSFORMED MY POSTINGS INTO UNREADABLE POSTINGS. I THINK YOU SHOULD BE PROUD OF YOURSELF, SHAMEFUL MODERATOR?
Therefore, let me clearly state what is really important in this debate.
ANY SKILLED PROGRAMMER IS ABLE TO COPY EVERY SINGLE IDEA FROM A PROGRAM (CHESS ENGINE PROGRAM OR ELSE) WITHOUT BREAKING THE SOFTWARE LICENSE FOR THE PROGRAM COPIED (STOLEN IF YOU PREFER)!! THAT IS THE CURRENT REALITY! It only takes more work for this skilled programmer to write new code (reinvent the wheel!) than to use the code already written and available (avoid reinventing the wheel!).
AND NOW, TO THE PEOPLE WHO KNOW IT ALL, WHICH ONE IS THE CLONE, THE CLONE MADE BY THE SKILLED PROGRAMMER WHO REWROTE THE CODE OR THE CLONE MADE BY THE OTHER PROGRAMMER WHO DID NOT BOTHER REWRITING THE CODE?!!! LOL, LOL!!!
Having said that, HOW ON EARTH WOULD YOU BE ABLE TO DIFFERENTIATE BETWEEN THIS SKILLED PROGRAMMER AND THE ONE WHO DECIDED TO AVOID WASTING TIME REWRITING THE CODE AND SIMPLY USED PARTS OF THE SOURCE CODE AS IT WAS? BOTH STOLE THE CODE AND DID BASICALLY EXACTLY THE SAME, THE SKILLED PROGRAMMER PUTTING MORE EFFORT AT HIDING HIS DECEPTION!! THE TRUTH IS THAT THERE IS NO WAY TO SHOW THAT THE SKILLED PROGRAMMER HAS BORROWED EVERY SINGLE IDEA FROM THE SOURCE CODE OF THE PROGRAM THAT HE USED, AS DID THE OTHER PROGRAMMER WHO DID NOT REWRITE THE CODE!!!


CONCLUSION:
---YOUR COMPLETELY FALSE ACCUSATIONS AGAINST VASIK RAJLICH ARE NOTHING LESS THAN DEFAMATION OF THE VILEST KIND. WHY? NOT A SINGLE PERSON AMONG YOU OR AMONG THE ICGA PEOPLE HAS READ VASIK RAJLICH’S SOURCE CODE OF ANY OF THE RYBKA CHESS ENGINE PROGRAMS.
---THE ICGA WORLD COMPUTER CHESS CHAMPIONSHIPS ARE DEAD AND ARE NOTHING LESS THAN AN INSULT TO THE EXPRESSION “WORLD COMPUTER CHESS CHAMPIONSHIPS”!!! THEY SURELY ARE COMPLETELY IRRELEVANT! SO IS THE ICGA ORGANISATION THAT IS COMPLETELY IRRELEVANT!! AND SO ARE YOUR BOGUS TRIBUNALS!!!! LOL, LOL.
---OPEN-CHESS.ORG IS MODERATED BY “MODERATORS” WHO ARE NOTHING LESS THAN CENSORS, COMPLETELY INCAPABLE OF ACCEPTING OTHER PEOPLE’S POINTS OF VIEW! That applies sadly to most of the people who posted on this thread!
---Finally, all these false accuations against Vasik Rajlich are meant only to have Vasik Rajlich grant you his source code.
I SWEAR TO YOU HERE ON THIS THREAD THAT I WILL USE ALL MY POWER TO MAKE SURE THAT VASIK RAJLICH NEVER EVER GIVE YOU EVEN A SINGLE LINE OF THE SOURCE CODE OF HIS RYBAK CHESS ENGINE PROGRAMS.
YOU ARE NOTHING LESS THAN ON A SHAMEFUL WITCH-HUNT AGAINST VASIK RAJLICH AND I AM SURE OTHER TALENTED CHESS ENGINE PROGRAMMERS WHOSE SOURCE CODE YOU WOULD LIKE TO GAIN ACCESS TO!!!
---WHAT CONTRIBUTION AND ACCOMPLISHMENTS YOU, EGOISTICAL AND ARROGANT DEFAMATORS (ICGA MEMBERS AND OTHERS), HAVE YOU BROUGHT TO CHESS ENGINE PROGRAMS? ZERO CONTRIBUTION AND ZERO ACCOMPLISHMENTS!!
YOU HAVE MANAGED TO ACCUSE THE VERY FEW BEST CHESS ENGINE PROGRAMMERS WITH COMPLETELY FALSE ACCUSATIONS WHEN NOT A SINGLE PERSON AMONG YOU HAS READ THE SOURCE CODE OF RYBKA CHESS ENGINE PROGRAMS. SHAME ON YOU!!
---WORSE, YOU ARE INCAPABLE OF ACCEPTING THAT OTHERS DIFFERENT POINTS OF VIEW CONCERNING YOUR DESPICALBE AND DISGUSTING WITCH-HUNT AGAINST THE BEST CHESS ENGINE PROGRAMMERS. On a forum whose web site has the word “Open” in it!!


Pathetic is a mild word for the fanatics from THE ICGA COMPLETELY IRRELEVANT ORGANIZATION!!


Enjoy my posting? LOL, LOL


Best Regards to All (except for the fanatic inquisitors from ICGA)
MichaelIsGreat

Why is this f**king troll still posting here, why hasn't he been booted yet?

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: THE ICGA IS A COMPLETELY IRRELEVANT ORGANIZATION!!

Post by Jeremy Bernstein » Sat Mar 05, 2011 2:04 pm

Sean Evans wrote:Why is this f**king troll still posting here, why hasn't he been booted yet?
He has been booted, and why the f**k do you have to quote his entire message when asking about it?

jb

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by kingliveson » Sat Mar 05, 2011 3:09 pm

Jeremy Bernstein wrote:
zwegner wrote:Turns out Rybka 1.6.1 copied the same bug.
Ouch, that's embarrassing.

jb

Where can one get the binary?
PAWN : Knight >> Bishop >> Rook >>Queen

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sat Mar 05, 2011 3:24 pm

Where can one get the binary?
The ICGA obtained a pre-Beta Rybka for the purpose of advancing the Rybka/Fruit investigation (of particular interest was whether the pre-Beta Rybka was similar to Rybka 1.0 Beta). It was given to Zach and myself [and possibly others -- I'm not omniscient] to analyse and report back. Once the large amount of Crafty copying became clear, Bob chose to publicise various information (it is his code, after all -- we are much more tight-lipped about aspects which are not copying-related). I am not sure what the "Rules of Evidence" will be regarding this binary if/when the Panel proceeds. The Rybka Forum has already mentioned that the PDFs of Zach and myself might be completely fabricated, so I guess you can't discount that possibility here too. I suspect that Fabien/FSF will subpoena a copy for their civil case.

PS. It seems that MichaelIsGreat has migrated to the Rybka Forum, but has not yet discovered the annoying yellow highlighting.
Last edited by BB+ on Sat Mar 05, 2011 3:28 pm, edited 3 times in total.

Post Reply