I'm in doubt if RobboLito is a clone

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

Moderator: Ras

RaimundHeid

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

Post by RaimundHeid »

Dr.Wael Deeb wrote:
SzG wrote:
Gian-Carlo Pascutto wrote: Not only that, but given by what some people here seem willing to believe, they won't be convinced until you include an entire explanation why the disassembled code from Rybka matches the source code in Ippolit, at a level they can understand, i.e. explaining assembler, chess program structure and search, etc.
You don't have to convince the masses. You can certainly find 5-10 trustworthy and unbiased experts who may *all* claim independently that the match exists. We will believe a 10-0 vote.
I want a committe of trustworthy and independant experts as Gabor pointed out to clear the situation....

Dr.D
What is the committee supposed to deliver in the end? Just a vote from each member? A vote related to which precise question? Or should they also deliver some sort of rationale or ... proof?
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

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

Post by Gian-Carlo Pascutto »

RaimundHeid wrote: If you simply copy a strong program without understanding the interaction of its components you get stuck when you try to improve it. Perhaps the top engines will all play 100 points above Rybka3 within one or two years. To get to this level it won't be sufficient to copy Robolito and modify some params.
Sure, but I'm not so happy about those 1-2 years inbetween :)
So in the long run the commercial programmers will also benefit from IPP/ROB since they will be able to close the gap and then improve further on
Yeah maybe. When this happened with Fruit the effect was quite long term (for me) as there wasn't really anything in Fruit I didn't have. I did learn that my method of developing, coding and testing wasn't good enough, because Fruit was stronger with less code. So I became a better programmer overall, not just for computerchess. This was an extremely valuable gift from Fabien.

With Ippolit, I don't really see this. One could steal some Rybka tricks from it and then what?. The main lesson from Ippolit for me is: releasing your engine without some serious copyprotection is not smart, and perhaps developing computerchess engines commercially is hopeless :P
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

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

Post by Gian-Carlo Pascutto »

SzG wrote: Yes, I remember, too. That's why I'd require a 10-0 vote.
I think at least 4 or 5 people, including authors of chess engines, have already stated Ippolit is not a clone.

So, case closed.
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

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

Post by Gian-Carlo Pascutto »

SzG wrote: They may change their mind on a more thorough inspection of the source. And, as far as I know, neither of them has disassembled Rybka 3 yet, so how could they have a comparison?
So are you saying they spoke up without without having done their homework or without having any idea what they were talking about?
User avatar
Dr.Wael Deeb
Posts: 9773
Joined: Wed Mar 08, 2006 8:44 pm
Location: Amman,Jordan

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

Post by Dr.Wael Deeb »

SzG wrote:
Dr.Wael Deeb wrote: I add to these Christopher Conkie,Robert Hayatt and the co-author of Stockfish....
Who told you Christopher is a programming expert? The occupation field in his profile is empty and I have never seen him compare code, only strings. Also, in the Ippo case he always used the pronoun "we"...

Christopher?
I know the guy,trust me :D
Dr.D
_No one can hit as hard as life.But it ain’t about how hard you can hit.It’s about how hard you can get hit and keep moving forward.How much you can take and keep moving forward….
RaimundHeid

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

Post by RaimundHeid »

SzG wrote:
RaimundHeid wrote:
Dr.Wael Deeb wrote:
SzG wrote:
Gian-Carlo Pascutto wrote: Not only that, but given by what some people here seem willing to believe, they won't be convinced until you include an entire explanation why the disassembled code from Rybka matches the source code in Ippolit, at a level they can understand, i.e. explaining assembler, chess program structure and search, etc.
You don't have to convince the masses. You can certainly find 5-10 trustworthy and unbiased experts who may *all* claim independently that the match exists. We will believe a 10-0 vote.
I want a committe of trustworthy and independant experts as Gabor pointed out to clear the situation....

Dr.D
What is the committee supposed to deliver in the end? Just a vote from each member? A vote related to which precise question? Or should they also deliver some sort of rationale or ... proof?
Yes, just a vote. The question: Clone? If all say yes, clone. If at least one of them says no, not clone.
Proof is not required. We wouldn't understand it, so why bother.

Is there a better way to find out?

P.S. At least one programmer here has already expressed his opinion that it is not a clone... be careful not to select him. :)
There's a difference between meaning and final word. I got the impression all experts have expressed their meaning up to now since none of them knows Rybka intimately enough for a final word. And a voting based on meanings will not be accepted by the sceptics. So I believe not much would be won with this committee unless it explains thoroughly how it came to its conclusion.

Only a few people are capable of understanding complex mathematical proofs and the others must rely on those experts who confirm the proof is correct. But the experts need some testable detailed material (an article in general) and this material must be available to anyone who wants to read it.

In the IPP/ROB/RYB case only half of the required material is available at the moment. So the experts would be missing an essential requirement for their work. As discussed yesterday it's not impossible to get this material (decompiling Rybka) but this will require some time and work. At least there are rumors that some people are working on a base for a solid proof.
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 »

shiv wrote:
Terry McCracken wrote:
Although back then I was suspicious that Vas broke the GPL or looked that way never reached a Final Verdict and even if he did breach the GPL I wouldn't go as far to say he's dishonest. Crooks are dishonest and the people behind Ippolit are just that.

The damage it seems has already been done.
The problem is that changing your code to not break the GPL is easy if one is willing to spend the time. The ideas in Fruit are not copyrighted, just the implementation.

