Fabien's open letter to the community

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

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Robert Flesher
Posts: 1205
Joined: Tue Aug 18, 2009 1:06 am

Re: Fabien's open letter to the community

Post by Robert Flesher » Tue Feb 08, 2011 5:11 pm

Dr.Wael Deeb wrote:
Robert Flesher wrote:
Robert Flesher wrote:
Tord Romstad wrote:My good friend Fabien Letouzey, author of Fruit, asked me to post the following message for him:
Hello,

Long time no see.

First, I am not back to computer chess, sorry about that. I just want to clarify a few things. Sorry if that's old but there is some misunderstanding I need to fix, and I found out only yesterday. Bear in mind that I am mostly unaware of what has happened for five years though.

First there was the Strelka case. Dann approached me with some "Strelka" source code for me to check. I had never heard of it. I assumed it was some closed-source free engine and that people wanted to know whether it was based on the Fruit source code.

The short answer was "no", it was not a verbatim copy of the source code. All the code had been typed (can't say "designed" though, see below) by an individual. So legally there was no issue that I knew of. It was however a whole re-write (copy with different words if you like, similar to a translation) of the algorithms. Not just an extraction of a couple of ideas as is common, and normal.

That being said, some original changes and ideas were also included in the program. So it was, as has since been stated many times in fora I suppose, a bitboard re-write of Fruit with some personal (or otherwise) ideas. Also note that the source code Dann sent me might not be the from the 2.0 version.

Edit: I've just had a look at the 2.0 sources. On top of what I said above, there are many constant and function names that are identical to Fruit's. I remember noticing it back then as well.

Hope it helps, because my email answer to Dann was unusually short and cryptic even by my standards. And Dann, please next time make it clear when you want a public statement instead of a private opinion, thanks.

I want to point out something immediately: there was no mention of Rybka whatsoever. Indeed I was unaware of any relation between Strelka and Rybka, this is precisely what I learned only yesterday. I insist because it seems I have often been quoted about "not caring" about the (possible) Fruit/Rybka relationship, but this is not so. Strelka did not look like a problem because I assumed it was free.

Next, I was approached by Ryan (I think) and Christophe Theron about whether I could help with some "possible Fruit code inside Rybka" issues. I answered "yes, but how?", but did not get a reply. This did not make me really aware of a clone possibility however because I thought they were talking about some insignificant UCI-handling code or whatnot. Also this was several years after the initial Rybka release, and I guess quite a few people had a close look at it. Apparently Chrilly did?

Now if someone could tell me a bit more about the major events last five years and the current state of affairs, I'd be much obliged.

A few things I noticed yesterday, can you confirm?
- Rybka search info was obfuscated in some way (like displaying depth-3 or something), any pointers on details please?
- Vasik claimed that Strelka 2.0 is a clone of Rybka 1.0 (and you know what that would imply!)
- Zach Wegner found many Fruit ideas (and nearly identical code) in Rybka 1.0; I think someone else did, too
- Some even stronger open-source program appeared as a decompilation of Rybka (with own ideas, sounds familiar), what came up of looking at those?

Any questions, now is the one time to ask.

Thanks for your attention,

Fabien Letouzey.

For those who did not see the Vas video interview. I believe it will be of great interest to some at 9:28 Vas is asked, "What chess engines in public domain, when you got started, had the biggest influence on the earliest versions of Rybka?" Nothing "Fruity" about his reply.

http://chessok.com/download/A%20Convers ... th%20Vasik%
20Rajlich.wmv
The next Vas interview?

Image
You show a moderate level of lying here....
If Vas is attached,the machine will simply blow off to pieces :lol:

:wink:


Teasing and kidding aside, as some people may be offended, that was not my intent. I was implying that the aforementioned interview may have included different, and perhaps more truthful information if conducted as shown in the satirical image shown above.

diep
Posts: 1780
Joined: Thu Mar 09, 2006 10:54 pm
Location: The Netherlands
Contact:

Re: Fabien's open letter to the community

Post by diep » Wed Feb 09, 2011 1:43 pm

I have problems believing you Bob.

If you wuold rewrite crafty yourself assuming you don't get informed of newer developments where others profitted from:

You seriously underestimate the positive things that others have brought to you into crafty.

a) it would take 10 years
b) it would play 500 elo weaker at the same hardware
c) it would be 2x slower in nps
d) you would again have a testing problem as someone needs to write that code to automatically test. We are still awaiting the 'few scripts' that you use to automatically test crafty and modify its parameters with those scripts.

