PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
Chris, the reason why the allegations from Bob are fishy, are these: a scientist like him cant Prove by million code bits that something, his conclusions, is correct. Science means, you can disprove certain false conclusions in principle with a single bit, but you cant prove that something is true. From that angle already it's all nonsense here. What Bob and his helpers needed is that they had something to deal with - from Vas side. But he cant react on these insults and evil allegations and false factual assumptions.
-Popper and Lakatos are good but I'm stuck on Leibowitz
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
Chris, the reason why the allegations from Bob are fishy, are these: a scientist like him cant Prove by million code bits that something, his conclusions, is correct. Science means, you can disprove certain false conclusions in principle with a single bit, but you cant prove that something is true. From that angle already it's all nonsense here. What Bob and his helpers needed is that they had something to deal with - from Vas side. But he cant react on these insults and evil allegations and false factual assumptions.
He's already thought of that one. Hence the talk "proof beyond reasonable doubt" and other legal language.
Bob therefore wants weight of evidence. Trouble is he hasn't come up with one factual evidential thing, yet. Apparently CT and Zach have got it, shown it to Bob, but not anyone else. Apparently it takes time to produce. However, this begs the question, why don't they reveal the blocks of duplicate code he says he's seen so far?
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
I simply read what Zach and Christophe posted. The examples seemed quite clear to me. If you take 200 lines of code and the only difference is a couple of lines that have been moved around, then those two blocks of code have a common ancestry.
"This is no accident but also proves nothing.
No accident because programmers do not start from scratch but start from known ideas that they read."
How many know programmers start with the code of another program?
How many wrote the codes in a diferent way?
Do you know? Do you know if they copy and paste? No, you don´t
know, because you don´t have read the codes.
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
I simply read what Zach and Christophe posted. The examples seemed quite clear to me. If you take 200 lines of code and the only difference is a couple of lines that have been moved around, then those two blocks of code have a common ancestry.
it really is that simple.
Ok, please point us to these two x 200 line posted common code segments. Where can we find them? Do you have a link?
He's not really a primary player in this at this point. It should be left to Zach and the others who are gathering evidence to present it.
After the stuff i read that he said today, i was shocked. I want to see what he says after a one on one with Vas- sort of a Rybka- Crafty matchup, so to speak.
What have I said that is shocking? That you will not "accidentally" produce a couple of hundred lines of identical code here, a couple of hundred lines there? That is all I have stated from the beginning. _IF_ there is duplicate code to any significant extent (not single lines, but blocks of code) then there is no way it is an "accident". If that is shocking, not much I can say. Anybody that deals with large numbers of programming assignments on a regular basis will say the same.
This is no accident but also proves nothing.
No accident because programmers do not start from scratch but start from known ideas that they read.
If the task is to write chess programs when people start from no idea that they read then you can expect more difference but if people learn about bitboards and learn tricks to write faster firstone function then you cannot
blame them for not being original and writing a slower code.
My FirstOne() function has been copied by many. It is simply a way of accessing the single instruction BSF. I have repeatedly said that I am not talking about a single line of code. But _blocks_ of identical lines. That is a difference. The examples shown have been 200 lines and up. that will _not_ happen "innocently".
firstone is only one example so it does not seem obvious to me that few hundrends of lines of equivalent code is a proof for using copy and paste
without looking at the code(I need to look at the lines to decide).
Here is an example about different bitboard programs that is not the case of fruit and rybka because fruit is not a bitboard program.
Based on looking at the code of strelka
one bitboard dictate many bitboards so if one bitboard is the same many bitboards are going to be the same.
If you use A1=0,B1=1,...H1=7,A2=8,...H8=63 you can expect arrays of bitboard of the squares that the king control to be the same and you have 64 numbers(squares that the king control at A1 squares that the king control at B1,....)
In writing a book, you use the letters a-z also. We are not talking about copying individual characters. Or individual numbering schemes, of which there are a finite (and small) number of alternatives (four for numbering squares using bitboards for example. So let's get back to the topic at hand. Duplicate blocks of code in the engine. we are not talking about silly examples like an array of numbers that equate specific chess squares to specific bits. We are talking about parts of an engine, such as the search, the evaluation, communication with the outside world, etc. Simple functions that convert a square number to a two-character algebraic coordinate and such is not what is being discussed.
Same is for squares that the knight control and squares that the pawns control and for bitboards that tell you information about blocking squares and continue in this way.
All these constants can be easily hundreds of lines of code so you get hundrends of lines that are basically the same.
Nobody is discussing such arrays of constants, this has been dismissed in discussions about things like endgame tables where everybody is using the same exact everything. Arrays used in evaluation are a different thing because those are creative, rather than just enumerations.
You can have different functions to generate them but
the programmer may simply use constant array and in this case the constant array is the same.
Uri
And nobody cares about that kind of similarity. Everyone uses 1, 2, 3, etc as well. We are looking one level higher than that.
My point is that we do not know what are the common parts between rybka and fruit and it may be possible that there are some common parts of strelka and fruit that are not in rybka.
The example of bitboards was only to show that number of similiar lines prove nothing.
I also think that you can expect bigger similiarity between good programmers because when there are less ways to write a strong chess program relative to number of ways to write a weak chess program
espacially when programmers start from some known ideas and do not start from nothing.
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
Chris, the reason why the allegations from Bob are fishy, are these: a scientist like him cant Prove by million code bits that something, his conclusions, is correct. Science means, you can disprove certain false conclusions in principle with a single bit, but you cant prove that something is true. From that angle already it's all nonsense here. What Bob and his helpers needed is that they had something to deal with - from Vas side. But he cant react on these insults and evil allegations and false factual assumptions.
Any chance you can stop trying to distort the truth and respond to what is being written? I have no "helpers". I joined the discussion when I started to read nonsense about "it is quite likely that you would find identical blocks of code here and there in a program as large as a chess engine." That is patently false. Even in specific pieces of code, such as move ordering (which Chris mentioned). I suggested we take my move ordering code, and then that someone suggest some open-source program and I will post a line-by-line comparison to see if two pieces of code that accomplish the same function have any common lines. That is easy enough to do. If fruit/strelka/rybka share common blocks of code, then it must be extremely common and most programs should exhibit the same property, correct? So name a program and let's test the hypothesis. Shoot. Name 3 open source programs. I have fruit, glaurung 1/2, arasan 9/10, gnuchess 4 and 5 (5 is probably a better choice since it is bitboard as is crafty).
Just pick one or more and let's compare. If it is that common, we must be able to find a match, right? Or is that too much "science" for you and you would prefer to hand-wave and name-call instead?
Just name the programs to compare and let's go. This is far easier than Zach's and Christophe's task, because here we have real source code, they are having to disassemble/reconstruct the C source, which is time-consuming.
PauloSoare wrote:Well said, Uri. And a magic word: "bitboards".
Paulo Soares
Perhaps "well said" but also "completely irrelevant. We all count using digits 0-9. We write using characters a-z and A-Z. We are not talking about copying an array that converts a square number (0-63) into an algebraic coordinate (a1-h8). We are talking about blocks of code (instructions, executable, etc) that are duplicates. All this other stuff is just nonsense.
Yes, you're talking about it and talking about it and talking about it.
Since you're talking about it so much, you must obviously have many examples of these duplicated blocks of instructional and executable code.
Where are they?
Chris, the reason why the allegations from Bob are fishy, are these: a scientist like him cant Prove by million code bits that something, his conclusions, is correct. Science means, you can disprove certain false conclusions in principle with a single bit, but you cant prove that something is true. From that angle already it's all nonsense here. What Bob and his helpers needed is that they had something to deal with - from Vas side. But he cant react on these insults and evil allegations and false factual assumptions.
He's already thought of that one. Hence the talk "proof beyond reasonable doubt" and other legal language.
Bob therefore wants weight of evidence. Trouble is he hasn't come up with one factual evidential thing, yet. Apparently CT and Zach have got it, shown it to Bob, but not anyone else. Apparently it takes time to produce. However, this begs the question, why don't they reveal the blocks of duplicate code he says he's seen so far?
They have not shown me anything in private. Everything I have seen was shown _here_. yes much of it is buried in threads that are too long and contain 99% noise.
BTW the "beyond a reasonable doubt" was purely a correction to your quote. "innocent until proven guilty" is wrong. In a criminal trial, it is "innocent until prove guilty beyond a reasonable doubt." In a civil trial, it is "innocent until proven guilty by a preponderance of the evidence." It wasn't something I made up.
He's not really a primary player in this at this point. It should be left to Zach and the others who are gathering evidence to present it.
After the stuff i read that he said today, i was shocked. I want to see what he says after a one on one with Vas- sort of a Rybka- Crafty matchup, so to speak.
What have I said that is shocking? That you will not "accidentally" produce a couple of hundred lines of identical code here, a couple of hundred lines there? That is all I have stated from the beginning. _IF_ there is duplicate code to any significant extent (not single lines, but blocks of code) then there is no way it is an "accident". If that is shocking, not much I can say. Anybody that deals with large numbers of programming assignments on a regular basis will say the same.
This is no accident but also proves nothing.
No accident because programmers do not start from scratch but start from known ideas that they read.
If the task is to write chess programs when people start from no idea that they read then you can expect more difference but if people learn about bitboards and learn tricks to write faster firstone function then you cannot
blame them for not being original and writing a slower code.
My FirstOne() function has been copied by many. It is simply a way of accessing the single instruction BSF. I have repeatedly said that I am not talking about a single line of code. But _blocks_ of identical lines. That is a difference. The examples shown have been 200 lines and up. that will _not_ happen "innocently".
firstone is only one example so it does not seem obvious to me that few hundrends of lines of equivalent code is a proof for using copy and paste
without looking at the code(I need to look at the lines to decide).
Here is an example about different bitboard programs that is not the case of fruit and rybka because fruit is not a bitboard program.
Based on looking at the code of strelka
one bitboard dictate many bitboards so if one bitboard is the same many bitboards are going to be the same.
If you use A1=0,B1=1,...H1=7,A2=8,...H8=63 you can expect arrays of bitboard of the squares that the king control to be the same and you have 64 numbers(squares that the king control at A1 squares that the king control at B1,....)
In writing a book, you use the letters a-z also. We are not talking about copying individual characters. Or individual numbering schemes, of which there are a finite (and small) number of alternatives (four for numbering squares using bitboards for example. So let's get back to the topic at hand. Duplicate blocks of code in the engine. we are not talking about silly examples like an array of numbers that equate specific chess squares to specific bits. We are talking about parts of an engine, such as the search, the evaluation, communication with the outside world, etc. Simple functions that convert a square number to a two-character algebraic coordinate and such is not what is being discussed.
Same is for squares that the knight control and squares that the pawns control and for bitboards that tell you information about blocking squares and continue in this way.
All these constants can be easily hundreds of lines of code so you get hundrends of lines that are basically the same.
Nobody is discussing such arrays of constants, this has been dismissed in discussions about things like endgame tables where everybody is using the same exact everything. Arrays used in evaluation are a different thing because those are creative, rather than just enumerations.
You can have different functions to generate them but
the programmer may simply use constant array and in this case the constant array is the same.
Uri
And nobody cares about that kind of similarity. Everyone uses 1, 2, 3, etc as well. We are looking one level higher than that.
My point is that we do not know what are the common parts between rybka and fruit and it may be possible that there are some common parts of strelka and fruit that are not in rybka.
The example of bitboards was only to show that number of similiar lines prove nothing.
I also think that you can expect bigger similiarity between good programmers because when there are less ways to write a strong chess program relative to number of ways to write a weak chess program
espacially when programmers start from some known ideas and do not start from nothing.
Uri
I'd like to see the discussion remain "on track". The question being discussed is "is Rybka derived from Fruit?" If there is any part of the code from Fruit in Rybka, the answer is "yes". Vas added strelka to the mix by his claim that strelka was identical to the first version of Rybka.
As far as the "less ways" that is simply wrong. There are an _infinite_ number of ways to write a strong chess program without having a single identical line of code between any two examples. Having large chunks of duplicate code is not going to happen unless the programs are related as is being discussed.
I wish we could stop this nonsense of "just a few ways". Lincoln's famous address is not very long. How many different ways could you write text to say the same thing? At least a million? And that pales to the amount of text in a chess engine's instructions. This concept is complete and utter nonsense. And anybody with _any_ significant programming experience realizes that.