What's Vasik Rajlich doing today?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: What's Vasik Rajlich doing today?

Post by Lyudmil Tsvetkov »

bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
Rebel wrote:
mvk wrote:
bob wrote:One more note. This "you guys searched the wrong version" is a red-herring. Every new version of my chess program, dating ALL the way back to 1968, including major versions, minor versions, or rewrites, had MAJOR parts of the earlier version included. You do not rewrite 30-40-50K lines of code for each version..
VR is not Hyatt. How often do you make that mistake.

My major versions (five times: v0, v1, v2, v3 and mscp) were always 100% rewrites from scratch, no code reuse between them. I'm not the only one.
Reminds me of a Tord quote, something like, you can never rewrite your engine from scratch too many times.
Define "your engine". Only a complete dunderhead would rewrite everything in the engine from scratch. That would imply you did NOTHING right in any of the previous versions...

unlikely in the extreme...
Komodo was rewritten from total scratch (when it was already a top 2).
Glaurung 2.0 was a total rewrite (which lead to Stockfish).

So, the top two engines today, were rewritten from scratch at one point.

And those are not the only two examples.

Miguel
Did you compare first stockfish source to Glaurung? I am not just talking bare search and evaluation when talking about total rewrite. I am talking about EVERYTHING. I'm not going to debate Komodo with no source code to speak of. But we can certainly compare early stockfish to later Glaurungs. I still have 2.2 in my old backups for cluster testing...

You might be surprised what you find when you look. Certainly stockfish 1.8 was nowhere near a complete rewrite. First file I looked at (move.cpp) is almost a perfect match between the two for the first few dozen lines of code, all I felt like looking at...
Please read what I wrote. Glaurung 2.0 is a total rewrite from the previous version of Glaurung.

Don rewrote Komodo. That was Don told said, and I have no reason to doubt him.

Miguel
2 things. Glaurung 1 -> glaurung 2 would be perfectly believable as a rewrite. However comparing 1 to 2 does not suggest g1 was thrown out. It shows g2 was simply g1 refactored and cleaned up and reorganized as much as anything. For example, glaurung22 has a procedure "think" in search.cpp, where it is a separate file think.cpp in glaurung11. That's not what I would call a "complete rewrite". I don't believe anybody does that.

Second, "rewrite" and "write from scratch" are not the same thing. Don posted that he spent a lot of time rewriting Komodo. He did NOT say that he threw everything out and started over. I did 6 completely different versions of Cray Blitz. Starting selective and ending up with something similar to what is done today. And some of those were hugely different. Version 4 was 120K lines of fortran. Version 5, a chess 4.x-like redesign was about 10K lines. But it carried over a lot of code from version 4, including most of the evaluation, just a different search approach. Starting over is a genuine waste of time, and very few do it more than once. Nobody does it a bunch of times unless they just know absolutely nothing about programming and also do not learn from each mistake.

In any case, there are certainly chunks of code from glaurung1 still there in stockfish. No surprise, there are still chunks of code from Crafty version 1 that can be found in version 25.0...

Mark Watkins found eval pieces that matched between R1.0beta and R2.3.2a... Which is not surprising. So please stop with this "not everybody does it that way." So far you haven't given one example of a _complete_ rewrite where nothing is carried from version to version N+1. It just doesn't make good sense to do such, considering all the time that would be lost.

Note: I'll bet that a bit of poking could find some glaurung1 code that is still in stockfish today...
I gave two examples, but of course, i should trust you rather than their own authors.
http://www.talkchess.com/forum/viewtopic.php?t=13597

Miguel
PS: An another example would be Senpai.

You don't have to trust me at all. Just open your eyes and look, in the case of g1/g2/stockfish. How hard is that? I did it. I found no complete rewrite was done. You can do the same.

As far as Senpai is concerned, have you looked? Or just assumed?
If Fabien said it was written from scratch, I have no reason to doubt it.
http://www.chessprogramming.net/senpai/#

Yes, I looked a while ago and Glaurung 1 looked totally different from Glaurung 2. So, no reason to doubt Tord.

The pattern here is that a bunch of authors claim they have rewritten their engines, and you do not believe them.