When you used to edit in crafty source code yourself, 2 bytes got changed, boom new version. No serious testing. Your current helpdesk moves forward so fast that others in CCC, such as Uri Blass, must explain to you, very painful, what the current crafty is actually doing.

Doing a simple compare of version 22.x with 23.x shows the huge number of changes done to crafty.

You wouldn't manage those changes yourself in a 100 years.

Vincent

bob wrote:
Dann Corbit wrote:
bob wrote:
Dann Corbit wrote:
Don wrote:
Houdini wrote:
Don wrote:I think you are correct. I personally AM a fan of rewrites but I think there are many chess authors that don't ever rewrite, or have only done so once in years.
Rewriting for the sake of rewriting doesn't serve any purpose at all.
Software with a good architecture will survive many years and many changes.

Robert
I don't rewrite just for the sake of it.

Don
Typical reasons for rewriting:
1. Change of language (e.g. C to C++)
2. Change of underlying data structures (e.g. mailbox to bitboard)
3. Increased programming ability (every decade, my programming skills increase quite a bit, so the code I wrote 20 years ago will benefit considerably from a rewrite).
4. Lost code (yes, it does happen -- I have sent code back to chess authors who lost their original code and who had also sent their code to me on several occasions, for instance).
I don't agree with those.

(1) can be solved via translation. A good program can be translated to a new language without rewriting a thing...
Basic to C++?
Pascal to Java?
Fortran to C?
I have seen the latter two. And Zortech used to sell the Fortran to C translator. I probably still have a copy in my office. I used it to make the original translation of the CB source to C back in 1994. The code was not very clean looking, because it was just a one-for-one translation to C. And since FORTRAN didn't have pointers in the f77 standard, the resulting C code did not use pointers. So it needed a lot of cleaning up to become "decent C". But the output of the translator would compile and run and produce identical results to the original FORTRAN program.

I think there is even a GNU fortran to C translator. I have not used it, but have noticed it in installing several different Linux distros. Something like f2c or something. But no info on how well it works...


(2) I did the mailbox-to-bitboard translation with Crafty. It only affects a part of the code. Search is unchanged. Move ordering is unchanged. Several other things are completely board representation independent.
Crafty is a giant machine with nearly 40K lines of code. At ten lines per hour and $100/hour that would translate to $400,000 worth of work. It would be a titanic effort, therefore, to rewrite crafty. Smaller programs of a few hundred lines would be far more likely candidates for such an effort.
I can't speak for everyone, but I produce a lot more than 10 lines per hour. Don't forget, half of those 40K + lines of code are simply comments that don't need translation, and also help in understanding... I would suspect it would take a year of solid work to rewrite Crafty from scratch, assuming I could access the comments but not the source instructions, to get it back to something close to the current state. Might take longer to get the speed back to where it is...


(3) I don't think is that common. One does not rewrite _everything_ just because they are a better programmer now than 10 years ago. you might rewrite _parts_. But not the whole thing. That is a huge waste of time and effort.
I have done it, but typically with small projects. TSCP needs a complete rewrite, for instance.
(4) Never had that happen to the current version of code since I always keep duplicates and backups scattered around.
It is the result of carelessness when code is lost, but it does happen. I suspect that you have lost at least one or more snapshot of a released version of Cray Blitz or Crafty (at least in the early stages) because with hobby projects that are not producing revenue we sometimes are not quite as careful as when a big pile of money is at stake.
I lost about 80% of everything in 1995. Not the current version as it is always kept in multiple locations such as my office box, my laptop, and a central NFS file server on top of that. But old versions I kept only on my office box and a disk crash and later discovery that all backups were unreadable lost a lot of old stuff. I now have everything stored in three places, with a simple mechanism to scatter the duplicates to the right places after a change is made...

