I'm in doubt if RobboLito is a clone

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: I'm in doubt if RobboLito is a clone

Post by Steve B »

Moderation has removed several posts in this thread which were personal attacks

Members are advised to stay On Topic without resorting to personal attacks
if there is a recurrence of posts of that nature ..individual members will be notified and warned
Regards
Steve
Terry McCracken
Posts: 16465
Joined: Wed Aug 01, 2007 4:16 am
Location: Canada

Re: I'm in doubt if RobboLito is a clone

Post by Terry McCracken »

Steve B wrote:Moderation has removed several posts in this thread which were personal attacks

Members are advised to stay On Topic without resorting to personal attacks
if there is a recurrence of posts of that nature ..individual members will be notified and warned
Regards
Steve
Don't you think it's a little odd that some of these posters come out of nowhere?
Terry McCracken
Terry McCracken
Posts: 16465
Joined: Wed Aug 01, 2007 4:16 am
Location: Canada

Re: I'm in doubt if RobboLito is a clone

Post by Terry McCracken »

SzG wrote:
Terry McCracken wrote: Oh please...And pray tell what ver. of X is 100 elo stronger than Rybka 3???
At the Tournaments and Matches section Michaels Sherwin submitted results of an 50-game blitz match between RobboLito and Rybka 2.3.2a. Robbo won 76.5-23.5, which translates to an Elo difference of 210.

CCRL blitz has Rybka 3 97 Elos above Rybka 2.3.2a. 210-97=113.

Yes, it is not transitive, but still indicates something.

What do you think it indicates? That's the Sixty Four Thousand Dollar Question.

I have an idea. Others here know exactly what it indicates.
Terry McCracken
gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: I'm in doubt if RobboLito is a clone

Post by gerold »

Terry McCracken wrote:
Steve B wrote:Moderation has removed several posts in this thread which were personal attacks

Members are advised to stay On Topic without resorting to personal attacks
if there is a recurrence of posts of that nature ..individual members will be notified and warned
Regards
Steve
Don't you think it's a little odd that some of these posters come out of nowhere?
Looks like you is right Terry.

All these diff.posts about this subject should be moved to
CTF where they belong. :)

Best Gerold.

P.S. If this program is as strong as some people think i
want a copy so i can make a million bucks. :D :D :D .
I would change the name and call it number 1. :)
Its already had a great deal of exposure on CCC.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: I'm in doubt if RobboLito is a clone

Post by bob »

jwes wrote:
bob wrote:
jwes wrote:
Gian-Carlo Pascutto wrote:
bob wrote: Do you realize how difficult it is to remove comments?
Given that C doesn't allow nesting them, I'd say it's trivial? Did I miss anything?
Isn't there an emacs macro to do that?
My point:

Don't know. Don't care. Concept makes no sense whatsoever, in the first place.
I should have indicated I was joking, mostly. My boss at my first job would strip out comments before looking at code. He said that the code was enough and the comments misled more than helped. Of course, stripping out comments was easy. IIRC, it was just not printing cards with a 'C' in column 6.
Don't you mean "C" in column 1? 6 was a "continuation" column for FORTRAN which is what it seems you are talking about. Glad those days are behind me (CB and predecessors were all FORTRAN or FORTRAN + assembly.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: I'm in doubt if RobboLito is a clone

Post by bob »

OliverUwira wrote:Out of curiosity, I've just compared a piece of Rybka code (given by VR here: http://rybkaforum.net/cgi-bin/rybkaforu ... 2#pid20132) with the respective code from RobboLito. The following is just an observation, so please don't give too much heat if I'm breaking a taboo (-:

So in Rybka it's

Code: Select all

for (bb_t knights = Board.pieces [WN]; knights; knights &= knights-1)
{
    int knight_sq = bit_scan (knights);
    for (bb_t captures = knight_moves [knight_sq] & opponent_pieces; captures; captures &= captures - 1)
    {
        int capture_sq = bit_scan (captures);
        *moves ++ = move (knight_sq, capture_sq);
        *values ++ = Board.sq [capture_sq] * 256 + 192;
    }
}
and in RobboLito (Robbo_gen_mossa.h) it's

Code: Select all

#define ALLEGA_AI(T) \
 { \
   while (T) \
   { \
     ai = BSF(T); \
     ALLEGA(LISTA, (qu << 6) | ai); \
     bitLIBERO(ai, T); \
   } \
}

...

for (U = bitbordo_bianco_cavallo; U; bitLIBERO (qu, U))
    {
      qu = BSF (U);
      T = attaco_cavallo[qu] & cel;
      ALLEGA_AI (T);
    }
The RobboLito code does not seem to have the equivalent of

Code: Select all

 *values ++ = Board.sq [capture_sq] * 256 + 192;