Miguel
Would you PLEASE grow up. There is no "believe" or "not believe" here. There is simple "looking and analyzing". There is glaurung1 code in glaurung2 and stockfish. I don't care whether you believe that or not. But it is a demonstrable fact. You just have to look. Perhaps Tord uses a sloppy definition of rewrite from scratch, if he actually said that. "rewrite" is vague and subjective or else can be taken literally. If I rebuild an engine for our drag racer, that means many old parts were kept and some new ones possibly added. If I build from scratch, there will be zero old parts in the new motor.

My point here is that we KNOW there is rybka 1.0 beta code in Rybka 2.3.2a. It is not a matter of believing. It is a matter of looking. It is time to stop this "believing" stuff since "rewrite" is vague. "rewrite from scratch" is very precise however. In this case, it does not matter one scintilla since we know 1.0b code is in 2.3.2a by code inspection. Sure some was modified. That was not the point. Some was kept. It almost ALWAYS is...
Not only that, the fact is that there was an earlier version of Rybka, not based on Fruit, that achieved a rating more than 500 elo below Fruit-based Rybka.

How many programmers are able to develop their engines by leaps and bounds, making whopping 500-elo improvements in just couple of months?

Looking around me on this forum, I see everyone is developing by tiny steps forward, I did not record a single elo increase bigger than 200 elo from version to version, and that takes quite a few months, even for weaker engines.

So in the case of Mr. Railich, we have also this collateral evidence.

Mr. Railich used his IM chess knowledge to develop the strongest engine, but based on programming ideas of other.

Now, I do not claim that the appearance of Rybka was bad, on the contrary, this was a step forward for computer chess, and I would prefer to have a stronger cloned engine to analyse my games with, rather than a non-cloned fully original one. And the main purpose of an engine is of course to serve the chess community at large, 90% of which are chess players wanting the provision of better analysis.

So Rybka was a contribution for its time.

The point is however, that many people here claim Vas was a demigod, incomparable genius, fatherly and friendly, when the truth is he:

1. acted unethically by not divulging the entire truth about Rybka
2. earned a lot with the so-called Rybka cluster, much more than the supposed added value of the cluster would warrant for; and this is usually referred to as greed
3. acted unethically also towards some co-workers and partners, using their knowledge and then dismissing them
4. claimed so many official titles, without saying even once: Well, part of this is due to Fabien, for example, which would have been the morally right approach

So basically he was a manager, and his heart was not so much in computer chess, but more in the fame and purse.

Looking around me, neither Houdini, nor Komodo quite repeated that, although both engines might have had good chances at succeeding with a similar policy.

So again, Rybka was a contribution for its time, but its author acted unethically on more than one occasion.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: What's Vasik Rajlich doing today?

Post by michiguel »

Terry McCracken wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
Rebel wrote:
mvk wrote:
bob wrote:One more note. This "you guys searched the wrong version" is a red-herring. Every new version of my chess program, dating ALL the way back to 1968, including major versions, minor versions, or rewrites, had MAJOR parts of the earlier version included. You do not rewrite 30-40-50K lines of code for each version..
VR is not Hyatt. How often do you make that mistake.

My major versions (five times: v0, v1, v2, v3 and mscp) were always 100% rewrites from scratch, no code reuse between them. I'm not the only one.
Reminds me of a Tord quote, something like, you can never rewrite your engine from scratch too many times.
Define "your engine". Only a complete dunderhead would rewrite everything in the engine from scratch. That would imply you did NOTHING right in any of the previous versions...

unlikely in the extreme...
Komodo was rewritten from total scratch (when it was already a top 2).
Glaurung 2.0 was a total rewrite (which lead to Stockfish).

So, the top two engines today, were rewritten from scratch at one point.

And those are not the only two examples.

Miguel
Did you compare first stockfish source to Glaurung? I am not just talking bare search and evaluation when talking about total rewrite. I am talking about EVERYTHING. I'm not going to debate Komodo with no source code to speak of. But we can certainly compare early stockfish to later Glaurungs. I still have 2.2 in my old backups for cluster testing...