diep
Posts: 1780
Joined: Thu Mar 09, 2006 10:54 pm
Location: The Netherlands
Contact:

Re: Fabien's open letter to the community

Post by diep » Wed Feb 09, 2011 2:15 pm

playjunior wrote:
Sven Schüle wrote:
playjunior wrote:Bob, a big difference between 1995 and now is that now you can encrypt, zip and email the source to

yourself and it will take you 3 minutes. It is that simple.

I read long time ago when Strelka came out someone asked Vasik whether it might be possible that his code got stolen, he said

no, because he keeps it a dedicated computer with no internet connection.

A person who takes such precautions would surely take a minute or two to take care he has a backup copy.
But not necessarily of each single version you create. And with some bad luck you miss to make that backup copy for a while.

Sven
Neh. They had Rybka 3 beta available for some time, they were testing/tuning it, for what, months? Not a single backup copy in that timeframe? Who does that?

Edit: And then you make the release version and start selling it without bothering to take a backup.
You are treating the 'see you' guys far too serious. When i read it, i was laughing, together with a bunch of other programmers, so loud, that i still can hear the echoes :)

Now i'm waiting for the fantastic story making it more plausible he lost the code. Lemme see. His house in Poland caught fire meanwhile at same time he fell, dropped thereby his laptop, causing it to get underneath an Abrams M1A1 tank, when he visited a very public manifestation. He could not reach out for that laptop, as he was busy rescuing a small boy from getting underneath that tank, earning him a congressional medal - oh no sorry that one already was reserved for Peter Skinner :)

Vincent

bob
Posts: 20344
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Fabien's open letter to the community

Post by bob » Wed Feb 09, 2011 2:34 pm

diep wrote:I have problems believing you Bob.

If you wuold rewrite crafty yourself assuming you don't get informed of newer developments where others profitted from:

You seriously underestimate the positive things that others have brought to you into crafty.

a) it would take 10 years
b) it would play 500 elo weaker at the same hardware
c) it would be 2x slower in nps
d) you would again have a testing problem as someone needs to write that code to automatically test. We are still awaiting the 'few scripts' that you use to automatically test crafty and modify its parameters with those scripts.

When you used to edit in crafty source code yourself, 2 bytes got changed, boom new version. No serious testing. Your current helpdesk moves forward so fast that others in CCC, such as Uri Blass, must explain to you, very painful, what the current crafty is actually doing.

Doing a simple compare of version 22.x with 23.x shows the huge number of changes done to crafty.

You wouldn't manage those changes yourself in a 100 years.

Vincent
Sorry, but 99.9% of the changes made in the past 10 years were done by me, and me alone. So I do not know where you are getting your info. We didn't do any 2 byte = new version changes either. Each version represented either a significant change, or a bug fix of any time if it was deemed an important bug (mostly dealing with xboard protocol or perhaps in the early SMP days of Crafty, a significant SMP bug).

The only code changes Tracy has made were in the evaluation. Generally he tries different scores. Or new terms. Or new ways of computing old terms. If it looks promising, I end up looking at the code from a pure efficiency point of view and modifying it as needed to restore performance. The rest of the program (excluding just eval) has been solely my editing. And in the eval, we are probably 50-50 as to who changed what...

Your numbers are off by orders of magnitude...

