ElChinito: A Crafty Clone

Archive of the old Parsimony forum. Some messages couldn't be restored. Limitations: Search for authors does not work, Parsimony specific formats do not work, threaded view does not work properly. Posting is disabled.

Re: ElChinito: A Crafty Clone

Postby Daniel Shawul » 21 Aug 2004, 11:46

Geschrieben von:/Posted by: Daniel Shawul at 21 August 2004 12:46:01:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 12:26:19:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
i would like to say that the source code of DAnchess has been examined by
4/5 independent persons and found to be not a clone,that's why i am participating at WBEC. If you want to have a look what i have now, i can send it
to you if you keep it secret. I have no secrets to hide but since the accusation started i have tried to follow a very different approach than crafty.
every fast engine has been accused clone even Ruffian. MY OPINION is that they are not. I just appreciate the nice pruning method that ruffian has crafty doesn't.same to List...
Enjoy chess programming!
daniel
My opinion is that there are probably more clones and until now there was no serious examination of chess programs in order to find it.
I really hope that Paul Hunter will continue to investigate.
This is important also to convince other people to stop clonning engines.
Uri
i am not supporting cloning either.
my point is there are some things which chess programms have in common.
especially everybody developing his chess engine in the same environment CCC,i am sure all of us have something in common unless one is a genius creating everything by himself. Don't you?? Take a look at all open source and tell me you don't notice what i am saying. Infact what all of them luck is that little piece of code/idea. And if the supposed cloner has something different from the pack , he is a genius for me.

Sure, there is almost an optimal way of writing chess code these days, and many routines will be similar.
But why would anyone copy the bugs in Crafty code? That's pretty dumb cloning.
Why would unrelated code in one's "original" code end-up side-by-side and implemented in the same way.
Take all the open-source chess engines out there, and tell me if the disaasembly of any two binaries will even come close to each other.
i was talking about "Ideas" here. for example the BAD TRADE code you compared
doesn't belong to crafty only. There are papers written on this topic lots of times. besided it is a very easy thing to write the code once you understand the idea. i do not belive eugene is so weak not to write his own bad trade code.
show something very important elchinto's strength is taken from crafty.
the fact that you proved a very simple easy code is similar while a bunch of other code is different doesn't make elchinto a clone.
Daniel Shawul
 

Re: ElChinito: A Crafty Clone

Postby Lyapko George » 21 Aug 2004, 12:20

Geschrieben von:/Posted by: Lyapko George at 21 August 2004 13:20:12:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Uri Blass at 21 August 2004 12:29:43:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
i would like to say that the source code of DAnchess has been examined by
4/5 independent persons and found to be not a clone,that's why i am participating at WBEC. If you want to have a look what i have now, i can send it
to you if you keep it secret. I have no secrets to hide but since the accusation started i have tried to follow a very different approach than crafty.
every fast engine has been accused clone even Ruffian. MY OPINION is that they are not. I just appreciate the nice pruning method that ruffian has crafty doesn't.same to List...
Enjoy chess programming!
daniel
My opinion is that there are probably more clones and until now there was no serious examination of chess programs in order to find it.
I really hope that Paul Hunter will continue to investigate.
This is important also to convince other people to stop clonning engines.
Uri
i am not supporting cloning either.
my point is there are some things which chess programms have in common.
especially everybody developing his chess engine in the same environment CCC,i am sure all of us have something in common unless one is a genius creating everything by himself. Don't you?? Take a look at all open source and tell me you don't notice what i am saying. Infact what all of them luck is that little piece of code/idea. And if the supposed cloner has something different from the pack , he is a genius for me.

I do not see it in that way.
The main problem for me is when a programmer copy code that he does not understand or does not understand the reason for the choice of this structure or this variables or copy tables of numbers from another program.
Crafty is a good example because people including you copied the same structure of bitboard without asking themselves why to define it in that way.
You also copied the same evaluation in part of the cases.
It is not copying ideas because copying ideas means that you do not have exactly the same numbers in the evaluation and it usually also means that you need to do more tests to find if a change is productive because you may have a bug in implementing the idea or your numbers are too high.
The same kind of copying can be done also to other programs and not only to Crafty so it is important to check that programs are not clones of other free source code programs.
Uri
What about Nalimov's EGTB access(C++)? All programs using the same routine and most of programmers don't understand internal format of EGTB... This is very similar to cloning(you copy something what you do not understand). The only difference is that you must ask for permission to use the code and I don't know if all of programs has this permission.
Best regards,
George
Lyapko George
 