So all that needs to be done is take code, change the implementation, but keep the same logic in your commercial code. This is not really violating GPL, though ethically there is a gray area. Zach is probably referring to this gray area in Rybka 1's implementation, which is a fair point.

This obviously does not condone the illegal release of reverse engineered code to the public (aka Ippolit style). The potential ethical (but not illegal) transgression is minor compared to the highly illegal reverse engineering of closed source code.
Here's a key point. There are definitely pieces of fruit in rybka 1. Which means it is quite likely they remain in 2 and 3. Legally the source for all 3 must be released under the GPL as well, since the thing has _already_ been sold. Which means that one could make the argument that if IPPOLIT is a reverse-engineered source for R3, it makes everything nice and legal in a twisted way. :)

This is a problem that should never have happened in the first place. But the genie was let out of the bottle a few years ago, and again now. There's more than enough wrongdoing here to go around...
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:
RaimundHeid wrote:
bob wrote:
RaimundHeid wrote:
Gian-Carlo Pascutto wrote:This is completely false. There is no need to have the sources from Rybka to confirm Ippolit/RobboLite are clones.

Nothing more is needed than a compile of either of the clone engines and Rybka loaded in a debugger/disassembler. (And someone who knows what he's doing)
You are absolutely right! :)
More correctly, he is "theoretically absolutely right". Practically right requires that someone actually be willing to do this task. "De-compiling" is beyond a PITA. Far from impossible, but not something one might undertake "just because". If someone were to offer me enough money so that I could take a year off, I'd tackle this in a minute. But it would have to be worth my time, as time is limited and we are currently busily making progress with Crafty daily. I'm not so interested in putting that on hold just to prove what happened in any of these copy/clone cases.
I'm not familiar with decompiling, hence this question:

Some folks wrote it would be easy to get C code from a (Rybka) binary with some clever tool (don't remember the name). If that is true then why do you think it will take a year to complete this proof task? The last sceptics should be convinced as soon as the decompiler generates *some* functions that are similar to those found in IPP/ROB (most probably with enumarated variable names) -- [Similar in the sense that they treat input variables and global variables in identical manner and produce the same output]?
If I had exactly the same "tool" as the cloners, assuming this is what happened, it would be easy. But taking asm code and "de-compiling it" is not a one-to-one process. It is a "one-to-many". That is, there are many C programs that could turn into the same optimized binary. If I use tool A and get source A1, and you use tool B and get source B1, A1 and B1 might be significantly different.

The way you actually have to do this is take a source program and ask, "Given this binary, can I use _every_ assembly language instruction, and conver those into C that looks like the C program we are trying to identify. That is as much "art" as it is "science". Compilers mangle the binary code badly during optimization, everything from in-lining functions to re-ordering instructions to reduce / eliminate memory latency delays or data/name/control dependencies.

It helps to have the target you are trying to reach (the C-source in question) but it it still quite a task to turn the binary into C at all, much less into C that looks similar or identical. And even if you do, there are those that will claim it is made up (as happened the last time this discussion erupted).
If I actually wanted to do this, I think I would go the other way. I would compile ippolit and see if I could find chunks of the binary that were similar, particularly the evaluation code and the pruning/extension code of the search.
Another PITA. Now you have to figure out which optimizations were used when the original compilation was done. And since you are dealing with asm rather than C, you get about 10x as many lines of stuff to compare, sometimes much more than that.
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 »

Ryan Benitez wrote:
RaimundHeid wrote:
bob wrote:
RaimundHeid wrote:
Gian-Carlo Pascutto wrote:This is completely false. There is no need to have the sources from Rybka to confirm Ippolit/RobboLite are clones.

Nothing more is needed than a compile of either of the clone engines and Rybka loaded in a debugger/disassembler. (And someone who knows what he's doing)
You are absolutely right! :)
More correctly, he is "theoretically absolutely right". Practically right requires that someone actually be willing to do this task. "De-compiling" is beyond a PITA. Far from impossible, but not something one might undertake "just because". If someone were to offer me enough money so that I could take a year off, I'd tackle this in a minute. But it would have to be worth my time, as time is limited and we are currently busily making progress with Crafty daily. I'm not so interested in putting that on hold just to prove what happened in any of these copy/clone cases.
I'm not familiar with decompiling, hence this question:

Some folks wrote it would be easy to get C code from a (Rybka) binary with some clever tool (don't remember the name). If that is true then why do you think it will take a year to complete this proof task? The last sceptics should be convinced as soon as the decompiler generates *some* functions that are similar to those found in IPP/ROB (most probably with enumarated variable names) -- [Similar in the sense that they treat input variables and global variables in identical manner and produce the same output]?
I don't think it is true that there is a tool that will give you C code that you can recompile from Rybka. You can get asm in a debugger and reconstruct it though a hell of a lot of time and effort though.
This has been done on a "project" basic more than once in years gone by, trying to take asm and take it back to C. There have been lots of similar projects, such as fortran to C and such. All will basically produce absolute crap for code.
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 »

Gian-Carlo Pascutto wrote:
Michel wrote:
I don't think it is true that there is a tool that will give you C code that you can recompile from Rybka. You can get asm in a debugger and reconstruct it though a hell of a lot of time and effort though.
There are tools that actually give you C code (http://en.wikipedia.org/wiki/Decompiler).
Feel free to try some and report back and how easy it was and how well it worked :)
I was just thinking that you could spend about 5 minutes sitting on a toilet somewhere and produce about the same thing these "reverse compilers" produce. :)