Derivatives are real programs too

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

Moderator: Ras

User avatar
Graham Banks
Posts: 44643
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Derivatives are real programs too

Post by Graham Banks »

BubbaTough wrote:
kranium wrote: i can understand that, and it makes some sense...i do want to point out that in this case (the Pan American), there is no version of Fruit, any any derivative of it already entered.
I agree with Swami that if testers want to test (or exclude from testing) derivatives that is up to them. I would expand that to say if tournament directors want to include (or exclude) derivatives that is up to them. It all seems pretty simple, whoever is doing the organization work gets to do whatever they want.

In the case of the Pan American, I would think the regional aspect would make adding a program derived from a French program a bit odd...unlike say a Crafty derivative. But such decisions are really up to the tournament director.

-Sam
Agreed.
gbanksnz at gmail.com
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Derivatives are real programs too

Post by Michel »

This discussion seems quite pointless.

What people seem to be neglecting here is that people could also suppress their primitive urge to release a derivative and instead submit their patches to the original author.

Only if the original author is unwilling to accept improvements a derivative (fork) would be justified.

That's the way open source projects normally work.

It is a highly successful development model (gcc, the Linux kernel, etc...)

If the original is not open source (in the OSI sense) you cannot release a derivative anyway so there is no need to discuss.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Derivatives are real programs too

Post by kranium »

Michel wrote:<rant>
Unfortunately there is a big chaos in the derivatives world. I have not seen this in any other open source project. What makes chess programmers different?

For Fruit there are at least the following major derivatives that I know of

GambitFruit, Cyclone, Cyclops, GrapeFruit, Toga II 3.1.2SE, Toga II 1.3.4, Toga II 1.4b5c, Toga 1.4.1SE, Toga 1.4.2JD, Toga 1.4.3JD(secret betas), DeepLearningToga

Mind you these programs usually released without any changelog, except for a short readme saying that they are "much faster", or "much improved" or something to that effect. Sometimes they only contain cosmetic changes like the ability to detect the number of processors, or something like that. At other times major functionality is removed without any consultation. I was especially shocked by the decision of the Toga developers to abandon Linux compatibility, given that Fabien Letouzey went to such great pain to release a cross platform engine.

I am sure Cyclone is a great engine and contains genuine improvements (I noticed some in my testing). But going through the source code I noticed the following.

(1) The source has been reformatted and variables names are all in lower case. It looks a lot nicer now but it would also be much harder to merge with Toga again.

(2) All ASSERTS were removed from the code. I considered them great for debugging.

(3) I think the opening book functionality was removed. Personally I think this is a good idea. But if Cyclone is successful someone is bound to reimplement it, touting it as a "big improvement".

(4) Many constants were substituted directly in the source it seems. This is something the compiler would do anyway. And it would be hard to back out of this change.

(5) Some filenames were changed for unclear reasons. For example protocol.cpp became interface.cpp, posix.cpp became input.cpp, search_full.cpp became search_root.cpp.

Again this is not a criticism of Cyclone but an indication of how the development process seems to happen in the derivatives world.

</rant>
Hi Michel,
Thanks for your input here...here's some feedback on your comments:

(a) Mind you these programs usually released without any changelog, except for a short readme saying that they are "much faster", or "much improved" or something to that effect.
you're correct here concening Toga, and it's many versions, there's never a detailed change log...but no so with Cyclone: please take a look at the release of Cylone 1.0 beta and 1.0, you'll never find a more extensive and detailed change log.

(1) The source has been reformatted and variables names are all in lower case. It looks a lot nicer now but it would also be much harder to merge with Toga again.

This is personal choice, personally i can work with the code better this way, and i believe it's been significantly beautified.

(2) All ASSERTS were removed from the code. I considered them great for debugging.

I haven't a single crash forever...and have absolutely no need for the ASSERTS, I do do agree they're a good thing...but at the same time, it's very easy to add any specific ASSERT if debugging a particular change is needed. Otherwise, IMHO, if you're not debugging, they simply clutter the code, and detract from it's readability.

(3) I think the opening book functionality was removed. Personally I think this is a good idea. But if Cyclone is successful someone is bound to reimplement it, touting it as a "big improvement".

Toga opening book is broken. it happened with the release of 14beta5c and multi CPU. (as far as i can tell, it only works correctly with 1 thread)...with more than 1 thread it crashes hard with illegal move "a1a1" error, not nice! that's why I removed it...until I can fix it.