You might be surprised what you find when you look. Certainly stockfish 1.8 was nowhere near a complete rewrite. First file I looked at (move.cpp) is almost a perfect match between the two for the first few dozen lines of code, all I felt like looking at...
Please read what I wrote. Glaurung 2.0 is a total rewrite from the previous version of Glaurung.

Don rewrote Komodo. That was Don told said, and I have no reason to doubt him.

Miguel
2 things. Glaurung 1 -> glaurung 2 would be perfectly believable as a rewrite. However comparing 1 to 2 does not suggest g1 was thrown out. It shows g2 was simply g1 refactored and cleaned up and reorganized as much as anything. For example, glaurung22 has a procedure "think" in search.cpp, where it is a separate file think.cpp in glaurung11. That's not what I would call a "complete rewrite". I don't believe anybody does that.

Second, "rewrite" and "write from scratch" are not the same thing. Don posted that he spent a lot of time rewriting Komodo. He did NOT say that he threw everything out and started over. I did 6 completely different versions of Cray Blitz. Starting selective and ending up with something similar to what is done today. And some of those were hugely different. Version 4 was 120K lines of fortran. Version 5, a chess 4.x-like redesign was about 10K lines. But it carried over a lot of code from version 4, including most of the evaluation, just a different search approach. Starting over is a genuine waste of time, and very few do it more than once. Nobody does it a bunch of times unless they just know absolutely nothing about programming and also do not learn from each mistake.

In any case, there are certainly chunks of code from glaurung1 still there in stockfish. No surprise, there are still chunks of code from Crafty version 1 that can be found in version 25.0...

Mark Watkins found eval pieces that matched between R1.0beta and R2.3.2a... Which is not surprising. So please stop with this "not everybody does it that way." So far you haven't given one example of a _complete_ rewrite where nothing is carried from version to version N+1. It just doesn't make good sense to do such, considering all the time that would be lost.

Note: I'll bet that a bit of poking could find some glaurung1 code that is still in stockfish today...
I gave two examples, but of course, i should trust you rather than their own authors.
http://www.talkchess.com/forum/viewtopic.php?t=13597

Miguel
PS: An another example would be Senpai.

You don't have to trust me at all. Just open your eyes and look, in the case of g1/g2/stockfish. How hard is that? I did it. I found no complete rewrite was done. You can do the same.

As far as Senpai is concerned, have you looked? Or just assumed?
If Fabien said it was written from scratch, I have no reason to doubt it.
http://www.chessprogramming.net/senpai/#

Yes, I looked a while ago and Glaurung 1 looked totally different from Glaurung 2. So, no reason to doubt Tord.

The pattern here is that a bunch of authors claim they have rewritten their engines, and you do not believe them.

Miguel
Do you just take other scientists at their word? It would be pretty terrible science wouldn't it?
I trust reputable scientists, because they earned our trust. If there are mistakes, they will eventually show up and will be corrected, but I have to trust their integrity. You cannot second guess things all the time. I know they can make mistakes, but I have to trust they did not mean to lie.

Since you mention it, I trust Tord, Fabien, Martin, Don, and Marcel when they tell me they rewrote their engine. Wouldn't you? They earned my trust. They talk about their engine, they know what they did.

Miguel
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: What's Vasik Rajlich doing today?

Post by michiguel »

bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
Rebel wrote:
mvk wrote:
bob wrote:One more note. This "you guys searched the wrong version" is a red-herring. Every new version of my chess program, dating ALL the way back to 1968, including major versions, minor versions, or rewrites, had MAJOR parts of the earlier version included. You do not rewrite 30-40-50K lines of code for each version..
VR is not Hyatt. How often do you make that mistake.

My major versions (five times: v0, v1, v2, v3 and mscp) were always 100% rewrites from scratch, no code reuse between them. I'm not the only one.
Reminds me of a Tord quote, something like, you can never rewrite your engine from scratch too many times.
Define "your engine". Only a complete dunderhead would rewrite everything in the engine from scratch. That would imply you did NOTHING right in any of the previous versions...

unlikely in the extreme...
Komodo was rewritten from total scratch (when it was already a top 2).
Glaurung 2.0 was a total rewrite (which lead to Stockfish).

