How to turn any engine into a Fruit clone

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

Moderators: hgm, Rebel, chrisw

User avatar
Mike S.
Posts: 1480
Joined: Thu Mar 09, 2006 5:33 am

How to turn any engine into a Fruit clone

Post by Mike S. »

I got an email from a guy named Jerry Obviosov. I don't know why he chose me to write to. He tells me he has partially disassembled (...)(*) and has found many interesting secrets of this great engine. But since the reverse engineering process is so difficult and time consuming, he will not disassemble it completely. Instead, because he has a good understanding of chess programming he can replace the missing parts with code from Fruit 2.1. He will combine the (...) code and the Fruit code, to create a clone.

He says he will make the source code of this clone public, with a name similar to (...). He tells me, although it is totally obvious what he does, there are enough people around who will think that (...) is a Fruit clone, because of that and he will laugh his ass off about the resulting uproar.

*) this could be YOUR engine (except open sources)


P.S. Of course I am only joking here (being aware that it may be less funny for some, than it is for others).
Regards, Mike
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: How to turn any engine into a Fruit clone

Post by kranium »

Good point Mike...

but of course, in that scenario, further scrutiny could be applied, one could simply disassemble the original cloned program's (...) binary, and examine the assembly language. it would not match up line for line with Jerry Obviosov's published source code.

i would recommend to Jerry that he simply disassembles the whole program (easy), instead of trying to knit two distant and unrelated entities seamlessly together. in my opinion that would be quite a challenge.

there's even programs that i'm aware of that will tranlsate the disassembled machine language directly to ANSI C for you... (it's called txtMaestro, or something like that).

Norm
Last edited by kranium on Wed Aug 20, 2008 6:33 pm, edited 1 time in total.
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: How to turn any engine into a Fruit clone

Post by tiger »

Mike S. wrote:I got an email from a guy named Jerry Obviosov. I don't know why he chose me to write to. He tells me he has partially disassembled (...)(*) and has found many interesting secrets of this great engine. But since the reverse engineering process is so difficult and time consuming, he will not disassemble it completely. Instead, because he has a good understanding of chess programming he can replace the missing parts with code from Fruit 2.1. He will combine the (...) code and the Fruit code, to create a clone.

He says he will make the source code of this clone public, with a name similar to (...). He tells me, although it is totally obvious what he does, there are enough people around who will think that (...) is a Fruit clone, because of that and he will laugh his ass off about the resulting uproar.

*) this could be YOUR engine (except open sources)


P.S. Of course I am only joking here (being aware that it may be less funny for some, than it is for others).


It can only be a joke, because if the resulting engine, re-built using parts of the Fruit source code, perfectly matches the original, then there is only ONE explanation: the original was already a derived work from Fruit.

If Jerry had tried to re-built it by using parts of Crafty, the result would have been terribly different from the original.



// Christophe
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: How to turn any engine into a Fruit clone

Post by Zach Wegner »

Good Point Norm...
kranium wrote:but of course, in that scenario, further scrutiny could be applied, one could simply disassemble the original cloned program's (...) binary, and examine the assembly language.
...because that is exactly what is happening.
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: How to turn any engine into a Fruit clone

Post by BubbaTough »

It can only be a joke, because if the resulting engine, re-built using parts of the Fruit source code, perfectly matches the original, then there is only ONE explanation: the original was already a derived work from Fruit.
I am not sure I completely agree with this. If I take engine A and replace its search and eval with that of engine B, the result may look much like a clone of both, without A or B being related (the process is easier if they are of course). Huge blocks of it will look like A, and performance will look near identical to B as will what instructions are executed during search.

A completely hypothetical example: One could start with the source code of Fruit, put in the search and eval from some famous program R, and have the resulting program (call it program S) be legitimately labeled a clone of both Fruit and R without any inappropriate relationship existing between Fruit and R.

I make no claims that this has or will happen (not really an interest of mine). But claiming as a premise it cannot happen and then concluding that wrong has been done based on that premise seems premature.

-Sam

p.s. Howdy Christophe, glad to see you posting here. I am an infrequent lurker and author of a mediocre chess engine who enjoys your posts and hope to see more of them (particularly ones revealing all your amazing chess programming secrets). Verbose and rational are a pleasant if rare combination (one championed by Dr. Bob) for those of us that read this forum mostly as an entertaining break from work rather than anything else.
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: How to turn any engine into a Fruit clone

Post by tiger »

BubbaTough wrote:
It can only be a joke, because if the resulting engine, re-built using parts of the Fruit source code, perfectly matches the original, then there is only ONE explanation: the original was already a derived work from Fruit.
I am not sure I completely agree with this. If I take engine A and replace its search and eval with that of engine B, the result may look much like a clone of both, without A or B being related (the process is easier if they are of course). Huge blocks of it will look like A, and performance will look near identical to B as will what instructions are executed during search.

A completely hypothetical example: One could start with the source code of Fruit, put in the search and eval from some famous program R, and have the resulting program (call it program S) be legitimately labeled a clone of both Fruit and R without any inappropriate relationship existing between Fruit and R.


Sure. But if you take close look at the result (S) and discover that it is almost the same as R, the only logical conclusion is that the parts you have taken from Fruit were already in R!


I make no claims that this has or will happen (not really an interest of mine). But claiming as a premise it cannot happen and then concluding that wrong has been done based on that premise seems premature.

-Sam

p.s. Howdy Christophe, glad to see you posting here. I am an infrequent lurker and author of a mediocre chess engine who enjoys your posts and hope to see more of them (particularly ones revealing all your amazing chess programming secrets). Verbose and rational are a pleasant if rare combination (one championed by Dr. Bob) for those of us that read this forum mostly as an entertaining break from work rather than anything else.


Thank you Sam!



// Christophe