(5) Some filenames were changed for unclear reasons. For example protocol.cpp became interface.cpp, posix.cpp became input.cpp, search_full.cpp became search_root.cpp.

Again this was a personal choice...'protocol.cpp' never made sense to me, the file contains mainly functions that "interface the program to a UCI GUI"..., and others that have nothing to do with UCI protocol. yes, the input is 'posix' compliant, but i vastly prefer filenames that reflect the files functionality, rather than the governing standard, input.cpp is clearer.

Norm
Last edited by kranium on Thu Nov 06, 2008 11:45 am, edited 1 time in total.
swami
Posts: 6662
Joined: Thu Mar 09, 2006 4:21 am

Re: Derivatives are real programs too

Post by swami »

Computer chess is already dead.
Many don't share your opinion.


I've been reading stuffs from people over past few years soon after Rybka just got stronger and stronger..., that they think "Computer chess is almost dead" or reached beyond the marked period of "Crisis"

I see no crisis, Instead I see a lot of activity in here, day after passing day.


What justifies their reasoning that comp chess is almost dead?

- Have run out of programming ideas. 3300 Elo is the sky limit. Beyond that, there's nothing left to do.

- There will be always bugs, bugs and more bugs, the engines will always make mistakes and it would be difficult to correct them in higher levels.

- No competition anymore, lots of derivatives entered the arena.

Or...?


Note: I think Rybka is the strongest and best invention ever, BUT to prove that comp chess is not dead, I have to mention....

[...]

- Rybka still loses many games to other engines (even though it did defeat them convincingly)

- Rybka still makes positional mistakes (been reported in Rybka forum).

- Rybka has yet a lot to learn in tactics (I remember Bright overtaking prior version of Rybka in tactical test suites)

- Rybka still has to prove itself strongest by trouncing Top #1 Super GM convincingly without single loss.

- Rybka still has some weaknesses even with strongest hardware/correspondence games.

- Rybka - Rybka games should end in draw most of the games...but that's not what we get, one might think.


Until that, Conclusion: Computer chess is neither "anywhere near to getting solved", "nor" dead. :wink:
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Derivatives are real programs too

Post by kranium »

Michel wrote:This discussion seems quite pointless.

What people seem to be neglecting here is that people could also suppress their primitive urge to release a derivative and instead submit their patches to the original author.
Problem:

the original authors are no longer active with these projects...
Fabien has moved on, and Thomas retired...?

isn't it a good thing if someone else picks up the (open source) ball and runs with it...?
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Derivatives are real programs too

Post by Michel »

Toga opening book is broken. it happened with the release of 14beta5c and multi CPU. (as far as i can tell, it only works correctly with 1 thread)...with more than 1 thread it crashes hard with illegal move "a1a1" error, not nice! that's why I removed it...until I can fix it.
I submitted a trivial patch for the book a while ago. See

http://www.computerchess.info/tdbb/phpB ... ?f=9&t=177

In some sense this confirms my point. By forking Toga you may miss out on developments happening at the Toga front. At the same time Toga has difficulty benefiting from your improvements. This is not how open source projects are supposed to work.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Derivatives are real programs too

Post by kranium »

Michel wrote:
Toga opening book is broken. it happened with the release of 14beta5c and multi CPU. (as far as i can tell, it only works correctly with 1 thread)...with more than 1 thread it crashes hard with illegal move "a1a1" error, not nice! that's why I removed it...until I can fix it.
I submitted a trivial patch for the book a while ago. See

http://www.computerchess.info/tdbb/phpB ... ?f=9&t=177

In some sense this confirms my point. By forking Toga you may miss out on developments happening at the Toga front. At the same time Toga has difficulty benefiting from your improvements. This is not how open source projects are supposed to work.
yes, i hear what you're saying...you have a good point.

my decision to fork from Toga was not entirely my own, but was wrought out of necessity:

I began with Cyclone shortly after xyclops. At that time, I contacted Toga developers in an effort to collaborate, but apparently this was not possible because of my history.

in addition, there has been an enormous amount of confusion concerning the Toga versions...(at this point there must be 20 or more, each with only minor changes), and no logical naming convention for the versions. it's a mess, IMHO. Choosing a different name provided much needed clarity...and I would guess that's the reasoning behind Grapefruit and Stockfish as well.

Norm
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Derivatives are real programs too

Post by Tord Romstad »