So, the top two engines today, were rewritten from scratch at one point.

And those are not the only two examples.

Miguel
Did you compare first stockfish source to Glaurung? I am not just talking bare search and evaluation when talking about total rewrite. I am talking about EVERYTHING. I'm not going to debate Komodo with no source code to speak of. But we can certainly compare early stockfish to later Glaurungs. I still have 2.2 in my old backups for cluster testing...

You might be surprised what you find when you look. Certainly stockfish 1.8 was nowhere near a complete rewrite. First file I looked at (move.cpp) is almost a perfect match between the two for the first few dozen lines of code, all I felt like looking at...
Please read what I wrote. Glaurung 2.0 is a total rewrite from the previous version of Glaurung.

Don rewrote Komodo. That was Don told said, and I have no reason to doubt him.

Miguel
2 things. Glaurung 1 -> glaurung 2 would be perfectly believable as a rewrite. However comparing 1 to 2 does not suggest g1 was thrown out. It shows g2 was simply g1 refactored and cleaned up and reorganized as much as anything. For example, glaurung22 has a procedure "think" in search.cpp, where it is a separate file think.cpp in glaurung11. That's not what I would call a "complete rewrite". I don't believe anybody does that.

Second, "rewrite" and "write from scratch" are not the same thing. Don posted that he spent a lot of time rewriting Komodo. He did NOT say that he threw everything out and started over. I did 6 completely different versions of Cray Blitz. Starting selective and ending up with something similar to what is done today. And some of those were hugely different. Version 4 was 120K lines of fortran. Version 5, a chess 4.x-like redesign was about 10K lines. But it carried over a lot of code from version 4, including most of the evaluation, just a different search approach. Starting over is a genuine waste of time, and very few do it more than once. Nobody does it a bunch of times unless they just know absolutely nothing about programming and also do not learn from each mistake.

In any case, there are certainly chunks of code from glaurung1 still there in stockfish. No surprise, there are still chunks of code from Crafty version 1 that can be found in version 25.0...

Mark Watkins found eval pieces that matched between R1.0beta and R2.3.2a... Which is not surprising. So please stop with this "not everybody does it that way." So far you haven't given one example of a _complete_ rewrite where nothing is carried from version to version N+1. It just doesn't make good sense to do such, considering all the time that would be lost.

Note: I'll bet that a bit of poking could find some glaurung1 code that is still in stockfish today...
I gave two examples, but of course, i should trust you rather than their own authors.
http://www.talkchess.com/forum/viewtopic.php?t=13597

Miguel
PS: An another example would be Senpai.

You don't have to trust me at all. Just open your eyes and look, in the case of g1/g2/stockfish. How hard is that? I did it. I found no complete rewrite was done. You can do the same.

As far as Senpai is concerned, have you looked? Or just assumed?
If Fabien said it was written from scratch, I have no reason to doubt it.
http://www.chessprogramming.net/senpai/#

Yes, I looked a while ago and Glaurung 1 looked totally different from Glaurung 2. So, no reason to doubt Tord.

The pattern here is that a bunch of authors claim they have rewritten their engines, and you do not believe them.

Miguel
Would you PLEASE grow up.
Which means, time to leave the thread.

Miguel

There is no "believe" or "not believe" here. There is simple "looking and analyzing". There is glaurung1 code in glaurung2 and stockfish. I don't care whether you believe that or not. But it is a demonstrable fact. You just have to look. Perhaps Tord uses a sloppy definition of rewrite from scratch, if he actually said that. "rewrite" is vague and subjective or else can be taken literally. If I rebuild an engine for our drag racer, that means many old parts were kept and some new ones possibly added. If I build from scratch, there will be zero old parts in the new motor.

My point here is that we KNOW there is rybka 1.0 beta code in Rybka 2.3.2a. It is not a matter of believing. It is a matter of looking. It is time to stop this "believing" stuff since "rewrite" is vague. "rewrite from scratch" is very precise however. In this case, it does not matter one scintilla since we know 1.0b code is in 2.3.2a by code inspection. Sure some was modified. That was not the point. Some was kept. It almost ALWAYS is...
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: What's Vasik Rajlich doing today?

