gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] Semeai crashes


From: Daniel Bump
Subject: [gnugo-devel] Semeai crashes
Date: Tue, 29 Jan 2002 09:17:25 -0800

After the patch semeai_1_24.1 it seems to me that it might to work
correctly if the patch gunnar_1_23.4 works correctly. In any case
I think I can demonstrate that there is a problem in the existing
hash code. Note that the patch semeai_1_24.1 implements a function
get_read_result2 which takes two locations as arguments, consistent
with the intentions of Gunnar's patch.

After the patch semeai_1_24.1 you can get a crash by loading
the file b73.sgf in regression/games/trevor/auto at move 116.
The following debug script shows where the problem lies.

define pascii
set gprintf("%o%m\n",($arg0)/20 -1, ($arg0)%20 -1)
end
set args --quiet -l b73.sgf -L116 -t
del
b small_semeai_analyzer
run
pascii apos
pascii bpos
c
pascii apos
pascii bpos
c
pascii apos
pascii bpos
c
pascii apos
pascii bpos
b owl_analyze_semeai
c
fin
c
pascii apos
pascii bpos
b do_owl_analyze_semeai
c
set debug=0x080000
b get_read_result2
c
b do_get_read_result
c

The crash occurs in small_semeai, where the function
owl_analyze_semeai is called. Despite the name, owl_analyze_semeai
has a tactical mode in which owl moves are not generated. (To do so 
during make_worms would be problematic.) Only liberty filling and
backfilling moves are generated so when the semeai function is run
in tactical mode it is more like a tactical reading function.
In this mode it is very fast, more reliable than the old
small_semeai and does not produce many variations.

Several semeais are treated in order, and each of them
generates two calls to owl_analyze_semeai. When the 
semeai between B8/C8 is reached, it appears that a move
is cached during the first call, owl_analyze_semeai(B8, C8),
then retrieved during the second call,
owl_analyze_semeai(C8, B8). This should not happen.

Dan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]