Re: ElChinito: A Crafty Clone

Postby Uri Blass » 21 Aug 2004, 13:28

Geschrieben von:/Posted by: Uri Blass at 21 August 2004 14:28:26:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Daniel Shawul at 21 August 2004 12:46:01:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
i would like to say that the source code of DAnchess has been examined by
4/5 independent persons and found to be not a clone,that's why i am participating at WBEC. If you want to have a look what i have now, i can send it
to you if you keep it secret. I have no secrets to hide but since the accusation started i have tried to follow a very different approach than crafty.
every fast engine has been accused clone even Ruffian. MY OPINION is that they are not. I just appreciate the nice pruning method that ruffian has crafty doesn't.same to List...
Enjoy chess programming!
daniel
My opinion is that there are probably more clones and until now there was no serious examination of chess programs in order to find it.
I really hope that Paul Hunter will continue to investigate.
This is important also to convince other people to stop clonning engines.
Uri
i am not supporting cloning either.
my point is there are some things which chess programms have in common.
especially everybody developing his chess engine in the same environment CCC,i am sure all of us have something in common unless one is a genius creating everything by himself. Don't you?? Take a look at all open source and tell me you don't notice what i am saying. Infact what all of them luck is that little piece of code/idea. And if the supposed cloner has something different from the pack , he is a genius for me.

Sure, there is almost an optimal way of writing chess code these days, and many routines will be similar.
But why would anyone copy the bugs in Crafty code? That's pretty dumb cloning.
Why would unrelated code in one's "original" code end-up side-by-side and implemented in the same way.
Take all the open-source chess engines out there, and tell me if the disaasembly of any two binaries will even come close to each other.
i was talking about "Ideas" here. for example the BAD TRADE code you compared
doesn't belong to crafty only. There are papers written on this topic lots of times. besided it is a very easy thing to write the code once you understand the idea. i do not belive eugene is so weak not to write his own bad trade code.
show something very important elchinto's strength is taken from crafty.
the fact that you proved a very simple easy code is similar while a bunch of other code is different doesn't make elchinto a clone.

I have no bad trade code in movei.
The problem is not to understand the idea but that I am not sure if bad trade code is really productive.
Of course having 1 3 3 5 9 values can cause a lot of bad trades but I do not use these values and I do not see bad trades as a big problem for movei based on games so I even did not care to test it.
Note that Movei also does not evaluate knight outposts or backward pawns not because I did not write code for these tasks and not because the code made movei significantly slower but because I am not sure that this code does movei better.
I have not time to check if every change that I do does movei better but I at least needed to get more than 50% against previous version in my tests to convince me to add something or to change something(I know that more than 50% is not a proof that something is better and it may be because of luck so I even do not claim that every change that I do does movei better).
If you have an original program then you cannot be sure that something is productive only because it was productive for another program because even without bugs it is possible that you evaluate indirectly something that is evaluated directly by another program and evaluating it twice may be bad.


There is a difference between having bad trade code and having bad trade code that is identical to crafty.
The first thing is not cloning but the second thing is cloning.
Uri Blass
 

Re: ElChinito: A Crafty Clone

Postby Volker Pittlik » 21 Aug 2004, 13:59

Geschrieben von:/Posted by: Volker Pittlik at 21 August 2004 14:59:41:
Als Antwort auf:/In reply to: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 00:33:32:

...
Thank you Paul for your analysis. Coexisting flaws in the disassembly seems
to me as likely as to get an encyclopaedia as a result of an explosion in
a print shop.
Volker
Volker Pittlik
 

Re: ElChinito: A Crafty Clone

Postby Volker Pittlik » 21 Aug 2004, 14:42

Geschrieben von:/Posted by: Volker Pittlik at 21 August 2004 15:42:59:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Lyapko George at 21 August 2004 13:20:12:

...
What about Nalimov's EGTB access(C++)? All programs using the same routine and most of programmers don't understand internal format of EGTB... This is very similar to cloning(you copy something what you do not understand). The only difference is that you must ask for permission to use the code and I don't know if all of programs has this permission.
I think there is a big difference. Even if someone don't understand the internals of EGTB no one occured so far and claimed the tablebases to be his own invention.
Volker
Volker Pittlik
 

Re: ElChinito: A Crafty Clone

Postby Will Singleton » 21 Aug 2004, 15:34