Post by Rebel »

bob wrote:
Rebel wrote: I wasn't talking about Rybka, just highlighting your condemning and patronizing remarks, the red above.
Again, eh? I have seen ZERO cases of a complete rewrite. Throw out the old code and start from scratch with nothing. That is a dumb way of developing software and that is not a "condescending remark" it is a simple statement of fact. If someone DID rewrite something N times from scratch, they are really very poor programmers. Once, perhaps, to change language, data structures, board representation and everything else. But more than once? What a waste...
So by your logic Fabien and Marcel are dumb programmers, bravo Bob.

Many realities out there but only the Hyatt reality counts.

Here is another reality, mine. Somewhere in the 90's I wrote an experimental version from scratch. The basic ideas;

1. Incremental update of the evaluation function (gain speed).
2. Don't generate all moves at once, just one at the time when you need one (gain speed).

Made no sense to use the regular Rebel code because it was fully ASM, such a fundamental different approach one does in C first and when it has a future you convert the critical parts to ASM for the final speedup.

All the reasons in the world to start from scratch.
Robert Pope
Posts: 558
Joined: Sat Mar 25, 2006 8:27 pm

Re: What's Vasik Rajlich doing today?

Post by Robert Pope »

Rebel wrote:
bob wrote:
Rebel wrote: I wasn't talking about Rybka, just highlighting your condemning and patronizing remarks, the red above.
Again, eh? I have seen ZERO cases of a complete rewrite. Throw out the old code and start from scratch with nothing. That is a dumb way of developing software and that is not a "condescending remark" it is a simple statement of fact. If someone DID rewrite something N times from scratch, they are really very poor programmers. Once, perhaps, to change language, data structures, board representation and everything else. But more than once? What a waste...
So by your logic Fabien and Marcel are dumb programmers, bravo Bob.

Many realities out there but only the Hyatt reality counts.

Here is another reality, mine. Somewhere in the 90's I wrote an experimental version from scratch. The basic ideas;

1. Incremental update of the evaluation function (gain speed).
2. Don't generate all moves at once, just one at the time when you need one (gain speed).

Made no sense to use the regular Rebel code because it was fully ASM, such a fundamental different approach one does in C first and when it has a future you convert the critical parts to ASM for the final speedup.

All the reasons in the world to start from scratch.
And that's the exact case that Bob gave where writing from scratch makes sense.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What's Vasik Rajlich doing today?

Post by bob »

If you have nothing useful to offer, good riddance.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What's Vasik Rajlich doing today?

Post by bob »

Rebel wrote:
bob wrote:
Rebel wrote: I wasn't talking about Rybka, just highlighting your condemning and patronizing remarks, the red above.
Again, eh? I have seen ZERO cases of a complete rewrite. Throw out the old code and start from scratch with nothing. That is a dumb way of developing software and that is not a "condescending remark" it is a simple statement of fact. If someone DID rewrite something N times from scratch, they are really very poor programmers. Once, perhaps, to change language, data structures, board representation and everything else. But more than once? What a waste...
So by your logic Fabien and Marcel are dumb programmers, bravo Bob.

Many realities out there but only the Hyatt reality counts.

Here is another reality, mine. Somewhere in the 90's I wrote an experimental version from scratch. The basic ideas;

1. Incremental update of the evaluation function (gain speed).
2. Don't generate all moves at once, just one at the time when you need one (gain speed).

Made no sense to use the regular Rebel code because it was fully ASM, such a fundamental different approach one does in C first and when it has a future you convert the critical parts to ASM for the final speedup.

All the reasons in the world to start from scratch.
I have YET to see where anyone has rewritten from SCRATCH. Not once. So no "bravo, bob" but rather "bravo Ed for wanting to divert the topic rather than paying attention to what has been claimed." "from scratch" means ZERO code (none, nada, etc) retained from previous version. Doesn't happen very often. Certainly not more than once for a single programmer.

Try again, failure here.

Again, the premise has been "more than once". I'll give anyone one complete rewrite after they learned what they did wrong the first time...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: What's Vasik Rajlich doing today?

Post by bob »