kranium wrote:I believe programs like Toga, Cyclone, StockFish, etc. should be recognized as legitimate engines and allowed entrance into major tournaments.
The rules are decided by those who arrange the tournaments. Most people appear to be happy with the rules the way they are, but those who dont't like the rules are free to arrange tournaments of their own, with rules more to their liking.

On the other hand, I don't understand the motivation of people who want to enter major tournaments with a derivative work. People are attracted to computer chess for different reasons: Some like the scientific aspect, while some are more interested in the competitive side. For people whose interest leans more towards the scientific, it can often make sense to use somebody else's engine as a basis for your work. In some cases, it can even be better than writing an original engine: That some new idea is effective in an already very strong engine is a more interesting data point than that it works in some weak and simple engine. For people who are more attracted to the competitive side of computer chess, however, basing your work on an existing engine doesn't seem to make any sense. Why would anyone want to compete using somebody else's program (with or without changes and additions of your own) rather than something you have written yourself?
yes, i undertand, but it doesn't make sense to me...Toga, and other derivatives are subtantially stronger than even the newest Fruit...
i.e. big progress has been made...but organizers and the chess community refuse to legitimize it, or even recognize it ?

Toga has reached 3000 ELO! but is no good? how will we ever catch Rybka?
Personally, I firmly believe that big diversity is the key to long-term progress. A large pool of moderately strong, but substantially different programs is a better ecosystem for evolving new and revolutionary techniques than a small pool of super-strong, but very similar programs.

Tord
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Derivatives are real programs too

Post by kranium »

Tord Romstad wrote:
kranium wrote:I believe programs like Toga, Cyclone, StockFish, etc. should be recognized as legitimate engines and allowed entrance into major tournaments.
The rules are decided by those who arrange the tournaments. Most people appear to be happy with the rules the way they are, but those who dont't like the rules are free to arrange tournaments of their own, with rules more to their liking.

On the other hand, I don't understand the motivation of people who want to enter major tournaments with a derivative work. People are attracted to computer chess for different reasons: Some like the scientific aspect, while some are more interested in the competitive side. For people whose interest leans more towards the scientific, it can often make sense to use somebody else's engine as a basis for your work. In some cases, it can even be better than writing an original engine: That some new idea is effective in an already very strong engine is a more interesting data point than that it works in some weak and simple engine. For people who are more attracted to the competitive side of computer chess, however, basing your work on an existing engine doesn't seem to make any sense. Why would anyone want to compete using somebody else's program (with or without changes and additions of your own) rather than something you have written yourself?
yes, i undertand, but it doesn't make sense to me...Toga, and other derivatives are subtantially stronger than even the newest Fruit...
i.e. big progress has been made...but organizers and the chess community refuse to legitimize it, or even recognize it ?

Toga has reached 3000 ELO! but is no good? how will we ever catch Rybka?
Personally, I firmly believe that big diversity is the key to long-term progress. A large pool of moderately strong, but substantially different programs is a better ecosystem for evolving new and revolutionary techniques than a small pool of super-strong, but very similar programs.

Tord
Agreed.

the ultimate testing ground for any program is in the competition.

the goal of a lot of chess players (most or all?) is to perform well in the actual competition environment. i.e. play well when it counts..(not simply an average of thousands of games)...

in addition, fruit/toga/or any derivative thereof, is not yet represented in this particular tournament.

"I don't understand the motivation of people who want to enter major tournaments with a derivative work"

if someone spends an enormous amount of time and effort on a derivative work, and achieves positive results, i believe this 'cloner' can feel the same excitement, sense of accomplishment and pride as the original author (or at least something similar).
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Derivatives are real programs too

Post by kranium »

Michel wrote:
Toga opening book is broken. it happened with the release of 14beta5c and multi CPU. (as far as i can tell, it only works correctly with 1 thread)...with more than 1 thread it crashes hard with illegal move "a1a1" error, not nice! that's why I removed it...until I can fix it.
I submitted a trivial patch for the book a while ago. See

http://www.computerchess.info/tdbb/phpB ... ?f=9&t=177

In some sense this confirms my point. By forking Toga you may miss out on developments happening at the Toga front. At the same time Toga has difficulty benefiting from your improvements. This is not how open source projects are supposed to work.
Excellent, I wasn't aware that you had addressed the book issue...

as far as "Toga has difficulty benefiting from your improvements"... the source is open. anyone can see what changes I've made, provided they make the effort and take the time to do so,
and i'm more than willing to provide (detailed) explanations, as I already have for your question about search enhancements here:
http://64.68.157.89/forum/viewtopic.php ... 9&start=20

Norm