Geschrieben von:/Posted by: Will Singleton at 21 August 2004 16:34:41:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 12:11:39:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
Cloning open source is easy. Just change the output text and you can almost get away with it. Then, don't release your "modified" source.
What the authors of ElChinito probably never realized is that you can reverse the compilation process. You can deduce the C source from the binaries.
Remember all talk about List being a Crafty clone also. Well, its not. I have analyzed that too. It does not even use bitboards.

If List is proven not to be a Crafty clone, a lot of well known people on this forum and CCC will have to eat humble pie and apologise big time. Unfortunately (and I don't like saying this) I don't think that some of them are capable of doing so.
Graham.
I have looked at version 4.61 of List.
It is very obvious that it does not use BitBoards. I believe that Dan Corbit has stated that he has seen the List source code and that it indeed does not use BitBoards. This is easy to verify even without the source code. Just disassemble the list binary and look for BitBoard routines - finding bits in 64-bit variables, 64-bit operations (XOR, OR, AND of two 32-bit vars) to test bits, set bits, clear bits; finding attacks using rotated BitBoards; etc.

Here is a description of what happened at Graz:
http://www.chessbase.com/newsdetail.asp?newsid=1330
Here, reference is made to versions 4.60 and 5.04. It wasn't just a random accusation, and Fritz Reul decided against responding to it, although he was given ample opportunity.
I don't have any strong impression either way about List's case, but in such situations, you have to be *VERY* careful about what you are saying. This is also true of what you say about El Chinito of course.
Andrew
In that article, there is mention of evidence, but no detail at all. Is it because the output of List is the same as Crafty? Is is because the moves generated is the same? If that's all they have, that's pretty lame.
We're talking about cloning source, and not ideas. After reverse-engineering the List binary, you come up with a source that is really different from that of Crafty, then I say that's not a clone.
In the case of ElChinito, you reverse-engineer the binary and you come up with Crafty source. In anyone's book, that's source code cloning.
Did you investigate 5.04 or 4.60?
It is possible that 4.61 is not a clone when 5.04 or 4.60 are clones of Crafty.
I do not claim that it is the case but it is better to investigate 4.60 or 5.04 because the claim of having part of Crafty were against 4.60 and 5.04
Uri
The List implementation looks very different, that it would be very difficult to find the parts that are similar to Crafty.
In ElChinito, they are so same (including Crafty bugs), that it is difficult to find parts that are different.
Paul, your work looks interesting, I am sure that someone will try to verify your results concerning El Chinito. However, it appears you are being non-responsive concerning List.
Will Singleton
 

Re: ElChinito: A Crafty Clone

Postby Peter Berger » 21 Aug 2004, 15:35

Geschrieben von:/Posted by: Peter Berger at 21 August 2004 16:35:39:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 02:09:58:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
That's a general problem with one-liners - I didn't mean to attack you at all.
While I appreciate your efforts to disclose potential cloning, I fear that with every discovery, explained in detail, future clones might just be done in a more clever way. That's pretty much the same as with doping in sports.
Peter
Peter Berger
 

Re: ElChinito: A Crafty Clone

Postby Paul Hunter » 21 Aug 2004, 15:45

Geschrieben von:/Posted by: Paul Hunter at 21 August 2004 16:45:51:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Daniel Shawul at 21 August 2004 12:46:01:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
i would like to say that the source code of DAnchess has been examined by
4/5 independent persons and found to be not a clone,that's why i am participating at WBEC. If you want to have a look what i have now, i can send it
to you if you keep it secret. I have no secrets to hide but since the accusation started i have tried to follow a very different approach than crafty.
every fast engine has been accused clone even Ruffian. MY OPINION is that they are not. I just appreciate the nice pruning method that ruffian has crafty doesn't.same to List...
Enjoy chess programming!
daniel
My opinion is that there are probably more clones and until now there was no serious examination of chess programs in order to find it.
I really hope that Paul Hunter will continue to investigate.
This is important also to convince other people to stop clonning engines.
Uri
i am not supporting cloning either.
my point is there are some things which chess programms have in common.
especially everybody developing his chess engine in the same environment CCC,i am sure all of us have something in common unless one is a genius creating everything by himself. Don't you?? Take a look at all open source and tell me you don't notice what i am saying. Infact what all of them luck is that little piece of code/idea. And if the supposed cloner has something different from the pack , he is a genius for me.

Sure, there is almost an optimal way of writing chess code these days, and many routines will be similar.
But why would anyone copy the bugs in Crafty code? That's pretty dumb cloning.
Why would unrelated code in one's "original" code end-up side-by-side and implemented in the same way.
Take all the open-source chess engines out there, and tell me if the disaasembly of any two binaries will even come close to each other.
i was talking about "Ideas" here. for example the BAD TRADE code you compared
doesn't belong to crafty only. There are papers written on this topic lots of times. besided it is a very easy thing to write the code once you understand the idea. i do not belive eugene is so weak not to write his own bad trade code.
show something very important elchinto's strength is taken from crafty.
the fact that you proved a very simple easy code is similar while a bunch of other code is different doesn't make elchinto a clone.
You probably did not read the analysis. Those small functions were chosen as a demonstration. The entire disassembly is similar. The other functions are huge and is not practical to put in a small document. Why don't you do the comparison before making such comments.
You have not answered the question: why would someone copy a bug (coding bug).
There is another coding bug in Crafty's Evaluate() code. Its present in ElChinito. I've given you the hint. Why don't you try and find it.
I have never seen the DanChess source code that was acused of being a Crafty clone. You sent it to Dan Corbit. Why don't you send it to me. I know of several more "coding" in Crafty. I'm sure that since your "code" is original, that you won't have those bugs (you might have other bugs).
Paul Hunter
 

Re: ElChinito: A Crafty Clone

Postby Paul Hunter » 21 Aug 2004, 15:51

Geschrieben von:/Posted by: Paul Hunter at 21 August 2004 16:51:53:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Will Singleton at 21 August 2004 16:34:41:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
Cloning open source is easy. Just change the output text and you can almost get away with it. Then, don't release your "modified" source.
What the authors of ElChinito probably never realized is that you can reverse the compilation process. You can deduce the C source from the binaries.
Remember all talk about List being a Crafty clone also. Well, its not. I have analyzed that too. It does not even use bitboards.

If List is proven not to be a Crafty clone, a lot of well known people on this forum and CCC will have to eat humble pie and apologise big time. Unfortunately (and I don't like saying this) I don't think that some of them are capable of doing so.
Graham.
I have looked at version 4.61 of List.
It is very obvious that it does not use BitBoards. I believe that Dan Corbit has stated that he has seen the List source code and that it indeed does not use BitBoards. This is easy to verify even without the source code. Just disassemble the list binary and look for BitBoard routines - finding bits in 64-bit variables, 64-bit operations (XOR, OR, AND of two 32-bit vars) to test bits, set bits, clear bits; finding attacks using rotated BitBoards; etc.

Here is a description of what happened at Graz:
http://www.chessbase.com/newsdetail.asp?newsid=1330
Here, reference is made to versions 4.60 and 5.04. It wasn't just a random accusation, and Fritz Reul decided against responding to it, although he was given ample opportunity.
I don't have any strong impression either way about List's case, but in such situations, you have to be *VERY* careful about what you are saying. This is also true of what you say about El Chinito of course.
Andrew
In that article, there is mention of evidence, but no detail at all. Is it because the output of List is the same as Crafty? Is is because the moves generated is the same? If that's all they have, that's pretty lame.
We're talking about cloning source, and not ideas. After reverse-engineering the List binary, you come up with a source that is really different from that of Crafty, then I say that's not a clone.
In the case of ElChinito, you reverse-engineer the binary and you come up with Crafty source. In anyone's book, that's source code cloning.
Did you investigate 5.04 or 4.60?
It is possible that 4.61 is not a clone when 5.04 or 4.60 are clones of Crafty.
I do not claim that it is the case but it is better to investigate 4.60 or 5.04 because the claim of having part of Crafty were against 4.60 and 5.04
Uri
The List implementation looks very different, that it would be very difficult to find the parts that are similar to Crafty.
In ElChinito, they are so same (including Crafty bugs), that it is difficult to find parts that are different.
Paul, your work looks interesting, I am sure that someone will try to verify your results concerning El Chinito. However, it appears you are being non-responsive concerning List.
There is nothing to compare about List. It is so different from Crafty. How would one find the similarity?
That is with version 4.61.
Paul Hunter
 

Re: ElChinito: A Crafty Clone

Postby Dan Honeycutt » 21 Aug 2004, 16:27

Geschrieben von:/Posted by: Dan Honeycutt at 21 August 2004 17:27:12:
Als Antwort auf:/In reply to: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 00:33:32:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Hi Paul:
You state that your first suspicion was due to the use of "bitboards in reverse". Can you expand on that statement?
You can orient bitboards so the LSB corresponds to any corner. The fact that someone chooses h8 like Crafty is not significant. However, Crafty numbers the squares starting at a1 which results in an extra instruction (subtract) in the FirstOne() LastOne() functions as Dr. Hyatt has explained on a number of occasions. No one in their right mind writing original code would do that - unless they were porting something from the Cray :)
I am not challenging your claim. You post some strong evidence. I would like to see evidence that the "bitboards in reverse" are really the same as Crafty. Clones are a serious matter. I'm sure others will be asking you for additional evidence. Don't take that as negative - by unmasking clones you do a service to computer chess. We just need to follow due process before branding program so-and-so a clone.
Dan H.
Dan Honeycutt
 

Re: ElChinito: A Crafty Clone

Postby Dan Honeycutt » 21 Aug 2004, 16:36

Geschrieben von:/Posted by: Dan Honeycutt at 21 August 2004 17:36:18:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Peter Berger at 21 August 2004 16:35:39:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
That's a general problem with one-liners - I didn't mean to attack you at all.
While I appreciate your efforts to disclose potential cloning, I fear that with every discovery, explained in detail, future clones might just be done in a more clever way. That's pretty much the same as with doping in sports.
Peter
Hi Peter:
Your point is well taken, but the crooks always get smarter. The cops just have to get smarter as well to keep up. The allegation of a clone is serious, I think detailed and explicit evidence must be presented.
Dan H.
Dan Honeycutt
 

Re: ElChinito: A Crafty Clone

Postby Uri Blass » 21 Aug 2004, 17:51

Geschrieben von:/Posted by: Uri Blass at 21 August 2004 18:51:54:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Dan Honeycutt at 21 August 2004 17:36:18:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
That's a general problem with one-liners - I didn't mean to attack you at all.
While I appreciate your efforts to disclose potential cloning, I fear that with every discovery, explained in detail, future clones might just be done in a more clever way. That's pretty much the same as with doping in sports.
Peter
Hi Peter:
Your point is well taken, but the crooks always get smarter. The cops just have to get smarter as well to keep up. The allegation of a clone is serious, I think detailed and explicit evidence must be presented.
Dan H.
I think that it is enough if some people that we can trust see the evidence and agree that it is correct.
If I trust the judges and they decide that somebody did a crime then I do not need to see the evidence to believe it.
It is better if we choose a court of 3 programmers to decide if a program is a clone
and if all the 3 people agree that the program is a clone we accept that it is a clone without questions.
If 3 people like Bob Hyatt say that it is a clone it must be a clone even if nobody except them saw the evidence.
One person may lie inspite of the fact that I do not believe that Bob hyatt is going to lie about it but if 3 people that we choose agree that a program is a clone then for me there is no reasonable doubt about the fact that it is a clone(if the 3 people lie then a possible step that the programmer may do to refute the accusation is simply to release the source code and everybody will know that the 3 people lied so I guess that they will not dare to take that risk).
Uri
Uri Blass
 

Re: ElChinito: A Crafty Clone

Postby Dan Honeycutt » 21 Aug 2004, 19:26

Geschrieben von:/Posted by: Dan Honeycutt at 21 August 2004 20:26:15:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Uri Blass at 21 August 2004 18:51:54:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Problem with these clever posts is, that maybe soon every cute trick , that might be noticed by more or less ordinary users, might be posted.
Peter
I don't exactly get what you are trying to imply here.
That's a general problem with one-liners - I didn't mean to attack you at all.
While I appreciate your efforts to disclose potential cloning, I fear that with every discovery, explained in detail, future clones might just be done in a more clever way. That's pretty much the same as with doping in sports.
Peter
Hi Peter:
Your point is well taken, but the crooks always get smarter. The cops just have to get smarter as well to keep up. The allegation of a clone is serious, I think detailed and explicit evidence must be presented.
Dan H.
I think that it is enough if some people that we can trust see the evidence and agree that it is correct.
If I trust the judges and they decide that somebody did a crime then I do not need to see the evidence to believe it.
It is better if we choose a court of 3 programmers to decide if a program is a clone
and if all the 3 people agree that the program is a clone we accept that it is a clone without questions.
If 3 people like Bob Hyatt say that it is a clone it must be a clone even if nobody except them saw the evidence.
One person may lie inspite of the fact that I do not believe that Bob hyatt is going to lie about it but if 3 people that we choose agree that a program is a clone then for me there is no reasonable doubt about the fact that it is a clone(if the 3 people lie then a possible step that the programmer may do to refute the accusation is simply to release the source code and everybody will know that the 3 people lied so I guess that they will not dare to take that risk).
Uri
If the author is willing to submit his code to a 3 judge panel of experts as you suggest I would accept the opinion of that panel with no further evidence. But I think the author should have a say in who the experts are. Trying to put myself in Fritz Reul's place in Graz, I would have serious misgivings about showing my code to those particular experts.
Dan H.
Dan Honeycutt
 

Re: ElChinito: A Crafty Clone

Postby Dan Honeycutt » 21 Aug 2004, 20:04

Geschrieben von:/Posted by: Dan Honeycutt at 21 August 2004 21:04:06:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Dan Honeycutt at 21 August 2004 20:26:15:
If the author is willing to submit his code to a 3 judge panel of experts as you suggest I would accept the opinion of that panel with no further evidence. But I think the author should have a say in who the experts are. Trying to put myself in Fritz Reul's place in Graz, I would have serious misgivings about showing my code to those particular experts.
Dan H.

Rereading my post I see it was poorly phrased. It was not my intention to cast aspersions on any specific individuals.
I do this strictly as a hobby and for fun. My source is available to anyone. However, if I had designs on developing a commercial product and I felt like I had some algorithms that gave me an edge the source would be a closely guarded secret. I would not show it to anyone with a financial connection to my competitors. This includes tournament organizers who rely on the sponsorship of my competitors to host their events.
Dan H.
Dan Honeycutt
 

Re: ElChinito: A Crafty Clone

Postby Antonio Dieguez » 21 Aug 2004, 20:43

Geschrieben von:/Posted by: Antonio Dieguez at 21 August 2004 21:43:24:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Uri Blass at 21 August 2004 10:43:47:

I'm glad still nobody have caught me...
Thanks for your analysis.
I hope that you can continue and do not check only for Crafty clones.
It may be productive if you can check that programs are not Pepito clone or Fruit clone or Arasan clone or clone of another free source code.
Uri



Amyan
Antonio Dieguez
 

Re: ElChinito: A Crafty Clone

Postby Paul Hunter » 21 Aug 2004, 21:03

Geschrieben von:/Posted by: Paul Hunter at 21 August 2004 22:03:14:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Dan Honeycutt at 21 August 2004 17:27:12:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
Hi Paul:
You state that your first suspicion was due to the use of "bitboards in reverse". Can you expand on that statement?
You can orient bitboards so the LSB corresponds to any corner. The fact that someone chooses h8 like Crafty is not significant. However, Crafty numbers the squares starting at a1 which results in an extra instruction (subtract) in the FirstOne() LastOne() functions as Dr. Hyatt has explained on a number of occasions. No one in their right mind writing original code would do that - unless they were porting something from the Cray :)
I am not challenging your claim. You post some strong evidence. I would like to see evidence that the "bitboards in reverse" are really the same as Crafty. Clones are a serious matter. I'm sure others will be asking you for additional evidence. Don't take that as negative - by unmasking clones you do a service to computer chess. We just need to follow due process before branding program so-and-so a clone.
Dan H.
I am not using reverse bitboards as an evidence at all. Instead, it was a way of eliminating many candidate engines so one can just focus on a few.
Even if another engine uses straight bitboards, they can be crafty clones too. However, if you carefully read Crafty's code, you will realize that the amount of work needed to convert Crafty to straight bitboards is not trivial. I'm guessing that most cloners won't go that route.
One of the largest portion of Crafty's Code is Evaluate() and related functions. Run the disassembler and see for your self that they are identical.
Paul Hunter
 