bob wrote:
Dann Corbit wrote:
bob wrote:
Dann Corbit wrote:
Don wrote:
Houdini wrote:
Don wrote:I think you are correct. I personally AM a fan of rewrites but I think there are many chess authors that don't ever rewrite, or have only done so once in years.
Rewriting for the sake of rewriting doesn't serve any purpose at all.
Software with a good architecture will survive many years and many changes.

Robert
I don't rewrite just for the sake of it.

Don
Typical reasons for rewriting:
1. Change of language (e.g. C to C++)
2. Change of underlying data structures (e.g. mailbox to bitboard)
3. Increased programming ability (every decade, my programming skills increase quite a bit, so the code I wrote 20 years ago will benefit considerably from a rewrite).
4. Lost code (yes, it does happen -- I have sent code back to chess authors who lost their original code and who had also sent their code to me on several occasions, for instance).
I don't agree with those.

(1) can be solved via translation. A good program can be translated to a new language without rewriting a thing...
Basic to C++?
Pascal to Java?
Fortran to C?
I have seen the latter two. And Zortech used to sell the Fortran to C translator. I probably still have a copy in my office. I used it to make the original translation of the CB source to C back in 1994. The code was not very clean looking, because it was just a one-for-one translation to C. And since FORTRAN didn't have pointers in the f77 standard, the resulting C code did not use pointers. So it needed a lot of cleaning up to become "decent C". But the output of the translator would compile and run and produce identical results to the original FORTRAN program.

I think there is even a GNU fortran to C translator. I have not used it, but have noticed it in installing several different Linux distros. Something like f2c or something. But no info on how well it works...


(2) I did the mailbox-to-bitboard translation with Crafty. It only affects a part of the code. Search is unchanged. Move ordering is unchanged. Several other things are completely board representation independent.
Crafty is a giant machine with nearly 40K lines of code. At ten lines per hour and $100/hour that would translate to $400,000 worth of work. It would be a titanic effort, therefore, to rewrite crafty. Smaller programs of a few hundred lines would be far more likely candidates for such an effort.
I can't speak for everyone, but I produce a lot more than 10 lines per hour. Don't forget, half of those 40K + lines of code are simply comments that don't need translation, and also help in understanding... I would suspect it would take a year of solid work to rewrite Crafty from scratch, assuming I could access the comments but not the source instructions, to get it back to something close to the current state. Might take longer to get the speed back to where it is...


(3) I don't think is that common. One does not rewrite _everything_ just because they are a better programmer now than 10 years ago. you might rewrite _parts_. But not the whole thing. That is a huge waste of time and effort.
I have done it, but typically with small projects. TSCP needs a complete rewrite, for instance.
(4) Never had that happen to the current version of code since I always keep duplicates and backups scattered around.
It is the result of carelessness when code is lost, but it does happen. I suspect that you have lost at least one or more snapshot of a released version of Cray Blitz or Crafty (at least in the early stages) because with hobby projects that are not producing revenue we sometimes are not quite as careful as when a big pile of money is at stake.
I lost about 80% of everything in 1995. Not the current version as it is always kept in multiple locations such as my office box, my laptop, and a central NFS file server on top of that. But old versions I kept only on my office box and a disk crash and later discovery that all backups were unreadable lost a lot of old stuff. I now have everything stored in three places, with a simple mechanism to scatter the duplicates to the right places after a change is made...

diep
Posts: 1780
Joined: Thu Mar 09, 2006 10:54 pm
Location: The Netherlands
Contact:

Re: Fabien's open letter to the community

Post by diep » Wed Feb 09, 2011 2:46 pm

bob wrote:
diep wrote:I have problems believing you Bob.

If you wuold rewrite crafty yourself assuming you don't get informed of newer developments where others profitted from:

You seriously underestimate the positive things that others have brought to you into crafty.

a) it would take 10 years
b) it would play 500 elo weaker at the same hardware
c) it would be 2x slower in nps
d) you would again have a testing problem as someone needs to write that code to automatically test. We are still awaiting the 'few scripts' that you use to automatically test crafty and modify its parameters with those scripts.

