What's Vasik Rajlich doing today?

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

Moderator: Ras

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:
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
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:
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...

I looked at a couple of other modules and found what I would expect. Some cleaning up. some refactoring. Some old code removed. Some new code added. Not a ground-up rewrite.
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:
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
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:
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...
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:
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.
User avatar
Rebel
Posts: 7420
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: What's Vasik Rajlich doing today?

Post by Rebel »

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...
As usual you project your own line of thinking as the absolute truth on the rest of the world.
Sedat Canbaz
Posts: 3018
Joined: Thu Mar 09, 2006 11:58 am
Location: Antalya/Turkey

Re: What's Vasik Rajlich doing today?

Post by Sedat Canbaz »

Hello dear Frank,

I see that you are still thinking over Fruit/Rybka issue, hehe ))

And I noticed that you mentioned my name in the locked 'clone' thread:
What's Vasik Rajlich doing for dinner ... on Saturday?

In the meantime we can search the new version on the PC. Sedat in the middle of the field, sorry Sedat

I have difficulties to understand you again, so can you explain please what do you mean exactly ?

And do you know why I believe that you are 'too much' biased on Fabien's views:
Just one simple proof: you wrote something like this in your previous postings (on this thread):
-If Fabien will read it, he will kill me

Your above saying shows us everything... !)

Btw,
Maybe we (Graham and Me) are not in your Top list,
But at least, we are in your not important list, when we commiserated you, when you was ill (a few weeks ago)
Yes...we worried a lot about your heath...but now I am happy that you are well and between us !

And last,
You are my chess friend...it does not matter what you wrote etc...
And I like you and I respect you as you are... ! even with your mistakes )!


Best,
Sedat
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:
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?
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:
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...
As usual you project your own line of thinking as the absolute truth on the rest of the world.
Eh? We KNOW rybka 2 was not a complete rewrite. It was examined. So what, exactly, is your point? glaurung2 is not a complete rewrite of glaurung1. I actually looked at the code.

That is not called "projection" it is called "verification/validation."
mar
Posts: 2668
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: What's Vasik Rajlich doing today?

Post by mar »

michiguel wrote: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 can count cheng4 as well.
It was a complete (full/total) rewrite, I only kept some of the magic bitboard code, repetition list, bitboard support code
and PRNG (which I don't like anyway and will replace it with something more robust and simpler).
So ~90% was completely rewritten (from scratch) and the rest was kept but refactored.
The motivation was the old code base being buggy and hard to maintain (very ugly).