Harvey Williamson wrote:Even if your accusation were correct, Ed, the Crafty source code is published as the Fruit GPL requires. So when is Vas going to comply with the Fruit GPL?
Careful: if you make a derivative of a GPL'd program, it requires not just publishing the modified sources, but publishing them under the same GPL license. Crafty's license does not qualify (it has different restrictions which are not GPL-compatible, such as the prohibition on entering tournaments with the derivative work).
The "GPL is viral" FUD always makes me roll my eyes, but its easy to see how that meme came into being.
Rebel wrote:
Here is the deal, provided a programmer already has an engine and he wants to copy code from another engine:
Why would anyone want to copy code from another engine? Copyright laws in most Western countries prohibit copying anything without author's permission.
IPPO is freeware.
Reading another person's engine and writing your engine by using similar ideas is of course okay. But resulting functions, semantics, arrays are going to very different.
Here is an example that proofs you wrong, at least if you think I did nothing wrong, which I think you do
2-3 years ago I went through the Fruit source code because of the raging Rybka debate and I found something I did not have, penalizing a trapped bishop on the 6th rank. So I took it and it resulted in the following code.
if (board[A6]==WB && board[B5]==BP) score=score-64;
if (board[H6]==WB && board[G5]==BP) score=score-64;
if (board[A3]==BB && board[B4]==WP) score=score+64;
if (board[H3]==BB && board[G4]==WP) score=score+64;
My own code, I copied nothing from Fruit. However, compare this with the Fruit source code, 100% identical, not only semantically equal, even code wise equal.
Did I plagiarize Fruit ?
bob wrote: Yes and No. Yes, because you did copy code. But No, because I do not believe anyone would say "you are a derivative because out of Nk lines of code, those 4 are identical.
Absolutely not.
Because with the same logic I can say, hey Fabien, you copied my old 7th rank trapped bishop code from the 80's, 100% equal on code level.
See all the nonsense of that?
There is no copyright on chess knowledge, not even if that produces 100% equal code.
Your Crafty 22.2 example as addressed above is much more interesting because it is somewhat more complex than my simple A6 trapped bishop example.
not as interesting as you claim. It dates all the way back to the 19.0 version where I started checking squares b8 and g8. When? 2003. Hard to copy. All that was changed was adding the MG/EG where previously there was just a "MG" score updated. You have MAJOR issues in your comparison. I responded on the Rybka Forum.
Bottom line is you are still completely dishonest. Why did you leave out the REST of the fruit trapped bishop comparison that tests a6/h6 and such? Because it tends to show that the two evals are not "semantically equivalent" so you would rather cut and paste just to find 6 lines of code that match, even though each of those 6 lines is surrounded by another 20 lines of code that are not even close? really dishonest. And of course you should check dates when you want to imply I copied something. If it predates fruit 2.1, it would be VERY hard to copy it, a DeLorean at 88mph notwithstanding...
Rebel wrote:There currently are discussions in CCC and RF about copying and it's much confusing what is allowed and what is not.
Here is the deal, provided a programmer already has an engine and he wants to copy code from another engine:
Verbatim copying code does not exists because the variable names, data structure are not compatible, so he will have to rewrite the code anyway to his own variable names, data structures.
Is that own written code ?
Data is another matter of course, this can be done by copy&paste without or minimal changes, thus copying.
bob wrote:That is ABSOLUTELY NOT "own written code". No more than copying an English page and just translating it to Spanish.
I agree, without adding content -> copying
And I am assuming that's the way copy-boys operate.
But......
In Crafty 2.22 you imported Fruit's MG/EG concept resulting in semantic equal code with Fruit. While I think it's OK what you did one can also conclude due to the semantically equal nature that it is a copy-case.
Especially when the line is widening due to all the open sources that automatically lead more semantically equal code without any bad intention of copying.
One A4 page as someone suggested ?
That is "plagiarism 101" for students. Copy a program. Change variable names. Reword comments. Maybe reformat using an auto-indent tool. Still a copy and still considered software plagiarism.
You are moving now outside the scope of my original question.
Even if your accusation were correct, Ed, the Crafty source code is published as the Fruit GPL requires. So when is Vas going to comply with the Fruit GPL?
We are having a technical discussion here, can you please stay out with off-topic comments?
You invited me here with your reply to me yesterday telling me about this thread. If the pressure of telling lies for so long is getting to you perhaps you should go and lie down.
Harvey. Go check my post on the Rybka forum. This is YAECL from Ed (yet another example of a complete lie). One piece of the Crafty code he is comparing is from a 2003 version of Crafty. In another piece of code he compares, he is using version 23.2. So he has, in his totally dishonest way, taken one piece of 23.2 (the bishop PST) one piece of 19.0-22.2 (the trapped bishop code) and then to top it off, he eliminated the fruit trapped bishop code that checks for a bishop on a3-h3, something I do not do at all.
Rebel wrote:
Here is the deal, provided a programmer already has an engine and he wants to copy code from another engine:
Why would anyone want to copy code from another engine? Copyright laws in most Western countries prohibit copying anything without author's permission.
IPPO is freeware.
Reading another person's engine and writing your engine by using similar ideas is of course okay. But resulting functions, semantics, arrays are going to very different.
Here is an example that proofs you wrong, at least if you think I did nothing wrong, which I think you do
2-3 years ago I went through the Fruit source code because of the raging Rybka debate and I found something I did not have, penalizing a trapped bishop on the 6th rank. So I took it and it resulted in the following code.
if (board[A6]==WB && board[B5]==BP) score=score-64;
if (board[H6]==WB && board[G5]==BP) score=score-64;
if (board[A3]==BB && board[B4]==WP) score=score+64;
if (board[H3]==BB && board[G4]==WP) score=score+64;
My own code, I copied nothing from Fruit. However, compare this with the Fruit source code, 100% identical, not only semantically equal, even code wise equal.
Did I plagiarize Fruit ?
bob wrote: Yes and No. Yes, because you did copy code. But No, because I do not believe anyone would say "you are a derivative because out of Nk lines of code, those 4 are identical.
Absolutely not.
Because with the same logic I can say, hey Fabien, you copied my old 7th rank trapped bishop code from the 80's, 100% equal on code level.
See all the nonsense of that?
There is no copyright on chess knowledge, not even if that produces 100% equal code.
Your Crafty 22.2 example as addressed above is much more interesting because it is somewhat more complex than my simple A6 trapped bishop example.
I would be interested to find out when trapped bishop code first appeared. I had something in early Now, but it dealt just with the famous trap Fischer fell into, which people still debate. Bitboards sure speed up detecting trapped pieces.
I would be interested to find out when trapped bishop code first appeared. I had something in early Now, but it dealt just with the famous trap Fischer fell into, which people still debate. Bitboards sure speed up detecting trapped pieces.
Rebel wrote:
Here is the deal, provided a programmer already has an engine and he wants to copy code from another engine:
Why would anyone want to copy code from another engine? Copyright laws in most Western countries prohibit copying anything without author's permission.
IPPO is freeware.
Reading another person's engine and writing your engine by using similar ideas is of course okay. But resulting functions, semantics, arrays are going to very different.
Here is an example that proofs you wrong, at least if you think I did nothing wrong, which I think you do
2-3 years ago I went through the Fruit source code because of the raging Rybka debate and I found something I did not have, penalizing a trapped bishop on the 6th rank. So I took it and it resulted in the following code.
if (board[A6]==WB && board[B5]==BP) score=score-64;
if (board[H6]==WB && board[G5]==BP) score=score-64;
if (board[A3]==BB && board[B4]==WP) score=score+64;
if (board[H3]==BB && board[G4]==WP) score=score+64;
My own code, I copied nothing from Fruit. However, compare this with the Fruit source code, 100% identical, not only semantically equal, even code wise equal.
Did I plagiarize Fruit ?
bob wrote: Yes and No. Yes, because you did copy code. But No, because I do not believe anyone would say "you are a derivative because out of Nk lines of code, those 4 are identical.
Absolutely not.
Because with the same logic I can say, hey Fabien, you copied my old 7th rank trapped bishop code from the 80's, 100% equal on code level.
See all the nonsense of that?
There is no copyright on chess knowledge, not even if that produces 100% equal code.
Your Crafty 22.2 example as addressed above is much more interesting because it is somewhat more complex than my simple A6 trapped bishop example.
I would be interested to find out when trapped bishop code first appeared. I had something in early Now, but it dealt just with the famous trap Fischer fell into, which people still debate. Bitboards sure speed up detecting trapped pieces.
My first use of this was Crafty, 1995. Never tried it prior to then. And like you, I don't remember anyone mentioning it. I certainly did not see a single commercial program in 1995 that had it (those that played on ICC either automatically or manually, which included about all of 'em), because Crafty basically swindled every last one of them, genius on down, by not defending the a2 pawn when it was attacked, then trapping and winning the bishop...
I pretty much agree on this approach. When I find an interesting idea in a chess source, I write it down in spanish descriptive words. Then, having understood the concept, I write my own code.
I have no idea whether this is legal or not. It is just common sense.
__________________________
José Carlos Martínez Galán
(Averno & Anubis)