The use of "while" instead of "for" in the inner loop might be because the disassembling could have obscured which loop was coded in the original, but the absence of the "values" line could do with an explanation.
It is just about impossible to tell whether the original program used while or for, based on the resulting assembly language. For is a bit more compact since it does the equivalent of three operations on one line, initialization, modification and testing the result. That's one reason why looking at something "syntactically" is only one phase of the comparison. You have to look semantically as well, since the "syntactical" part of the reconstruction is an art rather than a science in most cases, since a compiler has completely mangled things during optimization, particularly.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: I'm in doubt if RobboLito is a clone

Post by bob »

Osipov Jury wrote:And from Crafty:

Code: Select all

piecebd = WhiteKnights;
while (piecebd) {
  from = LastOne(piecebd);
  moves = knight_attacks[from] & BlackPieces;
  temp = from + (knight << 12);
  while (moves) {
    to = LastOne(moves);
    *move++ = temp | (to << 6) | ((-PcOnSq(to)) << 15);
    Clear(to, moves);
  }
  Clear(from, piecebd);
}
Think I will change 23.1 to use for() just to be a wise-ass. :)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: I'm in doubt if RobboLito is a clone

Post by bob »

OliverUwira wrote:
Gian-Carlo Pascutto wrote:
OliverUwira wrote: Sorry, what I had posted was specifically meant for captures, at least if the function name "cattura_bianca" wasn't meant to obscure the reader.
cattura_bianca is a preprocessor define for mio_cattura. If you look in that function, you will find

for (U = bitbordo_mio_cavallo; U; bitLIBERO (qu, U))
{
qu = BSF (U);
T = attaco_cavallo[qu] & cel;
ALLEGA_AI (T, cattura_valu[conto_mio_cavallo][c]);
}


and the "cattura_valu" is filled like

cattura_valu[conto_pedone_bianco][conto_donna_nera] =
(0xd0 << 24) + (0x02 << 20);
Ok, this rings a bell.
My word, this code really is incredibly obfuscated...
The only question is, "is this a result of going from C thru a compiler thru an optimizer thru a disassembler to some sort of reverse-compiling process, or is it a result of intentionally trying to make the code difficult to read?"
jarkkop
Posts: 198
Joined: Thu Mar 09, 2006 2:44 am
Location: Helsinki, Finland

Re: I'm in doubt if RobboLito is a clone

Post by jarkkop »

From the site that can't be named

Can you give rough percentage estimates for each engine part( KAISSA, Crafty, Fruit/Toga/Rybka/Strelka) in IPPOLIT/ROBBOLITE codebase? Which is biggest part? Is Rybka code taken as a idea/algorithm copy, not exact assembler code copy?


IgorIppolit re: Engine percentages

Fact: fine ideas cultivate for many gardens.

Whom to admire with: iteratives, history, killer, Zobrist, futility, qsearch, extensions (singular), fractioning ply and the more?
Plus: Chessknowledge (evaluation) is wide-galactic with many.

These form 75% of everything for everyone.

Specific: KAISSA code owned the bounty: nullmove, bitboards (boardroom representatives)
However: KAISSA pruning found ancient.
Crafty code with for rotated bitboards, generated moves, concept
Fruit/Toga/Rybka/Strelka code: evaluation from endpoints, pruning (modern), material stems, extensions

And novel ideas on your boot contained with IPPOLIT.

Knowledge (the mine): code for IPPOLIT bought from self only, yet ideas splurged for miles in ovals. Can enquiry Yakov with validate.


IgorIppolit re: Engine percentages
Conformation (Yakov): no functional code by adversaried ships squats with IPPOLIT. - Igor
tvrzsky
Posts: 128
Joined: Sat Sep 23, 2006 7:10 pm
Location: Prague

Re: I'm in doubt if RobboLito is a clone

Post by tvrzsky »

Not sure if I am allowed to post this here ... but anyway it is a comment of IPPOLIT people on the comments in the code:
IgorIppolit re: Where are the comments in code?
Comrade,
In a first place, any translatings from ь code distress imperatives for the suppress of comments. Truth of the this concerns all language optionals, due to autotransliteration implementals.

Furthermore: for the RobboLito, parsing of Comrade Roberto edges more turnips, Yet: indent (GNU) worms trickies for the comments. Personal opinion: apparent to suppress (tokenized application) for convenients, anterior indent

Finally: emerge to invigilate on IPPOLIT Wiki (here) for informationals, in the alternative.

Igor
Posted Monday, 4:18 pm
RobertoPescatore re: Where are the comments in code?
My very style is not to have many comments, as they take up visual space. Maybe its a leftbrain/rightbrain thing. Usually I dont have more than a few lines with self reminders:
// think more here!
and just got rid of these with publication.
I have to admit that my English is perhaps too limited to understand what he wants to say ...