LYCOS RETRIEVER
Gnu Go: Program
built 231 days ago
GNU Go is comparable in strength to the top commercial programs, having won or placed at many computer Go tournaments. It took the gold medal at the 2003 and 2006 Computer Olympiad[1] and second place at the 2006 Gifu Challenge.[2]
Source:
The following (derived from the gnu "go" program) hangs at compile time in lno-branch with -O3. Partial analysis follows. extern unsigned char baz[421]; int foo(int i1, int i2, int j1, int j2) { int x, y; if (i1 > i2) return foo(i2, i1, j1, j2); if (j1 > j2) return foo(i1, i2, j2, j1); for (x = i1; x <= i2; x++) for (y = j1; y <= j2; y++) if (baz[21 + x*20 + y] != 0) return 0; return 1; } 1) the tree inliner does exactly the right thing, eliminating all recursion and making 4 copies of the bottom loop, exactly one of which gets executed. 2) well maybe not quite the right thing, because there's a 5th loop in the trees, at the top, with 4 exits, one that leads to each of the 4 copeis of the loop. None of the paths that lead to the bottom of the 5th loop can actually get executed because, for example, i1<j1 and i1>j1 would both have to be true. Something like this happens on each possible path to the loopback.
Source:
The official site of GNU Backgammon is either http://www.gnu.org/software/gnubg/ or http://www.gnubg.org though to download an installable version of the program, you’ll want to go to the second site. Go there and select Download.
Source: