Yes, that's admirable and that is how it should be done. But that programmer WAS NOT THERE. Afaik, he was finishing his studies on a university in Germany, just at that time, and was substituted by someone else. Maybe that operator only had the executable and not the sources; I don't know. Of course, I guess communication and preparation of both of them could have been better. But I cannot believe that you really support a disqualification for not showing the source, a demand virtually based on NOTHING, if the programmer didn't have a chance to defend himself on site, face to face. Rules are ok, but rules need to be applied with common sense, not with maximal brutality.bob wrote: But the policy has always been there, and I have always arrived with either my source on a laptop, or more commonly, with a complete listing printed in a 3-ring binder.
Bob Hyatt says that....
Moderator: Ras
-
- Posts: 1480
- Joined: Thu Mar 09, 2006 5:33 am
Re: Bob Hyatt says that....
Regards, Mike
-
- Posts: 1480
- Joined: Thu Mar 09, 2006 5:33 am
Re: Bob Hyatt says that....
I only want to mention that I was referring to List as of the year 2003, when the WCh. was held in Graz. IIRC, Fruit was not a topic yet, in that time. The suspicion was Crafty clone, not Fruit clone.
I do not comment on more recent Lists and Loops, but I am aware of the CCRL ponder hit statistics. That's a different topic; I wonder if the ICGA officials are aware of the CCRL ponder hit statistics. I'd like to bet that they are not, and win a fortune.
I do not comment on more recent Lists and Loops, but I am aware of the CCRL ponder hit statistics. That's a different topic; I wonder if the ICGA officials are aware of the CCRL ponder hit statistics. I'd like to bet that they are not, and win a fortune.

Regards, Mike
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Bob Hyatt says that....
Not quite that simple. The programmer knew the rules. They have been the same with regard to that issue since the first ACM event I played in in 1976. And I believe he refused to comply after contact, although I do not remember the specific details since I only read about this after the fact, not being present to watch.Mike S. wrote:Yes, that's admirable and that is how it should be done. But that programmer WAS NOT THERE. Afaik, he was finishing his studies on a university in Germany, just at that time, and was substituted by someone else. Maybe that operator only had the executable and not the sources; I don't know. Of course, I guess communication and preparation of both of them could have been better. But I cannot believe that you really support a disqualification for not showing the source, a demand virtually based on NOTHING, if the programmer didn't have a chance to defend himself on site, face to face. Rules are ok, but rules need to be applied with common sense, not with maximal brutality.bob wrote: But the policy has always been there, and I have always arrived with either my source on a laptop, or more commonly, with a complete listing printed in a 3-ring binder.
-
- Posts: 388
- Joined: Wed Mar 08, 2006 10:08 pm
Re: Bob Hyatt says that....
I agree with Bob that the chances of two original work being identical is relly low. Especially low for the resulting binaries to be identical.
However, what I disagree with is with the particular setjmp example.
First, it is argued that setjmp is so rare in usage, that, if it is found in a new code, then it must have been copied from Fruit. The reality is, the use of try/catch/jmp is very common and is a programming 'pattern'. When programmers see that there is process that can be interrupted and that its state is not needed, then one can simply restore from a saved state when interrupted.
Surely, no one would claim that Fruit was copied from TSCP, since TSCP used setjmp before Fruit did.
If you study the code, you can see that "there is no copying of ideas" either. The implementations of known users of setjmp are all different.
Below is a demonstration of the way Fruit, Strelka and TSCP were coded. You will note that there are all very different from each other.
---
Fruit maintains two boards. There is the main board that gets updated only when the 'game' state has changed. And then there is the search board which gets initialized before a search starts. It is what gets updated during search. Its state is never preserved after the search.
Strelka maintains only one board. This board is saved just before the search, and then restored after the search. This method is actually less efficient than that of Fruit because it requires a 'restore' process.
TSCP maintains only one board. When the search is interrupted, it 'undo's all the moves.
If there is any copying, it is in some other part of the code. Not here.
I will make a claim now. Thinker uses strrchr (StrRChr). Its use is very rare in chess programs. Any new program that uses that function is probably a copy of Thinker.
However, what I disagree with is with the particular setjmp example.
First, it is argued that setjmp is so rare in usage, that, if it is found in a new code, then it must have been copied from Fruit. The reality is, the use of try/catch/jmp is very common and is a programming 'pattern'. When programmers see that there is process that can be interrupted and that its state is not needed, then one can simply restore from a saved state when interrupted.
Surely, no one would claim that Fruit was copied from TSCP, since TSCP used setjmp before Fruit did.
If you study the code, you can see that "there is no copying of ideas" either. The implementations of known users of setjmp are all different.
Below is a demonstration of the way Fruit, Strelka and TSCP were coded. You will note that there are all very different from each other.
---
Fruit maintains two boards. There is the main board that gets updated only when the 'game' state has changed. And then there is the search board which gets initialized before a search starts. It is what gets updated during search. Its state is never preserved after the search.
Code: Select all
SearchBestMove()
{
if (setjmp(...)) return;
SearchBoard = GameBoard; // initialize the search board from the game board
Iterate (SearchBoard); // search using the search board
}
Code: Select all
Iterate()
{
BoardType SavedBoard;
SavedBoard = GameBoard; // save the game board
for (depth=0; depth<MaxDetph; depth++) {
...
}
GameBoard = SavedBoard; // restore the game board
}
FindBestMove()
{
if (setjmp(...)) return;
Iterate();
}
Code: Select all
FindBestMove()
{
if (setjmp(...)) {
if (interrupted) {
UndoAllMoves();
}
return;
}
Iterate();
}
I will make a claim now. Thinker uses strrchr (StrRChr). Its use is very rare in chess programs. Any new program that uses that function is probably a copy of Thinker.

