[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gnugo-devel] Replacement patterns
From: |
Trevor Morris |
Subject: |
Re: [gnugo-devel] Replacement patterns |
Date: |
Tue, 02 Apr 2002 14:10:57 -0500 |
At 08:39 AM 4/2/2002 -0800, address@hidden wrote:
>I got a crash in a game which I tracked down to a pattern that was
>not written as intended. It is now fixed in the CVS by the patch
>at the end of this message.
>
>The actual crash was caused by this assertion in add_replacement_moves:
>
> /* First check for an incompatible redistribution rule. */
> if (replacement_map[from] != NO_MOVE) {
> int dd = replacement_map[from];
>
> /* Crash if the old rule isn't compatible with the new one. */
> ASSERT1(dd == to || to == replacement_map[dd], from);
> /* There already is a compatible redistribution in effect so we
> * have nothing more to do.
> */
> return;
> }
>
>This seems rather dangerous to me. For this to be correct
>we need to know that no two patterns can propose different
>replacements. It is difficult to verify this.
>
>Perhaps we should leave this in for now but when we've finished
>stress testing by playing about 1000 games we should take it
>out and not have this assertion in GNU Go 3.2.
Perhaps this would be a good reason to implement GG_FULL_ASSERT?
-Trevor