When you used to edit in crafty source code yourself, 2 bytes got changed, boom new version. No serious testing. Your current helpdesk moves forward so fast that others in CCC, such as Uri Blass, must explain to you, very painful, what the current crafty is actually doing.

Doing a simple compare of version 22.x with 23.x shows the huge number of changes done to crafty.

You wouldn't manage those changes yourself in a 100 years.

Vincent
Sorry, but 99.9% of the changes made in the past 10 years were done by me, and me alone.
then looking at the source code where starting from version 23, now the huge changes to the evaluation function show some typical mathematical personality, one that loves matrix calculations, someone who has no clue about chess; further some very atypical speedups here and there elsewhere in the code, done by someone who is more pragmatic than the devil. So 2 different programming styles got added to crafty 23+. 2 styles not seen before in the crafty coding.

Did your personality change recently Bob?
So I do not know where you are getting your info. We didn't do any 2 byte = new version changes either. Each version represented either a significant change, or a bug fix of any time if it was deemed an important bug (mostly dealing with xboard protocol or perhaps in the early SMP days of Crafty, a significant SMP bug).

The only code changes Tracy has made were in the evaluation. Generally he tries different scores. Or new terms. Or new ways of computing old terms. If it looks promising, I end up looking at the code from a pure efficiency point of view and modifying it as needed to restore performance. The rest of the program (excluding just eval) has been solely my editing. And in the eval, we are probably 50-50 as to who changed what...

Your numbers are off by orders of magnitude...

bob wrote:
Dann Corbit wrote:
bob wrote:
Dann Corbit wrote:
Don wrote:
Houdini wrote:
Don wrote:I think you are correct. I personally AM a fan of rewrites but I think there are many chess authors that don't ever rewrite, or have only done so once in years.
Rewriting for the sake of rewriting doesn't serve any purpose at all.
Software with a good architecture will survive many years and many changes.

Robert
I don't rewrite just for the sake of it.

Don
Typical reasons for rewriting:
1. Change of language (e.g. C to C++)
2. Change of underlying data structures (e.g. mailbox to bitboard)
3. Increased programming ability (every decade, my programming skills increase quite a bit, so the code I wrote 20 years ago will benefit considerably from a rewrite).
4. Lost code (yes, it does happen -- I have sent code back to chess authors who lost their original code and who had also sent their code to me on several occasions, for instance).
I don't agree with those.

(1) can be solved via translation. A good program can be translated to a new language without rewriting a thing...
Basic to C++?
Pascal to Java?
Fortran to C?
I have seen the latter two. And Zortech used to sell the Fortran to C translator. I probably still have a copy in my office. I used it to make the original translation of the CB source to C back in 1994. The code was not very clean looking, because it was just a one-for-one translation to C. And since FORTRAN didn't have pointers in the f77 standard, the resulting C code did not use pointers. So it needed a lot of cleaning up to become "decent C". But the output of the translator would compile and run and produce identical results to the original FORTRAN program.

I think there is even a GNU fortran to C translator. I have not used it, but have noticed it in installing several different Linux distros. Something like f2c or something. But no info on how well it works...


(2) I did the mailbox-to-bitboard translation with Crafty. It only affects a part of the code. Search is unchanged. Move ordering is unchanged. Several other things are completely board representation independent.
Crafty is a giant machine with nearly 40K lines of code. At ten lines per hour and $100/hour that would translate to $400,000 worth of work. It would be a titanic effort, therefore, to rewrite crafty. Smaller programs of a few hundred lines would be far more likely candidates for such an effort.
I can't speak for everyone, but I produce a lot more than 10 lines per hour. Don't forget, half of those 40K + lines of code are simply comments that don't need translation, and also help in understanding... I would suspect it would take a year of solid work to rewrite Crafty from scratch, assuming I could access the comments but not the source instructions, to get it back to something close to the current state. Might take longer to get the speed back to where it is...