michiguel wrote:
Terry McCracken wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
michiguel wrote:
bob wrote:
Rebel wrote:
mvk wrote:
bob wrote:One more note. This "you guys searched the wrong version" is a red-herring. Every new version of my chess program, dating ALL the way back to 1968, including major versions, minor versions, or rewrites, had MAJOR parts of the earlier version included. You do not rewrite 30-40-50K lines of code for each version..
VR is not Hyatt. How often do you make that mistake.

My major versions (five times: v0, v1, v2, v3 and mscp) were always 100% rewrites from scratch, no code reuse between them. I'm not the only one.
Reminds me of a Tord quote, something like, you can never rewrite your engine from scratch too many times.
Define "your engine". Only a complete dunderhead would rewrite everything in the engine from scratch. That would imply you did NOTHING right in any of the previous versions...

unlikely in the extreme...
Komodo was rewritten from total scratch (when it was already a top 2).
Glaurung 2.0 was a total rewrite (which lead to Stockfish).

So, the top two engines today, were rewritten from scratch at one point.

And those are not the only two examples.

Miguel
Did you compare first stockfish source to Glaurung? I am not just talking bare search and evaluation when talking about total rewrite. I am talking about EVERYTHING. I'm not going to debate Komodo with no source code to speak of. But we can certainly compare early stockfish to later Glaurungs. I still have 2.2 in my old backups for cluster testing...

You might be surprised what you find when you look. Certainly stockfish 1.8 was nowhere near a complete rewrite. First file I looked at (move.cpp) is almost a perfect match between the two for the first few dozen lines of code, all I felt like looking at...
Please read what I wrote. Glaurung 2.0 is a total rewrite from the previous version of Glaurung.

Don rewrote Komodo. That was Don told said, and I have no reason to doubt him.

Miguel
2 things. Glaurung 1 -> glaurung 2 would be perfectly believable as a rewrite. However comparing 1 to 2 does not suggest g1 was thrown out. It shows g2 was simply g1 refactored and cleaned up and reorganized as much as anything. For example, glaurung22 has a procedure "think" in search.cpp, where it is a separate file think.cpp in glaurung11. That's not what I would call a "complete rewrite". I don't believe anybody does that.

Second, "rewrite" and "write from scratch" are not the same thing. Don posted that he spent a lot of time rewriting Komodo. He did NOT say that he threw everything out and started over. I did 6 completely different versions of Cray Blitz. Starting selective and ending up with something similar to what is done today. And some of those were hugely different. Version 4 was 120K lines of fortran. Version 5, a chess 4.x-like redesign was about 10K lines. But it carried over a lot of code from version 4, including most of the evaluation, just a different search approach. Starting over is a genuine waste of time, and very few do it more than once. Nobody does it a bunch of times unless they just know absolutely nothing about programming and also do not learn from each mistake.

In any case, there are certainly chunks of code from glaurung1 still there in stockfish. No surprise, there are still chunks of code from Crafty version 1 that can be found in version 25.0...

Mark Watkins found eval pieces that matched between R1.0beta and R2.3.2a... Which is not surprising. So please stop with this "not everybody does it that way." So far you haven't given one example of a _complete_ rewrite where nothing is carried from version to version N+1. It just doesn't make good sense to do such, considering all the time that would be lost.

Note: I'll bet that a bit of poking could find some glaurung1 code that is still in stockfish today...
I gave two examples, but of course, i should trust you rather than their own authors.
http://www.talkchess.com/forum/viewtopic.php?t=13597

Miguel
PS: An another example would be Senpai.

You don't have to trust me at all. Just open your eyes and look, in the case of g1/g2/stockfish. How hard is that? I did it. I found no complete rewrite was done. You can do the same.

As far as Senpai is concerned, have you looked? Or just assumed?
If Fabien said it was written from scratch, I have no reason to doubt it.
http://www.chessprogramming.net/senpai/#

Yes, I looked a while ago and Glaurung 1 looked totally different from Glaurung 2. So, no reason to doubt Tord.

The pattern here is that a bunch of authors claim they have rewritten their engines, and you do not believe them.