Re: ElChinito: A Crafty Clone

Postby Álvaro Begué » 21 Aug 2004, 21:07

Geschrieben von:/Posted by: Álvaro Begué at 21. August 2004 22:07:
Als Antwort auf:/In reply to: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 00:33:32:

I think your analysis of the code is pretty solid but, in case anyone remains to be convinced that El Chinito is a clone of Crafty, let me tell you a story.
During most of the year 2000 Eugenio Castillo and I worked together for a tiny e-commerce startup (Ylos.com). The CEO of the company (Josep) was a computer chess aficionado and he hired us in part because of the success of our chess programs (my "Ruy-López" and Eugenio's "Eugen"). Josep encouraged us to start a program together, and we both agreed. In our first meeting, I proposed we selected a board representation and we started dividing the tasks for putting together a first version. Eugenio didn't like the plan, and instead he insisted in starting with Crafty as a base and then improve it using our best original ideas. In particular, Ruy-López's evaluation function was pretty good, and Eugen had a good implementation of the null-move quiescence algorithm (I think the algorithm is originally Don Beal's). I refused to do that, and that was the end of the project, as he wouldn't go through the trouble of writing a good base program.
Actually, there is evidence that his program Eugen was a clone of GNU Chess. I haven't seen the code personally, but other people have and came to that conclusion.
Álvaro Begué
 

