Author: Paul H
Date: 23:09:51 08/22/04
Go up one level in this thread
On August 23, 2004 at 00:31:53, Rolf Tueschen wrote: >On August 22, 2004 at 17:17:25, Paul H wrote: > >>The argument here is not based on the output of the engine or the strenght of >>the engine or the kind of moves that it generates. If ElChinito is only Elo >>1000, it still does change the fact that the binary ElChinito.exe is made from >>Crafty source. If it is Elo 1000 using crafty code, it just means that there are >>changes that made it so. >> >>I just did a thorough code analysis. It reveals facts that even Bob only >>realizes now. Even without the source code, Bob agrees that those portions of >>code is from Crafty. Again, that is without the source code. Have you seen >>anyone do this kind of technical analysis here before? And after all that, you >>compare it to a primitive witch hunt? >> >>I am about to also post the disassembly of the function NextMove(). These are >>all technical facts. >> >>Why don't you review all the code analysis and tell us that it is wrong. > > >I am also part of the handful of people in CCC who can't understand code >analysis or anything with code. Could you please explain to these few what you >did in your analysis? You say that you can get details of a program's code if >you have only the exe? - A question in that context would also be, if you could >clarify if LIST (Graz) was a Crafty clone or at least if it used parts of Bob's >code? Would your answer be also relevant if say some critics still claimed that >they had data that LIST in fact were a clone or used parts of its code? - Thank >you in advance. You analyze an exe file by running a disassembler on it. You will get a file in assembly language. Now you can read it as a computer language, just like you would read any other computer language (like C/C++, Pascal). When C/C++ code is turned into an exe file, it is first converted to assembly language. This is the same assembly language file that you get when you disassemble the exe. You can also look at the disassembly of an exe by loading it in a debugger. Disassembling is the method used when people want to determine what a virus does (since you don't have the source code of the virus; you only have the infected exe file). People also use the method to determine how to "crack" a program (like removing some copy-protection code). It is also the method for determining if others are using your intelectual property (like if Oracle wants to see if IBM's DB2 database software is using any Oracle technology) - its much like what we are doing here between Crafty and ElChinito. Btw, to turn C/C++ to assembly language, you don't need a compiler. You can translate it manually, but it is a lot of work. You can also manually convert an exe to assembly language. Again, it is a lot of work. As for List, I have mentioned this before, that I analyzed version 4.61 of List and found that it does not use BitBoards at all, and that I could not find any similarity with Crafty. Dann agrees that it does not use BitBoards because he has seen the code. The effect of not using BitBoards is huge. The attack functions will be very different. The evaluation functions which rely a lot on computing attacks will look very different. The move generation will be very different. And with the use of x88 boards, the board indexing is very different too. If one takes some code from Crafty but converts it to a non-bitboard code, the disassembly with look very different. Mind you however, that to convert Crafty to use non-bitboards is a lot of work. It is not the kind that a cheap cloner will want to do. In such a case, you could already qualify for copying the idea and not the code.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.