housebot-developers Mailing List for HouseBot
Status: Alpha
Brought to you by:
j_house
You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(38) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(62) |
Feb
(85) |
Mar
(78) |
Apr
(467) |
May
(39) |
Jun
(12) |
Jul
(12) |
Aug
(39) |
Sep
(74) |
Oct
(102) |
Nov
(153) |
Dec
(88) |
| 2007 |
Jan
(177) |
Feb
(81) |
Mar
(15) |
Apr
(115) |
May
(66) |
Jun
(85) |
Jul
(79) |
Aug
(56) |
Sep
(70) |
Oct
(65) |
Nov
(26) |
Dec
(9) |
| 2008 |
Jan
(20) |
Feb
(9) |
Mar
(23) |
Apr
(11) |
May
(96) |
Jun
(51) |
Jul
(78) |
Aug
(44) |
Sep
(6) |
Oct
(49) |
Nov
(12) |
Dec
(6) |
| 2009 |
Jan
(16) |
Feb
(6) |
Mar
|
Apr
(31) |
May
(2) |
Jun
(2) |
Jul
(10) |
Aug
(43) |
Sep
(55) |
Oct
(9) |
Nov
(1) |
Dec
(19) |
| 2010 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <j_...@us...> - 2010-05-04 01:57:17
|
Revision: 977
http://housebot.svn.sourceforge.net/housebot/?rev=977&view=rev
Author: j_house
Date: 2010-05-04 01:57:11 +0000 (Tue, 04 May 2010)
Log Message:
-----------
Some cleanup of hb/test.d
Modified Paths:
--------------
trunk/housebot/hb/test.d
Modified: trunk/housebot/hb/test.d
===================================================================
--- trunk/housebot/hb/test.d 2010-01-02 00:03:51 UTC (rev 976)
+++ trunk/housebot/hb/test.d 2010-05-04 01:57:11 UTC (rev 977)
@@ -1,51 +1,44 @@
module hb.test;
import std.conv;
+import std.string;
public import std.cstream;
void assertEquals(T1, T2, string file = __FILE__, int line = __LINE__)(T1 expected, T2 actual) {
- if (expected != actual) {
- throw new Exception(
- to!(string)(file) ~ ":" ~ to!(string)(line) ~
- " '" ~ to!(string)(actual) ~ "' expected to equal '" ~
- to!(string)(expected) ~ "'"
- );
- }
+ if (expected != actual)
+ throw new Exception(format("'%s' expected to equal '%s'", actual, expected), file, line);
}
void assertTrue(string file = __FILE__, int line = __LINE__)(bool actual) {
- if (!actual) {
- throw new Exception(
- to!(string)(file) ~ ":" ~ to!(string)(line) ~
- " expected to be true."
- );
- }
+ if (!actual)
+ throw new Exception(format("expected to be true."), file, line);
}
void assertFalse(string file = __FILE__, int line = __LINE__)(bool actual) {
- if (actual) {
- throw new Exception(
- to!(string)(file) ~ ":" ~ to!(string)(line) ~
- " expected to be false."
- );
- }
+ if (actual)
+ throw new Exception(format("expected to be false."), file, line);
}
-void test(string name, void delegate() dg) {
+bool test(string name, void delegate() dg) {
+ scope(exit) derr.writef("\033[0m");
try {
dg();
derr.writefln("\033[32mTest '" ~ name ~ "' passed.");
+ return true;
} catch(Exception e) {
derr.writefln("\033[31mTest '" ~ name ~ "' failed:");
derr.writefln("\t ---> %s", e.msg);
- } finally {
- derr.writef("\033[30m");
+ return false;
}
}
+version(test)
unittest {
- test("name", {
+ assert(test("should succeed", {
assertEquals(true, true);
- });
+ }));
+ assert(!test("should fail", {
+ assertEquals(true, false);
+ }));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2010-01-02 00:03:57
|
Revision: 976
http://housebot.svn.sourceforge.net/housebot/?rev=976&view=rev
Author: j_house
Date: 2010-01-02 00:03:51 +0000 (Sat, 02 Jan 2010)
Log Message:
-----------
Upgrade to dmd 2.038. Bugilla 3660 not fixed yet, so not all targets will compile.
Modified Paths:
--------------
trunk/housebot/gc/gc.d
trunk/housebot/gc/gcalloc.d
trunk/housebot/gc/gcbits.d
trunk/housebot/gc/gcstats.d
trunk/housebot/gc/gcx.d
trunk/housebot/tango/core/Atomic.d
Modified: trunk/housebot/gc/gc.d
===================================================================
--- trunk/housebot/gc/gc.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/gc/gc.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -2,7 +2,7 @@
* Contains the external GC interface.
*
* Copyright: Copyright Digital Mars 2005 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: Walter Bright, Sean Kelly
*
* Copyright Digital Mars 2005 - 2009.
Modified: trunk/housebot/gc/gcalloc.d
===================================================================
--- trunk/housebot/gc/gcalloc.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/gc/gcalloc.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -2,7 +2,7 @@
* Contains OS-level allocation routines.
*
* Copyright: Copyright Digital Mars 2005 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: Walter Bright, David Friedman, Sean Kelly
*
* Copyright Digital Mars 2005 - 2009.
Modified: trunk/housebot/gc/gcbits.d
===================================================================
--- trunk/housebot/gc/gcbits.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/gc/gcbits.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -2,7 +2,7 @@
* Contains a bitfield used by the GC.
*
* Copyright: Copyright Digital Mars 2005 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: Walter Bright, David Friedman, Sean Kelly
*
* Copyright Digital Mars 2005 - 2009.
Modified: trunk/housebot/gc/gcstats.d
===================================================================
--- trunk/housebot/gc/gcstats.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/gc/gcstats.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -2,7 +2,7 @@
* Contains a struct for storing GC statistics.
*
* Copyright: Copyright Digital Mars 2005 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: Walter Bright, Sean Kelly
*
* Copyright Digital Mars 2005 - 2009.
Modified: trunk/housebot/gc/gcx.d
===================================================================
--- trunk/housebot/gc/gcx.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/gc/gcx.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -2,7 +2,7 @@
* Contains the garbage collector implementation.
*
* Copyright: Copyright Digital Mars 2001 - 2009.
- * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: Walter Bright, David Friedman, Sean Kelly
*
* Copyright Digital Mars 2001 - 2009.
@@ -47,6 +47,8 @@
private
{
+ enum USE_CACHE = true;
+
enum BlkAttr : uint
{
FINALIZE = 0b0000_0001,
@@ -756,8 +758,10 @@
return 0;
debug (MEMSTOMP) memset(p + psize, 0xF0, (psz + sz) * PAGESIZE - psize);
memset(pool.pagetable + pagenum + psz, B_PAGEPLUS, sz);
- gcx.p_cache = null;
- gcx.size_cache = 0;
+ if (p == gcx.cached_size_key)
+ gcx.cached_size_val = (psz + sz) * PAGESIZE;
+ if (p == gcx.cached_info_key)
+ gcx.cached_info_val.size = (psz + sz) * PAGESIZE;
return (psz + sz) * PAGESIZE;
}
@@ -944,9 +948,6 @@
}
else
{
- if (p == gcx.p_cache)
- return gcx.size_cache;
-
size_t size = gcx.findSize(p);
// Check for interior pointer
@@ -954,13 +955,7 @@
// 1) size is a power of 2 for less than PAGESIZE values
// 2) base of memory pool is aligned on PAGESIZE boundary
if (cast(size_t)p & (size - 1) & (PAGESIZE - 1))
- size = 0;
- else
- {
- gcx.p_cache = p;
- gcx.size_cache = size;
- }
-
+ return 0;
return size;
}
}
@@ -1136,7 +1131,7 @@
/**
*
*/
- int delegate(int delegate(inout void*)) rootIter()
+ int delegate(int delegate(ref void*)) rootIter()
{
if (!thread_needLock())
{
@@ -1196,7 +1191,7 @@
/**
*
*/
- int delegate(int delegate(inout Range)) rangeIter()
+ int delegate(int delegate(ref Range)) rangeIter()
{
if (!thread_needLock())
{
@@ -1401,10 +1396,13 @@
{
void thread_Invariant() { }
}
+
+ void *cached_size_key;
+ size_t cached_size_val;
+
+ void *cached_info_key;
+ BlkInfo cached_info_val;
- void *p_cache;
- size_t size_cache;
-
size_t nroots;
size_t rootdim;
void **roots;
@@ -1569,7 +1567,7 @@
/**
*
*/
- int rootIter(int delegate(inout void*) dg)
+ int rootIter(int delegate(ref void*) dg)
{
int result = 0;
for( size_t i = 0; i < nroots; ++i )
@@ -1638,7 +1636,7 @@
/**
*
*/
- int rangeIter(int delegate(inout Range) dg)
+ int rangeIter(int delegate(ref Range) dg)
{
int result = 0;
for( size_t i = 0; i < nranges; ++i )
@@ -1727,6 +1725,9 @@
Pool* pool;
size_t size = 0;
+ if (USE_CACHE && p == cached_size_key)
+ return cached_size_val;
+
pool = findPool(p);
if (pool)
{
@@ -1749,6 +1750,8 @@
}
size = (i - pagenum) * PAGESIZE;
}
+ cached_size_key = p;
+ cached_size_val = size;
}
return size;
}
@@ -1761,6 +1764,9 @@
{
Pool* pool;
BlkInfo info;
+
+ if (USE_CACHE && p == cached_info_key)
+ return cached_info_val;
pool = findPool(p);
if (pool)
@@ -1813,6 +1819,9 @@
////////////////////////////////////////////////////////////////////
info.attr = getBits(pool, cast(size_t)(offset / 16));
+
+ cached_info_key = p;
+ cached_info_val = info;
}
return info;
}
@@ -2244,8 +2253,10 @@
thread_suspendAll();
- p_cache = null;
- size_cache = 0;
+ cached_size_key = cached_size_key.init;
+ cached_size_val = cached_size_val.init;
+ cached_info_key = cached_info_key.init;
+ cached_info_val = cached_info_val.init;
anychanges = 0;
for (n = 0; n < npools; n++)
Modified: trunk/housebot/tango/core/Atomic.d
===================================================================
--- trunk/housebot/tango/core/Atomic.d 2010-01-01 03:37:30 UTC (rev 975)
+++ trunk/housebot/tango/core/Atomic.d 2010-01-02 00:03:51 UTC (rev 976)
@@ -120,7 +120,7 @@
* Returns:
* The loaded value.
*/
- T atomicLoad( inout T val )
+ T atomicLoad( ref T val )
{
return val;
}
@@ -150,7 +150,7 @@
* val = The destination variable.
* newval = The value to store.
*/
- void atomicStore( inout T val, T newval )
+ void atomicStore( ref T val, T newval )
{
}
@@ -184,7 +184,7 @@
* Returns:
* true if the store occurred, false if not.
*/
- bool atomicStoreIf( inout T val, T newval, T equalTo )
+ bool atomicStoreIf( ref T val, T newval, T equalTo )
{
return false;
}
@@ -224,7 +224,7 @@
* newly stored value. Thus, competing writes are allowed to occur
* between the increment and successive load operation.
*/
- T atomicIncrement( inout T val )
+ T atomicIncrement( ref T val )
{
return val;
}
@@ -264,7 +264,7 @@
* newly stored value. Thus, competing writes are allowed to occur
* between the increment and successive load operation.
*/
- T atomicDecrement( inout T val )
+ T atomicDecrement( ref T val )
{
return val;
}
@@ -362,7 +362,7 @@
template atomicLoad( msync ms = msync.seq, T )
{
- T atomicLoad( inout T val )
+ T atomicLoad( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -517,7 +517,7 @@
template atomicStore( msync ms = msync.seq, T )
{
- void atomicStore( inout T val, T newval )
+ void atomicStore( ref T val, T newval )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -679,7 +679,7 @@
template atomicStoreIf( msync ms = msync.seq, T )
{
- bool atomicStoreIf( inout T val, T newval, T equalTo )
+ bool atomicStoreIf( ref T val, T newval, T equalTo )
in
{
// NOTE: 32 bit x86 systems support 8 byte CAS, which only requires
@@ -824,7 +824,7 @@
static assert( isValidNumericType!(T) );
- T atomicIncrement( inout T val )
+ T atomicIncrement( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -940,7 +940,7 @@
static assert( isValidNumericType!(T) );
- T atomicDecrement( inout T val )
+ T atomicDecrement( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -1089,7 +1089,7 @@
template atomicLoad( msync ms = msync.seq, T )
{
- T atomicLoad( inout T val )
+ T atomicLoad( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -1140,7 +1140,7 @@
template atomicStore( msync ms = msync.seq, T )
{
- void atomicStore( inout T val, T newval )
+ void atomicStore( ref T val, T newval )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -1191,7 +1191,7 @@
template atomicStoreIf( msync ms = msync.seq, T )
{
- bool atomicStoreIf( inout T val, T newval, T equalTo )
+ bool atomicStoreIf( ref T val, T newval, T equalTo )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -1242,7 +1242,7 @@
static assert( isValidNumericType!(T) );
- T atomicIncrement( inout T val )
+ T atomicIncrement( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
@@ -1288,7 +1288,7 @@
static assert( isValidNumericType!(T) );
- T atomicDecrement( inout T val )
+ T atomicDecrement( ref T val )
in
{
assert( atomicValueIsProperlyAligned!(T)( cast(size_t) &val ) );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2010-01-01 03:37:38
|
Revision: 975
http://housebot.svn.sourceforge.net/housebot/?rev=975&view=rev
Author: j_house
Date: 2010-01-01 03:37:30 +0000 (Fri, 01 Jan 2010)
Log Message:
-----------
Not all targets compile: Big step toward full use of shared, but hit a compiler bug late in the conversion process. I'll push to get it fixed quickly and if it doesn't at least make it into the dmd svn, I'll rever the changes. I recommend not getting this change from housebot's svn until a viable compiler is available.
Modified Paths:
--------------
trunk/housebot/hb/search/factory.d
trunk/housebot/hb/search/multiPly.d
trunk/housebot/hb/search/node.d
trunk/housebot/hb/search/onePly.d
trunk/housebot/weakref.d
Modified: trunk/housebot/hb/search/factory.d
===================================================================
--- trunk/housebot/hb/search/factory.d 2009-12-29 11:12:19 UTC (rev 974)
+++ trunk/housebot/hb/search/factory.d 2010-01-01 03:37:30 UTC (rev 975)
@@ -48,7 +48,7 @@
/** A low-level helper function to pick the best move
* based on a maximum quality metric.
*/
- static int pickMaxMove(T, string setup, T startingValue, string score)(moveData searchNode, ref Random gen){
+ static int pickMaxMove(T, string setup, T startingValue, string score)(shared moveData searchNode, ref Random gen){
mixin(setup);
T maxScore = startingValue;
int bestMove = -1;
@@ -68,25 +68,25 @@
return bestMove;
}
/// Pick any legal move at random
- static int pickRandomMove(moveData searchNode, ref Random gen){
+ static int pickRandomMove(shared moveData searchNode, ref Random gen){
int numMoves = searchNode.movePool.length;
return uniform!("[)")(0, numMoves, gen);
}
/// Pick a move based on the metric value
- static int pickMaxValue(moveData searchNode, ref Random gen){
+ static int pickMaxValue(shared moveData searchNode, ref Random gen){
return pickMaxMove!(float, "int z;", -1.0, "childStats.value")(searchNode, gen);
}
/// Pick a move based on a fixed confidence level for all moves
- static int pickHighestConfidenceBound(string level)(moveData searchNode, ref Random gen){
+ static int pickHighestConfidenceBound(string level)(shared moveData searchNode, ref Random gen){
enum string setup = "immutable float confidenceLevel = " ~ level ~ ";";
return pickMaxMove!(float, setup, -1.0, "childStats.value(confidenceLevel)")(searchNode, gen);
}
/// Pick the move that was simulated the most
- static int pickMostVisited(moveData searchNode, ref Random gen){
+ static int pickMostVisited(shared moveData searchNode, ref Random gen){
return pickMaxMove!(int, "int z;", -1, "childStats.wins+childStats.losses")(searchNode, gen);
}
/// Pick the move that was simulated the most
- static int pickMostWins(moveData searchNode, ref Random gen){
+ static int pickMostWins(shared moveData searchNode, ref Random gen){
return pickMaxMove!(int, "int z;", -1, "childStats.wins")(searchNode, gen);
}
}
@@ -94,7 +94,7 @@
class searcher : baseController{
this(int nThreads){ super(nThreads, new realSearcher); }
- override int pickMoveForReal(moveData searchNode, ref Random gen){
+ override int pickMoveForReal(shared moveData searchNode, ref Random gen){
static if (searchMethod == "pureMC")
return moveSelectionMethods.pickMaxValue(searchNode, gen);
else static if (searchMethod == "UCB" || searchMethod == "UCT")
@@ -103,7 +103,7 @@
}
private class realSearcher : baseSearcher{
- override int pickMoveForPlayout(moveData searchNode, ref Random gen){
+ override int pickMoveForPlayout(shared moveData searchNode, ref Random gen){
static if (searchMethod == "pureMC")
return moveSelectionMethods.pickRandomMove(searchNode, gen);
else static if (searchMethod == "UCB" || searchMethod == "UCT")
Modified: trunk/housebot/hb/search/multiPly.d
===================================================================
--- trunk/housebot/hb/search/multiPly.d 2009-12-29 11:12:19 UTC (rev 974)
+++ trunk/housebot/hb/search/multiPly.d 2010-01-01 03:37:30 UTC (rev 975)
@@ -68,14 +68,14 @@
}
class hashtable(node){
- alias weakRef!(node) wref;
+ alias shared(weakRef!(shared(node))) wref;
enum maxNodes = 10_000;
wref[maxNodes] hashtable;
- node locateNode(ulong hashcode, lazy node new_node){
+ shared(node) locateNode(ulong hashcode, lazy shared(node) new_node) shared{
int index = cast(int) (hashcode % maxNodes); // a bug in dmd 2.031 requires this (incorrect integral range analysis)
//node n = hashtable[index]; // Seg faults
auto r = hashtable[index];
- node n = (r is null)?null:r.deref;
+ shared(node) n = (r is null)?null:r.deref;
if (n !is null && n.hash == hashcode)
return n;
synchronized(this){
@@ -105,28 +105,27 @@
}
override void updateSearchTree(move m){
// TODO: This function is full of casts in order to simplify compiler-related shared issues
- node child = (cast(node)searchRoot).locateChild(m, null);
+ shared node child = searchRoot.locateChild(m, null);
if (child is null)
- child = (cast(hashtable!node)hash).locateNode(rootPosition.situationalHash, new node(rootPlayerToPlay, rootPosition, threadLocalMoveGenerator));
- searchRoot = cast(shared node)child;
+ child = hash.locateNode(rootPosition.situationalHash, new shared(node)(rootPlayerToPlay, rootPosition, threadLocalMoveGenerator));
+ searchRoot = child;
}
override move genMoveImmediately(){
scope stopSearch = new stopSearch();
- int index = pickMoveForReal(cast(node)searchRoot, gen);
+ int index = pickMoveForReal(searchRoot, gen);
if (index < 0) /// TODO: Implement resignation?
throw new Exception("No moves available");
- node _root = cast(node) searchRoot; // TODO: Remove hack to bypass shared issues
- auto m = _root.movePool[index];
- node.metricType summarySnapshot = _root.resultCache[m.compressedHash];
+ auto m = searchRoot.movePool[index];
+ node.metricType summarySnapshot = searchRoot.resultCache[m.compressedHash];
auto metric = summarySnapshot.value;
- derr.writefln("Estimate for %s %s = %s", _root.nextPlayer, m.toString, metric);
+ derr.writefln("Estimate for %s %s = %s", searchRoot.nextPlayer, m.toString, metric);
// If the estimate for this game is too dire, simply resign
if (metric > 0.10)
return m;
else
- return move.resign(_root.nextPlayer);
+ return move.resign(searchRoot.nextPlayer);
}
- protected abstract int pickMoveForReal(node searchNode, ref Random gen);
+ protected abstract int pickMoveForReal(shared node searchNode, ref Random gen);
}
struct searchStep(node){
@@ -161,15 +160,15 @@
}
override protected void search(){
int playouts = 0;
- searchStep!(node)[1000] steps;
+ searchStep!(shared(node))[1000] steps;
do{
- node currentSearchNode = null;
- node nextSearchNode = cast(node) (multiPlyController!node.searchRoot);
+ shared node currentSearchNode = null;
+ shared node nextSearchNode = (multiPlyController!node.searchRoot);
debug assert(nextSearchNode !is null);
workingCopy.restore;
int movesDone = 0;
debug(thinking) derr.writefln("--");
- bool[node] visitedNodes;
+ bool[shared(node)] visitedNodes;
while (nextSearchNode !is null && !(nextSearchNode in visitedNodes)){
int moveIndex = pickMoveForPlayout(nextSearchNode, gen);
if (moveIndex<0){
@@ -191,8 +190,7 @@
searchNode = currentSearchNode;
mv = m;
}
- hashtable!node hash = cast(hashtable!node)(base.hash);
- nextSearchNode = currentSearchNode.locateChild(m, hash.locateNode(workingCopy.situationalHash, new node(next(m.who), workingCopy, moveGenerator)));
+ nextSearchNode = currentSearchNode.locateChild(m, base.hash.locateNode(workingCopy.situationalHash, new shared(node)(next(m.who), workingCopy, moveGenerator)));
}
player winner = void;
if (nextSearchNode !is null){
@@ -206,9 +204,9 @@
}
foreach_reverse(int i; 0..movesDone){
static if (node.metricType.supportsRave){
- auto treeRange = inTreeRange!(node)(steps[i..movesDone]);
+ auto treeRange = inTreeRange!(shared(node))(steps[i..movesDone]);
auto playoutRange = simulator.allMoves;
- auto completeRange = chain!(inTreeRange!node, typeof(playoutRange))(treeRange, playoutRange);
+ auto completeRange = chain!(inTreeRange!(shared(node)), typeof(playoutRange))(treeRange, playoutRange);
auto amafRange = daileyAmaf!(node, typeof(completeRange))(completeRange, steps[i].searchNode.nextPlayer);
steps[i].applyWinner(amafRange, winner);
}
@@ -219,5 +217,5 @@
} while(base.pause == false);
derr.writefln("Ran %s playouts", playouts);
}
- protected abstract int pickMoveForPlayout(node searchNode, ref Random gen);
+ protected abstract int pickMoveForPlayout(shared node searchNode, ref Random gen);
}
Modified: trunk/housebot/hb/search/node.d
===================================================================
--- trunk/housebot/hb/search/node.d 2009-12-29 11:12:19 UTC (rev 974)
+++ trunk/housebot/hb/search/node.d 2010-01-01 03:37:30 UTC (rev 975)
@@ -39,6 +39,13 @@
nextPlayer = p;
}
void applyWinner(move m, player winner){
+ simulations++;
+ if (winner == playerToScoreFor)
+ resultCache[m.compressedHash].addWin;
+ else
+ resultCache[m.compressedHash].addLoss;
+ }
+ void applyWinner(move m, player winner) shared {
atomicIncrement!(msync.raw)(simulations);
if (winner == playerToScoreFor)
resultCache[m.compressedHash].addWin;
@@ -86,6 +93,26 @@
// TODO: Consider a better generalization of rave handling
static if (metric.supportsRave){
void applyWinner(range)(move m, range moves, player winner){
+ simulations++;
+ if (winner == playerToScoreFor){
+ resultCache[m.compressedHash].addWin;
+ //summary.addWin;
+ foreach(move raveMove; moves){
+ if (raveMove.compressedHash < resultCache.length)
+ resultCache[raveMove.compressedHash].addRaveWin;
+ }
+ }
+ else{
+ resultCache[m.compressedHash].addLoss;
+ //summary.addWin;
+ foreach(move raveMove; moves){
+ if (raveMove.compressedHash < resultCache.length)
+ resultCache[raveMove.compressedHash].addRaveLoss;
+ }
+ }
+ }
+ // Bug in dmd 2.037 prevents this from working (bugzilla entry 3660)
+ void applyWinner(range)(move m, range moves, player winner) shared{
atomicIncrement!(msync.raw)(simulations);
if (winner == playerToScoreFor){
resultCache[m.compressedHash].addWin;
@@ -107,6 +134,17 @@
}
else{
void applyWinner(move m, player winner){
+ simulations++;
+ if (winner == playerToScoreFor){
+ resultCache[m.compressedHash].addWin;
+ //summary.addWin;
+ }
+ else{
+ resultCache[m.compressedHash].addLoss;
+ //summary.addWin;
+ }
+ }
+ void applyWinner(move m, player winner) shared{
atomicIncrement!(msync.raw)(simulations);
if (winner == playerToScoreFor){
resultCache[m.compressedHash].addWin;
@@ -118,7 +156,7 @@
}
}
}
- multiPly locateChild(move m, lazy multiPly generator){
+ shared(multiPly) locateChild(move m, lazy shared(multiPly) generator) shared{
auto index = m.compressedHash;
auto child = children[index];
if (child !is null)
@@ -129,7 +167,7 @@
if (sims < 50)
return null;
}
- multiPly newNode = generator;
+ auto newNode = generator;
// TODO: Make thread safe?
children[index] = newNode;
return newNode;
Modified: trunk/housebot/hb/search/onePly.d
===================================================================
--- trunk/housebot/hb/search/onePly.d 2009-12-29 11:12:19 UTC (rev 974)
+++ trunk/housebot/hb/search/onePly.d 2010-01-01 03:37:30 UTC (rev 975)
@@ -21,14 +21,14 @@
}
override move genMoveImmediately(){
scope stopSearch = new stopSearch();
- int index = pickMoveForReal(cast(node)currentSearchNode, gen);
+ int index = pickMoveForReal(currentSearchNode, gen);
if (index < 0) /// TODO: Implement resignation?
throw new Exception("No moves available");
if (currentSearchNode.movePool.length <= index)
throw new Exception("Index out of bounds");
return currentSearchNode.movePool[index];
}
- protected abstract int pickMoveForReal(node searchNode, ref Random gen);
+ protected abstract int pickMoveForReal(shared node searchNode, ref Random gen);
}
class onePlySearcher(node) : searcher{
@@ -39,21 +39,20 @@
int playouts = 0;
do{
workingCopy.restore;
- int moveIndex = pickMoveForPlayout(cast(node)(base.currentSearchNode), gen);
+ int moveIndex = pickMoveForPlayout(base.currentSearchNode, gen);
if (moveIndex < 0){
// This node has no children, so it must be a terminal position
// There is no work to do
// TODO: Enter a pause state instead of doing a busy wait for genmove
break;
}
- node currentSearchNode = cast(node) (base.currentSearchNode);
- move m = currentSearchNode.movePool[moveIndex];
+ move m = base.currentSearchNode.movePool[moveIndex];
workingCopy.play(m);
auto winner = simulator.destructivePlayout(workingCopy);
- currentSearchNode.applyWinner(m, winner);
+ base.currentSearchNode.applyWinner(m, winner);
playouts++;
} while(base.pause == false);
derr.writefln("Ran %s playouts", playouts);
}
- protected abstract int pickMoveForPlayout(node searchNode, ref Random gen);
+ protected abstract int pickMoveForPlayout(shared node searchNode, ref Random gen);
}
Modified: trunk/housebot/weakref.d
===================================================================
--- trunk/housebot/weakref.d 2009-12-29 11:12:19 UTC (rev 974)
+++ trunk/housebot/weakref.d 2010-01-01 03:37:30 UTC (rev 975)
@@ -16,6 +16,7 @@
}
T deref(){ synchronized(GC.gcLock) return atomicLoad!(msync.hlb,T)(t); }
+ T deref() shared { synchronized(GC.gcLock) return atomicLoad!(msync.hlb,T)(t); }
alias deref this;
private:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <urb...@us...> - 2009-12-29 11:12:34
|
Revision: 974
http://housebot.svn.sourceforge.net/housebot/?rev=974&view=rev
Author: urbanhafner
Date: 2009-12-29 11:12:19 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Add havannah bot to main target list
Modified Paths:
--------------
trunk/housebot/makefile
Modified: trunk/housebot/makefile
===================================================================
--- trunk/housebot/makefile 2009-12-29 11:06:34 UTC (rev 973)
+++ trunk/housebot/makefile 2009-12-29 11:12:19 UTC (rev 974)
@@ -1,10 +1,9 @@
EXE=
OBJ=.o
BOOST_SUFFIX=-mt
-MAIN_TARGETS=housebot-test$(EXE) housebot-libego9$(EXE) housebot-fuego$(EXE)
-ADDITIONAL_TARGETS=\
- housebot-libego9-debug$(EXE) \
- housebot-havannah$(EXE) # Breaks, so don't build it by default yet
+MAIN_TARGETS=housebot-test$(EXE) housebot-libego9$(EXE) \
+ housebot-fuego$(EXE) housebot-havannah$(EXE)
+ADDITIONAL_TARGETS=housebot-libego9-debug$(EXE)
DEFAULT=housebot-libego9$(EXE)
ALL= $(MAIN_TARGETS) $(ADDITIONAL_TARGETS)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <urb...@us...> - 2009-12-29 11:06:53
|
Revision: 973
http://housebot.svn.sourceforge.net/housebot/?rev=973&view=rev
Author: urbanhafner
Date: 2009-12-29 11:06:34 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Calculate groups of empty stones, too.
Modified Paths:
--------------
trunk/housebot/hb/game/havannah/board.d
Modified: trunk/housebot/hb/game/havannah/board.d
===================================================================
--- trunk/housebot/hb/game/havannah/board.d 2009-12-29 09:58:19 UTC (rev 972)
+++ trunk/housebot/hb/game/havannah/board.d 2009-12-29 11:06:34 UTC (rev 973)
@@ -1,5 +1,6 @@
module hb.game.havannah.board;
+import sa = std.algorithm;
import std.conv;
import hb.game.havannah.rules;
@@ -21,14 +22,31 @@
void recalculateGroups() {
group_count = 0;
groups[] = 0;
+ int nbgs[];
foreach(int i, color c; cells) {
+ nbgs.length = 0;
foreach(move n; move(p, i).neighbors) {
- if (n.id < i && cells[n.id] == c) {
- groups[i] = groups[n.id];
+ if (cells[n.id] == c && groups[n.id] != 0) {
+ nbgs.length = nbgs.length + 1;
+ nbgs[nbgs.length-1] = groups[n.id];
}
}
- if (groups[i] == 0 && c != color.empty) {
+ if (nbgs.length == 0) {
groups[i] = ++group_count;
+ } else if (nbgs.length == 1) {
+ groups[i] = nbgs[0];
+ } else {
+ // Merge groups
+ int min = sa.minPos(nbgs)[0];
+ groups[i] = min;
+ foreach(int idx, int gid; groups) {
+ foreach(int nbgs_id; nbgs) {
+ if (nbgs_id == gid) {
+ groups[idx] = min;
+ break;
+ }
+ }
+ }
}
}
}
@@ -145,7 +163,7 @@
if (group == i) {
move m = move(cast(player)gc, cell);
gc = cells[cell];
- if (m.corner) {
+ if (m.corner && gc != color.empty) {
corners++;
}
}
@@ -171,7 +189,7 @@
if (group == i) {
move m = move(cast(player)gc, cell);
gc = cells[cell];
- if (m.edge) {
+ if (m.edge && gc != color.empty) {
edges++;
}
}
@@ -498,22 +516,66 @@
b.play(move("w", "a4")); // w
assertEquals(1, b.groups[0]);
assertEquals(1, b.groups[1]);
- assertEquals(0, b.groups[2]);
- assertEquals(0, b.groups[3]);
+ assertEquals(2, b.groups[2]);
+ assertEquals(3, b.groups[3]);
assertEquals(1, b.groups[4]);
assertEquals(1, b.groups[5]);
- assertEquals(0, b.groups[6]);
- assertEquals(0, b.groups[7]);
+ assertEquals(2, b.groups[6]);
+ assertEquals(3, b.groups[7]);
+ assertEquals(4, b.groups[8]);
+ assertEquals(4, b.groups[9]);
+ assertEquals(2, b.groups[10]);
+ assertEquals(2, b.groups[11]);
+ assertEquals(4, b.groups[12]);
+ assertEquals(4, b.groups[13]);
+ assertEquals(2, b.groups[14]);
+ assertEquals(2, b.groups[15]);
+ assertEquals(2, b.groups[16]);
+ assertEquals(2, b.groups[17]);
+ assertEquals(2, b.groups[18]);
+ });
+}
+
+unittest {
+ test("groups 2", {
+ rules.boardsize = 3;
+ board b = new board;
+ b.play(move("b", "a5"));
+ b.play(move("w", "c1"));
+ b.play(move("b", "b5"));
+ b.play(move("w", "d1"));
+ b.play(move("b", "c4"));
+ // C
+ // B | D
+ // A | 18 | E
+ // | 17b 15 |
+ // 16b 14b 11
+ // / 13 10
+ // 5 12 9 6
+ // / 8 5
+ // 4 7 4 2
+ // / 3 1w
+ // 3 / 0w
+ // 2 /
+ // 1
+ assertEquals(1, b.groups[0]);
+ assertEquals(1, b.groups[1]);
+ assertEquals(2, b.groups[2]);
+ assertEquals(2, b.groups[3]);
+ assertEquals(2, b.groups[4]);
+ assertEquals(2, b.groups[5]);
+ assertEquals(2, b.groups[6]);
+ assertEquals(2, b.groups[7]);
assertEquals(2, b.groups[8]);
assertEquals(2, b.groups[9]);
- assertEquals(0, b.groups[10]);
- assertEquals(0, b.groups[11]);
+ assertEquals(2, b.groups[10]);
+ assertEquals(2, b.groups[11]);
assertEquals(2, b.groups[12]);
assertEquals(2, b.groups[13]);
- assertEquals(0, b.groups[14]);
- assertEquals(0, b.groups[15]);
- assertEquals(0, b.groups[16]);
- assertEquals(0, b.groups[17]);
- assertEquals(0, b.groups[18]);
+ assertEquals(4, b.groups[14]);
+ assertEquals(2, b.groups[15]);
+ assertEquals(4, b.groups[16]);
+ assertEquals(4, b.groups[17]);
+ assertEquals(2, b.groups[18]);
});
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <urb...@us...> - 2009-12-29 09:58:25
|
Revision: 972
http://housebot.svn.sourceforge.net/housebot/?rev=972&view=rev
Author: urbanhafner
Date: 2009-12-29 09:58:19 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Compile havannah by default but don't run the tests
Modified Paths:
--------------
trunk/housebot/makefile
Modified: trunk/housebot/makefile
===================================================================
--- trunk/housebot/makefile 2009-12-29 09:58:03 UTC (rev 971)
+++ trunk/housebot/makefile 2009-12-29 09:58:19 UTC (rev 972)
@@ -6,6 +6,7 @@
housebot-libego9-debug$(EXE) \
housebot-havannah$(EXE) # Breaks, so don't build it by default yet
DEFAULT=housebot-libego9$(EXE)
+ALL= $(MAIN_TARGETS) $(ADDITIONAL_TARGETS)
.PHONY: main
main: $(MAIN_TARGETS)
@@ -14,6 +15,7 @@
all: $(MAIN_TARGETS) $(ADDITIONAL_TARGETS)
havannah: housebot-havannah$(EXE)
+ echo "quit" | ./housebot-havannah$(EXE)
SOURCE=info.d main.d versiondata.d weakref.d \
hb/timecontrol.d hb/test.d \
@@ -106,7 +108,6 @@
housebot-havannah$(EXE): $(SOURCE) $(HAVANNAH_SOURCE)
$(DMD) $(FAST) -version=havannah $^ -of$@
- echo "quit" | ./$@
.PHONY: clean
clean:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <urb...@us...> - 2009-12-29 09:58:15
|
Revision: 971
http://housebot.svn.sourceforge.net/housebot/?rev=971&view=rev
Author: urbanhafner
Date: 2009-12-29 09:58:03 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Const declarations to make the havannah bot compile again
Modified Paths:
--------------
trunk/housebot/hb/game/havannah/move.d
Modified: trunk/housebot/hb/game/havannah/move.d
===================================================================
--- trunk/housebot/hb/game/havannah/move.d 2009-12-29 09:57:43 UTC (rev 970)
+++ trunk/housebot/hb/game/havannah/move.d 2009-12-29 09:58:03 UTC (rev 971)
@@ -9,8 +9,8 @@
private:
player p;
int v;
- int n() { return rules.boardsize; }
- int cellsInRow(int x) {
+ int n() const { return rules.boardsize; }
+ int cellsInRow(int x) const {
if (x <= n)
return n + (n-1) - (n-x);
else
@@ -57,7 +57,7 @@
}
static move resign(player p){ return move(p, -1); }
static move swap(player p){ return move(p, -2); }
- int compressedHash() {
+ int compressedHash() const {
// TODO
if (v > 0) {
return v;
@@ -67,7 +67,7 @@
}
player who() { return p; }
int id() { return v; }
- string toString(){
+ string toString() const {
string s;
switch(v) {
case -2:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <urb...@us...> - 2009-12-29 09:57:50
|
Revision: 970
http://housebot.svn.sourceforge.net/housebot/?rev=970&view=rev
Author: urbanhafner
Date: 2009-12-29 09:57:43 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Detect game over by connecting three edges
Modified Paths:
--------------
trunk/housebot/hb/game/havannah/board.d
Modified: trunk/housebot/hb/game/havannah/board.d
===================================================================
--- trunk/housebot/hb/game/havannah/board.d 2009-12-29 05:15:04 UTC (rev 969)
+++ trunk/housebot/hb/game/havannah/board.d 2009-12-29 09:57:43 UTC (rev 970)
@@ -163,8 +163,30 @@
}
}
bool gameOverByConnectingEdges() {
- // TODO
- return false;
+ color w = color.empty;
+ for(int i = 1; i <= group_count; i++) {
+ int edges = 0;
+ color gc;
+ foreach(int cell, int group; groups) {
+ if (group == i) {
+ move m = move(cast(player)gc, cell);
+ gc = cells[cell];
+ if (m.edge) {
+ edges++;
+ }
+ }
+ }
+ if (edges >= 3) {
+ w = gc;
+ break;
+ }
+ }
+ if (w != color.empty) {
+ _winner = cast(player)w;
+ return true;
+ } else {
+ return false;
+ }
}
bool gameOverByCreatingRing() {
// TODO
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-12-29 05:15:10
|
Revision: 969
http://housebot.svn.sourceforge.net/housebot/?rev=969&view=rev
Author: j_house
Date: 2009-12-29 05:15:04 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
Another step closer to a shared-correct implementation. The critical members of (shared) search nodes are marked as either immutable or shared and all resulting bugs have been fixed. The next step is to remove old hacks that converted shared search nodes to non-shared search nodes.
Modified Paths:
--------------
trunk/housebot/fuego/adapter.d
trunk/housebot/hb/game/puppet.d
trunk/housebot/hb/search/factory.d
trunk/housebot/hb/search/metric.d
trunk/housebot/hb/search/multiPly.d
trunk/housebot/hb/search/node.d
trunk/housebot/libego/adapter.d
Modified: trunk/housebot/fuego/adapter.d
===================================================================
--- trunk/housebot/fuego/adapter.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/fuego/adapter.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -53,9 +53,9 @@
}
static move pass(player p){ return move(p, fuego_pass_vertex); }
static move resign(player p){ return move(p, fuego_resign_vertex); }
- int compressedHash() { return v; }
- player who() { return p; }
- string toString(){
+ int compressedHash() const { return v; }
+ player who() const { return p; }
+ string toString() const {
char *s = fuego_v_toCString(v);
return cast(string) s[0..strlen(s)];
}
Modified: trunk/housebot/hb/game/puppet.d
===================================================================
--- trunk/housebot/hb/game/puppet.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/hb/game/puppet.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -82,16 +82,16 @@
player p;
string id;
int hashCode;
- int compressedHash(){
+ int compressedHash() const {
return hashCode;
}
- player who(){
+ player who() const {
return p;
}
- string toString(){
+ string toString() const {
return id;
}
- static move resign(player p){ return move(p, "resign", -2); }
+ static move resign(player p) pure { return move(p, "resign", -2); }
}
class mcPlayer{
Modified: trunk/housebot/hb/search/factory.d
===================================================================
--- trunk/housebot/hb/search/factory.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/hb/search/factory.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -12,22 +12,36 @@
import std.math;
import std.random;
+private bool isOnePlySearch(string searchMethod){
+ if (searchMethod == "pureMC" || searchMethod == "UCB")
+ return true;
+ else if (searchMethod == "UCT")
+ return false;
+ else
+ assert(0, "Unrecognized search method " ~ searchMethod);
+}
+
+private bool useRave(){
+ version(libego9) return true;
+ else return false;
+}
+
template mcSearch(string searchMethod){
- static if (searchMethod == "pureMC" || searchMethod == "UCB"){
- alias node!binomial.onePly moveData;
+ static if (useRave())
+ alias houseRave metric;
+ else
+ alias binomial metric;
+
+ static if (isOnePlySearch(searchMethod)){
+ alias node!metric.onePly moveData;
alias onePlyController!moveData baseController;
alias onePlySearcher!moveData baseSearcher;
}
- else static if (searchMethod == "UCT"){
- version(libego9)
- alias node!(houseRave).multiPly moveData;
- else
- alias node!(binomial).multiPly moveData;
+ else{
+ alias node!(metric).multiPly moveData;
alias multiPlyController!moveData baseController;
alias multiPlySearcher!moveData baseSearcher;
}
- else
- static assert(0, "Don't know what kind of search base to use for search method '" ~ searchBase ~ "'");
private{
struct moveSelectionMethods{
@@ -42,7 +56,7 @@
return bestMove;
foreach(i, m; searchNode.movePool){
int index = m.compressedHash;
- auto childStats = searchNode.resultCache[index];
+ metric childStats = searchNode.resultCache[index];
T currentScore = mixin(score);
debug(EveryRandomMoveSelection) derr.writefln("%s %s %s %s:%s:%s", i, m.toString, currentScore, childStats.wins, childStats.losses, searchNode.simulations);
if (currentScore > maxScore){
Modified: trunk/housebot/hb/search/metric.d
===================================================================
--- trunk/housebot/hb/search/metric.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/hb/search/metric.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -55,10 +55,10 @@
wins = starting_wins;
losses = starting_losses;
}
- /// Thread-safe recording of one monte carlo win
- void addWin() { atomicIncrement!(msync.raw, T)(wins); }
- /// Thread-safe recording of one monte carlo loss
- void addLoss(){ atomicIncrement!(msync.raw, T)(losses); }
+ void addWin() { wins++; }
+ void addWin() shared { atomicIncrement!(msync.raw, T)(wins); }
+ void addLoss() { losses++; }
+ void addLoss() shared { atomicIncrement!(msync.raw, T)(losses); }
/// Compute value as confidence bound
float _value(float confidenceLevel){ return value + confidenceLevel * fastSqrt(variance); }
}
@@ -97,14 +97,20 @@
_raveWins = 0;
_raveLosses = 0;
}
- void addWin() { atomicIncrement!(msync.raw, int)(_wins); }
- void addLoss() { atomicIncrement!(msync.raw, int)(_losses); }
- void addRaveWin() { atomicIncrement!(msync.raw, int)(_raveWins); }
- void addRaveLoss(){ atomicIncrement!(msync.raw, int)(_raveLosses); }
+ void addWin() { _wins++; }
+ void addWin() shared { atomicIncrement!(msync.raw, int)(_wins); }
+ void addLoss() { _losses++; }
+ void addLoss() shared { atomicIncrement!(msync.raw, int)(_losses); }
+ void addRaveWin() { _raveWins++; }
+ void addRaveWin() shared { atomicIncrement!(msync.raw, int)(_raveWins); }
+ void addRaveLoss() { _raveLosses++; }
+ void addRaveLoss() shared{ atomicIncrement!(msync.raw, int)(_raveLosses); }
float value(float confidenceLevel){ return effectiveMetric.value(confidenceLevel); }
float value(){ return effectiveMetric.value; }
int wins(){ return _wins; } // TODO: Review need for this function
+ int wins() shared { return _wins; } // TODO: Review need for this function
int losses(){ return _losses; } // TODO: Review need for this function
+ int losses() shared { return _losses; } // TODO: Review need for this function
private:
private alphabeta effectiveMetric(){
int raveWins = _raveWins;
Modified: trunk/housebot/hb/search/multiPly.d
===================================================================
--- trunk/housebot/hb/search/multiPly.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/hb/search/multiPly.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -117,7 +117,8 @@
throw new Exception("No moves available");
node _root = cast(node) searchRoot; // TODO: Remove hack to bypass shared issues
auto m = _root.movePool[index];
- auto metric = _root.resultCache[m.compressedHash].value;
+ node.metricType summarySnapshot = _root.resultCache[m.compressedHash];
+ auto metric = summarySnapshot.value;
derr.writefln("Estimate for %s %s = %s", _root.nextPlayer, m.toString, metric);
// If the estimate for this game is too dire, simply resign
if (metric > 0.10)
@@ -131,7 +132,7 @@
struct searchStep(node){
node searchNode;
move mv;
- static if (node.supportsRave)
+ static if (node.metricType.supportsRave)
void applyWinner(range)(range r, player winner){ searchNode.applyWinner(mv, r, winner); }
else
void applyWinner(player winner){ searchNode.applyWinner(mv, winner); }
@@ -204,7 +205,7 @@
winner = simulator.destructivePlayout(workingCopy);
}
foreach_reverse(int i; 0..movesDone){
- static if (node.supportsRave){
+ static if (node.metricType.supportsRave){
auto treeRange = inTreeRange!(node)(steps[i..movesDone]);
auto playoutRange = simulator.allMoves;
auto completeRange = chain!(inTreeRange!node, typeof(playoutRange))(treeRange, playoutRange);
Modified: trunk/housebot/hb/search/node.d
===================================================================
--- trunk/housebot/hb/search/node.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/hb/search/node.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -7,29 +7,35 @@
template node(metric){
class onePly{
- enum supportsRave = metric.supportsRave;
+ alias metric metricType;
ulong hash;
player nextPlayer;
alias nextPlayer playerToScoreFor;
- move[] movePool;
- metric[] resultCache;
+ immutable move[] movePool;
+ shared(metric)[] resultCache;
int simulations;
this(player p, board b, moveOrdering moveGenerator){
hash = b.situationalHash;
int maxHash = -1;
- movePool.length = 0;
+
+ move[] futureMovePool;
+ futureMovePool.length = 0;
moveGenerator.load(p, b);
int weight = 1; // TODO: Must fix
foreach(move m; moveGenerator){
- movePool ~= m; // not efficient
+ futureMovePool ~= m; // not efficient (but will be once dmd implements MRU)
int hash = m.compressedHash;
if (hash > maxHash)
maxHash = hash;
}
- resultCache.length = maxHash+1;
- foreach(ref data; resultCache)
+ movePool = cast(immutable move[]) futureMovePool;
+
+ metric[] futureResultCache;
+ futureResultCache.length = maxHash+1;
+ foreach(ref data; futureResultCache)
data.reset();
+ resultCache = cast(shared(metric)[]) futureResultCache;
nextPlayer = p;
}
void applyWinner(move m, player winner){
@@ -41,14 +47,14 @@
}
}
class multiPly{
- enum supportsRave = metric.supportsRave;
+ alias metric metricType;
ulong hash;
player nextPlayer;
alias nextPlayer playerToScoreFor;
- move[] movePool;
+ immutable move[] movePool;
bool isLeaf = true;
// TODO: Have a summary one summary for internal nodes and one for leaf nodes
- metric[] resultCache;
+ shared(metric)[] resultCache;
//metric summary;
multiPly[] children;
int simulations;
@@ -56,19 +62,25 @@
this(player p, board b, moveOrdering moveGenerator){
hash = b.situationalHash;
int maxHash = -1;
- movePool.length = 0;
+
+ move[] futureMovePool;
+ futureMovePool.length = 0;
moveGenerator.load(p, b);
int weight = 1; // TODO: Fix
foreach(move m; moveGenerator){
- movePool ~= m; // not efficient
+ futureMovePool ~= m; // not efficient (but will be once dmd implements MRU)
int hash = m.compressedHash;
if (hash > maxHash)
maxHash = hash;
}
+ movePool = cast(immutable move[]) futureMovePool;
+
children.length = maxHash+1;
- resultCache.length = maxHash+1;
- foreach(ref data; resultCache)
+ metric[] futureResultCache;
+ futureResultCache.length = maxHash+1;
+ foreach(ref data; futureResultCache)
data.reset();
+ resultCache = cast(shared(metric)[]) futureResultCache;
nextPlayer = p;
}
// TODO: Consider a better generalization of rave handling
Modified: trunk/housebot/libego/adapter.d
===================================================================
--- trunk/housebot/libego/adapter.d 2009-12-12 04:09:32 UTC (rev 968)
+++ trunk/housebot/libego/adapter.d 2009-12-29 05:15:04 UTC (rev 969)
@@ -16,7 +16,7 @@
player p; // accessed by rave calculations :(
private:
int v;
- this(player _p, int _v){
+ this(player _p, int _v) {
p = _p;
v = _v;
}
@@ -36,9 +36,9 @@
}
static move pass(player p){ return move(p,0); }
static move resign(player p){ return move(p, 2); }
- int compressedHash() { return v; }
- player who() { return p; }
- string toString(){
+ int compressedHash() const { return v; }
+ player who() const { return p; }
+ string toString() const {
char *s = libego_v_toCString(v);
return cast(string) s[0..strlen(s)];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Urban H. <ur...@be...> - 2009-12-25 10:27:50
|
On 15.12.09 05:15, Jason House wrote:
> Take a look at the top of the top-level makefile. There's a new
> parameter with a name similar to BOOST_SUFFIX. For my newer install of
> boost, it's -mt, but probably should be blank for you. If that doesn't
> work, copy and paste the build error.
I actually tried to build libego alone (using the cmakeall script). And
even though I installed 1.41.0 I still get the following error:
Linking CXX executable engine
Undefined symbols:
"boost::system::get_system_category()", referenced from:
boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> >, bool>::type
boost::filesystem::exists<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> const&)in logger.cpp.o
boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> >, bool>::type
boost::filesystem::is_directory<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> const&)in logger.cpp.o
__static_initialization_and_destruction_0(int, int)in logger.cpp.o
__static_initialization_and_destruction_0(int, int)in logger.cpp.o
"boost::system::get_generic_category()", referenced from:
boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> >, bool>::type
boost::filesystem::create_directories<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits>
>(boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> const&)in logger.cpp.o
__static_initialization_and_destruction_0(int, int)in logger.cpp.o
__static_initialization_and_destruction_0(int, int)in logger.cpp.o
__static_initialization_and_destruction_0(int, int)in logger.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [engine/engine] Error 1
make[1]: *** [engine/CMakeFiles/engine.dir/all] Error 2
make: *** [all] Error 2
Urban
|
|
From: Jason H. <jas...@gm...> - 2009-12-15 04:15:27
|
Take a look at the top of the top-level makefile. There's a new parameter with a name similar to BOOST_SUFFIX. For my newer install of boost, it's -mt, but probably should be blank for you. If that doesn't work, copy and paste the build error. Sent from my iPhone On Dec 14, 2009, at 11:04 AM, Urban Hafner <ur...@be...> wrote: > On 11.12.09 13:19, Jason House wrote: > >>> I think I'll fix the compilation problems >>> for now and then we can have a look at updating the whole thing >>> later. > > Jason, what version of Boost are you using to compile libego? I have > 1.35 here and that doesn't seem to work. I get past the configuration > script, but the compilation/linking fails. > > Urban > > --- > --- > --- > --------------------------------------------------------------------- > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > _______________________________________________ > Housebot-developers mailing list > Hou...@li... > https://lists.sourceforge.net/lists/listinfo/housebot-developers |
|
From: Urban H. <ur...@be...> - 2009-12-14 16:04:48
|
On 11.12.09 13:19, Jason House wrote: >> I think I'll fix the compilation problems >> for now and then we can have a look at updating the whole thing later. Jason, what version of Boost are you using to compile libego? I have 1.35 here and that doesn't seem to work. I get past the configuration script, but the compilation/linking fails. Urban |
|
From: <j_...@us...> - 2009-12-12 04:09:40
|
Revision: 968
http://housebot.svn.sourceforge.net/housebot/?rev=968&view=rev
Author: j_house
Date: 2009-12-12 04:09:32 +0000 (Sat, 12 Dec 2009)
Log Message:
-----------
Tweaked makefiles. Fuego builds again, and the normal builds will be faster (for a price).
Modified Paths:
--------------
trunk/housebot/fuego/makefile
trunk/housebot/makefile
Modified: trunk/housebot/fuego/makefile
===================================================================
--- trunk/housebot/fuego/makefile 2009-12-11 04:22:58 UTC (rev 967)
+++ trunk/housebot/fuego/makefile 2009-12-12 04:09:32 UTC (rev 968)
@@ -2,7 +2,13 @@
fuego-all: fuegolib fuegodoc
-fuegolib: FORCE
+# This can miss changes to code in the repository,
+# but that is acceptable since a proper run of the
+# fuego makefiles takes way too long when no changes
+# are really present. This alternate form is much
+# faster for normal builds. When a change does
+# occur, a proper build can be forced manually.
+repository/%:
$(MAKE) -C repository
fuegodoc: FORCE
@@ -22,19 +28,19 @@
#g++ -I repository $(FUEGO_INCLUDES) -c adapter.cpp -o adapter.cpp.o
g++ -I repository $(FUEGO_INCLUDES) -DNDEBUG -c adapter.cpp -o adapter.cpp.o
-libfuego_go.a: fuegolib
+libfuego_go.a: repository/go/libfuego_go.a
cp repository/go/libfuego_go.a .
-libfuego_gouct.a: fuegolib
+libfuego_gouct.a: repository/gouct/libfuego_gouct.a
cp repository/gouct/libfuego_gouct.a .
-libfuego_gtpengine.a: fuegolib
+libfuego_gtpengine.a: repository/gtpengine/libfuego_gtpengine.a
cp repository/gtpengine/libfuego_gtpengine.a .
-libfuego_simpleplayers.a: fuegolib
+libfuego_simpleplayers.a: repository/simpleplayers/libfuego_simpleplayers.a
cp repository/simpleplayers/libfuego_simpleplayers.a .
-libfuego_smartgame.a: fuegolib
+libfuego_smartgame.a: repository/smartgame/libfuego_smartgame.a
cp repository/smartgame/libfuego_smartgame.a .
.PHONY: clean
Modified: trunk/housebot/makefile
===================================================================
--- trunk/housebot/makefile 2009-12-11 04:22:58 UTC (rev 967)
+++ trunk/housebot/makefile 2009-12-12 04:09:32 UTC (rev 968)
@@ -1,11 +1,18 @@
EXE=
OBJ=.o
-ALL=housebot-test$(EXE) housebot-libego9$(EXE) housebot-libego9-debug$(EXE) housebot-fuego$(EXE)
+BOOST_SUFFIX=-mt
+MAIN_TARGETS=housebot-test$(EXE) housebot-libego9$(EXE) housebot-fuego$(EXE)
+ADDITIONAL_TARGETS=\
+ housebot-libego9-debug$(EXE) \
+ housebot-havannah$(EXE) # Breaks, so don't build it by default yet
DEFAULT=housebot-libego9$(EXE)
+.PHONY: main
+main: $(MAIN_TARGETS)
+
.PHONY: all
-all: $(ALL)
-# Breaks, so don't build it by default, yet.
+all: $(MAIN_TARGETS) $(ADDITIONAL_TARGETS)
+
havannah: housebot-havannah$(EXE)
SOURCE=info.d main.d versiondata.d weakref.d \
@@ -43,7 +50,7 @@
fuego/libfuego_gouct.a \
fuego/libfuego_go.a \
fuego/libfuego_smartgame.a \
- /usr/lib/libboost_thread.a
+ /usr/lib/libboost_thread$(BOOST_SUFFIX).a
HAVANNAH_SOURCE= $(wildcard hb/game/havannah/*.d)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Jason H. <jas...@gm...> - 2009-12-11 12:28:51
|
On Dec 11, 2009, at 6:27 AM, Urban Hafner <ur...@be...> wrote: > On 12/11/09 5:24 , Jason House wrote: >> Fixed (I hope). Please let me know if you hit any other build errors. > > Yes, that's fixed! Thanks. Great! > At least my Havannah stuff. The libego is > still an old version, right? Libego was updated to a version that included your cmake fixes. It isn't the absolute latest, but should build for you. > I think I'll fix the compilation problems > for now and then we can have a look at updating the whole thing later. Ok > > Urban > > --- > --- > --- > --------------------------------------------------------------------- > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > _______________________________________________ > Housebot-developers mailing list > Hou...@li... > https://lists.sourceforge.net/lists/listinfo/housebot-developers |
|
From: Urban H. <ur...@be...> - 2009-12-11 11:28:06
|
On 12/11/09 5:24 , Jason House wrote: > Fixed (I hope). Please let me know if you hit any other build errors. Yes, that's fixed! Thanks. At least my Havannah stuff. The libego is still an old version, right? I think I'll fix the compilation problems for now and then we can have a look at updating the whole thing later. Urban |
|
From: Jason H. <jas...@gm...> - 2009-12-11 04:25:06
|
Fixed (I hope). Please let me know if you hit any other build errors. Sent from my iPhone On Dec 10, 2009, at 12:47 PM, Urban Hafner <ur...@be...> wrote: > Hej, > > I'm trying to get HouseBot to compile on OSX (10.6) again. I've > downloaded the latest version of DMD (2.037) and I'm currently on > r966. > However I get a compile error at a point that I didn't expect to be a > problem: > > ./versiondata.sh > head: libego/snapshot/gitlog: No such file or directory > dmd -gc -unittest -version=test info.d main.d versiondata.d weakref.d > hb/timecontrol.d hb/test.d hb/game/factory.d hb/game/puppet.d > hb/io/gtp.d hb/io/ipc.d hb/search/base.d hb/search/factory.d > hb/search/metric.d hb/search/multiPly.d hb/search/node.d > hb/search/onePly.d tango/core/Atomic.d tango/core/Traits.d - > ofhousebot-test > tango/core/Atomic.d(937): Error: static assert > (isValidNumericType!(shared(int))) is false > make: *** [housebot-test] Error 1 > > Is this only happening to me? And if so, any hints? > > Urban > > --- > --- > --- > --------------------------------------------------------------------- > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > _______________________________________________ > Housebot-developers mailing list > Hou...@li... > https://lists.sourceforge.net/lists/listinfo/housebot-developers |
|
From: <j_...@us...> - 2009-12-11 04:23:06
|
Revision: 967
http://housebot.svn.sourceforge.net/housebot/?rev=967&view=rev
Author: j_house
Date: 2009-12-11 04:22:58 +0000 (Fri, 11 Dec 2009)
Log Message:
-----------
Cleanup of my svn status command, including commit of what I thought was a benign change, but was actually required. Also added gitlog file that also stopped Urban from building.
Modified Paths:
--------------
trunk/housebot/tango/core/Atomic.d
Added Paths:
-----------
trunk/housebot/libego/snapshot/gitlog
Property Changed:
----------------
trunk/housebot/
trunk/housebot/libego/snapshot/
trunk/housebot/pachi/snapshot/
trunk/housebot/pachi/snapshot/montecarlo/
trunk/housebot/pachi/snapshot/patternscan/
trunk/housebot/pachi/snapshot/playout/
trunk/housebot/pachi/snapshot/random/
trunk/housebot/pachi/snapshot/replay/
trunk/housebot/pachi/snapshot/t-unit/
trunk/housebot/pachi/snapshot/uct/
trunk/housebot/pachi/snapshot/uct/policy/
Property changes on: trunk/housebot
___________________________________________________________________
Modified: svn:ignore
- housebot*
versiondata.d
.*
+ housebot*
versiondata.d
.*
kgsGtp*
Property changes on: trunk/housebot/libego/snapshot
___________________________________________________________________
Modified: svn:ignore
- *_build
+ build
bin
Added: trunk/housebot/libego/snapshot/gitlog
===================================================================
--- trunk/housebot/libego/snapshot/gitlog (rev 0)
+++ trunk/housebot/libego/snapshot/gitlog 2009-12-11 04:22:58 UTC (rev 967)
@@ -0,0 +1,3437 @@
+commit e8431d111d2ab13c6d300fb3da9636bde704eefa
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 19:43:48 2009 +0200
+
+ New handling of command line options as GTP commands.
+
+commit 10d04035e705e066c6445b9b8c939d202a0967c2
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 19:28:34 2009 +0200
+
+ Removing gtp_example that came from merge of libgtp branch.
+
+commit 5b98b0a1d916f8d327d2ea9be1e0a10b58daa2b4
+Merge: 84021f0 9900f70
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 19:22:53 2009 +0200
+
+ Merge branch 'libgtp'
+
+ Conflicts:
+ .gitignore
+ cmakeall
+ source/CMakeLists.txt
+ source/libgtp/CMakeLists.txt
+
+commit 84021f0f34b2b0db40c096439eb600894ab15186
+Merge: 61398a8 8f652f7
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 19:08:58 2009 +0200
+
+ Merge branch 'libgtp' into master.merge
+
+commit 9900f7029a5f48abacc9bdebf2298b5dd013ab66
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 19:06:03 2009 +0200
+
+ Large directory reshuffling, imporved CMake support, created an example.
+
+commit 8f652f7a89606634a3785d3c7a4a222e2432be89
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 18:40:10 2009 +0200
+
+ New GTP command "gtpfile"
+
+commit e1059f096ff627272e6b0987d02baf4b51b8ddc6
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 17:59:18 2009 +0200
+
+ Gtp::Repl::RunOneCommand implemented.
+
+commit 0c86b80f8b2d7055f08a5bd868fb9a60c1e0db3b
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 15:55:08 2009 +0200
+
+ Gtp::Io::Report more flexible - returns string without GTP's "=" or "?".
+
+commit 64f81b88a2ce3218bc8e053004f1fca2e585dbc1
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 15:52:52 2009 +0200
+
+ Line parsing refactored and improved with optional leading GTP command id.
+
+commit 61398a80e8c9e79a0cbae69b380ea7db1c84a643
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 03:31:31 2009 +0200
+
+ play_at_cgos.sh script implemented.
+
+commit a30e0f8a8fce658f54573883c3e9690224475380
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 00:52:52 2009 +0200
+
+ cgos-game_info and cgos-game_over implemented.
+
+commit a72b417f8d894be3e7f64ab82f2b9facb2720133
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 23 00:27:09 2009 +0200
+
+ CGOS tcl script imported.
+
+commit 7fb2fa508dc738638a46e7b2dd4b1a5b2c5a752a
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 16:05:47 2009 +0200
+
+ Bugfix: LightPlayout - move limit was hard, not relative to the start of the playout.
+
+commit 26157056f640b5a05484bb4fc225e9dfeddbf3c8
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 14:37:12 2009 +0200
+
+ Bugfix: carification for some compilers about uint.
+
+commit d45cf5ed7515fb8ee09a87b79560dc4390950328
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 14:11:02 2009 +0200
+
+ scripts/config.gtp
+
+commit 7156627d2b9790b0c22ee8d8a49d9327f86622a3
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 13:49:38 2009 +0200
+
+ Split logger into cpp+h. Compactified logging.
+
+commit a73dc95f9d99cc36ac0555b9dd46256d09ba1dcd
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 13:26:03 2009 +0200
+
+ Little cleanup in GTP commands. Mcts.Params split into 3 commands.
+
+commit 9cb8660aa089ac88d388c8239ed5ce9c78200fae
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 13:09:47 2009 +0200
+
+ README updated.
+
+commit c43db813b288f6c4f2eda7ca624ced2be98ab855
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 13:05:06 2009 +0200
+
+ Moved SGF parsing implementation to source/engine. libego is now independant from libgtp.
+
+commit 4547dc87af44813e2cac8a3216638a8e586adb9a
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 12:57:06 2009 +0200
+
+ Cleanup in CMakeLists.
+
+commit aabacdb9aec994866a24ec65a8241a66f29b240d
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 02:27:26 2009 +0200
+
+ Command line now takes only GTP files as arguments and '-'
+
+commit 73e7197f1d9b0c66834a11a9cf86de40a372140e
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 02:09:34 2009 +0200
+
+ global_random purged.
+
+commit b3bc2965d215ab972261beb040bb7a1d8b623fcc
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 02:07:16 2009 +0200
+
+ MctsEngine has it's own random generator.
+
+commit 89a7696f6236f96901db6a937106ed7b7c34f8c3
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 22 00:28:16 2009 +0200
+
+ Now logger creates nice directory with a date and file with time in name :D.
+
+commit 303f20a987c93e0d3e8d0e92bc3fa46bef2770c7
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 23:45:47 2009 +0200
+
+ Moved find_package(Boost ...) to source/engine/CMakeLists.txt
+
+commit a555ab4f12909abaefa1a4a975b373679b7d0a7f
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 23:08:48 2009 +0200
+
+ Moved logger to a class.
+
+commit 7c69b5bcda6a934e67e287fe0ebfaa7d92104101
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 19:54:24 2009 +0200
+
+ First logging. Filename set by MCTS.param.
+
+commit 86ec48b6f32008829a986390b8aa73ec81dbef45
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 17:56:39 2009 +0200
+
+ MctsEngine::reset_tree_on_genmove
+
+commit 1f0af692045eceda84ec3572e16e922b889769ab
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 16:59:51 2009 +0200
+
+ AddAllPseudoLegalChildren extended into EnsureAllPseudoLegalChildren.
+
+commit 7d7f3f838c1f5e7421ad996c8eec19e05436d681
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 16:28:18 2009 +0200
+
+ MctsTree::AddFindChild now creates sibblings as well.
+
+commit 842cebdf99d0728853dd86a98c61247d66ca320d
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 14:38:27 2009 +0200
+
+ Removed #define FOREACH BOOST_FOREACH.
+
+commit 724e9f48477ea37f60cd304a0b14508100826f17
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 14:16:02 2009 +0200
+
+ A bunch of file renames and splitting.
+
+commit d974ec83374b3cb6abee5b184d2360d6a3e84857
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 01:30:36 2009 +0200
+
+ PlayoutGfx integrated into MctsEngine and MctsGtp
+
+commit 1e90488c64680ecae06743b9ac1748ae3b433366
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 01:07:22 2009 +0200
+
+ Classes Mcts and MctsEngine merged.
+
+commit f98c202ac2858089e2b5440e4dc527d6cfbf6164
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 21 00:56:06 2009 +0200
+
+ MctsEngine.TreeAsciiArt.
+
+commit 931f2827fae25eee3961ec747d51b0e137cee61d
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Oct 20 23:44:32 2009 +0200
+
+ BasicGtp removed and integrated into MctsEngine and MctsGtp.
+
+commit b0d8deeea0f3605b43d1de2c5805ff58933953ae
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Oct 20 22:26:08 2009 +0200
+
+ Genmove moved to MctsEngine.
+
+commit 3938677e872803a0df66449dc16985dc821e1b46
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Oct 20 20:54:09 2009 +0200
+
+ First stab at separating Engine interface.
+
+commit 01adf8c7da2dcc859b7f421cbc6e6dfa44e0cd14
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 15 16:01:25 2009 +0200
+
+ Changed comment into assertc in Stat::Mix.
+
+commit 1d898023e8ff3ed8f051145e6c3fbd3d93b31c21
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 12 01:54:20 2009 +0200
+
+ Switched to twice as fast Stat::FastMix
+
+commit f507230c95f5b3cee759849b6990566c0897b744
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 12 01:32:34 2009 +0200
+
+ Moved RAVE stat mixing to stat.cpp
+
+commit 38688ce0bc76ac4da502b5d1e3d6c05422a10277
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Oct 11 02:34:27 2009 +0200
+
+ Using RAVE in playout.
+
+commit bab59e998f0b8cc465b4c94a13713ef0ebbbf32a
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Oct 11 01:32:20 2009 +0200
+
+ MctsBestChildFinder is now separate class.
+
+commit 474126675de879d2c4633882862484a61d6c3f82
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Oct 11 01:15:36 2009 +0200
+
+ Prepared more GTP variables for RAVE: use_rave, bias_s, bias_r.
+
+commit 5ea09929b3a32dcf9f3602fbf16c6874110077d8
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 10 20:51:57 2009 +0200
+
+ Added switch to turn RAVE on/off.
+
+commit 9069ef626908a7147ade835e7f1b2cf1cee39760
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 10 17:48:49 2009 +0200
+
+ First stab at gathering RAVE stats: MctsPlayout::UpdateTraceRave.
+
+commit 524cc2264607fced92d7fb719d6032bb9166576e
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 9 17:50:09 2009 +0200
+
+ Several GTP reporting commands improved.
+
+ * MCTS.ShowLastPlayout works as it should.
+ * MCTS.ShowTree [min_visit] [max_children] limits number of children displayed.
+ * History of playout is stored in MctsPlayout::move_history.
+
+commit e59dd5084a2afc146a1ae1b827761b02c96c6474
+Merge: aafa92c 1763f48
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 9 15:39:09 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 1763f48319498aa7c3a34fedfa67da46a56f895a
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Oct 9 15:38:57 2009 +0200
+
+ Added Gtp::GoguiGfx class
+
+commit aafa92ce161ff6e1fb3eff352e55fbf77238c5a2
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 8 15:43:36 2009 +0200
+
+ Script cmakeall passes rest of parameters to cmake.
+
+commit 02bc66a492810f4b8ea860c90ac3dd3508919ca3
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Oct 8 14:59:41 2009 +0200
+
+ Moved all source to source subdirectory. Improved cmakeall script.
+
+commit a317ef691f5e10dd68f3d1a422d52296ee2764f6
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 7 17:23:07 2009 +0200
+
+ Bugfix: clear_board should not change komi.
+
+commit 44764255acf9918c280c8d640f9b0dd1e6ac4e74
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 7 03:20:41 2009 +0200
+
+ README updated and markdown'ized.
+
+commit c47d51d506c659be166c1a27cbf35caf7597f195
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 7 03:03:23 2009 +0200
+
+ Replace cmake.* with cmakeall script.
+
+commit 4403df88676cd1fb256eef3bd242e445fe397469
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 7 01:49:36 2009 +0200
+
+ Little cleanup in directory structure.
+
+commit 4a38210ed8c3303085cb7f64d92da0ed5de04d1c
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Oct 7 01:41:52 2009 +0200
+
+ Install target for CMake.
+
+commit 031afdfab3c0a4e1c6c56c977f6462a7f3e8b839
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Oct 6 13:01:42 2009 +0200
+
+ cmake now uses find_package for boost
+
+commit 4b0c38e4fd625cd5fdd818473982724bf4ecffb6
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Oct 6 01:43:42 2009 +0200
+
+ Reset the tree on each clear_board.
+
+commit ef18b0081a983bf1fe77f1f8578fb17afbc3c94e
+Merge: fb7d7ee 440d457
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 17:31:31 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 440d45778a20b3d27cb0b7a7fea1229bb46789d1
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 17:31:01 2009 +0200
+
+ Gtp::Io::ThrowSyntaxError removed.
+
+commit fb7d7ee4b43c53243203e50db0f86c01b4d7f941
+Merge: 778cc5d 8527313
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 17:18:33 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 852731302031dc65212bf155a66162767f2aab2b
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 14:48:02 2009 +0200
+
+ Multiple callbacks can be registered at single GTP command.
+
+commit aacd367a1d6eb84614c4713e4e179579e1a9401a
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 14:32:20 2009 +0200
+
+ Removed some obsolete functions from gtp.h.
+
+commit 477da576363fe41416f2c92755eaf3444ccd9e85
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 14:10:30 2009 +0200
+
+ Separated GTP line parsing.
+
+commit 87f7634c8366fea70c35cc1b4bd91ce8e3554e31
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Oct 5 14:00:50 2009 +0200
+
+ Gtp::Io constructor takes string instead of istream.
+
+commit a4e08fc14c0ac7184aaf16624a74d342b2aab8e4
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 3 01:46:28 2009 +0200
+
+ Gtp refactor: Io::SetError introduced, Error renamed to Repl::Return.
+
+commit 71b74c0fb1ce64848f5ef77ee283ef98e9d87922
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 3 01:11:14 2009 +0200
+
+ Merged Gtp::Quit exception into Gtp::Error.
+
+commit 618cc188b10cafbc46f4069144937abe09d0dbf7
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 3 00:59:22 2009 +0200
+
+ Replaced Gtp::Error::msg with writing to Gtp::Io::out.
+
+commit 7bd849fb0e149e6eca6433cc54fbc1a20eff7ee3
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 3 00:16:12 2009 +0200
+
+ Use BOOST_FOREACH not FOREACH.
+
+commit d504bd67c53000492cc4a93a598380a91f152e46
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Oct 3 00:14:23 2009 +0200
+
+ Gtp::Io::out (and in) made public.
+
+ Gtp::Io::Out() (and In()) removed.
+
+commit 778cc5d9d871c3507b07debd2f29510ed9bfce97
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Sep 27 02:05:42 2009 +0200
+
+ void Mcts::Synchronize () transformed into MctsNode& Mcts::FindRoot ()
+
+commit 054b4b95d34f4533ae911661fefa065b66d03237
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Sep 27 01:58:16 2009 +0200
+
+ Mcts split into Mcts and MctsPlayout
+
+commit ef8d2e86359af2c4175bba1d2a10624212bc9360
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 19:24:42 2009 +0200
+
+ Bugfix. Comparison in wrong direction in last commit
+
+commit 9d7b01b608534d1f8cbe2896ef14ca1f1e4dcb4b
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 19:14:00 2009 +0200
+
+ Simplified sorting in MctsNode printing
+
+commit de51223f944e45753277a67c6ec47acc71764296
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 19:04:22 2009 +0200
+
+ MctsNode split into declatarions and definitions.
+
+commit 6442e97d0e8b9f4da3be9afe9992c0e8b136bf4f
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 18:40:42 2009 +0200
+
+ Bugfix in Mcts::Synchronize().
+
+commit 3cf17e05df8a46cae57cf36bad950a4a4e25d93d
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 18:15:22 2009 +0200
+
+ Gtp commands to controll MCTS implemented.
+
+commit e85ab94b81d291a747e9e614499602f0b8a3b802
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 14:00:15 2009 +0200
+
+ Mcts::Reset removed. Sychronization seems to work. Time will show :)
+
+commit 74f148abe3aa05a03172e7c226e137d92e1bd9b5
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 13:45:49 2009 +0200
+
+ Mcts::Synchronize implemented, not tested.
+
+commit da47464fe289729de40ab86affd5e21b97d56528
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 03:01:50 2009 +0200
+
+ Minor beautification.
+
+commit 3c58bc87fc5c67b76896923011462e9a2b62c777
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 02:45:03 2009 +0200
+
+ TreeToString integrated into MctsNode as RecToString
+
+commit 593d577b125a23905a29299a797dd7ccdd6a2701
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 02:32:32 2009 +0200
+
+ Moved superko and suicide detection to Node::RemoveIllegalChildren.
+
+commit efdb416eebf1e7625ff4578d6a7ce457bb9a3e9d
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 01:40:12 2009 +0200
+
+ FindUctChild is now separate method in MctsNode
+
+commit b8f3973bdee3ff81f139a828311748d7d0be8021
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 01:31:27 2009 +0200
+
+ AddAllPseudoLegalChildren moved from Mcts to MctsNode.
+ A lot of consts over board.h
+ Commented, not finished Synchronize function.
+
+commit ce662c0f2fc54b14e91057ddf18325e9ce7ad1bc
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 26 00:01:28 2009 +0200
+
+ In Mcts: act_root_path and root introduced. Not used yet.
+
+commit c7716aec9dd6f74e1d470c9f20a63a1d9e6d3453
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 23:36:45 2009 +0200
+
+ Moved MostExploredChild to MctsNode
+
+commit e2e549b6881a68626ca8b6f680f73f41894ced39
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 23:32:43 2009 +0200
+
+ TreeToString moved to mcts_tree.cpp
+
+commit ad9aa408be2617a7586864b5c9f4abffea15d209
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 23:22:22 2009 +0200
+
+ Separated NodeData removed, MctsNode is now a simple class.
+
+commit 7c74d3d89086d2516791aa20c26120ecc09c399f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 13:55:13 2009 +0200
+
+ Turned some more pointers into references and added some consts.
+
+commit 84dea98a8bbec9f266d993c9a46ad0f90dc1cf3a
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 13:51:38 2009 +0200
+
+ Turned some pointers into references.
+
+commit c8f80d75e3261aa892ad7f3f90d01b20a9e502f0
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 13:48:45 2009 +0200
+
+ Added some consts.
+
+commit 1215899ab02cfea96118e2f7307087ee4600d40d
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 13:40:34 2009 +0200
+
+ Simplified code iterating over children with use of BOOST_FOREACH.
+
+commit 55a68e94095e64feb440fef12588cab01582cd3b
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 12:42:05 2009 +0200
+
+ Fixed a bug in Mcts::DoTreeMove.
+
+ Now always check whether the played move is legal.
+ After adding new children, too.
+
+commit 90f0aad51bc7a05ed607f188ff5b122af550b3ae
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 00:56:58 2009 +0200
+
+ Introduced MctsNode::has_all_legal_children.
+
+commit ece4f54fd071df08bcbd2a6b29c539dcf7b46419
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 00:26:01 2009 +0200
+
+ Bugfix in Mcts::DoTreeMove.
+
+ Make sure that tree child node have is for an appropriate player.
+
+commit 4a01c8d25d0676b6ac45876f904f687893c70a49
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 25 00:14:01 2009 +0200
+
+ g++ now have -fshow-column option.
+
+commit 506b7ec6dff68663bb2e134c984bb8573f5f3947
+Author: unknown <Antoine@.(none)>
+Date: Thu Sep 24 21:40:06 2009 +0200
+
+ Made it compile under msys/mingw
+
+ - added preprocessor check for __MINGW32__ where needed
+ - remove a type-puning warning from gcc in function process_user_time
+
+commit 6fe625218a4894febcd47b0491898543c20d34c3
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 24 19:39:23 2009 +0200
+
+ Mcts::Reset is now private.
+
+commit 3c16c7a994f655b18aca846b6f754affeff36c95
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 24 19:34:35 2009 +0200
+
+ Removed fixed game length
+
+commit 17e41ea45c33a1c0e67c88a693c87563e6f64eeb
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 24 17:26:03 2009 +0200
+
+ Moved board_area to Board::area
+
+commit b4445e223f529d5fc2cb7a685520506e7d300dc2
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 23:49:46 2009 +0200
+
+ Merged silly MctsParams class with Genmove class into MctsGtp.
+
+commit 0acffbb091d65883e6fddec646f21d29990a2966
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 23:14:35 2009 +0200
+
+ little cleanup in GTP commands
+
+commit 6b68213774618ddc3539db8335ee47613775782b
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 20:06:41 2009 +0200
+
+ Node is now based on std::list.
+
+commit 07a97bc325c740e7a31332707a7bbd2c5f1ca16f
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 17:18:58 2009 +0200
+
+ Replaced stupid MctsNode::Iterator act_node with vector<MctsNode*> trace.
+
+commit 2ac0a724f971346976789e52a7b5cd6eb7ecfad4
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 16:58:41 2009 +0200
+
+ Made some constructors explicit.
+
+commit b28fdd1eef27b34232f20334b8bc9e5eea96a677
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 14:50:17 2009 +0200
+
+ Improved Node constructor and Node::AddChild function to initialize ne Node with a given NodeData.
+
+commit aff12a6318a68d783e107d8bce55a7c4c0829f25
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 14:36:20 2009 +0200
+
+ Now Node is using the Allocator given in template parameter. Pool removed.
+
+commit 10a84a3fb6890282f3b86732c4914e18a16f960a
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 13:09:05 2009 +0200
+
+ Introduced Allocator in template parameters of FastTree.
+
+commit 67f01b3627b2c04b5d0469854aacbe7fd0d57183
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Sep 22 12:41:13 2009 +0200
+
+ split uct.cpp into smaller files
+
+commit b95ead4456e545b542af89a8f001bff059047a38
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Sep 21 19:21:50 2009 +0200
+
+ Mcts: root-of-the-tree decoupled partially from act_node
+
+commit e422cd7feef509520e2621e62f5d6df89bc18999
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Sep 20 02:38:39 2009 +0200
+
+ Renamed Playout into LightPlayout and spearated implementation from interface.
+
+commit 57f7802e3ded9d0c76f16357676d4d60aa83a0d8
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Sep 20 01:53:21 2009 +0200
+
+ Removed Policy concept and merged into Playout. Now building custom playouts is much easier.
+
+commit 61f640343eff1f6acf8cfee134f7d301b74fadf8
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 19:25:12 2009 +0200
+
+ Simplified Mcts a little.
+
+commit 76d939a7097e06a88ecf41b35819eec2d2e6c0ce
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 14:00:30 2009 +0200
+
+ PlayoutGfx decoupled from Mcts
+
+commit 815d984b12cb90150a6731feeebdf93c26fec46d
+Merge: 3625ea4 0fcc79d
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 13:31:12 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 0fcc79dbd2ff9a2af66cc128839aa65548d29baf
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 13:29:10 2009 +0200
+
+ Gtp::Gogui::Analyze renamed to Gtp::ReplWithGogui
+
+commit 12b50485052c8ef5aaf10ec30ffa31fd5d5eb578
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 13:22:54 2009 +0200
+
+ Gtp::Gogui::Analyze now inherits from Gtp::Repl
+
+commit 6f7b0a7a9a99cde12b9206ae183674ef29a86de3
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 13:14:06 2009 +0200
+
+ simplified names of the commands + introduced RegisterStatic helper
+
+commit 3625ea4ca97689b2c2015c43259ee8b5199f2f23
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 12:32:54 2009 +0200
+
+ Separated multiple phases of Mcts::Genmove. class Genmove now has the control.
+
+commit 66472cdb7d9b269060ef4e47e58a3155ba661e92
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 00:45:54 2009 +0200
+
+ Member variable rename
+
+commit 5775108dbd515df0498ea2376f5cb28807245245
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 00:43:42 2009 +0200
+
+ PlayoutGfx bugfix
+
+commit b695481174d81bf976a35cf232a9513a2c57e7a5
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 00:39:39 2009 +0200
+
+ reps macro improved to handle empty intervals
+
+commit 9dd3604eba0faecdccbd69a8df0d354a648c1840
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Sep 19 00:37:06 2009 +0200
+
+ Genmove separated into new class
+
+commit b0b8958b7dbde8e306aa764440c78af3b9a289b9
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 22:54:05 2009 +0200
+
+ Some more refactoring at Mcts
+
+commit 9ef8b7716e714fed1eaacdb460b47f58fe4345e2
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 22:46:36 2009 +0200
+
+ Test before allocation a move in a tree, whether it is pseudo legal
+
+commit b450c6651dd387cdb910a3732b29a47cef753bbb
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 21:36:38 2009 +0200
+
+ Large refactoring in Mcts::do_playout
+
+commit 03345c10c435e64fb869140be67a57605722c7e0
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 20:29:25 2009 +0200
+
+ Mcts::genmove refactored
+
+commit ff1c027344427b411f7839244801c08f0a5d1a67
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 19:32:47 2009 +0200
+
+ MctsParams created
+
+commit 2530fec1aa9e67150525d191708f365aa52d8739
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 18:48:05 2009 +0200
+
+ Playout showing logic extracted to PlayoutGfx
+
+commit adbe2f8d10bace07a92fbeeb46de694c8b1d1ea1
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 18:11:05 2009 +0200
+
+ class TreeToString ias a refactorisation of Node_* loose function.
+
+commit 1578a38dcc3568508243d8f3d870c44633cdc741
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 16:57:29 2009 +0200
+
+ Small refactor in Mcts
+
+commit 630707ddb6ed17cb817c441a89d6874d9fe51912
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 15:31:21 2009 +0200
+
+ FastPool refactored.
+
+ - placement new used
+
+commit 519041b9555c2ca689dcd0c1397f95c38700df19
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 15:04:35 2009 +0200
+
+ FastStack refactored
+
+commit 285f03a87c426e6628b31305b9dd608a16663c9c
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 14:54:16 2009 +0200
+
+ FastStack upgraded
+
+commit 936925df86d0fa7c82a8c04803812ff5e7ed283d
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 12:45:52 2009 +0200
+
+ Removed Node::child.
+
+commit 040e4f5464cba032337ff429965a2595a4d1f387
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 12:41:12 2009 +0200
+
+ Now pool initializes in malloc + some more refactoring.
+
+commit c2919338943f3566855b992210e77ebf4dbbbff3
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 12:18:42 2009 +0200
+
+ Some rename refactoring
+
+commit 69b11fb35ac6a39a5c68019ce3cdd3dded06b085
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 12:04:27 2009 +0200
+
+ Some further code clean up and refactorization around Tree::Iterator.
+
+commit 186d4eea96871e9b0992df4eb5f4f9c838a6046f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 11:59:59 2009 +0200
+
+ Moved iterator instance out of Tree to Mcts
+
+commit 49f35ebc8d5e97103e32a59ba2f5afddd6360ad9
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Sep 18 11:42:22 2009 +0200
+
+ Iterator extracted out of the Tree
+
+commit 433822b74f265136a3599168584b1caaf5195f6f
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 22:59:37 2009 +0200
+
+ Removed unused Tree::free_subtree.
+
+commit 26859809367f55fc229740fc4176a011d8e4f45c
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 21:54:04 2009 +0200
+
+ Pool<Node> moved from Tree to Mcts
+
+commit 30c7ae91990ec811e465bf56955d0400ae0d5944
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 20:15:46 2009 +0200
+
+ Node moved to Tree::Node in fast_tree.h
+
+commit 9712d574877ee5c489b52ee53939864ddcc5e5dd
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 19:16:30 2009 +0200
+
+ Mcts Tree is now a template in moved to fast_tree.
+
+ Still needs a lot of work.
+
+commit 3d41e090c49b088e989e4034697ec82307bdfc29
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 16:48:44 2009 +0200
+
+ Further decoupled NodeData from Node
+
+commit 452e29852a5e39905c11384bbc49f32d1677884f
+Merge: 6964f18 3fa4766
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 01:19:04 2009 +0200
+
+ Merge branch 'master' into rave
+
+commit 3fa47667899b42a3c3dfe2209c6b981729e234dc
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 01:17:52 2009 +0200
+
+ Added GTP commands: name, version, protocol_version
+
+commit 6964f1815cc94336eda2c8cbae8c60b2727c606f
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 17 00:06:19 2009 +0200
+
+ Mcts cleanup.
+
+ Node::init split into NodeData::init2. TODO rename.
+
+commit b0ebf171b4042e659a7831595267897043992a6a
+Merge: 31cc4fe ea29264
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 3 12:31:24 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit ea29264441d1cde805514254fa699cae90313657
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Sep 3 12:24:18 2009 +0200
+
+ Implemented Gtp::Io::Read with default value in case of syntax error.
+
+commit 31cc4feae1fd7b0ef923a174c9c38a5d71273adf
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Aug 28 02:26:16 2009 +0200
+
+ Use Analyze::RegisterGfxCommand helper for methods
+
+commit 8469dd53346dbb5ba5bfefb4f52b07c8e051df79
+Merge: e540f93 46babee
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Aug 28 02:18:26 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 46babee65ef68350219f8fc9c8fa2b6bf39d6ce9
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Aug 28 02:18:13 2009 +0200
+
+ Gtp::Gogui::Analyze::RegisterGfxCommand overloaded to support methods
+
+commit e540f9325cf33d985c231142e0f0a157246b936d
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Aug 28 02:07:36 2009 +0200
+
+ Improved cmake build system.
+
+ - Ensure correct CMAKE_BUILD_TYPE.
+ - Default build directories are Release and Debug.
+
+commit 5cdfde99476320a8c3b1d6049513aa29a7b29f62
+Merge: 1e30661 985c8ff
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 19:04:37 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 985c8fff9994ffbc8f7834cfaafc6f26c7fe584a
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 19:02:15 2009 +0200
+
+ Done some TODOs:
+
+ - Moved Gtp::Io::Error to Gtp::Error
+ - Repl::RegisterCommand overloaded to support methods
+
+commit 1e30661ad5a0bd9ffc8c611eab7ec5b12780183c
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 18:34:56 2009 +0200
+
+ bugfix: genmove is not GoguiGfx command
+
+commit f9cf5b27b2b785ed6d17c3fb9e7fbe95870b2be2
+Merge: 1592186 484b13f
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 18:24:48 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 484b13f9c6f91b63f72a317cb7d711c0e0d42e87
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 18:24:35 2009 +0200
+
+ Gtp::Gogui::Analyze::GetRepl implemented
+
+commit 15921864a3f9ba5d8c435d23f7e973c946dfa5a3
+Merge: d406957 882c094
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 18:13:47 2009 +0200
+
+ Merge branch 'libgtp'
+
+commit 882c094cfbb4db0042aef4858eea9a6400af467e
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 18:03:44 2009 +0200
+
+ bugfix: gogui_analyze_commands return message format
+
+commit d4069578cb61a93d13b9498917e26e31e6e83e28
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 17:37:02 2009 +0200
+
+ Switched to a new gtp library
+
+commit bc51e226fe5fa81056a8754251001448d00bbe9b
+Merge: 97dadf0 7ff41ee
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 17:28:00 2009 +0200
+
+ Merge branch 'libgtp' into devel
+
+commit 7ff41ee00d1581f13ee5404a18ebc3108aaf0b7b
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 27 16:50:35 2009 +0200
+
+ Interface change in Gtp::Repl:
+
+ - istream and ostream are now given in Run, not constructor.
+ This allows Repl to be reentrant.
+ - Repl::Report function simplified
+ - some more TODOs
+
+commit 97dadf077bf182b9fe5fec95ad8ba4b2a6c82cf2
+Merge: 2d3e304 7e4f280
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 19:57:27 2009 +0200
+
+ Merge repository 'libgtp'
+
+ Conflicts:
+ .gitignore
+ CMakeLists.txt
+
+commit 7e4f28001bdaa80c35d27d842a50d403f6c40b3b
+Merge: f16a6e4 381e6f6
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 04:28:24 2009 +0200
+
+ Merge branch 'cm'
+
+commit f16a6e4e30b930554ec5757a88cba70507cfa0d6
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 04:24:24 2009 +0200
+
+ Fixed main CMakeLists.
+ - project name
+ - subdirectory
+
+commit 381e6f6a90125d11f0cec8e9d3391b22e854bb18
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 04:11:40 2009 +0200
+
+ .gitignore added
+
+commit aca4852facd8197d0c84830584fc3301a8142b43
+Merge: b50b6f9 8259c1f
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 04:07:13 2009 +0200
+
+ Merge branch 'cmake-support'
+
+commit b50b6f967db74df2846917bc0d8d3719a8238dfd
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 04:02:43 2009 +0200
+
+ First commit. Look at *_test.cpp to see some use cases.
+
+commit 8259c1f4480a9a91f20771efa0a84561e6dd8585
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 15 03:52:08 2009 +0200
+
+ First two modules and a basic CMakeLists.txt
+ - AddBoostCxxTest
+ - EnsureOutOfSourceBuild
+
+commit 2d3e304f8228cba5fe4a4344b57d27150d2a6b9f
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Aug 13 00:01:56 2009 +0200
+
+ Rewritten CMakeLists.txt
+
+commit 0cef429ae6a558e747fedbf2835a251edadb1c27
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Aug 12 11:03:00 2009 +0200
+
+ Small genmove refactoring
+
+commit 7c95a65763f1541d28159e49262d15a7af9d8c49
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Aug 1 12:31:56 2009 +0200
+
+ Gfx factored out of GtpResult
+
+commit 7303de13933d17d91337f7d0e50fa4e0801e6dc5
+Author: Urban Hafner <ur...@be...>
+Date: Fri Aug 7 10:44:45 2009 +0200
+
+ Working cmake for OSX
+
+commit 34816cc616e3bcef7e5077efbe82be0536ced1ba
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Jul 29 19:12:42 2009 +0200
+
+ Board size can be changed through cmake parameter
+
+commit 7c75103926a7fc574e743fe89d3208284b0d7f25
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 12 02:46:55 2009 +0200
+
+ bugfix: FullBoard::undo did not work
+
+commit 5eb4683aca1d78fbaed2df50f4f18d594df8a31f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 12 02:15:48 2009 +0200
+
+ forgot include
+
+commit bb66b7e5818835b806fbef7217e3beb762f4729f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 17:52:48 2009 +0200
+
+ added playout displaying example
+
+commit bbb1d2bded05c1b2629886379d3cb9aa800001bb
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 17:20:15 2009 +0200
+
+ UCT.params gogui command implemented
+
+commit f92b7aeac60522f488635430bc4a41247bcd65a0
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 17:14:59 2009 +0200
+
+ removed genmove_gtp alltogether
+
+commit 55cd064039987ad8df8f4123c55ee01bc5eda301
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 17:10:05 2009 +0200
+
+ Uct is now persistent class
+
+commit ea4523c61f654f576700ebaa618351fb48fd5fa6
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 16:25:49 2009 +0200
+
+ move_history moved out of Board to FullBoard and Playout
+
+commit 151975039ca78b26b5f0e9cacfa1a8a30a803aca
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 15:57:09 2009 +0200
+
+ bugfix: neighbour-of-pass
+
+commit d7b264f202acf0fca84f3c83eba9f7ada6fe226a
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 13:54:52 2009 +0200
+
+ most slow functions moved to FullBoard
+ load_position removed
+
+commit 4184f9c14d22b57149871559a0b99ed346e1661f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jun 5 13:42:03 2009 +0200
+
+ preparation to split FullBoard out of Board
+
+commit cd406e6e80821ead63215223f186d40bdf6ea4fd
+Merge: 22edfe2 bb6914c
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu May 28 20:28:07 2009 +0200
+
+ Merge branch 'master' into locality_in_playout
+
+ Conflicts:
+ example/uct.cpp
+
+commit bb6914c3656154c7f2e53c2597fdef082fbe1dc8
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri May 22 12:34:30 2009 +0200
+
+ some forgotten includes
+
+commit 75f9ba55f796795ac25262de6fa6cd75e2926599
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 20 11:13:17 2009 +0200
+
+ Gogui Gfx support implemented in GtpResponse
+
+commit 2928e742d6dd34fc57b1fd947265bba245a1c9b0
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 16:02:39 2009 +0200
+
+ Board::last_move
+
+commit ae0c5551ab30d698de158eedd1f2880caba4ffdd
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 12:23:21 2009 +0200
+
+ printing functions temporarly taken out of Node
+
+commit 9f125b974edb1aad9e99298e80fb557c732eb2fd
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 12:12:59 2009 +0200
+
+ minor cleanup
+
+commit 00a712b75d07acdc365c2167280f4e7c47f59338
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 11:33:32 2009 +0200
+
+ NodeData extracted out of Node in uct
+
+commit 577ebd07e25738dddef6c09d2dc05ec9a46622b7
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 09:38:51 2009 +0200
+
+ uct_child moved from node to uct; iterator improved
+
+commit 2d937381802a70bb0c6b1fab95f24205d6d823c7
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 09:34:46 2009 +0200
+
+ uct_child moved from node to uct
+
+commit 7ce23adfd97d57fc6215e74acc74b43cdddd500a
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 19 08:53:04 2009 +0200
+
+ uct history+history_size replaced by vector
+
+commit 84bd5635b894c676374214cb1cb2c7a98da7bffa
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon May 18 22:33:34 2009 +0200
+
+ Uct simplified
+ Board::is_legal now const
+ Board::set_act_player implemented
+
+commit 193ba21353310566c55bd95fac03227b4d8acd77
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon May 18 22:10:59 2009 +0200
+
+ uct member variables now private
+
+commit 7aec3927b95655a2b2b7a4dc9c0b41296847ab3d
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon May 18 21:49:25 2009 +0200
+
+ sorting bugfix
+
+commit e83c2e70a0f3bdb3d0cf1ad29f6fc990dd11fe45
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon May 18 12:01:52 2009 +0200
+
+ some uct simplification
+
+commit 9202dab6c559404eb79b2817d4c46cebae664b18
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun May 17 23:04:42 2009 +0200
+
+ uct Node iterator implemented
+
+commit 3ba4fd9e9d6dcb03769ef9464b17d0b56dcf56cc
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun May 17 16:33:09 2009 +0200
+
+ simplifiaction of uct tree printing
+
+commit 468037487558f71057d4b32fca814f66b8bf8be9
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun May 17 16:08:21 2009 +0200
+
+ little playout simplification
+
+commit 2cc97e38cfc29361a1888a7e9027e13ece526785
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu May 14 00:38:03 2009 +0200
+
+ Further clarified Board interface
+
+commit 22edfe2af7af29b197273fb93dd335d09f7e38c3
+Merge: 1695a94 a541c1e
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 13 18:47:39 2009 +0200
+
+ Merge branch 'master' into locality_in_playout
+
+commit a541c1e1353ba7e983b04289af0d06227f9ef37e
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 13 18:32:57 2009 +0200
+
+ More comments in board.h and renamed some functions.
+
+commit 1695a9456e1c2a36702027ca283059e0cb374c3f
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 13 17:42:01 2009 +0200
+
+ locality used in uct
+
+commit c0d7180be22ee5d23335b730c39c941d3fb5084f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri May 8 10:28:55 2009 +0200
+
+ Vertex Board::last_play function introduced
+
+commit 9942648bce05e2ec00a329b91033e8e78d75fb88
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri May 8 10:01:05 2009 +0200
+
+ first implementation of LocalPlayout
+
+commit c00cf15a8523ccc52141ae73d23824ef63be99df
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu May 7 10:57:36 2009 +0200
+
+ another bugfix for Tromp-Taylor scoring
+
+commit f12c7ec3dee3a13e8b8dbe1f05b5c90b2da3e0f8
+Merge: 9197d86 e662058
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 6 23:45:13 2009 +0200
+
+ Merge branch 'uct'
+
+commit e662058c855c4001e4e33b2c2d050c001ea14a4c
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 6 23:17:43 2009 +0200
+
+ moved uct parameters to class variables
+
+commit 9197d86404818b37da37bf52fd7c8db34c8a71a6
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 6 18:56:54 2009 +0200
+
+ bugfix: Tromp-Taylor procedure
+
+commit f4e289b4a64a2740449ba6a9bd12f8f3c38250fb
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 6 01:12:56 2009 +0200
+
+ minor simplification of uct.cpp
+
+commit fa1a93b80cc1430f60538d1cfee64f3fe33bb220
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed May 6 00:49:33 2009 +0200
+
+ play_board moved to class variable
+
+commit b9d0ecfe8848b5cbec8323abc2bc6d744f5922f0
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 5 18:57:15 2009 +0200
+
+ more Visual C++ porting
+
+commit db340d9ee129233fbc425e7f581c406f56b18b12
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 5 18:24:24 2009 +0200
+
+ bugfix: printing of uct tree fixed
+
+commit dc26e7947499d9159d77b62973f07d8874bdd86d
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 5 18:01:22 2009 +0200
+
+ bugfix: use Tromp-Taylor score after double pass in uct
+
+commit 040f0ebc85adeee45b473d5f0f64570ea30012e5
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue May 5 17:27:02 2009 +0200
+
+ renamed for_each_nbr macro
+
+commit c387e859795f16b118c0e67ac8ac826653debb3d
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 30 21:02:00 2009 +0200
+
+ added --seed option; on default initialized by time(NULL)
+
+commit a859394bd6734b950f7ca0225c57a5893056e85b
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 30 20:45:07 2009 +0200
+
+ Introduced FastRandom global_random
+
+commit c86f2c9679840c16d4dc87a66543392136a7510f
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 29 19:51:00 2009 +0200
+
+ ported rdtsc and no forced inlineing on Visual Studio C++ compiler
+
+commit 9a9a0b3e0beea813dad2d5c66cbb6cf2c8120e84
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 28 11:12:32 2009 +0200
+
+ bugfix: int in main
+
+commit ddf1cc11248b9ca7cf34d8f2455e24d519078ea7
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 28 00:51:41 2009 +0200
+
+ SConstruct purged
+
+commit e01473dfc367f87c808cb71eab077a752bfe3506
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 27 11:46:48 2009 +0200
+
+ playout made thread safe by removic static random generator
+
+commit 653edc14fcb381029d1bc7b5ef2389c84db75c55
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 27 01:48:09 2009 +0200
+
+ small bugfixes
+
+commit 866dcf7060b01201cef3121a6fada944552816b1
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 26 23:36:05 2009 +0200
+
+ automagic.gtp removed, command line options introduced
+
+commit ba5af40ab7ad17a537090d37f762c9a07f62987b
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 26 22:13:27 2009 +0200
+
+ little cleanup in uct.cpp
+
+commit bcadbdb93a0af14386ff8a81ff823964a3e270ad
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 26 04:21:49 2009 +0200
+
+ better uct tree printing
+
+commit 9acf85c0b80a03f7c01ad7c2dc003c55fc61b569
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 26 03:10:03 2009 +0200
+
+ some macros and tweaks
+
+commit dad6c4d00c957da2b70bcf9d1820886e1bcc44b2
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Apr 25 23:18:02 2009 +0200
+
+ removed last trace of g++-4.2 forcing
+
+commit ffb6a3ae6e68eeb894a9bfdfdae3b7f50be0b5df
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Apr 25 16:50:03 2009 +0200
+
+ chain_at implemented, board code simplified
+
+commit 133f58880fe0946b240959a5101071a7edd2d44b
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Apr 25 16:39:33 2009 +0200
+
+ tweaks of board.h
+
+commit 5b497b60b2fa34cd17e7865e23a14130b0fd1d6b
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Apr 25 15:32:57 2009 +0200
+
+ removed compiler forcing
+
+commit 5000781dc5944aae6c9bbed048c946804d90a8b4
+Author: Lukasz Lew <luk...@gm...>
+Date: Sat Apr 25 15:15:23 2009 +0200
+
+ build_*.sh scripts improved
+
+commit 8e0a0f020e83223f855bfa47d6fb49a5b34bb8e6
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 21:15:29 2009 +0200
+
+ Chain struct introduced in Board
+
+commit 1c5381fb583f1e907def023f27aa68b3f978dc6c
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 21:05:50 2009 +0200
+
+ .gitignore updated
+
+commit 81b5fe0f9dde1182e9e5cc3b623519f512b16880
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 20:00:52 2009 +0200
+
+ now cmake is a main build system for libego (README update)
+
+commit a97dd12ec695d551c28ff9b92599c8c2bf2cca9c
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 19:48:41 2009 +0200
+
+ some progress on cmake
+
+commit ebfa1249a749da84d75adab654d6b72e401f5cd8
+Merge: eb61aca 11f24d5
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 19:22:22 2009 +0200
+
+ Merge branch 'master' into cmake
+
+commit 11f24d52a0a5979e4daf9c99d0f0c741ce03fd4f
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 18:40:21 2009 +0200
+
+ testing target turning on all checks in code
+
+commit 1719537e0e51b51f1ed899c9a7a811386b0c51f4
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 16:06:39 2009 +0200
+
+ removed some warnings for g++-4.4
+
+commit 982cc55a5760bee7673646409cc7677e04c3b7c4
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 24 01:48:09 2009 +0200
+
+ avoid warnings on g++-4.1
+
+commit ff6a38ea3d53ca2dc1ae0eb20fc7d765db8620ae
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 23 21:16:52 2009 +0200
+
+ Policy have to implement one function instead of six
+
+commit e4acac7545770fe008c1ff30cf99f874fd7e9272
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 22 22:52:42 2009 +0200
+
+ remove some warnings for g++-4.1
+
+commit a20cd3b680be91d259e1714f6671e3850962cadb
+Merge: 476a468 3b41624
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 22 22:49:51 2009 +0200
+
+ Merge branch 'uct_tunning'
+
+commit 476a46885f80e1f4d83494bb632398b3974e901b
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 22 10:31:38 2009 +0200
+
+ first mingw32 porting
+
+commit 3b41624c82c665aafcd55826849369f6dfd1b7b1
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 22 03:35:16 2009 +0200
+
+ stat.to_string used
+
+commit eb61acaaecc644cf38351457b85eccf4a82d0694
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Apr 22 03:30:21 2009 +0200
+
+ system detection and compiler hacking for cmake
+
+commit 48b8fbfefcf4ad8918ee44ea440df26712a01e3d
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 20:42:04 2009 +0200
+
+ more CmakeLists
+
+commit ff9dd64a4b8f2063686a127af5ab04ffda338ff9
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 19:45:08 2009 +0200
+
+ first stab at cmakelists
+
+commit 31fc370932c2b745fe35b3e21333294c6471e32d
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 18:26:55 2009 +0200
+
+ removed some constants in uct.cpp
+
+commit 44414f6d955221fd1a9fc6256838d70d9c64a4fb
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 18:05:16 2009 +0200
+
+ Stat2 replaced by Stat and moved to separate file
+
+commit 963c9afb40ead0112e187516c04ddcfbd9967799
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 17:15:34 2009 +0200
+
+ Stat2 extracted from Node
+
+commit 4d5a3b13f7958cba760e7ed20e8453f1849ca366
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 16:52:50 2009 +0200
+
+ ponter based uct tree replaced with array based for simplicity
+
+commit 12d2f79bbcefd5a29d517290ffbdd8a6c24f2b66
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 15:32:49 2009 +0200
+
+ Node::first_child in uct.cpp is not indexed by player any more
+
+commit 2eeb533e09f59465f1ba362b68d98c54c8fc031a
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 15:23:13 2009 +0200
+
+ Stat moved to experiment.cpp
+
+commit d2cb15d4647ccdfd7db1f1e6884fd2c82436fc82
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 15:14:43 2009 +0200
+
+ added comments on porting to windows
+
+commit 3f87767c5061d64976400eefba886835b9a22f43
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 14:51:17 2009 +0200
+
+ removed unneeded hearers from main.cpp
+
+commit 85115ec4e75053a00c221f151b27faa36af74317
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 14:08:42 2009 +0200
+
+ FastTimer/benchmark should work on both 32bit and 64bit architectures
+
+commit 0437c7e0cbe350cc08b0e586d0794c4e779e06fd
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Apr 21 13:48:43 2009 +0200
+
+ further benchmark simplification
+
+commit 17710899307b68b4c5a6bb49953dd1a553c2539a
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 20 01:13:46 2009 +0200
+
+ further benchmark simplifications
+
+commit 7632aa1cc9699d15e18d6ce52b2467fd70367361
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 20 00:47:28 2009 +0200
+
+ simplified benchmark output
+
+commit 116ce2bae8bb23e2356dd1817203a8618c9e6aa3
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 20 00:32:49 2009 +0200
+
+ benchmark refactored and fixed to start on empty board
+
+commit 917e93a1057d80edac8daa00c81b7bd3985fec49
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Apr 20 00:18:31 2009 +0200
+
+ score_per_vertex removed from benchmark
+
+commit 6d2e36c4735f3659a923f0a5e2ab87dbcf4ffa67
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 19 23:06:10 2009 +0200
+
+ FastPool moved to ego/fast_pool.h from uct.cpp
+
+commit b34c7452c465d703111aff679bf414ef21ec246e
+Merge: dce298f d36dc5a
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 19:24:56 2009 +0200
+
+ Merge commit 'origin/master'
+
+commit dce298fb29cf13615870713bbab84a1f68332a9c
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 19:07:44 2009 +0200
+
+ config.h renamed into testing.h
+
+commit d36dc5a8d11c4e524a241b0ec31ccab991cb5901
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 19:07:44 2009 +0200
+
+ config.h renamed into testing.h
+
+commit 4201447f9a39c4999bdb07690a6ee4d87a0f0221
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 17:44:03 2009 +0200
+
+ separate compilation now possible
+
+commit 0035305fb948303f1ff0f0c583395bf0ac1499dd
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 13:44:47 2009 +0200
+
+ NbrCounter cleanup + indentation
+
+commit 107eebffcccdc83472f7047fe278842dda4f95ff
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 13:25:17 2009 +0200
+
+ accessors for ko_v, last_player and hash
+
+commit 7cf580efc6025b2a65668b47dcd0f664b835b0a1
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 13:12:03 2009 +0200
+
+ komi cleanup
+
+commit 84e5eeecacf078a6fd86b281e077bbab8f2be276
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Apr 17 11:27:08 2009 +0200
+
+ most parameters moved from config.h to appropriate files
+
+commit 10b252a7bd30fc934b129a8b0030cd34289bf098
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Apr 12 01:18:55 2009 +0200
+
+ for_each removed
+
+commit 302d58c1228ab6582399b163e04c0998d555cb34
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 9 17:45:33 2009 +0200
+
+ more board cleanup
+
+commit 9d65e06111b08dafe0a64ff55666781a8cb94f67
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 9 16:56:11 2009 +0200
+
+ README update
+
+commit 702ce5022c56d842b2717499c248f4a4a60cc94b
+Author: Lukasz Lew <luk...@gm...>
+Date: Thu Apr 9 14:06:47 2009 +0200
+
+ cleanup in board
+
+commit 144112478f91801119b2c21b0783a12658e1d504
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Mar 24 01:01:02 2009 +0100
+
+ clean up
+
+commit 28746d620ff22929fc2c87b19c111ce66808f9c2
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 23:24:13 2009 +0100
+
+ clean up + SS (stream to string) class
+
+commit 00264d126ef6aa909dd7f52a668e8fe33e62aeb4
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 21:28:17 2009 +0100
+
+ genmove gtp moved to ego
+
+commit 3504a821efa7bfcb3e5e9cdb6776950d1b86ba7f
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 21:21:58 2009 +0100
+
+ simplified buffering libcall
+
+commit 34aaf21adba0bc59ac35954b370ababa54965437
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 21:18:23 2009 +0100
+
+ sgf gtp moved to ego library
+
+commit 684bda649be3e39be7bf260683469334817cb940
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 21:12:11 2009 +0100
+
+ save/load from file moved out of sgf gtp
+
+commit ff09f2ec5ddd0fd0a699f0ab64cfdb0289d8720f
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 20:34:06 2009 +0100
+
+ basic gtp moved to ego
+
+commit 81ff8bbefce696f09afad7c3b823dd7c94ea5957
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 20:29:54 2009 +0100
+
+ basic gtp split into cpp+h
+
+commit f67dc35a339aba31c9fe6f51396d578fc803e39c
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 23 20:09:03 2009 +0100
+
+ gtp juggled into ego
+
+commit 8c7a004918b36b3f24402350162174d750cd5614
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Mar 9 15:38:02 2009 +0100
+
+ comment in sgf
+
+commit 77b4dd4e035e4b44c17204557c9930a52e10e0c0
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Feb 6 21:53:32 2009 +0100
+
+ some include juggling
+
+commit 17aa8986bf2bf0a2c3411271a4379cc23eb26c48
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Feb 6 03:09:06 2009 +0100
+
+ Moved files to appropriate directories
+
+commit 2766e2555456e32a98ef427a271a5dc135e74bfe
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 04:10:04 2009 +0100
+
+ libego is now truely a library
+
+commit 4c4e062eea052cbec4bc49ad63423683a119b783
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:54:24 2009 +0100
+
+ benchmark split into header (.h) and (.cpp)
+
+commit aa73f0df5be285c1fbc20b93026a0ccb65606b8a
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:46:29 2009 +0100
+
+ playout split into header (.h) and (.cpp)
+
+commit 8702a765581b5f2a8a02f05ab699f77b7666ef8a
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:41:30 2009 +0100
+
+ sgf split into header (.h) and (.cpp)
+
+commit 381fbec4f8a22cb0f003b3b97eac7d0df72a3fd1
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:25:17 2009 +0100
+
+ hash and board split into header (.h) and (.cpp)
+
+commit 401a796ac0901238d9e73dd74151d9e8c1f932d7
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:17:02 2009 +0100
+
+ color, move, vertex, player and utils split into header (.h) and optionally (.cpp)
+
+commit f65b1ca06088d5b0ae0cdd5e0bc470c293b85a86
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Feb 4 02:02:03 2009 +0100
+
+ 5 files: fast_* and config split into header (.h) and optionally (.cpp)
+
+commit b304f8f67d756be2abc953062b56024a7063dcc2
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 03:17:15 2009 +0100
+
+ player.h, color.h and move.h separated.
+
+commit df94ca299ae616019c55dc5528f9343686e96843
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 03:11:29 2009 +0100
+
+ vertex.h separated
+
+commit 38033a3fba9c9e5d8fa43a11339edb1751443f75
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 02:52:34 2009 +0100
+
+ coord::t transformed into class Coord
+
+commit 645c3537559dbd2336a445455890feaf78b9ee0d
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 02:10:35 2009 +0100
+
+ board.h separated
+
+commit 2318bb05a85c3f41949dc9fa697e38db4373f067
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 01:47:15 2009 +0100
+
+ separated interface of class Board
+
+commit 73776a7c60c27b9638be03e5cfb2dc4b29686563
+Author: Lukasz Lew <luk...@gm...>
+Date: Mon Feb 2 00:18:54 2009 +0100
+
+ partial board interface refactoring
+
+commit 1b8aa22e6d24a57e572e2a24bd13549706cd9f89
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 20:50:15 2009 +0100
+
+ Player,Color, Vertex, Move interfaces separated
+
+commit e3778fca4fb4ddf5444fb7e1899ce72385536295
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 17:18:29 2009 +0100
+
+ .gitignore added
+
+commit 81ca04596a3feb8693572d5b8ca97166a455d85b
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 16:55:37 2009 +0100
+
+ scons build file added
+
+commit 6338c1527d4a711e4dd9f4a73cc9207d3593d0c3
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 02:30:11 2009 +0100
+
+ Hash moved to a separate file.
+
+commit aed56afd0a97b30324f9535e81434bcb5c467db1
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 02:25:09 2009 +0100
+
+ Benchmark moved to separate file.
+
+commit 38478d1119ff3ca221e5ecc470c918c726d939a3
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 02:17:41 2009 +0100
+
+ Player, Color, Vertex, Move moved to separate files.
+
+commit 9a847203705fa9cffb3fbc6b9cbc4ab5ff5a159c
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 01:46:21 2009 +0100
+
+ FastStack and FastMap in separate files. RdtscTimer -> FastTimer.
+
+commit 1a1b43e4c0d2a04498de8acadb01c71f01e14579
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 01:34:12 2009 +0100
+
+ FastRandom moved to separate file.
+
+commit f179b1d69366d03d4acbf41096dc03024ab29932
+Author: Lukasz Lew <luk...@gm...>
+Date: Sun Feb 1 01:26:05 2009 +0100
+
+ RdtscTimer move to a separate file.
+
+commit aea792037614827334dc280988c23dd3012feddf
+Author: Lukasz Lew <luk...@gm...>
+Date: Fri Jan 30 18:08:46 2009 +0100
+
+ Many small imporvements from a different repo.
+
+ - player.to_string return B W now
+ - removed obsolete GTP code from all as first
+ - qq, qqv in utils
+ - new util functions: stack.clear stack.new_top, fastmap.setall, precision in to_String
+
+commit 240bf7399be6bfcce354c9f5583daed6745bc94d
+Author: Lukasz Lew <luk...@gm...>
+Date: Wed Dec 17 18:02:57 2008 +0100
+
+ Playout has its own pointers to move_history.
+
+commit 25477f7783c6788ded6bf825abc853734075da88
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Dec 16 16:12:03 2008 +0100
+
+ optional precision in to_string
+
+commit edddd3f4b8472f9e5c290620568a98effba3ea2d
+Author: Lukasz Lew <luk...@gm...>
+Date: Tue Dec ...
[truncated message content] |
|
From: Urban H. <ur...@be...> - 2009-12-10 17:47:37
|
Hej, I'm trying to get HouseBot to compile on OSX (10.6) again. I've downloaded the latest version of DMD (2.037) and I'm currently on r966. However I get a compile error at a point that I didn't expect to be a problem: ./versiondata.sh head: libego/snapshot/gitlog: No such file or directory dmd -gc -unittest -version=test info.d main.d versiondata.d weakref.d hb/timecontrol.d hb/test.d hb/game/factory.d hb/game/puppet.d hb/io/gtp.d hb/io/ipc.d hb/search/base.d hb/search/factory.d hb/search/metric.d hb/search/multiPly.d hb/search/node.d hb/search/onePly.d tango/core/Atomic.d tango/core/Traits.d -ofhousebot-test tango/core/Atomic.d(937): Error: static assert (isValidNumericType!(shared(int))) is false make: *** [housebot-test] Error 1 Is this only happening to me? And if so, any hints? Urban |
|
From: <j_...@us...> - 2009-12-08 03:21:25
|
Revision: 965
http://housebot.svn.sourceforge.net/housebot/?rev=965&view=rev
Author: j_house
Date: 2009-12-08 03:21:19 +0000 (Tue, 08 Dec 2009)
Log Message:
-----------
Stopped casting away shared for message passing (seems to work with dmd 2.037)
Modified Paths:
--------------
trunk/housebot/hb/io/ipc.d
trunk/housebot/hb/search/base.d
Modified: trunk/housebot/hb/io/ipc.d
===================================================================
--- trunk/housebot/hb/io/ipc.d 2009-12-07 04:14:19 UTC (rev 964)
+++ trunk/housebot/hb/io/ipc.d 2009-12-08 03:21:19 UTC (rev 965)
@@ -15,25 +15,25 @@
private messageType msg;
this(int numberOfRecipients){ max = numberOfRecipients; }
/// Only blocks if queue is full
- void send(messageType message){
+ void send(shared messageType message) shared{
waitForQueueToEmpty;
id++;
msg = message;
pending = max;
}
/// Blocks until every recipient got the message
- void push(messageType message){
+ void push(shared messageType message) shared{
send(message);
waitForQueueToEmpty;
}
- private bool receive(int messageId, target t){
+ private bool receive(int messageId, target t) shared{
if (pending == 0 || id < messageId)
return false;
msg(t);
atomicDecrement!(msync.raw)(pending);
return true;
}
- private void waitForQueueToEmpty(){
+ private void waitForQueueToEmpty() shared{
while(pending > 0)
Thread.sleep(sleepTicks);
}
@@ -47,7 +47,7 @@
this(target t, shared sender s){ parent = t; source = s; }
bool receive(){
// Cast is hack to circumvent bugzilla issue #3089
- if ((cast(sender)source).receive(nextMessageId, parent)){
+ if (source.receive(nextMessageId, parent)){
nextMessageId++;
return true;
}
@@ -71,7 +71,7 @@
assert(rx2.receive == false);
// Cast is hack to circumvent bugzilla issue #3089
- (cast(broadcastMessageQueue!(dummy).sender)sender).send((dummy d){d.x++;});
+ sender.send( cast(shared void delegate(dummy)) (dummy d){d.x++;});
assert(rx1.receive);
assert(rx2.receive);
Modified: trunk/housebot/hb/search/base.d
===================================================================
--- trunk/housebot/hb/search/base.d 2009-12-07 04:14:19 UTC (rev 964)
+++ trunk/housebot/hb/search/base.d 2009-12-08 03:21:19 UTC (rev 965)
@@ -63,7 +63,7 @@
}
void reset(){
scope s = new stopSearch();
- (cast(broadcastMessageQueue!(searcher, 1.0/10_000).sender)txQueue).send( (searcher s){s.reset;} );
+ txQueue.send( cast(shared void delegate(searcher)) (searcher s){s.reset;} );
rootPosition.clear;
rootPosition.save;
rootPlayerToPlay = startingPlayer;
@@ -76,7 +76,7 @@
void play(move m){
assert(rootPlayerToPlay == m.who, "Move is by an unexpected player");
scope s = new stopSearch();
- (cast(broadcastMessageQueue!(searcher, 1.0/10_000).sender)txQueue).send( (searcher s){s.play(m);} );
+ txQueue.send( cast(shared void delegate(searcher)) (searcher s){s.play(m);} );
//rootPosition.restore; // Not necessary since no pondering occurs
rootPosition.play(m);
rootPosition.save;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-12-07 04:14:25
|
Revision: 964
http://housebot.svn.sourceforge.net/housebot/?rev=964&view=rev
Author: j_house
Date: 2009-12-07 04:14:19 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
Attempt to switch which branch of Fuego is used
Property Changed:
----------------
trunk/housebot/fuego/
Property changes on: trunk/housebot/fuego
___________________________________________________________________
Modified: svn:externals
- repository https://fuego.svn.sourceforge.net/svnroot/fuego/tags/VERSION_0_4
+ repository https://fuego.svn.sourceforge.net/svnroot/fuego/branches/VERSION_0_4_FIXES/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-12-07 03:27:41
|
Revision: 963
http://housebot.svn.sourceforge.net/housebot/?rev=963&view=rev
Author: j_house
Date: 2009-12-07 03:27:35 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
Proper RAVE with libego
Modified Paths:
--------------
trunk/housebot/libego/adapter.cpp
Modified: trunk/housebot/libego/adapter.cpp
===================================================================
--- trunk/housebot/libego/adapter.cpp 2009-12-07 03:17:33 UTC (rev 962)
+++ trunk/housebot/libego/adapter.cpp 2009-12-07 03:27:35 UTC (rev 963)
@@ -63,7 +63,7 @@
move_history.Clear();
b.load(startingPoint);
LightPlayout p(&b, random);
- LightPlayout::Status result = p.Run();
+ LightPlayout::Status result = p.Run(move_history);
moveCount = move_history.Size();
moves = move_history.Data();
switch(result){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-12-07 03:17:43
|
Revision: 962
http://housebot.svn.sourceforge.net/housebot/?rev=962&view=rev
Author: j_house
Date: 2009-12-07 03:17:33 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
The sad result of tracking down a race/segfault... No true solution.
Modified Paths:
--------------
trunk/housebot/hb/io/ipc.d
trunk/housebot/hb/search/base.d
Modified: trunk/housebot/hb/io/ipc.d
===================================================================
--- trunk/housebot/hb/io/ipc.d 2009-11-17 01:56:35 UTC (rev 961)
+++ trunk/housebot/hb/io/ipc.d 2009-12-07 03:17:33 UTC (rev 962)
@@ -23,11 +23,8 @@
}
/// Blocks until every recipient got the message
void push(messageType message){
+ send(message);
waitForQueueToEmpty;
- id++;
- msg = message;
- pending = max;
- waitForQueueToEmpty;
}
private bool receive(int messageId, target t){
if (pending == 0 || id < messageId)
Modified: trunk/housebot/hb/search/base.d
===================================================================
--- trunk/housebot/hb/search/base.d 2009-11-17 01:56:35 UTC (rev 961)
+++ trunk/housebot/hb/search/base.d 2009-12-07 03:17:33 UTC (rev 962)
@@ -50,9 +50,9 @@
this(int nThreads, lazy searcher slaveGen){
txQueue = new shared(broadcastMessageQueue!(searcher, 1.0/10_000).sender)(nThreads);
slaves = new ThreadGroup();
- foreach(i; 0..nThreads){
+ foreach(i; 0..nThreads)
slaves.create({auto slave = slaveGen; slave.threadMain;});
- }
+ Thread.sleep(5000); // HACK: Seems to remove an initialization race?
mainThreadMoveGenerator = new moveOrdering;
rootPosition = new board;
rootPosition.save;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-11-17 01:56:52
|
Revision: 961
http://housebot.svn.sourceforge.net/housebot/?rev=961&view=rev
Author: j_house
Date: 2009-11-17 01:56:35 +0000 (Tue, 17 Nov 2009)
Log Message:
-----------
Fix crash with libego - Still must figure out why RAVE isn't working
Modified Paths:
--------------
trunk/housebot/hb/search/multiPly.d
Modified: trunk/housebot/hb/search/multiPly.d
===================================================================
--- trunk/housebot/hb/search/multiPly.d 2009-10-28 02:37:37 UTC (rev 960)
+++ trunk/housebot/hb/search/multiPly.d 2009-11-17 01:56:35 UTC (rev 961)
@@ -36,9 +36,16 @@
this(range _r, player p){
targetPlayer = p;
r = _r;
- r.length = r.length*7/8;
- findNextMove();
- popFront();
+ auto newLength = r.length*7/8;
+ if (newLength == 0 && r.length > 0)
+ newLength = 1;
+ r.length = newLength;
+ if (newLength > 0){
+ findNextMove();
+ popFront();
+ }
+ else
+ _empty = true;
}
void popFront(){
_front = nextMove;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j_...@us...> - 2009-10-28 02:37:46
|
Revision: 960
http://housebot.svn.sourceforge.net/housebot/?rev=960&view=rev
Author: j_house
Date: 2009-10-28 02:37:37 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Further progress with libego. It now segfaults, so I added a debug build. Sadly, the debug build is either hanging or is super slow. I'll try to figure out next time.
Modified Paths:
--------------
trunk/housebot/libego/adapter.cpp
trunk/housebot/libego/makefile
trunk/housebot/makefile
Modified: trunk/housebot/libego/adapter.cpp
===================================================================
--- trunk/housebot/libego/adapter.cpp 2009-10-26 03:15:06 UTC (rev 959)
+++ trunk/housebot/libego/adapter.cpp 2009-10-28 02:37:37 UTC (rev 960)
@@ -50,6 +50,7 @@
class mcPlayer{
Board b;
FastRandom random;
+ FastStack<Move, 999> move_history;
private:
public:
uint moveCount;
@@ -59,11 +60,12 @@
return startingPoint->tt_winner();
}
while(true){
+ move_history.Clear();
b.load(startingPoint);
LightPlayout p(&b, random);
LightPlayout::Status result = p.Run();
- moveCount = p.move_history.size;
- moves = p.move_history.tab;
+ moveCount = move_history.Size();
+ moves = move_history.Data();
switch(result){
case LightPlayout::pass_pass:
case LightPlayout::mercy:
Modified: trunk/housebot/libego/makefile
===================================================================
--- trunk/housebot/libego/makefile 2009-10-26 03:15:06 UTC (rev 959)
+++ trunk/housebot/libego/makefile 2009-10-28 02:37:37 UTC (rev 960)
@@ -3,17 +3,30 @@
CXX=g++-4.2
FLAGS=-Wall -Wextra -Wswitch-enum -O3 -march=native -fomit-frame-pointer -DDEBUG -ffast-math -frename-registers -ggdb3
-adapter9.o libego9.a: adapter.cpp
+adapter9.o: adapter.cpp
$(CXX) $(FLAGS) -DBOARDSIZE=9 -o adapter9.o -c adapter.cpp
- cd snapshot; CXX=$(CXX) ./cmakeall
- cp snapshot/release_build/ego/libego.a libego9.a
-adapter19.o libego19.a: adapter.cpp
- @echo Warning: This doesn't work right now :(
+adapter19.o: adapter.cpp
$(CXX) $(FLAGS) -DBOARDSIZE=19 -o adapter19.o -c adapter.cpp
- cd snapshot; CXX=$(CXX) ./cmakeall
- cp snapshot/release_build/ego/libego.a libego19.a
+libego9-release.a: adapter.cpp
+ cd snapshot; CXX=$(CXX) ./cmakeall Release
+ cp snapshot/build/Release/libego/libego.a libego9-release.a
+
+libego9-debug.a: adapter.cpp
+ cd snapshot; CXX=$(CXX) ./cmakeall Debug
+ cp snapshot/build/Debug/libego/libego.a libego9-debug.a
+
+libego19-release.a: adapter.cpp
+ @echo Warning: This doesn't work right now :(
+ cd snapshot; CXX=$(CXX) ./cmakeall Release
+ cp snapshot/build/Release/libego/libego.a libego19-release.a
+
+libego19-debug.a: adapter.cpp
+ @echo Warning: This doesn't work right now :(
+ cd snapshot; CXX=$(CXX) ./cmakeall Debug
+ cp snapshot/build/Debug/libego/libego.a libego19-debug.a
+
adapter.d:
.PHONY: clean
Modified: trunk/housebot/makefile
===================================================================
--- trunk/housebot/makefile 2009-10-26 03:15:06 UTC (rev 959)
+++ trunk/housebot/makefile 2009-10-28 02:37:37 UTC (rev 960)
@@ -1,6 +1,6 @@
EXE=
OBJ=.o
-ALL=housebot-test$(EXE) housebot-libego9$(EXE) housebot-fuego$(EXE)
+ALL=housebot-test$(EXE) housebot-libego9$(EXE) housebot-libego9-debug$(EXE) housebot-fuego$(EXE)
DEFAULT=housebot-libego9$(EXE)
.PHONY: all
@@ -19,13 +19,23 @@
LIBEGO9_SOURCE=\
libego/adapter.d \
libego/adapter9.o \
- libego/libego9.a
+ libego/libego9-release.a
+LIBEGO9_DEBUG_SOURCE=\
+ libego/adapter.d \
+ libego/adapter9.o \
+ libego/libego9-debug.a
+
LIBEGO19_SOURCE=\
libego/adapter.d \
libego/adapter19.o \
- libego/libego19.a
+ libego/libego19-release.a
+LIBEGO19_DEBUG_SOURCE=\
+ libego/adapter.d \
+ libego/adapter19.o \
+ libego/libego19-debug.a
+
FUEGO_SOURCE=\
fuego/adapter.d \
fuego/adapter.cpp.o \
@@ -41,6 +51,10 @@
libego/%: FORCE
$(MAKE) -C libego $(patsubst libego/%,%,$(LIBEGO9_SOURCE))
+ $(MAKE) -C libego $(patsubst libego/%,%,$(LIBEGO9_DEBUG_SOURCE))
+ # The following don't work right now
+ #$(MAKE) -C libego $(patsubst libego/%,%,$(LIBEGO19_SOURCE))
+ #$(MAKE) -C libego $(patsubst libego/%,%,$(LIBEGO19_DEBUG_SOURCE))
libego/adapter.d:
@@ -67,10 +81,18 @@
$(DMD) $(FAST) -version=go -version=libego9 $^ -of$@ $(CPP_LIB_PARAMS)
echo "quit" | ./$@
+housebot-libego9-debug$(EXE): $(SOURCE) $(LIBEGO9_DEBUG_SOURCE)
+ $(DMD) $(SAFE) -version=go -version=libego9 $^ -of$@ $(CPP_LIB_PARAMS)
+ echo "quit" | ./$@
+
housebot-libego19$(EXE): $(SOURCE) $(LIBEGO19_SOURCE)
$(DMD) $(FAST) -version=go -version=libego19 $^ -of$@ $(CPP_LIB_PARAMS)
echo "quit" | ./$@
+housebot-libego19-debug$(EXE): $(SOURCE) $(LIBEGO19_DEBUG_SOURCE)
+ $(DMD) $(SAFE) -version=go -version=libego19 $^ -of$@ $(CPP_LIB_PARAMS)
+ echo "quit" | ./$@
+
housebot-fuego$(EXE): $(SOURCE) $(FUEGO_SOURCE)
$(DMD) $(FAST) -version=go -version=fuego $^ -of$@ $(CPP_LIB_PARAMS)
echo "quit" | ./$@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Urban H. <ur...@be...> - 2009-10-27 06:25:29
|
Jason House wrote: > Did your Havannah development stop when you upgraded to 10.6? How > often do Macs have with those kinds of issues? Sort of. First I was on holiday and then I upgraded the OS. That happens once every year or 1.5 years on Macs. Apple is quite fast in releasing new versions of the OS. > The recently revived gdc is still 20 releases (~16 months) behind dmd. > Dmd may work with 10.6 before gdc. That may depend on how hard it is > for Walter to figure out. Ah. OK. So the D 2 version that gdc supports is probably too old for HouseBot. Urban |