bob wrote:Dann Corbit wrote:bob wrote:Ryan Benitez wrote:Please be clear. Are you making any GPL violation claims against either engine? Ideas used from Fruit are not a violation unless code is taken outside of the GPL. I am sure the team of people that worked on Fruit 2.1 are proud to have impacted other engines in a positive way.
I am saying, unequivocally, that code from fruit was copied and used in Rybka 1. Whether or not this code remains in current versions is unknown, but highly probable. ip* is unknown. I have not personally compared it to fruit, but that might be an interesting comparison. Although I am not sure it would be convincing since if you copy from the original, or a copy of the original, you could end up with the same thing and it would be pretty tough to decide whether the thing is a copy of the original or the copy.
Because the souce code for Rybka 1 is not availble, the only thing that is available is Zach's reverse engineering job.
Since Rybka 1 is bitboard and not array based like Fruit, it is literally impossible to simply cut and paste things like eval and search.
Actually, search has nothing to do with bitboards. Just look at search.c in Crafty. Evaluate() is clearly a different animal, however. But there are large chunks of a chess engine that are independent of the board representation, yet they are important to playing chess. Move ordering/selection, search itself, hashing, extension/reduction stuff, and even some parts of eval that don't care about piece placement (material balance/imbalance, etc.)
There is no single evidence that Rybka 1 contains *search* code that has been taken from another engine. Quite the contrary, it is well-known that Rybka has a very unique search implementation. Zach "evidence" pages refer to evaluation only (which does not mean for me that the "eval" case is already clarified). So please stop trying to be suggestive of Rybka 1 containing search code from Fruit.
bob wrote:Here is what is literally and undeniably clear:
Vas carefully studied Fruit and then either copied code or wrote his own version. If he copied then he committed a crime. If he wrote his own version then he may have done somthing that chess programmers do not like but which would nonetheless be legal.
I think it is strange to say you know which of the two possibilities actually occurred.
Based on 40+ years of trying to prevent student plagiarism on homework assignments. One doesn't find an identical block of code here, an identical block of code there, in a program of any significant size (>20 lines of code). I could take the assignments from my X86 programming course, where programs 2, 3 and 4 are on the range of 30-50 lines each, and let you take assignment 2 from 20 students and compare them. You'd see what I mean. Very different approaches to produce the same result. Duplicate code just does not happen by accident.
You are suggestive again, making the readers believe that there were a proof of "duplicate code" from Fruit to Rybka 1. THERE ISN'T A PROOF !!
- Some PST values are similiar or identical (for the non-programmers: PST = piece square table = constant parameters for evaluation, most people agree that such constants are not covered by the GPL).
- Few small code snippets from evaluation, to be counted with few fingers of one hand, look similar but you can't tell whether code was copied or not.
- Finally, a couple of code snippets were presented by Zach as "Rybka code" which do not appear this way in Rybka (as Zach explicitly states by himself) but are an "equivalent" - so where's the point in these?
- Hundreds of other code parts from Fruit 2.1, which has about 10000 "netto" lines of source code (i.e., non-empty and non-comment), have not been referred to by Zach, most of them clearly being out of scope for "copying" due to their non-bitboard contents, and have definitely not influenced Rybka 1 other than by reuse of ideas.
What remains? UCI parser? Usage of strtok()? Open your eyes, Bob. You know that sentence about the "dead horse". Zach has done a good job but his analysis does *not* show what you want to make us all believe it does.
Sven