Re: ElChinito: A Crafty Clone -- An additional data point

Postby Andrew Williams » 21 Aug 2004, 22:25

Geschrieben von:/Posted by: Andrew Williams at 21 August 2004 23:25:49:
Als Antwort auf:/In reply to: ElChinito: A Crafty Clone geschrieben von:/posted by: Paul Hunter at 21 August 2004 00:33:32:
As I was building Crafry using different compilers, I was analyzing the assembly output of each compiler to see how each one optimizes the Crafty code. It then occurred to me that I can take those assembly output to easily find if other engines are using Crafty code.
Read the analysis here:
http://www.geocities.com/alternativecra ... clone.html
This has been posted on CCC today:
http://www.talkchess.com/forums/1/message.html?383312
This is certainly interesting, although I can't vouch at all for Mr Begué.
Andrew
Andrew Williams
 

Re: ElChinito: A Crafty Clone

Postby Andrew Williams » 21 Aug 2004, 22:52

Geschrieben von:/Posted by: Andrew Williams at 21 August 2004 23:52:57:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Dan Honeycutt at 21 August 2004 21:04:06:
If the author is willing to submit his code to a 3 judge panel of experts as you suggest I would accept the opinion of that panel with no further evidence. But I think the author should have a say in who the experts are. Trying to put myself in Fritz Reul's place in Graz, I would have serious misgivings about showing my code to those particular experts.
Dan H.