-
- Posts: 819
- Joined: Sat Mar 11, 2006 3:15 am
- Location: Guadeloupe (french caribbean island)
Re: Bob Hyatt says that....
chrisw wrote:You are talking continuously about 4000 code lines. So they're neither corresponding, nor identical, nor consecutive? Just any old code lines?tiger wrote:chrisw wrote:More often 2+2 makes 5 - it's what to look forGenoM wrote:Writing 2+2=4 is is not wrong, even if it was cribbed in class roomchrisw wrote:No, no!! I say 33 out of 114 is 28% and is different handGenoM wrote:Yes, his POV is mainly based on personal feelings -- it seems that for him is most important to contradict with all Bob Hyatt is saying on the matter. And to challenge EVERY point Bob Hyatt made.Alexander Schmidt wrote:Chris, I guess I know what you are doing right now. You talked to Vas, asking about all this stuff here. He is a really nice guy and you believed him that he didn't do anything wrong.
I believed him too when I asked right after the Rybka 1.0 release.
I hope you will not get disapointed to much one day. I mean that honestly.
He (ChrisW) is ready to deny that 2+2=4 written by two different people is the same because it's wriiten with different handwritings.
as in 100% identical = 28% identical
4000 corresponding identical code lines = metaphorical 4000 code lines
they will provide more examples, it's only a matter of time .....
Where did I wrote that there were "4000 corresponding identical code lines"?
At least until now your reasoning was just stubborn like "one line means nothing, let's go to the next, loop". Now you are making things up.
// Christophe
Various examples below, accompanied by comments like: get 100000 monkeys off your hat, or "smart idiot" or "arrogant" or some other insult from you.
Christophe Theron wrote:
Another one: one line of code alone cannot breach the GPL. Let's look at this 4000 lines program. Line 1: cannot breach the GPL. OK check this one. Line 2: cannot breach the GPL. OK fine. Line 3: cannot breach... And so on.
Finally you will get your 1000000 monkeys off your hat.
You are (were) a programmer and deliberately play the smart idiot here. This is what I would call arrogant, because it would be better to tell me directly that you are not interested in looking at the evidence and that all you want is that people stop posting it and go directly to the FSF.Christophe Theron wrote:
Of course by dissecting the source code into individual lines you can use the argument "one line of code cannot possibly breach the GPL".
Considering that a 4000 lines program is composed of individual lines, and that no single line alone can breach any copyright license, then it follows that none of these lines can breach the GPL and so the program is clean.
We are talking of blocks of code that are identical or equivalent semantically. The probability of them happening in two programs writen independantly is so tiny that it makes them appear suspicious.Christophe Theron wrote:
(warning: the above is use of the argument: "one single line of code cannot violate any copyright, so 4000 of them cannot either")
Again, where did I say I was talking about 4000 corresponding identical lines?
You are not an idiot, you are clearly a clever guy. You are posturing as an idiot in order to completely obstruct the debate.
I find this attitude arrogant because you seem to be confident that your expertise in programming will allow you to deceive people with less expertise. You are using expertise as a mean of obstruction.
In your first attempts I thought you were trying to offer some balance to the claims and the evidence posted, because no other people with expertise was doing it. I could at least find this justification for some questionable reasoning you were using, because it is true that both sides need to be defended.
But lately you have increasingly been resorting to obstruction. So systematically actually that I think Vas would be better defended by silence, which he was using with significant success before your interventions.
// Christophe
-
- Posts: 1056
- Joined: Fri Mar 10, 2006 6:07 am
- Location: Basque Country (Spain)
Re: Bob Hyatt says that....
Thxtmokonen wrote:There was an admission and apology from Eugenio Castillo on the Arena web site at one time, I don't know if it is still there.pedrox wrote:
There is a page with evidence to show that El Chinito is a clone of Crafty?
Thank you.
Pedro
I only found in Arena this:
"Unfortunately, clones are the topics which produced always the biggest threads in popular computer chess fora. In all of these bigger discuss in the past the well-known self artists are on the first positions with a lot of comments. A good example was the clone discuss to ELChinito. ELChinito programmer Eugenio Castillo is working more as 12 years in chess programming. His older DOS program Eugen (playwing strenght = around 2.400 ELO) is a good example for Eugenio's fantastic work. A self artist search the sensation and used popular chess fora for his publication. It is a disgrace for the chess community and fora administrators to support such discuss to outstanding personalities, like Eugenio Castillo.
Again, we are speaking about a person, which made chess programming since more as 12 years!
This programmer got an attack from a lot of persons we know only from nonsens WWW forum messages. And all this without to speak with Eugenio "Face to Face". A lot of Manitou's are sitting in a small chambers and like it to used the keyboard for his wild fantasy. What can I say? Unfortunately, we are speaking from humans!
For months I delete ELChinito in the ATL-1 tournament for get more calm to this topic (ELChinito are a partner program of Arena Chess GUI). Fact is that Eugenio Castillo is working on his program and the results are just great. ELChinito made 250 nps (slow) on my Pentium IV 2.67 GHz Maxdata notebook but produce great results. Eugenio had rewritten the search (he are working a long time on it). I like the program ELChinito and the results of 13.5 : 3.5 vs. Crafty 19.18 with 40 moves in 20 minutes is very strong. I analyse the games and can find nothing which is to compare with Crafty. Crafty have simple no chance, its easy ..."
-
- Posts: 1922
- Joined: Thu Mar 09, 2006 12:51 am
- Location: Earth
Re: Bob Hyatt says that....
I do remember clearly that some specific parts of El Chinito were shown to be from Crafty. I want to say this was shown by disassembly, but I'm not sure. The part that I remember was a routine called score_mate or something. The return value was checked to be 99999, when this piece of code was only accidentally left in Crafty, as that routine didn't return that value.
-
- Posts: 1154
- Joined: Fri Jun 23, 2006 5:18 am
Re: Bob Hyatt says that....
I hate to drag things off topic a little (OK, actually I don't mind at all)...but could someone tell me what how to interpret these numbers...as in what range is considered "significantly different", or "pretty close" or "awfully suspicious"?I wonder if the ICGA officials are aware of the CCRL ponder hit statistics
-Sam
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Bob Hyatt says that....
It is somewhat like Einsteinianism... that is, everything is relative.BubbaTough wrote:I hate to drag things off topic a little (OK, actually I don't mind at all)...but could someone tell me what how to interpret these numbers...as in what range is considered "significantly different", or "pretty close" or "awfully suspicious"?I wonder if the ICGA officials are aware of the CCRL ponder hit statistics
-Sam
The higher the number, the more alike the two programs are searching and evaluating. But this is only a general observation and doesn't carry a whole lot of weight. My ponder search starts on a move that will be at least 1 ply shallower than the move my opponent plays, so the idea is not correct all the time.
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Bob Hyatt says that....
Who, exactly, has said that? I only said that when comparing fruit and rybka, and seeing setjmp() in both, just shows that this is an even lower probability for a "by chance" accidental duplication by two independent programmers. The more rare the constructs used in two apparent copies, the more likely the two are actually related. I never said finding it in Rybka proved anything, I clearly said that it is just another small piece of data.CThinker wrote:I agree with Bob that the chances of two original work being identical is relly low. Especially low for the resulting binaries to be identical.
However, what I disagree with is with the particular setjmp example.
First, it is argued that setjmp is so rare in usage, that, if it is found in a new code, then it must have been copied from Fruit. The reality is, the use of try/catch/jmp is very common and is a programming 'pattern'. When programmers see that there is process that can be interrupted and that its state is not needed, then one can simply restore from a saved state when interrupted.
I don't see why every word I write has to be subject to exaggeration or interpreted based on oddball grammatical parsing rather than what was actually said.
Nope, because we are looking at a significant block of code. And adding an oddball mechanism for terminating the search just makes the two codes look more like one came from the other.Surely, no one would claim that Fruit was copied from TSCP, since TSCP used setjmp before Fruit did.
I hate to be rude, but who cares? That is _not_ what has been discussed. The fact that two pieces of code have a significant number of identical lines, and then adding setjmp() only adds to the likelihood one came from the other.
If you study the code, you can see that "there is no copying of ideas" either. The implementations of known users of setjmp are all different.
And again, who cares? Look at the fruit/rybka example instead, which shows the _identical_ way setjmp() (among other things) can be used. This has become a common approach to arguing in this discussion, and it is horribly flawed. First you say we said something we didn't say, then you try to show that that statement has exceptions. Who cares?
Below is a demonstration of the way Fruit, Strelka and TSCP were coded. You will note that there are all very different from each other.
I snipped the rest as it is 100% irrelevant in the current discussion since it is arguing against a statement that has never been made in the first place.