(3) I don't think is that common. One does not rewrite _everything_ just because they are a better programmer now than 10 years ago. you might rewrite _parts_. But not the whole thing. That is a huge waste of time and effort.
I have done it, but typically with small projects. TSCP needs a complete rewrite, for instance.
(4) Never had that happen to the current version of code since I always keep duplicates and backups scattered around.
It is the result of carelessness when code is lost, but it does happen. I suspect that you have lost at least one or more snapshot of a released version of Cray Blitz or Crafty (at least in the early stages) because with hobby projects that are not producing revenue we sometimes are not quite as careful as when a big pile of money is at stake.
I lost about 80% of everything in 1995. Not the current version as it is always kept in multiple locations such as my office box, my laptop, and a central NFS file server on top of that. But old versions I kept only on my office box and a disk crash and later discovery that all backups were unreadable lost a lot of old stuff. I now have everything stored in three places, with a simple mechanism to scatter the duplicates to the right places after a change is made...

bob
Posts: 20344
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Fabien's open letter to the community

Post by bob » Wed Feb 09, 2011 4:11 pm

LucenaTheLucid wrote:I think since the since the Fruit->Rybka issue is basically agreed upon, then the next obvious thing would be to decide what exactly Ippo is? Then once Ippo is decided upon then possibly Houdini.
This is complex. Fruit is open source. R1 beta is not. The ip* was open source. And houdini is not. So every other hop in that suspected family of programs is a difficult one to deal with...

bob
Posts: 20344
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Fabien's open letter to the community

Post by bob » Wed Feb 09, 2011 4:15 pm

diep wrote:
bob wrote:
diep wrote:I have problems believing you Bob.

If you wuold rewrite crafty yourself assuming you don't get informed of newer developments where others profitted from:

You seriously underestimate the positive things that others have brought to you into crafty.

a) it would take 10 years
b) it would play 500 elo weaker at the same hardware
c) it would be 2x slower in nps
d) you would again have a testing problem as someone needs to write that code to automatically test. We are still awaiting the 'few scripts' that you use to automatically test crafty and modify its parameters with those scripts.

When you used to edit in crafty source code yourself, 2 bytes got changed, boom new version. No serious testing. Your current helpdesk moves forward so fast that others in CCC, such as Uri Blass, must explain to you, very painful, what the current crafty is actually doing.

Doing a simple compare of version 22.x with 23.x shows the huge number of changes done to crafty.

You wouldn't manage those changes yourself in a 100 years.

Vincent
Sorry, but 99.9% of the changes made in the past 10 years were done by me, and me alone.
then looking at the source code where starting from version 23, now the huge changes to the evaluation function show some typical mathematical personality, one that loves matrix calculations, someone who has no clue about chess; further some very atypical speedups here and there elsewhere in the code, done by someone who is more pragmatic than the devil. So 2 different programming styles got added to crafty 23+. 2 styles not seen before in the crafty coding.

Did your personality change recently Bob?
No, and there is no "matrix mathematical personality" involved. Just Tracy and myself. And I have already explained who has done what. If you want to ask about a specific piece of code, feel free and I can tell you exactly how it was derived.

The "pragmatic code" is certainly mine, however. I've only been doing optimization work for 40+ years now. And there is pragmatic code everywhere in Crafty, so I am not sure why you think there are three different people involved. There are only two and almost all of the code comes thru my fingers, the only exception being pieces of eval here and there that don't require any optimization work because they are straightforward to begin with.
So I do not know where you are getting your info. We didn't do any 2 byte = new version changes either. Each version represented either a significant change, or a bug fix of any time if it was deemed an important bug (mostly dealing with xboard protocol or perhaps in the early SMP days of Crafty, a significant SMP bug).

The only code changes Tracy has made were in the evaluation. Generally he tries different scores. Or new terms. Or new ways of computing old terms. If it looks promising, I end up looking at the code from a pure efficiency point of view and modifying it as needed to restore performance. The rest of the program (excluding just eval) has been solely my editing. And in the eval, we are probably 50-50 as to who changed what...