Rereading my post I see it was poorly phrased. It was not my intention to cast aspersions on any specific individuals.
I do this strictly as a hobby and for fun. My source is available to anyone. However, if I had designs on developing a commercial product and I felt like I had some algorithms that gave me an edge the source would be a closely guarded secret. I would not show it to anyone with a financial connection to my competitors. This includes tournament organizers who rely on the sponsorship of my competitors to host their events.
Dan H.
The problem with this is that Fritz Reul agreed to the rule when he entered the tournament. One of the rules of the tournament is that your source code should be available for inspection. If he judged that he didn't want the tournament committee to see his code, he shouldn't have entered the tournament.
Andrew
Andrew Williams
 

Re: ElChinito: A Crafty Clone

Postby Graham Banks » 21 Aug 2004, 23:17

Geschrieben von:/Posted by: Graham Banks at 22 August 2004 00:17:17:
Als Antwort auf:/In reply to: Re: ElChinito: A Crafty Clone geschrieben von:/posted by: Andrew Williams at 21 August 2004 23:52:57:
If the author is willing to submit his code to a 3 judge panel of experts as you suggest I would accept the opinion of that panel with no further evidence. But I think the author should have a say in who the experts are. Trying to put myself in Fritz Reul's place in Graz, I would have serious misgivings about showing my code to those particular experts.
Dan H.

Rereading my post I see it was poorly phrased. It was not my intention to cast aspersions on any specific individuals.
I do this strictly as a hobby and for fun. My source is available to anyone. However, if I had designs on developing a commercial product and I felt like I had some algorithms that gave me an edge the source would be a closely guarded secret. I would not show it to anyone with a financial connection to my competitors. This includes tournament organizers who rely on the sponsorship of my competitors to host their events.
Dan H.
The problem with this is that Fritz Reul agreed to the rule when he entered the tournament. One of the rules of the tournament is that your source code should be available for inspection. If he judged that he didn't want the tournament committee to see his code, he shouldn't have entered the tournament.
Andrew

Still smacks as a witch hunt to me. Some don't like it when a new boy on the block can so quickly challenge the long established giants.
Graham.
Graham Banks
 

PreviousNext

Return to Archive (Old Parsimony Forum)

Who is online

Users browsing this forum: No registered users and 39 guests