| 1 | |
| 2 | This is GNU Go 3.8, a Go program. Development versions of GNU Go may be |
| 3 | found at @url{http://www.gnu.org/software/gnugo/devel.html}. Contact |
| 4 | us at @email{gnugo@@gnu.org} if you are interested in helping. |
| 5 | |
| 6 | @menu |
| 7 | * About:: About GNU Go and this Manual |
| 8 | * Copyright:: Copyright |
| 9 | * Authors:: The Authors of GNU Go |
| 10 | * Thanks:: Acknowledgements |
| 11 | * Development:: Developing GNU Go |
| 12 | @end menu |
| 13 | |
| 14 | @node About |
| 15 | @section About GNU Go and this Manual |
| 16 | |
| 17 | The challenge of Computer Go is not to @strong{beat} the computer, |
| 18 | but to @strong{program} the computer. |
| 19 | |
| 20 | In Computer Chess, strong programs are capable of playing at the highest |
| 21 | level, even challenging such a player as Garry Kasparov. No Go program |
| 22 | exists that plays at the same level as the strongest human players. |
| 23 | |
| 24 | To be sure, existing Go programs are strong enough to be interesting |
| 25 | as opponents, and the hope exists that some day soon a truly |
| 26 | strong program can be written. This is especially true in view |
| 27 | of the successes of Monte Carlo methods, and a general recent |
| 28 | improvement of computer Go. |
| 29 | |
| 30 | Before GNU Go, Go programs have always been distributed as binaries |
| 31 | only. The algorithms in these proprietary programs are secret. No-one |
| 32 | but the programmer can examine them to admire or criticise. As a |
| 33 | consequence, anyone who wished to work on a Go program usually had to |
| 34 | start from scratch. This may be one reason that Go programs have not |
| 35 | reached a higher level of play. |
| 36 | |
| 37 | Unlike most Go programs, GNU Go is Free Software. Its algorithms and |
| 38 | source code are open and documented. They are free for any one to |
| 39 | inspect or enhance. We hope this freedom will give GNU Go's descendents |
| 40 | a certain competetive advantage. |
| 41 | |
| 42 | Here is GNU Go's Manual. There are doubtless inaccuracies. The ultimate |
| 43 | documentation is in the commented source code itself. |
| 44 | |
| 45 | The first three chapters of this manual are for the general |
| 46 | user. Chapter 3 is the User's Guide. The rest of the book is for |
| 47 | programmers, or persons curious about how GNU Go works. Chapter 4 is a |
| 48 | general overview of the engine. Chapter 5 introduces various tools for |
| 49 | looking into the GNU Go engine and finding out why it makes a certain |
| 50 | move, and Chapters 6--7 form a general programmer's reference to the GNU |
| 51 | Go API. The remaining chapters are more detailed explorations of |
| 52 | different aspects of GNU Go's internals. |
| 53 | |
| 54 | @node Copyright |
| 55 | @section Copyrights |
| 56 | |
| 57 | Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 |
| 58 | and 2008 by the Free Software Foundation except as noted below. |
| 59 | |
| 60 | All source files are distributed under the GNU General Public License |
| 61 | (@pxref{GPL}, version 3 or any later version), except @file{gmp.c}, |
| 62 | @file{gmp.h}, @file{gtp.c}, and @file{gtp.h}. |
| 63 | |
| 64 | The files @file{gtp.c} and @file{gtp.h} are copyright the Free Software |
| 65 | Foundation. In the interests of promoting the Go Text Protocol these |
| 66 | two files are licensed under a less restrictive license than the GPL |
| 67 | and are free for unrestricted use (@pxref{GTP License}). |
| 68 | |
| 69 | The two files @file{gmp.c} and @file{gmp.h} were placed in the public domain |
| 70 | by William Shubert, their author, and are free for unrestricted use. |
| 71 | |
| 72 | Documentation files (including this manual) are distributed under |
| 73 | the GNU Free Documentation License (@pxref{GFDL}, version 1.3 or any later |
| 74 | version). |
| 75 | |
| 76 | The files @file{regression/games/golois/*sgf} are copyright Tristan |
| 77 | Cazenave and are included with his permission. |
| 78 | |
| 79 | The SGF files in @file{regression/games/handtalk/} are copyright Jessie Annala |
| 80 | and are used with permission. |
| 81 | |
| 82 | The SGF files in @file{regression/games/mertin13x13/} are copyright Stefan |
| 83 | Mertin and are used with permission. |
| 84 | |
| 85 | The remaining SGF files are either copyright by the FSF or are in the public domain. |
| 86 | |
| 87 | |
| 88 | |
| 89 | |
| 90 | @node Authors |
| 91 | @section Authors |
| 92 | |
| 93 | GNU Go maintainers are Daniel Bump, Gunnar Farneback and Arend |
| 94 | Bayer. GNU Go authors (in chronological order of contribution) |
| 95 | are Man Li, Wayne Iba, Daniel Bump, David Denholm, Gunnar |
| 96 | Farneb@"ack, Nils Lohner, Jerome Dumonteil, Tommy Thorn, |
| 97 | Nicklas Ekstrand, Inge Wallin, Thomas Traber, Douglas Ridgway, |
| 98 | Teun Burgers, Tanguy Urvoy, Thien-Thi Nguyen, Heikki Levanto, |
| 99 | Mark Vytlacil, Adriaan van Kessel, Wolfgang Manner, Jens |
| 100 | Yllman, Don Dailey, M@aa{}ns Ullerstam, Arend Bayer, Trevor |
| 101 | Morris, Evan Berggren Daniel, Fernando Portela, Paul |
| 102 | Pogonyshev, S.P. Lee and Stephane Nicolet, Martin Holters, |
| 103 | Grzegorz Leszczynski and Lee Fisher. |
| 104 | |
| 105 | @node Thanks |
| 106 | @section Thanks |
| 107 | |
| 108 | We would like to thank Arthur Britto, David Doshay, Tim Hunt, Matthias Krings, |
| 109 | Piotr Lakomy, Paul Leonard, Jean-Louis Martineau, Andreas Roever and Pierce |
| 110 | Wetter for helpful correspondence. |
| 111 | |
| 112 | Thanks to everyone who stepped on a bug (and sent us a report)! |
| 113 | |
| 114 | Thanks to Gary Boos, Peter Gucwa, Martijn van der Kooij, Michael |
| 115 | Margolis, Trevor Morris, M@aa{}ns Ullerstam, Don Wagner and Yin Zheng for help |
| 116 | with Visual C++. |
| 117 | |
| 118 | Thanks to Alan Crossman, Stephan Somogyi, Pierce Wetter and Mathias Wagner |
| 119 | for help with Macintosh. And thanks to Marco Scheurer and Shigeru Mabuchi for |
| 120 | helping us find various problems. |
| 121 | |
| 122 | Thanks to Jessie Annala for the Handtalk games. |
| 123 | |
| 124 | Special thanks to Ebba Berggren for creating our logo, based on a |
| 125 | design by Tanguy Urvoy and comments by Alan Crossman. The old |
| 126 | GNU Go logo was adapted from Jamal Hannah's typing GNU: |
| 127 | @url{http://www.gnu.org/graphics/atypinggnu.html}. |
| 128 | Both logos can be found in @file{doc/newlogo.*} and @file{doc/oldlogo.*}. |
| 129 | |
| 130 | We would like to thank Stuart Cracraft, Richard Stallman and Man Lung Li for |
| 131 | their interest in making this program a part of GNU, William Shubert for |
| 132 | writing CGoban and gmp.c, Rene Grothmann for Jago and Erik van Riper and his |
| 133 | collaborators for NNGS. |
| 134 | |
| 135 | |
| 136 | @node Development |
| 137 | @section Development |
| 138 | |
| 139 | You can help make GNU Go the best Go program. |
| 140 | |
| 141 | This is a task-list for anyone who is interested in helping with GNU |
| 142 | Go. If you want to work on such a project you should correspond with |
| 143 | us until we reach a common vision of how the feature will work! |
| 144 | |
| 145 | A note about copyright. The Free Software Foundation has the copyright |
| 146 | to GNU Go. For this reason, before any code can be accepted as a part of |
| 147 | the official release of GNU Go, the Free Software Foundation will want |
| 148 | you to sign a copyright assignment. |
| 149 | |
| 150 | Of course you could work on a forked version without signing |
| 151 | such a disclaimer. You can also distribute such a forked version of the |
| 152 | program so long as you also distribute the source code to your |
| 153 | modifications under the GPL (@pxref{GPL}). But if you want |
| 154 | your changes to the program to be incorporated into the |
| 155 | version we distribute we need you to assign the copyright. |
| 156 | |
| 157 | Please contact the GNU Go maintainers, Daniel Bump |
| 158 | (@email{bump@@sporadic.stanford.edu}) and Gunnar Farneb@"ack |
| 159 | (@email{gunnar@@lysator.liu.se}), to get more information and the |
| 160 | papers to sign. |
| 161 | |
| 162 | Bug reports are very welcome, but if you can, send us bug FIXES as well as bug |
| 163 | reports. If you see some bad behavior, figure out what causes it, and what to |
| 164 | do about fixing it. And send us a patch! If you find an interesting bug and |
| 165 | cannot tell us how to fix it, we would be happy to have you tell us about it |
| 166 | anyway. Send us the sgf file (if possible) and attach other relevant |
| 167 | information, such as the GNU Go version number. In cases of assertion failures |
| 168 | and segmentation faults we probably want to know what operating system and |
| 169 | compiler you were using, in order to determine if the problem is platform |
| 170 | dependent. |
| 171 | |
| 172 | If you want to work on GNU Go you should subscribe to the |
| 173 | @uref{http://lists.gnu.org/mailman/listinfo/gnugo-devel, |
| 174 | GNU Go development list.} Discussion of bugs and feedback |
| 175 | from established developers about new projects or tuning |
| 176 | the existing engine can be done on the list. |
| 177 | |