Your numbers are off by orders of magnitude...

bob wrote:
Dann Corbit wrote:
bob wrote:
Dann Corbit wrote:
Don wrote:
Houdini wrote:
Don wrote:I think you are correct. I personally AM a fan of rewrites but I think there are many chess authors that don't ever rewrite, or have only done so once in years.
Rewriting for the sake of rewriting doesn't serve any purpose at all.
Software with a good architecture will survive many years and many changes.

Robert
I don't rewrite just for the sake of it.

Don
Typical reasons for rewriting:
1. Change of language (e.g. C to C++)
2. Change of underlying data structures (e.g. mailbox to bitboard)
3. Increased programming ability (every decade, my programming skills increase quite a bit, so the code I wrote 20 years ago will benefit considerably from a rewrite).
4. Lost code (yes, it does happen -- I have sent code back to chess authors who lost their original code and who had also sent their code to me on several occasions, for instance).
I don't agree with those.

(1) can be solved via translation. A good program can be translated to a new language without rewriting a thing...
Basic to C++?
Pascal to Java?
Fortran to C?
I have seen the latter two. And Zortech used to sell the Fortran to C translator. I probably still have a copy in my office. I used it to make the original translation of the CB source to C back in 1994. The code was not very clean looking, because it was just a one-for-one translation to C. And since FORTRAN didn't have pointers in the f77 standard, the resulting C code did not use pointers. So it needed a lot of cleaning up to become "decent C". But the output of the translator would compile and run and produce identical results to the original FORTRAN program.

I think there is even a GNU fortran to C translator. I have not used it, but have noticed it in installing several different Linux distros. Something like f2c or something. But no info on how well it works...


(2) I did the mailbox-to-bitboard translation with Crafty. It only affects a part of the code. Search is unchanged. Move ordering is unchanged. Several other things are completely board representation independent.
Crafty is a giant machine with nearly 40K lines of code. At ten lines per hour and $100/hour that would translate to $400,000 worth of work. It would be a titanic effort, therefore, to rewrite crafty. Smaller programs of a few hundred lines would be far more likely candidates for such an effort.
I can't speak for everyone, but I produce a lot more than 10 lines per hour. Don't forget, half of those 40K + lines of code are simply comments that don't need translation, and also help in understanding... I would suspect it would take a year of solid work to rewrite Crafty from scratch, assuming I could access the comments but not the source instructions, to get it back to something close to the current state. Might take longer to get the speed back to where it is...


(3) I don't think is that common. One does not rewrite _everything_ just because they are a better programmer now than 10 years ago. you might rewrite _parts_. But not the whole thing. That is a huge waste of time and effort.
I have done it, but typically with small projects. TSCP needs a complete rewrite, for instance.
(4) Never had that happen to the current version of code since I always keep duplicates and backups scattered around.
It is the result of carelessness when code is lost, but it does happen. I suspect that you have lost at least one or more snapshot of a released version of Cray Blitz or Crafty (at least in the early stages) because with hobby projects that are not producing revenue we sometimes are not quite as careful as when a big pile of money is at stake.
I lost about 80% of everything in 1995. Not the current version as it is always kept in multiple locations such as my office box, my laptop, and a central NFS file server on top of that. But old versions I kept only on my office box and a disk crash and later discovery that all backups were unreadable lost a lot of old stuff. I now have everything stored in three places, with a simple mechanism to scatter the duplicates to the right places after a change is made...

User avatar
GenoM
Posts: 910
Joined: Wed Mar 08, 2006 8:46 pm
Location: Plovdiv, Bulgaria
Contact:

Re: Fabien's open letter to the community

Post by GenoM » Sat Apr 16, 2011 1:38 pm

Glad finally many people can see the truth :d
cheers to all who were at the right side of the barricade :)
take it easy :)

Post Reply