Stockfish on github

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Posts: 2684
Joined: Sat Jun 14, 2008 7:17 pm

Stockfish on github

Post by mcostalba » Sun Oct 02, 2011 11:07 am

Me and Joona are fading out from this wonderful chess engine world.

I have recently changed my job and I have almost no more time to dedicate to this hobby and Joona is in a similar condition. This is a pity somewhat but, hey, it is how things go, nothing is forever. We will continue with Stockfish but at a much reduced effort. So we were wondering what we could do now. And we had the idea to push our private git repository to github, so that everybody is free and even encouraged to contribute with patches, like it is common practice in open source development. We think our git tree is very valuable, not only for contributors but also for all the developers, especially the ones of strong engines, that will see in great detail what has been done, what has been proven to work and why: our git tree is really a kind of detailed diary of more than 2 years of developing of a world class engine. In my opinion is more valuable than sources or documentation and is the best gift we can give to this community.

In our dreams maybe it will attract some talent and create a little developer community around SF. I don't know if this will turn real or is just wishful thinking, but anyway me and Joona will continue to maintain SF and will gladly apply the patches that we will receive.

The rule to apply patches are very simple:

- If a patch is a "non functional change", for instance a clean up or a code simplification (we care a lot about code cleanups) will be applied without testing, just after a quick scrutiny to verify that actually does not change functionality and is really a code improvement.

- If a patch is advertised as an ELO increase stuff, then should be backed up with serious testing data and anyhow will be tested again by us before to be applied.

- Patches that add big chunks of code will not be accepted, in particular I am not willing to add tablebase support ;-) thank you.

- As common with git, patches will be applied with the author name of the submitter, that is the author of the patch.

Probably we will do a last release before pushing to github, so to avoid fostering wild compiles directly from the tree and also to have a clean starting point.

Now it's up to you, we'd really love to hear comments from you. If this idea can be interesting, there is someone wondering to contribute or is just business as usual.

SF Team

Rein Halbersma
Posts: 716
Joined: Tue May 22, 2007 9:13 am

Re: Stockfish on github

Post by Rein Halbersma » Mon Oct 03, 2011 6:20 am

This would be much, much appreciated! Christmas is coming early this year :-) I suppose the testing code itself is not included in your repo? Some sort of distributed testing (SF @ home) would be nice.

User avatar
Posts: 750
Joined: Mon Mar 27, 2006 5:45 pm
Location: Finland

Re: Stockfish on github

Post by ilari » Mon Oct 03, 2011 3:02 pm

It's very sad news that you guys now have something more important to do than developing a free chess engine. But it's great news that Stockfish's commit tree will be publicly available. That's really the way to go for open source projects, and it makes it a lot easier for third parties to contribute their commits to be merged in the master branch.

Things may not go as smoothly as I hope though, because chess engine developers are notorious for writing unreadable code, ignoring documentation and coding conventions, making way too big changes, publishing too early, and not using essential tools like diff and version control systems. It's also generally hard to find people who are willing to contribute to a project that's not their own, especially if they feel that the development of said project is stalling.

My suggestion to you and Joona is to list some tasks (fixes, cleanups, features, optimizations, etc.) that you would like to get done, and describe the tasks well. Then it would be easier for third party developers to just browse through your TODO list and see if there's anything they could do.

Thanks again for Stockfish, it's one of the very best engines out there, and not just in terms of playing strength.

Posts: 2684
Joined: Sat Jun 14, 2008 7:17 pm

Re: Stockfish on github

Post by mcostalba » Mon Oct 03, 2011 5:33 pm

I have pushed the master branch to github:

No release for now given that the increase in ELO terms from 2.1.1 is very small, especially for single core case (where Ingo tests ;-) )

Thanks to Ilari and Rein for your words, incidentally you two are among the (few) very best coders I had the opportunity to know in this community and so your comment are even more appreciated.

@Rein: If with testing code you mean the autotuning tools we use to tweak parameters in SF, well, you are right these tools are not part of SF sources and are a separate stuff.

@Ilari: We don't have a detailed TODO list, an engine IMHO is a bit different from a GUI where you can add features almost endlessy. A chess engine, when mature, is an almost complete piece of software and you can further develop mainly along two lines: cleaning up and simplify code already in and/or adding stuff that increases ELO level. For both of these two directions it is difficult to write a TODO because mainly "you do once you realize you can do".

As a side note, the diff of current master from last released version 2.1.1 is:

33 files changed, 2519 insertions(+), 2994 deletions(-)

Posts: 4116
Joined: Fri Mar 10, 2006 4:23 am

Re: Stockfish on github

Post by jdart » Mon Oct 03, 2011 7:52 pm

IMO, you shouldn't accept any changes, even apparently trivial, w/o testing.

If possible you should include with the source a minimal set of tests you expect to pass before commits. Then the committers can run those


Ralph Stoesser
Posts: 408
Joined: Sat Mar 06, 2010 8:28 am

Re: Stockfish on github

Post by Ralph Stoesser » Mon Oct 03, 2011 8:02 pm

GL for your new job and thx for the git!
A very interesting read.

Joerg Oster
Posts: 816
Joined: Fri Mar 10, 2006 3:29 pm
Location: Germany

Re: Stockfish on github

Post by Joerg Oster » Tue Oct 04, 2011 8:11 am

Hi Marco,

Stockfish gave me so much fun over the past few years and I learned at least a little bit from it. So many thanks for a wonderful engine to the whole SF Team!

And all the best to you and Joona in your new jobs. :D


Posts: 1539
Joined: Thu Mar 09, 2006 1:02 pm

Re: Stockfish on github

Post by IWB » Tue Oct 04, 2011 12:50 pm

Hi Marco,
mcostalba wrote: ...
No release for now given that the increase in ELO terms from 2.1.1 is very small, especially for single core case (where Ingo tests ;-) ).
You (as a team) once expected nearly no increase and it was a big jump (on IPON and others) the other time you expected something and there was nearly nothing (on IPON and others). When the second thing happened you (team) questioned your testing methods ... maybe this time ... who knows.

As the current source is available do you mind to give it a release number (2.1.2?) as it is maybe the last one from you (team) alone?


PS: Actually the german language is much more clear when talking about you (du) and you (ihr/euch). At least one advantage :-)

Posts: 2431
Joined: Wed Mar 08, 2006 7:15 pm

Re: Stockfish on github

Post by Jouni » Tue Oct 04, 2011 6:41 pm

I am curious: what is "Better naming borrowed from Critter" meaning, you have Critter source?


Posts: 153
Joined: Fri Sep 30, 2011 5:48 am

Re: Stockfish on github

Post by Dave_N » Wed Oct 05, 2011 12:07 am

Thanks for the great engine, I hope future versions based on the github can improve the playing strength. I first downloaded Stockfish over a year ago and enjoyed reading the code. Are there any plans for a documentation wiki?

Post Reply