Miguel
Do you just take other scientists at their word? It would be pretty terrible science wouldn't it?
I trust reputable scientists, because they earned our trust. If there are mistakes, they will eventually show up and will be corrected, but I have to trust their integrity. You cannot second guess things all the time. I know they can make mistakes, but I have to trust they did not mean to lie.

Since you mention it, I trust Tord, Fabien, Martin, Don, and Marcel when they tell me they rewrote their engine. Wouldn't you? They earned my trust. They talk about their engine, they know what they did.

Miguel
There's the problem. "When they tell me they rewrote their engine." Have you ever written a paper and published it? Did you ever rewrite it more than once, because it didn't read very smoothly or anything? Did you throw EVERYTHING out and start over, or did you do major cut/paste, modify some things, delete others, add others?

That standard does NOT apply here because it explicitly allows for old code to remain. "rewrite from scratch" or "write from scratch" is very explicit in that everything is newly written. Why don't you ask Tord if THAT is what he did, as opposed to believing something he wrote that you can't be sure what was meant." "rewrote" does not mean 100% new. I just rewrote my Search() function, I have already posted about that here in fact, with the intent of getting rid of all the duplicated code and having just one search for serial and parallel search. I did NOT write from scratch. Much of the old code remained. Quite a bit was deleted. And some was modified. When 25.0 comes out, you can compare search.c to 24.1 to see what I mean. Completely re-factored, but with 100's of lines (big blocks) directly copied from 24.1.

That kind of rewriting has nothing to do with this thread. Neither does the rewrite argument in the first place, because we already KNOW, without guessing or believing anyone or anything other than the raw 1.0 beta asm and the raw 2.3.2a asm, that there is significant amounts of 1.0 beta code still in 2.3.2a...

So why we are off on this tangent is beyond me. Why you want to define what Tord "must have meant" without asking him, I don't know. Why you would want to interpret his comment as "from scratch" is also beyond me, because you CAN just look at the source... I did. Then there can be no issue about guessing what he meant, or guessing about what happened. You will know with 100% certainty.

Strange concept to actually verify things here, I know...
Matthias Hartwich
Posts: 38
Joined: Tue Jul 01, 2008 9:36 pm

Re: What's Vasik Rajlich doing today?

Post by Matthias Hartwich »

What does it mean to rewrite code? One does not start from scratch as there are experiences from previous work. So even if I sit down t redo a task done before I will do some things as before. Why? Because I want to focus on those points that caused me to rewrite at all.

Starting a chess program "from scratch" means to me one wants to get rid of doing things in a way just because they were done so. But I can't imagine to start everything new because change only because of change is a waste of work.

In this threat it is just arguing for words as there are many definitions for "starting from scratch". This arguing is bad for computer chess but the repetitions from all sides within the last few years show that there won't be an end... :(
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: What's Vasik Rajlich doing today?

Post by Rebel »

Robert Pope wrote:
Rebel wrote:
bob wrote:
Rebel wrote: I wasn't talking about Rybka, just highlighting your condemning and patronizing remarks, the red above.
Again, eh? I have seen ZERO cases of a complete rewrite. Throw out the old code and start from scratch with nothing. That is a dumb way of developing software and that is not a "condescending remark" it is a simple statement of fact. If someone DID rewrite something N times from scratch, they are really very poor programmers. Once, perhaps, to change language, data structures, board representation and everything else. But more than once? What a waste...
So by your logic Fabien and Marcel are dumb programmers, bravo Bob.

Many realities out there but only the Hyatt reality counts.

Here is another reality, mine. Somewhere in the 90's I wrote an experimental version from scratch. The basic ideas;

1. Incremental update of the evaluation function (gain speed).
2. Don't generate all moves at once, just one at the time when you need one (gain speed).

Made no sense to use the regular Rebel code because it was fully ASM, such a fundamental different approach one does in C first and when it has a future you convert the critical parts to ASM for the final speedup.

All the reasons in the world to start from scratch.
And that's the exact case that Bob gave where writing from scratch makes sense.
Eh, I don't think you understand the magnitude of change that involves moving to an "incremental update" type of chess engine and (likely) with it the need (or self-preservation hehe) to do it in C first.