Commit | Line | Data |
---|---|---|
7eeb782e AT |
1 | ------------------------------------------------------------------------- |
2 | -- ChangeLog | |
3 | ------------------------------------------------------------------------- | |
4 | ||
5 | 3.8 released February 17, 2009 | |
6 | ||
7 | - added Wietze Brandsma to THANKS | |
8 | - revised config.vc | |
9 | - revised NEWS | |
10 | - restored missing mkmcpat.dsp, regress.cmd | |
11 | ||
12 | 3.8rc1 released February 6, 2009 | |
13 | ||
14 | - revisions to montecarlo.texi | |
15 | - revised .dsp files | |
16 | - Lee Fisher added to AUTHORS | |
17 | - WINDOWS doc and install.texi revised per Lee Fisher's changes | |
18 | - mkmcpat puts 16 items on a line instead of 8 | |
19 | - (unsigned char) and (unsigned short) explicit typings | |
20 | - missing files added to EXTRA_DIST | |
21 | - copyrights updated to 2009 | |
22 | ||
23 | 3.7.13 released December 23, 2008 | |
24 | ||
25 | - restore cmake files that were missing from the 3.7.12 tarball | |
26 | - bring copyright date to 2008 | |
27 | - doc revision | |
28 | - be forgiving with replacement moves conflicting with unconditional analysis | |
29 | - accept --enable-socket-support even if configure test fails | |
30 | - add globals.c to mkmcpat for OS/X build | |
31 | ||
32 | 3.7.12 released April 7, 2008 | |
33 | ||
34 | - cmake configuration files for generating MSVC project files | |
35 | - minor doc revision | |
36 | - new options --mc-patterns, --mc-list-patterns, and --mc-load-patterns | |
37 | - tunable local patterns for Monte Carlo simulations | |
38 | - try harder to find the right move to make seki in find_moves_to_make_seki() | |
39 | - better heuristics to avoid calling semeai reading in | |
40 | find_moves_to_make_seki() in hopeless cases | |
41 | - never amalgamate dragons over three-liberty strings and sometimes not | |
42 | over two-liberty strings | |
43 | - send_two_return_one() moved from utils.c to board.c and reimplemented | |
44 | - new file engine/montecarlo.c | |
45 | - new options --monte-carlo and --mc-games-per-level to use Monte Carlo UCT | |
46 | search on 9x9 and smaller boards | |
47 | - call check_boardsize() from play_gmp.c to avoid crashing on bad board sizes | |
48 | - new function check_boardsize() | |
49 | - bugfix in handling of foreground color with ncurses | |
50 | - orientation invariant board hashes added | |
51 | - tuning | |
52 | - add STS-RV semeai regression test suite | |
53 | - new and revised tests | |
54 | ||
55 | 3.7.11 released November 1, 2007 | |
56 | ||
57 | - gtp-commands.texi is not built automatically | |
58 | - updates texinfo.tex | |
59 | - minor doc revision | |
60 | - revised configure.in, aclocal.m4 and *Makefile.in for recent autotools | |
61 | - removed acconfig.h | |
62 | - don't play send-two-return-one in tactical reading attack moves | |
63 | - bugfix in reevaluate_ko_threats() to avoid a crash | |
64 | - more efficient aftermath moves | |
65 | - version 3 of GPL and update copyright for 2007 | |
66 | - new static function remove_eye_filling_moves() in owl.c | |
67 | - semeai reading revisions | |
68 | - look more ambitiously for back-capturing moves in attack1() | |
69 | - generate cut move reasons for cutting moves found during find_connections() | |
70 | - fix compilation with MAX_BOARD set to low boardsizes (>= 7 tested) | |
71 | - performance tuning in do_owl_analyze_semeai() | |
72 | - detect unconditionally meaningless moves | |
73 | - get_lively_stones() revised to be valid also for stackp>0 | |
74 | - bugfix in compute_owl_escape_values() | |
75 | - moves can be marked as known_safe_moves by patterns | |
76 | - bugfix in compute_surroundings() | |
77 | - owl tuning | |
78 | - new and revised tests | |
79 | ||
80 | 3.7.10 released May 21, 2006 | |
81 | ||
82 | - gnugo.dsw and uncompress_fuseki.dsp revised | |
83 | - configure.in revised to improve socket support detection on windows | |
84 | - gameinfo_play_sgftree_rot() revised to fail gracefully | |
85 | - new static really_do_trymove() and is_superko_violation() in board.c | |
86 | - board hashes stored in the move history | |
87 | - is_legal() no longer depends on allow_suicide | |
88 | - new is_allowed_move() to determine legality for current suicide and ko rules | |
89 | - new global variables suicide_rule and ko_rule | |
90 | - illegal moves replaced with passes near the end of do_genmove() | |
91 | - reevaluate_ko_threats() revised | |
92 | - under superko rules look for ko threats also if best move illegal | |
93 | - new options --forbid-suicide (default) and --allow-all-suicide | |
94 | - new options --simple-ko (default), --no-ko, --positional-superko, | |
95 | and --situational-superko | |
96 | - is_allowed_move() used instead of is_legal() in play_gtp.c, play_ascii.c | |
97 | and play_solo.c | |
98 | - identify_thrashing_dragons() called earlier in make_dragons() | |
99 | - do not play self-atari while splitting eyespaces in aftermath_genmove() | |
100 | - in do_owl_attack(), don't consider send-two-return-one defender moves | |
101 | - send-two-return-one moves not tried in find_more_attack_and_defense_moves() | |
102 | - send-two-return-one moves not tried in find_worm_attacks_and_defenses() | |
103 | - string connection bonus for ko captures reduced in move_connects_strings() | |
104 | - maximum bonus from secondary move values limited to 0.4 points | |
105 | - more legality checking in fill_liberty() | |
106 | - detect_tactical_blunder() revised to avoid finding illegal defense moves | |
107 | - semeai.tst reordered | |
108 | - new option --limit-commands to regress.pike | |
109 | - new testfile 13x13c.tst | |
110 | - do not try to add an sgf circle for pass moves in replay_node() | |
111 | - new enum same_dragon_value in owl.c | |
112 | - new owl_defendpats.db classification "a" for connecting all friendly | |
113 | stones to the goal | |
114 | - owl tuning | |
115 | - influence tuning | |
116 | - tuning | |
117 | - new and revised tests | |
118 | ||
119 | 3.7.9 released March 10, 2006 | |
120 | ||
121 | - new GTP command advance_random_seed <games> | |
122 | - make update_random_seed() deterministic | |
123 | - fix assertion failure in semeai() | |
124 | - semeai attack and defense codes added to struct dragon_data2 | |
125 | - in estimate_territorial_value(), let stones have influence strength also | |
126 | when their safety depends on ko | |
127 | - unify internal handling of limit_search and restricted_genmove | |
128 | - new function play_lib_n() in utils.c and autohelper functions | |
129 | oplay_lib/xplay_lib | |
130 | - new static function modify_eyefilling_move() in owl.c | |
131 | - do not reset permeability around dead stones | |
132 | - do not consider moves playing into snapback in | |
133 | do_find_more_owl_attack_and_defense_moves() | |
134 | - new function playing_into_snapback() in utils.c | |
135 | - only call do_find_more_owl_attack_and_defense_moves() when stackp==0 | |
136 | - use .strategic_size in estimate_strategical_value() | |
137 | - new field .strategic_size in dragon_data2, includes bonus for weak neighbors | |
138 | - use gg_normalize_float2int() in valuate_combinable_pattern_chain() to | |
139 | address platform dependencies | |
140 | - carefully select new owl goal origin | |
141 | - allow excess strategical value for some single-worm dragons | |
142 | - include played move in atari-atari blunder analysis | |
143 | - score.c removed from sources | |
144 | - owl tuning | |
145 | - tuning | |
146 | - new and revised tests | |
147 | ||
148 | 3.7.8 released January 30, 2006 | |
149 | ||
150 | - new global variable handicap | |
151 | - chinese scoring adds the number of handicap stones in addition to the | |
152 | komi to white's score | |
153 | - include handicap in sgf headers | |
154 | - dead code removed from influence_evaluate_position() and the rest moved | |
155 | to game_status() | |
156 | - metamachine enabled in ascii mode (as in GNU Go 3.6) | |
157 | - configure option oracle renamed metamachine (as in GNU Go 3.6) | |
158 | - new testfile gifu05.tst | |
159 | - don't try large scale attack if original owl reading was expensive | |
160 | - teach influence_score() about chinese rules | |
161 | - copyright notices updated for 2006 | |
162 | - bugfix in unconditional status analysis | |
163 | - let --capture-all-dead and --play-out-aftermath be effective also when | |
164 | playing out a game for scoring (e.g. --score finish) | |
165 | - semeai analysis turned off when there are a huge number of dragons | |
166 | - MAX_STRINGS value corrected | |
167 | - new assertions that the next_string pointer hasn't overflowed | |
168 | - hash flag bits and -H option removed | |
169 | - default size of reading cache set to a fixed number of entries instead | |
170 | of a fixed amount of memory, improving platform independence | |
171 | - update information about valid boardsizes in gnugo.pod | |
172 | - bugfix for drawing 1x1 board in play_ascii.c | |
173 | - regress.pike can run multiple engines in parallel (-j option) | |
174 | - correction of color in order_moves() call in reading.c | |
175 | - doc revision, updated instruction for setting up HTML regression views | |
176 | - find_connection_moves() revised | |
177 | - GTP command dragon_data fixed to give well-formed output also on empty | |
178 | board | |
179 | - update regress.pl and regress.plx to count connection nodes instead of | |
180 | life nodes and expect reg_genmove instead of gg_genmove | |
181 | - remove gnugo_play_sgftree(), gnugo_genmove(), gameinfo_load_sgfheader(), | |
182 | and gameinfo_play_move() from engine/interface.c | |
183 | - 1D conversion of gnugo_play_move() | |
184 | - new function get_sgfmove() | |
185 | - let semeai code pass if no riskless move was found | |
186 | - do not hardwire owl node limit for large scale attacks | |
187 | - remove many unneeded configure tests | |
188 | - READLINE compile (warning) fixes | |
189 | - complete rework of clock.c, using level adaption logic from play_gtp.c | |
190 | - use more tactical moves in do_owl_analyze_semeai() | |
191 | - unused function transform2() removed | |
192 | - report_worm() made static in worm.c | |
193 | - hashdata_to_string() revised for consistency between 32 and 64 bit platforms | |
194 | - bugfixes in do_aftermath_genmove() | |
195 | - adjust readconnect node limit when starting search at higher stackp | |
196 | - new function get_depth_modification() | |
197 | - removed functions set_temporary_depth_values()/restore_depth_values() | |
198 | - always set dragon status to ALIVE if owl_status is UNCHECKED | |
199 | - correct C-code footer in uncompress_fuseki.c for all values of | |
200 | NUM_HASHVALUES | |
201 | - play_replay() and replay_node() partially rewritten | |
202 | - tuning | |
203 | - new and revised tests | |
204 | ||
205 | 3.7.7 released October 9, 2005 | |
206 | ||
207 | - FSF address corrected in COPYING | |
208 | - large scale improvements | |
209 | - use signed char instead of char most of the time in the engine | |
210 | - string_to_location(), debug_influence_move(), and report_worm() | |
211 | converted to 1D | |
212 | - get_level() removed from genmove.c | |
213 | - documentation update | |
214 | - remove long deprecated command hurry from play_ascii | |
215 | - use signed char in connected_components() in owl.c | |
216 | - rotation support for --decide_* options removed | |
217 | - remove trivial wrapper functions from engine/interface.c | |
218 | - patterns/transpat.c, patterns/patlib.c, and patterns/patlib.h removed | |
219 | - unused game records in regression/golois removed | |
220 | - makevcdist.pl updated and re-run | |
221 | - all Makefile.in regenerated | |
222 | - debugboard traces from Makefile and configure removed | |
223 | - endgame1.tst removed from distribution but not from CVS | |
224 | - cutstone.tst, semeai2.tst, and *_rot.tst removed | |
225 | - debugboard removed | |
226 | - support for pattern based reading (EXPERIMENTAL_READING) removed | |
227 | - support for tree based pattern matching removed | |
228 | - view.pike: support multiple tests as argument | |
229 | - test revisions | |
230 | - consistently initialize global variables in globals.c (not main.c) | |
231 | - large scale code reorganized | |
232 | - fullboard support (-f option) remove from mkpat | |
233 | - atari_atari tuning | |
234 | - endgame tuning | |
235 | ||
236 | 3.7.6 released September 21, 2005 | |
237 | ||
238 | - a few missing game records restored | |
239 | - revised patterns.dsp and new uncompress_fuseki.dsp | |
240 | ||
241 | 3.7.5 released September 20, 2005 | |
242 | ||
243 | - revision to patterns.dsp (but more revision needed before VC will compile) | |
244 | - send usage messages caused by bad input to stderr | |
245 | - new, larger fuseki database added as compressed files | |
246 | - new files patterns/compress_fuseki.c and patterns/uncompress_fuseki.c | |
247 | - use a fullboard hash for fuseki database patterns | |
248 | - new array comulative_goal in local_owl_data | |
249 | - don't count former owl goal dragon stones towards escape measure | |
250 | - removed PROFILE_MATCHER | |
251 | - handle CRLF newlines correctly in view.pike | |
252 | - new static function squeeze_moves() in reading.c | |
253 | - fix komaster problem | |
254 | - do not trust connection moves to be safe in | |
255 | estimate_territorial_value() | |
256 | - add random move value contributions also for pure ko threats | |
257 | - new and revised tests | |
258 | ||
259 | 3.7.4 released June 12, 2005 | |
260 | ||
261 | - copyright notices updated for 2005 and new FSF address | |
262 | - bugfix in find_backfilling_move in filllib.c | |
263 | - make fast_defense() aware of under-the-stones tesuji | |
264 | - make superstring_break_chain_moves() attack 3-liberty chains | |
265 | - unused code to compute genus removed from make_dragons() | |
266 | - owl tuning | |
267 | - atari-atari tuning | |
268 | - optics tuning | |
269 | - tuning | |
270 | - new and revised tests | |
271 | ||
272 | 3.7.3 released March 22, 2005 | |
273 | ||
274 | - special_rescue_moves() allows self atari moves which may set up a snapback | |
275 | - increase depth after filling liberties in endgame_find_backfilling_dame() | |
276 | - try harder to find safe backfilling moves in endgame_find_backfilling_dame() | |
277 | - revised heuristics to find a font file in view.pike | |
278 | - avoid crashing on bad engine paths when starting a new engine in view.pike | |
279 | - move_connects_strings() revised | |
280 | - outcommented patterns removed | |
281 | - ignore off board vertices in openregion() in fuseki.c | |
282 | - Revise diagonal value in topological_eye() to account for damezumari | |
283 | - owl tuning | |
284 | - new and revised tests | |
285 | ||
286 | 3.7.2 released January 20, 2005 | |
287 | ||
288 | - gnugo.el: Grid display implemented | |
289 | - gnugo.el: SGF handling improved | |
290 | - gnugo.el: Undo and Redo related enhancements | |
291 | - gnugo.el: Primitive edit mode | |
292 | - gnugo.el: Regression view mode | |
293 | - Doc revision (Emacs mode in using.texi) | |
294 | - use print_numeric_influence() for printing escape influence | |
295 | - take neighbouring half/false eyes into account when estimating lunch value | |
296 | - do not trust strategic attack and defense moves to be safe when scoring | |
297 | - thrash_around_helper() returns false if fuseki is disabled | |
298 | - value_territory() revised to disable certain reductions of the territory | |
299 | value when scoring | |
300 | - regress.pike revised so that previous output can be used as input | |
301 | with -f to rerun tests with unexpected results | |
302 | - connection_value() revised | |
303 | - use influence-based score estimate instead of Bouzy's algorithm | |
304 | - new global variable white_score, black_score | |
305 | - should_resign() now depends on optimistic_score instead of average_score | |
306 | - added support for GTP over TCP/IP sockets on Windows | |
307 | - new static function all_own_neighbors_inessential() in aftermath.c | |
308 | - do_aftermath_genmove() revised | |
309 | - breakage2tst.py now produces command line for regress.pike | |
310 | - further revision of thrashing dragon heuristic | |
311 | - try harder to find backfilling moves in fill_liberty() | |
312 | - find_backfilling_move() in filllib.c revised | |
313 | - test_attack_either() revised | |
314 | - fixed anchor building of owl_attackpats.db repaired | |
315 | - thrashing dragon heuristics revised | |
316 | - readline support in ASCII mode | |
317 | - liberties and neighbors list broken out of string_data array in board.c | |
318 | for speedup | |
319 | - new functions remove_double_blocks(), check_double_block() to improve | |
320 | territorial evaluation at places where an intrusion is possible | |
321 | - stop using worm data at stackp==0 in does_attack() and does_defend() | |
322 | - concerns_noncritical_dragon() revised | |
323 | - MIN_BOARD reduced to 1 | |
324 | - free memory allocated in a failed read of an sgf file | |
325 | - extract_fuseki revisions: statistics on outcomes, | |
326 | popularity cutoffs based on unique players added to command line | |
327 | parameters, tweaks and bugfixes in game selection | |
328 | - atari_atari moves considered blocking in estimate_territorial_value() | |
329 | - MAX_LIBERTIES reduced to 8 | |
330 | - popgo() bugfix to repair sgf traces | |
331 | - do_owl_analyze_semeai() revised | |
332 | - emacs variant of ascii interface removed | |
333 | - give less bonus to connection moves when scoring | |
334 | - influence tuning | |
335 | - owl tuning | |
336 | - tuning | |
337 | - new testsuite tiny.tst | |
338 | - new and revised tests | |
339 | ||
340 | 3.7.1 released November 23, 2004 | |
341 | ||
342 | - new function send_two_return_one() in utils.c | |
343 | - don't consider send-two-return-one moves in | |
344 | do_find_more_owl_attack_and_defense_moves() | |
345 | - does_attack() made ko aware | |
346 | - new GTP commands does_attack and does_defend | |
347 | - sgfnode.c (readsgffile): Do not fclose stdin. | |
348 | - gtp.texi (GTP command reference): Add @cindex. | |
349 | - gtp-commands.sed: Use @verbatim. Tighten output. | |
350 | - gtp-commands.sed: Move `Function' field into @item line, sans field name. | |
351 | - doc/ Makefile.am (gtp-commands.texi): Eliminate redundant use of cat(1). | |
352 | - revision of gtp-commands.sed | |
353 | - bugfix in main.c: remember to sgfFreeNode(gameinfo.game_record.root) | |
354 | - allow PASS_MOVE in trymove() and tryko() | |
355 | - do_trymove() and popgo() revised | |
356 | - 'printfsgf -' supported from GTP | |
357 | - copyright notices added to xpm files | |
358 | - gnugo.el brought up to Thi's gnugo.el-2.2.8 | |
359 | - new gtp_move_history() for use with gnugo.el | |
360 | - minor doc revision | |
361 | - capture_non_invincible_strings() and unconditional_life() moved from | |
362 | utils.c to unconditional.c | |
363 | - resignation option reverted from GTP commands genmove_black and | |
364 | genmove_white | |
365 | - new heuristic to reduce branching factor in connection reading. | |
366 | - resign rather than pass when all own stones seem dead | |
367 | - lively_dragon_exists() based on status rather than crude_status | |
368 | - potential_moves[] array converted to 1D | |
369 | - distance measures converted from floating to fixed point arithmetic | |
370 | in connection reading code. | |
371 | - owl threats disabled as a command line option | |
372 | - EXIT_SUCCESS and EXIT_FAILURE used in transpat.c and sgfgen.c | |
373 | - revised interface to all genmove() type functions | |
374 | - new global variable depth_offset | |
375 | - only cache safe_move() results when reading depth is unmodified | |
376 | - revision of interface/emacs.el | |
377 | - new interface/xpms/*xpm, make-gnugo-xpms.el and gnugo-xpms.el | |
378 | - break_chain2_moves() revised | |
379 | - special_attack4_moves() revised | |
380 | - defend_secondary_chain_moves() revised and split into two functions | |
381 | - check_self_atari() in readconnect.c revised | |
382 | - devalue tactical defenses of owl critical dragons when there are | |
383 | better owl defenses elsewhere | |
384 | - find_moves_to_make_seki() extended to examine the case of dead stones | |
385 | inside the eye of single-eyed dragons | |
386 | - added support for GTP communication over TCP/IP socket; GNU Go can | |
387 | both connect and listen | |
388 | - bugfix in break_in_goal_from_str(): check pos+delta on board | |
389 | - bugfix in sgfStartVariant | |
390 | - constrain thrashing dragons more often | |
391 | - hashing cleanups | |
392 | - missing files added to EXTRADIST in Makefile.* in doc/ and regression/ | |
393 | - new file logo-36.pdf | |
394 | - DFA micro optimizations | |
395 | - Test results updated: cvs tag rel-3-7-1-pre-1 | |
396 | - use int arrays instead of char arrays to mark eyes in | |
397 | owl_determine_life() and dependent functions | |
398 | - added .eps-version of new logo | |
399 | - help string revised | |
400 | - warnings fixed | |
401 | - doc revisions | |
402 | - TODO revised | |
403 | - basic strategies to break mirror go implemented | |
404 | - matcher_check verbosity refined | |
405 | - new function are_neighbors() | |
406 | - 9x9 opening moves tuned | |
407 | - view.pike enhancement: switch to new test case | |
408 | - debugging enhancement: owl goal marked in sgf trees | |
409 | - new move reasons POTENTIAL_SEMEAI_ATTACK/DEFENSE to defer analysis of | |
410 | possible semeai winning moves until move valuation | |
411 | - infrastructure to cut owl goal dragons | |
412 | - new owl pattern class C: threaten to cut owl goal dragon | |
413 | - view.pike enhancement: owl_does_defend/attack | |
414 | - crash in owl_hotspots() fixed | |
415 | - view.pike enhancement: directly start sgf viewer | |
416 | - remove special case of CLASS_C in matchpat.c | |
417 | - influence tuning | |
418 | - owl tuning | |
419 | - endgame tuning | |
420 | - tuning | |
421 | - implement persistent semeai caching | |
422 | - don't crash on some .sgf-files from kgs | |
423 | - NEWS updated | |
424 | - refer to 3.6 instead of 3.4 in docs | |
425 | - new and revised tests | |
426 | ||
427 | 3.5.10 released August 7, 2004 | |
428 | ||
429 | - move initalization of ..._vital_points to initialize_dragon_data() | |
430 | - persistent caches reorganized to share common code | |
431 | ||
432 | 3.5.9 released July 18, 2004 | |
433 | ||
434 | - bugfix in read_eye() | |
435 | - bugfix in fast_defense() | |
436 | - improved printing of hashvalues | |
437 | - bugfix in atari_atari_blunder_size() | |
438 | - new static function dump_board_sgf() in printutils.c | |
439 | - abortgo() no longer unwinds the stack but prints an sgf file | |
440 | - new and revised tests | |
441 | - doc revision | |
442 | ||
443 | 3.5.8 released June 8, 2004 | |
444 | ||
445 | - make `mkpat' detect duplicate pattern names | |
446 | - duplicate pattern names renamed | |
447 | - reduce DFA_MAX_MATCHED 20 times | |
448 | - calculate actual maximum dfa with new dfa_calculate_max_matched_patterns() | |
449 | - remove unused configure option --experimental-semeai | |
450 | - add missing output to --options | |
451 | - new static function special_rescue4() called from defend2() in reading.c | |
452 | - fast_defense() now heuristically looks for neighbors to capture | |
453 | - don't restore random state in hash_init() and keyhash_init() | |
454 | - major `view.pike' revision, added new "single window" mode | |
455 | - break_chain2_moves() revised to generate more backfilling moves | |
456 | - atari_atari_blunder_size() now returns multiple defenses, better verified | |
457 | - remove %r support from gprintf, use result_to_string() instead | |
458 | - double_atari_chain2() revised to generate more moves | |
459 | - new argument recompute_dragons to owl_analyze_semeai_after_move() | |
460 | - owl_mark_dragon() and init_owl() revised | |
461 | - detect_tactical_blunder() revised | |
462 | - value of tactical blunders doubled to twice the effective size of the string | |
463 | - not a blunder if a string alive in seki is saved when outer liberties filled | |
464 | - normalize apos, bpos in do_owl_analyze_semeai | |
465 | - find_cuts() called from make_dragons() instead of make_domains() | |
466 | - new compute_new_dragons() and new static join_new_dragons() in dragon.c | |
467 | - new global array cutting_points[] | |
468 | - cut field removed from struct eye_data | |
469 | - INHIBIT_CONNECTION bit no longer used in the type field of struct eye_data | |
470 | - find_cuts() no longer allowed to modify eyespaces | |
471 | - bugfix in do_owl_analyze_semeai() | |
472 | - tuning | |
473 | - new and revised tests | |
474 | ||
475 | 3.5.7 released May 27, 2004 | |
476 | ||
477 | - minor revisions in score.c | |
478 | - regress.pike measures uncertainty of moves | |
479 | - global variable hashdata renamed to board_hash | |
480 | - hashdata_compare() function removed | |
481 | - fields in struct stats_data updated for new cache | |
482 | - initialization of Zobrist random numbers in hash.c and cache.c unified | |
483 | - new function hash_init_zobrist_array() in hash.c | |
484 | - hashdata_remainder() never uses more than the 32 lowest bits of hash value | |
485 | - hashdata_NULL, hashdata_clear(), and hashdata_init() macros removed | |
486 | - any number of MIN_HASHBITS can now be used | |
487 | - ROUTINE_COSTS revised | |
488 | - find_connection_moves() revised | |
489 | - always print copyright string on stdout | |
490 | - do not include "Version" in the --version output | |
491 | - old cache implementation removed | |
492 | - ignore inessential critical dragons in in dilate_erode() | |
493 | - TRACE_CACHED_RESULT* macros implemented for new caching scheme | |
494 | - old cache implementation commented out | |
495 | - new file engine/unconditional.c added | |
496 | - break-in reading tuned | |
497 | - safety checks improved for owl defense moves | |
498 | - bugfix in find_neighbor_dragons() | |
499 | - attribute "noreturn" for abortgo() | |
500 | - don't add child to root node in sgffile_printboard() | |
501 | - remove color parameter from examine_position(), compute_eyes_pessimistic() | |
502 | - new arrays white_vital_points and black_vital_points | |
503 | - read_eye() stores vital point in new arrays when add_moves == 1 | |
504 | - new functions find_lunches(), revise_inessentiality(), eye_computations() | |
505 | broken out of make_dragons() | |
506 | - VITAL_EYE_MOVE almost retired | |
507 | - fix bugs in recursive_break() | |
508 | - owl tuning | |
509 | - new and revised tests | |
510 | ||
511 | 3.5.6 released April 23, 2004 | |
512 | ||
513 | - new configure and runtime option large-scale | |
514 | - new change_owl_nodes() | |
515 | - gprintf supports %r | |
516 | - cleanup of patterns/*.sgf | |
517 | - revision of dragon_invincible() | |
518 | - suppress copyright notice in ASCII playing mode or with --version | |
519 | - copyright string shortened | |
520 | - new GTP commands move_probabilities and move_uncertainty | |
521 | - bugfix in unconditional_life() | |
522 | - owl_update_goal() overrides same_dragon == 0 in obvious cases | |
523 | - new and revised tests | |
524 | ||
525 | 3.5.5 released April 15, 2004 | |
526 | ||
527 | - moved TRACE_READ_RESULTS definition to hash.h | |
528 | - initialize lunch data for single owl move | |
529 | - bugfix in compute_eyes_pessimistic(): initialize chainlinks[] | |
530 | - improved sgf trace in trymove: location of tried move noted | |
531 | - complete conversion to new cache | |
532 | - add priority to reading results in new cache | |
533 | - kill unused hash_ng_init() | |
534 | - minor statistics improvements | |
535 | - enlarge owl goal when it has had lunch | |
536 | - komaster and kom_pos made static variables in board.c | |
537 | - edge_block_moves() proposes more moves | |
538 | - don't try to undo when stackp is not zero (GTP mode) | |
539 | - support for multiple engines in view.pike | |
540 | - more info about semeais in dragon_data2 | |
541 | - double-check owl attack moves against dragons involved in semeai(s) | |
542 | - be less optimistic about large, but bulky eyespaces | |
543 | - support for 'make gnugo.pdf' and make 'gnugo.html' in doc/ | |
544 | - slowest move statistics from regress.pike | |
545 | - update usages of time_report() | |
546 | - `twogtp.pike' can now use third engine (arbiter) to score games | |
547 | - breakin and readconnect fixes | |
548 | - first implementation of owl threat combinator--intended for improving | |
549 | move ordering | |
550 | - pattern attributes (shape, followup etc.) are now stored in lists, not | |
551 | in `pattern' structure | |
552 | - there is now a possibility to define virtually unlimited number of new | |
553 | pattern attributes | |
554 | - common code of shapes_callback() and joseki_callback() is broken into | |
555 | new static function handle_joseki_patterns() | |
556 | - new function do_find_more_owl_attack_and_defense_moves() broken out | |
557 | of find_more_owl_attack_and_defense_moves() | |
558 | - induce_secondary_move_reasons() tries to upgrade induced reasons to | |
559 | owl attacks/defenses with do_find_more_owl_attack_and_defense_moves() | |
560 | - strategical attack move reason is induced for saving certain worms | |
561 | adjoining weak opponent dragons | |
562 | - major improvement of analyze_eyegraph functionality in optics.c | |
563 | - adjust min_level and max_level if --level is set outside their range | |
564 | - do not malloc() 0 bytes in pattern_list_build_heap() | |
565 | - aftermath_final_status() declaration moved from gnugo.h to liberty.h | |
566 | - bugfix in find_connection_moves() | |
567 | - bugfix in hashdata_init macro | |
568 | - caching enabled for unbranched owl nodes | |
569 | - comments added explaining heap in readconnect.c | |
570 | - provide links to html regression views from regress.sh | |
571 | - semeai analysis in make_dragons() postponed until after revision of | |
572 | inessentiality | |
573 | - identification of thrashing dragons in make_dragons() postponed | |
574 | until after semeai analysis | |
575 | - avoid overflow in reading_cache_init() | |
576 | - converted owl to use new cache implementation | |
577 | - owl tuning | |
578 | - new game records and test cases | |
579 | ||
580 | 3.5.4 released January 23, 2004 | |
581 | ||
582 | - copyright 2004 added to copyright notices | |
583 | - new static function capture_non_invincible_strings() broken out of | |
584 | unconditional_life() | |
585 | - unconditional_life() revised | |
586 | - new semeai_propose_eyespace_filling_move() tries to play inside eyeshapes | |
587 | - number_of_dragons initialized in initialize_dragon_data() | |
588 | - new option --gtp-dump-commands to dump all incoming GTP commands to file | |
589 | - new function and autohelper owl_lunch() | |
590 | - lunches_are_current field no longer reset in owl_safe_move() | |
591 | - don't claim levels higher than 10 are unsupported | |
592 | - new GTP command unconditional_status | |
593 | - estimate_lunch_eye_value() revised | |
594 | - avoid calling owl_substantial() when not needed in aa_compute_status() | |
595 | - value_move_reasons() revised | |
596 | - special_rescue6_moves() revised | |
597 | - find_connection_moves() revised | |
598 | - computation of NUM_HASHVALUES corrected in hash.h | |
599 | - hashdata_to_string reimplemented | |
600 | - defend4() and special_rescue_moves() revised | |
601 | - avoid ko captures when filling outer liberties in semeai reading | |
602 | - adjust breakin_depth in modify_depth_values() | |
603 | - atari_atari tuning | |
604 | - endgame tuning | |
605 | - eye tuning | |
606 | - fuseki tuning | |
607 | - influence tuning | |
608 | - owl tuning | |
609 | - tuning | |
610 | - new test suite unconditional.tst | |
611 | - new game records and test cases | |
612 | ||
613 | 3.5.3 released January 7, 2004 | |
614 | ||
615 | - new GTP command kgs-genmove_cleanup | |
616 | - compute_crude_status() revised to consider dragons with big | |
617 | territorial moyo value as alive | |
618 | - semeai moves considered safe in mark_changed_dragon | |
619 | - compare number of eyes when both colors pass in | |
620 | do_owl_analyze_semeai() instead of always consider it a seki | |
621 | - do not use the attack point from owl if owl considers a dragon dead | |
622 | but semeai revises it to critical | |
623 | - bugfix in break_through_helper() in reading.c | |
624 | - new static function close_enough_for_proper_semeai() in semeai.c | |
625 | - liberty_of_dragon() transformed into neighbor_of_dragon() in semeai.c | |
626 | - in semeai(), be more careful when considering two dragons involved | |
627 | in a semeai | |
628 | - new static function max_lunch_eye_value() in value_moves.c | |
629 | - when restraining thrashing dragons, do not bother connecting | |
630 | inessential strings which cannot provide an eye (in | |
631 | estimate_strategical_value()) | |
632 | - new autohelper function adjacent_to_stone_in_atari | |
633 | - new static bamboo_rescue_moves() in `reading.c'. | |
634 | - computation of safety and status values in make_dragons() revised to | |
635 | more robustly handle invincible dragons | |
636 | - dragon_invincible() revised | |
637 | - detect_tactical_blunder() revised | |
638 | - owl stack management reimplemented | |
639 | - consider semeai worms adjacent to the outside as important in | |
640 | owl_analyze_semeai_after_move() | |
641 | - additional semeai debug output | |
642 | - let stdout be unbuffered instead of line buffered in play_gtp() | |
643 | - if one dragon is considerably smaller than the other in a semeai, | |
644 | prefer to get ko over seki in do_owl_analyze_semeai() | |
645 | - in a semeai, consider also the eyespaces including opponent semeai | |
646 | worms in order to detect a definite lack of eyespace and to find | |
647 | certain vital moves | |
648 | - off-by-one error in loops over semeai_worms[] corrected | |
649 | - don't allow "safe" common liberties to depend on ko in | |
650 | do_owl_analyze_semeai() | |
651 | - new static function find_moves_to_make_seki() in semeai.c | |
652 | - do semeai analysis for all pairs of critical/dead dragons except | |
653 | when one is inessential, other exceptional cases removed from semeai() | |
654 | - defend4() generates superstring moves | |
655 | - semeai_move_reasons() revised | |
656 | - induce_secondary_move_reasons() revised; do not allow owl attack moves | |
657 | to induce strategic defense of neighbors if involved in a semeai | |
658 | - connection_value() revised to never give points for connection to | |
659 | inessential strings | |
660 | - get_influence() revised | |
661 | - list_move_reasons() revised and made global | |
662 | - new functions print_all_move_values() and prepare_move_influence_debugging() | |
663 | - delta_territory cache can be disabled in estimate_territorial_value() | |
664 | - new GTP commands all_move_values, eye_data, half_eye_data, move_reasons | |
665 | - GTP command influence replaced by initial_influence, move_influence, and | |
666 | followup_influence | |
667 | - GTP command clear_cache now also clears the non-persistent cache | |
668 | - bugfix in corner_add_pattern() (mkpat.c): labels must be rotated too | |
669 | - spread_connection_distances() now delays expensive constraint evaluation, | |
670 | storing pending evaluation on a heap | |
671 | - new function signed_mark_string() | |
672 | - computation of active area revised in store_persistent_connection_cache(), | |
673 | store_persistent_breakin_cache(), and store_persistent_owl_cache() | |
674 | - move_is_marked_unsafe() in move_reasons.h revised | |
675 | - modify_stupid_eye_vital_point() revised | |
676 | - influence tuning | |
677 | - fuseki tuning | |
678 | - eye tuning | |
679 | - endgame tuning | |
680 | - owl tuning | |
681 | - tuning | |
682 | - new test suite seki.tst | |
683 | - new game records and test cases | |
684 | ||
685 | 3.5.2 released November 5, 2003 | |
686 | ||
687 | - Cosmic GNU Go disabled by default. | |
688 | - report_dragon() revised | |
689 | - gtp_worm_data() revised | |
690 | - pattern tagging | |
691 | - regress.sh revised | |
692 | - regress.pike revised | |
693 | - attack2() revised | |
694 | - defend4() revised | |
695 | - slow sorting in get_next_move_from_list() is replaced with heap sorting | |
696 | - new static functions pattern_list_build_heap() and | |
697 | pattern_list_get_next_pattern() in `engine/owl.c' | |
698 | - new command line option --no-cosmic-gnugo | |
699 | - remove global variables score, lower_bound, upper_bound | |
700 | - remove (level >= 8) condition for estimate_score() call | |
701 | - pass our_score instead of score to the move valuation functions | |
702 | - tuning | |
703 | - influence tuning | |
704 | - owl tuning | |
705 | - joseki tuning | |
706 | - new game records and test cases | |
707 | ||
708 | 3.5.1 released September 4, 2003 | |
709 | ||
710 | - semeai() revised to better handle certain cases of multiple simultaneous | |
711 | semeais | |
712 | - find additional semeai moves in semeai_reasons() | |
713 | - added more robust handling of .dtr files | |
714 | - removed option to build pre-rotated DFAs | |
715 | - unconditional_status in struct worm_data changed to enum dragon_status | |
716 | - final_status in the aftermath code changed to use enum dragon_status | |
717 | - enum dragon_status extended with BLACK_TERRITORY, WHITE_TERRITORY, | |
718 | and DAME | |
719 | - new GTP command last_move | |
720 | - threaten_to_capture_helper() and pattern `Sente12' retired | |
721 | - no buffering on stdout in ascii mode | |
722 | - roadmap to engine files in overview.texi updated | |
723 | - move DEBUG_func to showbord.c | |
724 | - pattern tuning: remove "t" classification from various patterns | |
725 | - WHITE_BORDER, BLACK_BORDER, GRAY_BORDER retired | |
726 | - colors and komaster state, safety values and dragon status, cache routine | |
727 | ids are now "enum" | |
728 | - board library: remove all stuff that is not directly related to board | |
729 | (and move it to the engine) | |
730 | - board library: new file board.h as public interface, new file boardlib.c | |
731 | to collect global variable of the board library; | |
732 | - board library documentation updated to reflect changes | |
733 | - new function: hashdata_to_string() | |
734 | - small_semeai() and small_semeai_analyzer() removed | |
735 | - support for !experimental_semeai removed | |
736 | - old semeai() removed and new_semeai() renamed to semeai() | |
737 | - analyze_semeai(), add_appropriate_semeai_moves(), and liberty_of_dragon() | |
738 | removed | |
739 | - old amalgamation (!experimental_connections) code and patterns removed | |
740 | - dragon_eye() removed | |
741 | - basic_cut_helper() and ugly_cutstone_helper() removed | |
742 | - komaster schemes 1-4 removed | |
743 | - komaster_is_empty() retired | |
744 | - komaster_to_string() revised | |
745 | - KOMASTER_TRACE functionality removed | |
746 | - new GTP command combination_defend | |
747 | - revised hash table scheme | |
748 | - new COSMIC_GNUGO function choose_best_strategy() sets tuning parameters | |
749 | - new global tuning parameters: minimum_value_weight, maximum_value_weight, | |
750 | invasion_malus_weight, strategical_weight, territorial_weight, | |
751 | attack_dragon_weight; | |
752 | - remove unneeded configure stuff, add -Wundef to SOME_WARNINGS | |
753 | - replace setlinebuf by setvbuf | |
754 | - add safety_hash field to delta territory cache, reenable this cache | |
755 | - cgi interface in interface/html directory removed | |
756 | - owl tuning | |
757 | - new game records and test cases | |
758 | ||
759 | 3.4 released July 31, 2003 | |
760 | ||
761 | - breakage2tst.py and gnugo-db.el added to EXTRA_DIST | |
762 | - wariuchi fuseki: invade between shimaris | |
763 | - new sgmp mode | |
764 | - regress.pike added to EXTRA_DIST | |
765 | - revision of copyright notices | |
766 | - warnings fixed on some platforms | |
767 | - doc revision | |
768 | ||
769 | 3.3.23 released July 15, 2003 | |
770 | ||
771 | - bugfix in show_dragons() | |
772 | - redistribution consistency checking disabled for stable release | |
773 | - gg_genmove replaced by reg_genmove almost everywhere in the regressions | |
774 | - twogtp.py and twogtp.pike added to gtp_examples/README | |
775 | - twogtp and twogtp-a made GTP version 2 compliant | |
776 | - break-in code turned off below level 10; other level cutoffs revised | |
777 | - support for ranges in sgf files | |
778 | - time summaries reported with --showtime in gmp mode | |
779 | - TODO revised. | |
780 | - clock_init_autolevel() retired | |
781 | - new global variables min_level and max_level | |
782 | - new options --min-level and --max-level | |
783 | - time handling implemented in play_gtp.c | |
784 | - speedup: move some functionality of update_liberties() to do_remove_string() | |
785 | - bugfix in do_play_move() | |
786 | - doc: delete most lists of functions | |
787 | - doc: remove move_generation.texi overview sections | |
788 | - doc: reorder | |
789 | - doc: Consistently use hierarchical structure instead of next/previous/up | |
790 | - tuning | |
791 | - owl tuning | |
792 | - eye tuning | |
793 | - doc: complete rewrite of first sections of overview.texi | |
794 | - doc: subsection on 1D board array moved to board.texi | |
795 | - doc: references to cavities in dragon amalgamation removed | |
796 | - new game records and test cases | |
797 | ||
798 | 3.3.22 released June 28, 2003 | |
799 | ||
800 | - break-in code turned off below level 9 | |
801 | - VPATH modifications in regression/Makefile* | |
802 | - new function thrash_around_helper() | |
803 | - thrashing patterns in patterns.db | |
804 | - configure --enable-cosmic-gnugo produces a center-oriented engine | |
805 | - added cache for results of approxlib() and accuratelib() | |
806 | - new static functions do_approxlib() and do_accuratelib() in board.c | |
807 | - finish_sgftrace() will not free the trace tree if not written successfully | |
808 | - remove tabs from twogtp.py | |
809 | - twogtp.py checks that board is not empty before indexing it | |
810 | - active area for persistent breakin cache shrinked | |
811 | - new HIGH_LIBERTY_BIT2 in persistent caches, used by breakin cache | |
812 | - new function break_chain4_moves() | |
813 | - owl moves for non-critical dragons discarded | |
814 | - do_owl_analyze_semeai() revised | |
815 | - detect_owl_blunder() also looks for semeai defenses | |
816 | - estimate_strategical_value() revised | |
817 | - new function defend_secondary_chain_moves() in reading.c | |
818 | - new parameter be_aggressive to break_chain2_moves(), | |
819 | break_chain2_defense_moves() and break_chain3_moves() | |
820 | - new depth value: break_chain_depth | |
821 | - defend2() no longer plays on self atari liberties | |
822 | - superstring_breakchain_moves() renamed superstring_break_chain_moves() | |
823 | - fix "no moves found" logic in various readconnect.c functions | |
824 | - new debug flag DEBUG_BREAKIN | |
825 | - "smaller goal" in breakin.c revised | |
826 | - be more careful when erasing territory after successful break-in | |
827 | - break-in move generation bug fix | |
828 | - endgame_find_backfilling_dame() revised | |
829 | - new global array forced_backfilling_moves[] | |
830 | - find_backfilling_move in filllib.c revised | |
831 | - disable revise_semeai() when doing_scoring | |
832 | - no bonus for attack or defense of dead potential cutstones when doing_scoring | |
833 | - reevaluate_ko_threats() revised to avoid playing losing ko threats | |
834 | - RTRACE and VTRACE retired | |
835 | - corrected format of AP property in sgf_write_header() | |
836 | - tuning | |
837 | - owl_tuning | |
838 | - new game records and test cases | |
839 | ||
840 | 3.3.21 released June 3, 2003 | |
841 | ||
842 | - revision of owl_strong_dragon() | |
843 | - extra care is now taken not to waste points on tiny ko threats | |
844 | - ko threats with large followups always preferred to large reverse followups | |
845 | - twogtp.py fixed to handle jigo in endgame contests | |
846 | - made --enable-experimental-break-in the default | |
847 | - compute_smaller_goal() makes the goal even smaller in the block_off case | |
848 | - persistent caching for break_in()/block_off() | |
849 | - inessential dragons handled differently in estimate_territorial_value() | |
850 | - use smaller goal area when trying to break into territories | |
851 | - semeai_trymove_and_recurse() propagetes back changes to &owla, &owlb | |
852 | - copy over old eye_data in do_owl_defend() if escape > MAX_ESCAPE | |
853 | - new configure option --experimental-break-in | |
854 | - load_and_score_sgf_file() revised | |
855 | - detect_tactical_blunder() revised | |
856 | - ko result codes no longer discarded in owl_analyze_semeai() | |
857 | - new_semeai() revised | |
858 | - decide_semeai() in sgfdecide.c revised | |
859 | - GTP command owl_analyze_semeai renamed to analyze_semeai | |
860 | - new function owl_analyze_semeai_after_move() and corresponding GTP | |
861 | command analyze_semeai_after_move | |
862 | - gtp_owl_analyze_semeai() revised | |
863 | - new static function semeai_trymove_and_recurse() in owl.c | |
864 | - all owl_analyze_semeai regression test cases changed to analyze_semeai | |
865 | and revised for new result format | |
866 | - bugfixes in breakin.c and block_off() | |
867 | - new helper functions goal_to_hashvalue(), xor_hashvalues() | |
868 | - new function get_read_result_hash_modified to enable calling functions | |
869 | to use a modified hash value when storing/looking up results in cache | |
870 | - results for recursive_break() and recursive_block() now get cached | |
871 | - cast to avoid warnings | |
872 | - documentation revisions | |
873 | ||
874 | 3.3.20 released June 3, 2003 | |
875 | ||
876 | - hoshi.sgf split into hoshi_keima.sgf and hoshi_other.sgf | |
877 | - new functions recursive_break(), recursive_block() in readconnect.c: | |
878 | decide whether a string can be connected to an arbitrary goal area | |
879 | - new functions break_in(), block_off(), frontends to the functions above | |
880 | - corresponding GTP commands break_in, block_off | |
881 | - new file breakin.c evaluates whether territories can be broken in | |
882 | - new command line --experimental-break-in to evaluate territory break-ins | |
883 | - retire move_safety check in value_moves.c for territorial move valuation | |
884 | - read_eye() revised | |
885 | - `num_defends' field of half_eye_data strtucture renamed `num_defenses' | |
886 | - maximum 15 points of territorial_value will get shape bonus | |
887 | - change of semantics for --seed option | |
888 | - new GTP command printsgf | |
889 | - debugboard repaired | |
890 | - TODO revised | |
891 | - new function partition_eyespaces() | |
892 | - new function owl_find_relevant_eyespaces() | |
893 | - cpu time support for regress.pike | |
894 | - broke new spread_connection_distances() out of compute_connection_distances() | |
895 | - new spread_connection_distances() tuned | |
896 | - t moves devalued to value 16 | |
897 | - new function edge_distance() in board.c | |
898 | - CPU time reported by twogtp.py | |
899 | - new static function endgame_find_backfilling_dame() in endgame.c | |
900 | - new static function endgame_find_liberties() broken out of | |
901 | endgame_analyze_worm_liberties() | |
902 | - new owl_mineye() and owl_maxeye() and corresponding autohelper functions | |
903 | - move_connects_strings revised not to try connecting invincible strings | |
904 | - ALL_MOVE move reasons no longer considered to guarantee a safe move | |
905 | - never give cutstone bonus for an inessential string | |
906 | - new test suite joseki.tst | |
907 | - do_push_owl() doesn't copy unnecessary fields of local_owl_data anymore | |
908 | - retire special meaning of owl pattern values 99 and 100 | |
909 | - bugfix in revise_semeai() | |
910 | - find_half_and_false_eyes() bugfixed | |
911 | - improve_lunch_attack() revised | |
912 | - D219 pattern retired | |
913 | - new pattern action good_attack_threat overrides heuristics in value_moves.c | |
914 | - new global known_good_attack_threats[][] | |
915 | - new functions register_good_attack_threat(), is_known_good_attack_threat() | |
916 | - make delta territory cache aware of base influence recomputation | |
917 | - owl_find_lunches() revised | |
918 | - owl_determine_life() bugfixed | |
919 | - owl.c made completely 1D and other revisions | |
920 | - new GTP command analyze_eyegraph | |
921 | - new functions analyze_eyegraph(), evaluate_eyespace(), tactical_life(), | |
922 | tactical_life_attack(), and tactical_life_defend() in optics.c | |
923 | - new functions set_/get_/update_/reuse_random_seed() | |
924 | - save and restore random_seed where it is set to zero in deterministic | |
925 | GTP commands | |
926 | - adjust conection and semeai depth parameters according to levels | |
927 | - don't forget to switch exchange sgf_messages in order_moves() | |
928 | - influence tuning | |
929 | - tuning | |
930 | - joseki tuning | |
931 | - owl tuning | |
932 | - major eye tuning | |
933 | - atari_atari tuning | |
934 | - new tests and test revisions | |
935 | ||
936 | 3.3.19 released April 28, 2003 | |
937 | ||
938 | - change USE_BDIST to 1 in owl.c | |
939 | - who_wins() invokes silent_examine_position() | |
940 | - bugfix in do_owl_analyze_semeai() | |
941 | - global variable urgent retired | |
942 | - num_stones pointer in do_corner_matchpat() replaced with macro | |
943 | - joseki tuning | |
944 | - new game records and test cases | |
945 | ||
946 | 3.3.18 released April 22, 2003 | |
947 | ||
948 | - don't even try 'wrong' liberties in simple_ladder_attack() | |
949 | - major revision of do_owl_analyze_semeai() | |
950 | - do_owl_analyze_semeai tracks ko results and result certainty | |
951 | - semeai tactical phase deprecated | |
952 | - semeai_trymove() eliminated | |
953 | - semeai worms redefined | |
954 | - new r format character supported by vgprintf | |
955 | - uncertain semeais treated as critical | |
956 | - new function sgf_trace_semeai() in cache.c used by SGFTRACE_SEMEAI() macro | |
957 | - new dragon2 fields semeai_attack_certain and semeai_defense_certain | |
958 | - owl_estimate_life() revised for use in semeai reading | |
959 | - don't attack unconditionally dead stones, even if thrashing | |
960 | - never play on vertices which are unconditional territory for either player | |
961 | - bugfix in attack_either() | |
962 | - back-capturing added in attack1() and code restructured | |
963 | - new regression script regress.pike | |
964 | - hashtable_clear() doesn't clear already clean parts of the table | |
965 | - `stackp' pseudofield in Read_result renamed `remaining_depth' | |
966 | - endgame1.sgf removed from the distribution | |
967 | - play_move_no_history() revised to speed up undo | |
968 | - modify_eye_spaces(), remove_lunch(), and not_lunch_helper() removed | |
969 | - new function estimate_lunch_eye_value() broken out of sniff_lunch() | |
970 | - obvious_false_eye() moved from owl.c to optics.c | |
971 | - lunch invalidating patterns removed from conn.db together with | |
972 | corresponding code in connections.c | |
973 | - semeai moves stored in dragon2 array | |
974 | - new functions collect_move_reasons(), semeai_move_reasons() | |
975 | - new prevent_attach_threat_helper() adds reverse followup value | |
976 | - DEBUG_TERRITORY made less confusing | |
977 | - handle suicides in do_commit_suicide(), not in do_play_move() | |
978 | - fix prisoner accounting in do_commit_suicide() | |
979 | - DEBUG_INFLUENCE made less noisy | |
980 | - bugfix in gnugo_estimate_score() | |
981 | - reevaluate_ko_threats() revised | |
982 | - new helper backfill_replace | |
983 | - revisions of twogtp.py | |
984 | - bugfix in play_move() | |
985 | - improved output files from scoring mode | |
986 | - traces added to find_double_threats() | |
987 | - semeai tracing improved | |
988 | - fix arraybound violation in corner_matchpat() | |
989 | - tuning | |
990 | - influence tuning | |
991 | - joseki tuning | |
992 | - owl tuning | |
993 | - atari_atari tuning | |
994 | - eye tuning | |
995 | - new and revised test cases | |
996 | ||
997 | 3.3.17 released March 2, 2003 | |
998 | ||
999 | - most superstring related move generation broken into new superstring_moves() | |
1000 | - try (a bit) harder in attack_either() | |
1001 | - semeai worms do not have to be adjacent but may instead share a liberty | |
1002 | - only claim win for attacking a semeai worm if the attack is unconditional | |
1003 | - moves to defend a semeai worm are marked as possibly connected to the dragon | |
1004 | - liberty_of_goal() shall consider goal vertices where stones were captured | |
1005 | - allow conditional ko capture in attack4() | |
1006 | - new function is_corner_vertex() in board.c | |
1007 | - mark_dragon() changed from static to global | |
1008 | - global variable time_to_die removed | |
1009 | - revision of new_semeai() | |
1010 | - endgame move generator beginnings implemented in endgame.c | |
1011 | - endgame() in ascii.c renamed ascii_endgame() | |
1012 | - dragon_weak() moved to dragon.c | |
1013 | - bugfix in owl_substantial() | |
1014 | - merge superstring related tactical move generators into superstring_moves() | |
1015 | - resigning of hopeless games implemented (over GTP and in replay mode) | |
1016 | - ascii interface revised to support resignation | |
1017 | - twogtp.py revised to support game resignations and endgame contests | |
1018 | - ascii_endgame() renamed ascii_count() | |
1019 | - new ascii_endgame() in play_ascii.c | |
1020 | - new command-line option --resign-allowed | |
1021 | - twogtp script updated to understand resignation | |
1022 | - owl_* fields moved from struct dragon_data to struct dragon_data2 | |
1023 | - more trace output in do_atari_atari() | |
1024 | - update_aa_goal() revised | |
1025 | - new dfa builder implemented in dfa.c | |
1026 | - dfa size reduction algorithm implemented | |
1027 | - dfa transformation hints (.dtr) files added to repository | |
1028 | - speed optimizations in cache.c | |
1029 | - hashtable_unlink_closed_results() renamed hashnode_unlink_closed_results() | |
1030 | - check for snapback/oiotoshi reactivated in check_self_atari() | |
1031 | - joseki patterns are matched using corner matcher | |
1032 | - symmetrical joseki patterns no longer match twice | |
1033 | - antisuji joseki patterns are handled by callback now | |
1034 | - goal_elements and callback_data added to all relevant databases to | |
1035 | drop unnecessary pattern elements | |
1036 | - add missing break in main.c | |
1037 | - do_owl_analyze_semeai doesn't crash on certain inconsistent eye results | |
1038 | - bugfix in adjacent_to_nondead_stone() | |
1039 | - unneeded fflush(stdout) flushed from patterns/connections.c | |
1040 | - new tests | |
1041 | - atari_atari tuning | |
1042 | - joseki tuning | |
1043 | - owl tuning | |
1044 | - tuning | |
1045 | - speed up scan_for_patterns() | |
1046 | - remove DFA_SORT | |
1047 | ||
1048 | 3.3.16 released January 29, 2003 | |
1049 | ||
1050 | - redundant patterns removed from hoshi.c | |
1051 | - killer move heuristic in reading.c | |
1052 | - bugfix in evaluate_diagonal_intersection | |
1053 | - do_owl_analyze_semeai doesn't crash on certain inconsistent eye results | |
1054 | - new static functions mark_dragon() and identify_thrashing_dragons() | |
1055 | in dragon.c | |
1056 | - dead friendly neighbors of a thrashing dragon also considered thrashing | |
1057 | - new global array thrashing_stone[] to mark all thrashing dragons | |
1058 | - drop move reasons in add_move_reason() when the lists become full | |
1059 | - bugfix in value_move_reasons() | |
1060 | - MAX_REASONS increased to 120 | |
1061 | - persistent connection cache implemented but disabled by default | |
1062 | - bugfix in estimate_score | |
1063 | - bugfix for unsigned char's concerning pessimistic_min | |
1064 | - bugfix: estimate_score was called many places with parameters switched | |
1065 | - don't crash reading a bogus sgf file | |
1066 | - more reading functions use candidate move mechanism | |
1067 | - new fast_defense() looks for fast ways to get liberties | |
1068 | - switch strings sometimes in defend_both | |
1069 | - atari_atari tuning | |
1070 | - influence tuning | |
1071 | - tuning | |
1072 | - new tests and regressions | |
1073 | - doc revision | |
1074 | ||
1075 | 3.3.15 released January 12, 2003 | |
1076 | ||
1077 | - evaluate_diagonal_intersection() tries additional moves to defend a diagonal | |
1078 | - does_secure() made global and moved to reading.c | |
1079 | - owl_add_move has a new parameter max_moves | |
1080 | - --allpats works with semeai | |
1081 | - defend_both() revised to require that both strings can be saved without ko | |
1082 | - adjacent_to_nondead_stone() in value_moves.c generalized | |
1083 | - try harder in estimate_territorial_value() to detect when an | |
1084 | ATTACK_THREAT should not yield a followup value | |
1085 | - do not use tactical defense threats as ko threats unless the move | |
1086 | itself is strategically safe | |
1087 | - do not count strategical value for tactically critical dragons | |
1088 | - small bonus to dame moves which have a cut or connect move reason | |
1089 | - threaten_to_capture_helper() revised | |
1090 | - new autohelper adjacent_to_defendable_stone_in_atari | |
1091 | - new corner_point in owl.c | |
1092 | - revision of improve_lunch_attack | |
1093 | - surround code revised | |
1094 | - surround code moved up in in make_dragons() and used to correct escape route | |
1095 | - new utility function square_dist() in board.c | |
1096 | - new alternate gnugo.el in interface/gtp_examples | |
1097 | - semeai nodes increased to 500 | |
1098 | - owla life accepted on escape in do_owl_analyze_semeai only if stackp>2 | |
1099 | - use status instead of owl_status in find_more_owl_attack_and_defense_moves | |
1100 | - speed optimizations in board.c, particularly fastlib() | |
1101 | - now possible to reduce MAX_BOARD and still get working GNU Go | |
1102 | - mkpat now has amechanism for dropping patterns | |
1103 | - corner database creation implemented | |
1104 | - corner database pattern matcher implemented but not activated | |
1105 | - bugfix in play_ascii.c: allow changing handicap/komi etc. in new games | |
1106 | - fixed broken indentation in play_ascii.c | |
1107 | - bugfix in gtp_known_command | |
1108 | - new visible_along_edge() and autohelpers | |
1109 | - influence tuning | |
1110 | - tuning | |
1111 | - eye tuning | |
1112 | - new game records and regression tests | |
1113 | - doc revision | |
1114 | ||
1115 | 3.3.14 released January 1, 2003 | |
1116 | ||
1117 | - life.c removed from the distribution | |
1118 | - semeai module made standard | |
1119 | - never decrement *eyemin to negative | |
1120 | - unnecessary patval elements removed from some pattern databases | |
1121 | - mkpat understands goal_elements and callback_data directives | |
1122 | - new autohelper : owl_eye_size() | |
1123 | - tuning | |
1124 | - owl tuning | |
1125 | - Copyright notices updated for 2003 | |
1126 | - code maintenance | |
1127 | ||
1128 | 3.3.13 released December 22, 2002 | |
1129 | ||
1130 | - new aa_ pattern A16 | |
1131 | - tactical move ordering tuned | |
1132 | - complete rewrite of interface to influence.c | |
1133 | - new macros INITIAL_INFLUENCE(color), OPPOSITE_INFLUENCE(color) | |
1134 | - new functions compute_worm_influence(), get_lively_stones(), | |
1135 | compute_dragon_influence(), get_alive_stones(), set_dragon_strengths(), | |
1136 | mark_inessential_stones(), set_strength_data(), mark_changed_string() | |
1137 | to set up calls to compute_influence() | |
1138 | - new gtp command clear_cache | |
1139 | - new functions clear_persistent_owl_cache, clear_persistent_reading_cache | |
1140 | - joseki preparations: mkpat cleaning | |
1141 | - joseki preparations: some currently unused mkpat options changed | |
1142 | - joseki preparations: autohelpers no longer take `patt' argument | |
1143 | - set_value_helper() retired and replaced with inline code, generated by mkpat | |
1144 | - structures for the coming joseki pattern matcher defined in patterns.h | |
1145 | - use "territorial_influence" for pre-owl initial_influence | |
1146 | - safety values WEAKLY_ALIVE and WEAK removed | |
1147 | - use dragon2[].weakness or new field .weakness_pre_owl instead in most places | |
1148 | - use crude_dragon_weakness() to decide whether owl analysis is needed | |
1149 | - intersections with prisoners only contribute 1.0 to moyo_value | |
1150 | - arrays worms[], dragons[] removed in worms.c and value_moves.c | |
1151 | - new discard rule to enforce definiton of attack either/defend both reasons | |
1152 | - cleanups and improvements in board.c | |
1153 | - new function set_up_snapback_moves() in reading.c | |
1154 | - defend1() and restricted_defend1() revised | |
1155 | - TRACE macros and friends unified | |
1156 | - matchpat.c converted to 1D | |
1157 | - strategic bonus for connecting critical dragons out reintroduced | |
1158 | - strategic effect on critical dragon ignored unless move has owl move reason | |
1159 | - influence debug output enhanced | |
1160 | - defense functions in reading.c reorganized | |
1161 | - eye_vertex and eye_graph structures reorganized | |
1162 | - mkeyes.c rewritten to conform the changes in eyes.h | |
1163 | - adjacent() and buggy hadj() macros in optics.c retired | |
1164 | - recognize_eye(), first_map() and next_map() simplified and sped up | |
1165 | - new static reset_map() in optics.c | |
1166 | - new autohelpers omoyo_opposite and xmoyo_opposite | |
1167 | - CLASS_I added to CLASS_MOVE_REASONS in patterns.h | |
1168 | - compactify_att() removes duplicates from attribute list in DFA | |
1169 | - dfa_rt_t.next now stores offset to next state | |
1170 | - new fucntion dfa_shuffle() to minimize jump sizes between DFA states | |
1171 | - shorten generated pattern files to avoid too many lines warning | |
1172 | - new GTP command restricted_genmove | |
1173 | - new function genmove_restricted() in genmove.c | |
1174 | - new parameter allowed_moves[] to do_genmove(), review_move_reasons(), | |
1175 | and find_best_move() | |
1176 | - always call init_board() when reaching a new_position() | |
1177 | - eyes.db revised | |
1178 | - bugfixes in cut_connect_callback() in connections.c | |
1179 | - tuning | |
1180 | - owl tuning | |
1181 | - influence tuning | |
1182 | - connection tuning | |
1183 | - new tests | |
1184 | ||
1185 | 3.3.12 released November 20, 2002 | |
1186 | ||
1187 | - optimization in do_play_move: don't check ko unnecessarily | |
1188 | - revision of critical worms to inessential in make_dragons() revised | |
1189 | - owl vital attack patterns now also used for owl defense | |
1190 | - major revision of connection_value(), using new function | |
1191 | crude_dragon_weakness() | |
1192 | - reading.c: new move for defend1(): try to set up snap back | |
1193 | - reading.c: special_rescue4() generalized to hane_rescue_moves() | |
1194 | - a connection move where amalgamtion is inhibited by cut_possible() may | |
1195 | induce further connection moves | |
1196 | - new oracle.c and oracle.db | |
1197 | - oracle is a second gnugo process communicating with the gtp by unix pipes | |
1198 | - experimental alternative move generation --metamachine using oracle | |
1199 | - demonstration pattern database using oracle | |
1200 | - bugfix: gnugo_get_komi() returns float as it should | |
1201 | - ..goal_list macros converted to functions in owl.c | |
1202 | - bugfix in owl_determine_life() | |
1203 | - new functions min_eye_threat() and max_eye_threat() in optics.c | |
1204 | - somewhere() revised | |
1205 | - new autohelper functions [ox]_alive_somewhere | |
1206 | - autohelper functions [ox]_somewhere revised | |
1207 | - major revision of find_connection_distances() | |
1208 | - other revisions and tuning in readconnect.c | |
1209 | - bugfix in find_defense: compare against fourlib_depth when appropriate | |
1210 | - compiler warnings fixed | |
1211 | - new struct dfa_rt_t allows different run-time DFA structure from build-time | |
1212 | - optional #define USE_BDIST in owl.c for better rotational independance | |
1213 | - new and revised tests | |
1214 | - new eat_lunch_escape_bonus() called by sniff_lunch() | |
1215 | - 'make all' does not cause build of extract_fuseki and debugboard | |
1216 | - owl_determine_life is careful if saving a lunch attacks an eye | |
1217 | - bugfix: typo in store_persistent_reading_cache() | |
1218 | - major cleanup in influence.[ch] | |
1219 | - pre-rotated pattern generation in mkpat. (-p option) implemented. | |
1220 | - %2m added as valid syntax for gprintf | |
1221 | - relabel rotation matrices in transform.c | |
1222 | - bugfix in atari_atari_blunder_size: don't crash on inconsistent defense | |
1223 | - autoharvesting of documentation from play_gtp.c | |
1224 | - tuning | |
1225 | - komoku and hoshi tuning | |
1226 | - eye tuning | |
1227 | - owl tuning | |
1228 | ||
1229 | 3.3.11 released October 29, 2002 | |
1230 | ||
1231 | - experimental connection code made default | |
1232 | - configure --help cleanup | |
1233 | - minor changes to twogtp* | |
1234 | - revision of CB20 in conn.db | |
1235 | - calls to accurate_approxlib() replaced by accuratelib() | |
1236 | - owl_find_lunches() revised | |
1237 | - owl tuning | |
1238 | - eye tuning | |
1239 | - new game records and regression tests | |
1240 | ||
1241 | 3.3.10 released October 20, 2002 | |
1242 | ||
1243 | - fastlib revised | |
1244 | - new accuratelib intended to replace accurate_approxlib | |
1245 | - incremental_self_atari merged into revised is_self_atari | |
1246 | - accurate_approxlib moved to board.c | |
1247 | - old sgftree is now freed on successful sgf loading | |
1248 | - sgftrees are freed when sgf tracing is finished | |
1249 | - sgffile_printsgf() revised | |
1250 | - gtp_fixed_handicap revised | |
1251 | - comments improved in play_gtp.c. | |
1252 | - play_ascii() revised | |
1253 | - combinations() revised | |
1254 | - atari_atari() generates lots of defense moves and validates them | |
1255 | - do_atari_atari() generates lots of potential defense moves | |
1256 | - decide_combination() revised | |
1257 | - YOUR_ATARI_ATARI_MOVE considered safe in examine_move_safety() | |
1258 | - atari_atari tuning | |
1259 | - new GTP commands attack_either and defend_both | |
1260 | - optimization in compute_connection_distances() | |
1261 | - owl code reorganization | |
1262 | - new clear_owl_move_data() set_single_owl_move(), | |
1263 | - break out reading_limit_reached(), owl_estimate_life() | |
1264 | from do_owl_attack/defend | |
1265 | - mode local_owl_node_counter global variable for owl.c | |
1266 | - made long "if (pass == ...)" statements "switch (pass)" in owl.c | |
1267 | - eliminated unnecessary variable "found_read_result" in owl.c | |
1268 | - new strategic_effective_size() | |
1269 | - computation of strategic effect is modified | |
1270 | - new static read_eye() tries to improve recognize_eye() results | |
1271 | - recognize_eye() sets vp->num_attacks/defenses to 0 when eye is found | |
1272 | - new file surround.c | |
1273 | - new is_surrounded(), does_surround() and surround_map() | |
1274 | - new gtp functions is_surrounded, does_surround and surround_map | |
1275 | - new autohelper macros is_surrounded, does_surround and surround_map | |
1276 | - new command line option --decide-surrounded | |
1277 | - new global variable gtp_version | |
1278 | - new option --gtp_version | |
1279 | - new function simple_showboard() in showbord.c | |
1280 | - new function get_last_player() in board.c | |
1281 | - gtp code revised for GTP version 2 and uses this by default | |
1282 | - new function delete_persistent_reading_entry() | |
1283 | - inconsistent results in attack_and_defend() resolved | |
1284 | - compilation errors for EXPERIMENTAL_READING fixed | |
1285 | - new experimental owl code is aware of tails getting captured | |
1286 | - new move reasons OWL_ATTACK_MOVE_GAIN and OWL_DEFEND_MOVE_LOSS | |
1287 | with corresponding supporting code in value_moves.c and move_reasons.c | |
1288 | - new move reason INVASION_MOVE | |
1289 | - pattern class I (invasions) can now be used in patterns.db et al | |
1290 | and not only in influence patterns | |
1291 | - remove EXPAND_TERRITORY_MOVE from strategic_penalty() | |
1292 | - new static function do_find_break_chain2_efficient_moves() split off | |
1293 | from break_chain2_efficient_moves() and revised | |
1294 | - superstring_breakchain() revised | |
1295 | - speed optimization of compute_primary_domains() | |
1296 | - countlib() calls eliminated in count_common_libs(), find_common_libs(), | |
1297 | and have_common_lib() | |
1298 | - escape_value arrays changed from int to char | |
1299 | - bugfix in code awarding strategical value for attacks/defenses of lunches | |
1300 | - bugfix in ATTACK_THREAT handling in estimate_territorial_value() | |
1301 | - bugfix in owl_substantial(); depth values modified correctly | |
1302 | - depth consistency assertion added in do_genmove() | |
1303 | - bugfix in mkpat.c | |
1304 | - new static functions analyze_false_eye_territory(), | |
1305 | connected_to_eye(), and connected_to_eye_recurse() in dragon.c. | |
1306 | - new global array false_eye_territory[] | |
1307 | - critical dragons only consisting of inessential worms are revised | |
1308 | to be inessential | |
1309 | - new function is_false_eye() in optics.c | |
1310 | - new autohelper functions o_captures_something(), | |
1311 | x_captures_something(), false_eye_territory(), and false_eye() | |
1312 | - owl_tuning | |
1313 | - eye tuning | |
1314 | - influence tuning | |
1315 | - tuning | |
1316 | - new game records and regression tests | |
1317 | ||
1318 | 3.3.9 released September 29, 2002 | |
1319 | ||
1320 | - new configure option experimental-owl-ext | |
1321 | - code simplification in safe_move (use REVERSE_RESULT) | |
1322 | - new randomness_scaling field in struct move_data and new scale_randomness() | |
1323 | - moves matching Fj and Ft patterns get extra randomness | |
1324 | - fuseki pattern tuning for kakaris in high handicap games | |
1325 | - persistent cache code moved from reading.c and owl.c to new file persistent.c | |
1326 | - speed optimization in order_moves() in reading.c | |
1327 | - speed optimizations in fastlib(), count_common_libs(), find_common_libs() | |
1328 | - duplicate lines removed from safety_to_string() | |
1329 | - draw_active_area() functions in reading.c and owl.c unified | |
1330 | - new ascii command: freehandicap <num>. | |
1331 | - new function: ascii_free_handicap | |
1332 | - report_worm(): print all attack, defense, threat points/codes | |
1333 | - worm_data::defend_codes is now called defense_codes | |
1334 | - enhanced result_to_string() with new return codes. | |
1335 | - removed strategically_sound_defense() | |
1336 | - mingw build searches for mingwex | |
1337 | - pattern symmetry corrections in owl_defendpats.db and patterns2.db | |
1338 | - bugfix in topological_eye() | |
1339 | - don't spread any influence below INFLUENCE_CUTOFF | |
1340 | - mark_safe_stones() distinguishes between SAFE_STONE and OWL_SAVED_STONE | |
1341 | - detect_owl_blunder() calls owl_confirm_safety() if move may harm own eyes | |
1342 | - bugfix and speedups in accumulate_influence() | |
1343 | - bugfix in value_territory() | |
1344 | - comment play_connect_n() | |
1345 | - document play_connect_n() in the texinfo docs | |
1346 | - bugfix in play_connect_n (trace output) | |
1347 | - fix comment in find_double_threats() | |
1348 | - break_chain2_moves() revised | |
1349 | - do_play_move() revised to improve performance | |
1350 | - corrects quoting of special characters in regress.plx | |
1351 | - sgffile_loadandprint() renamed to sgffile_printsgf() and revised | |
1352 | - use EOF rather than -1 the code to read sgf files in sgfnode.c | |
1353 | - major revision of code to write an sgf tree to file in sgfnode.c | |
1354 | - set_depth_values() reorganized | |
1355 | - new function find_half_and_false_eyes() in optics.c | |
1356 | - blunder_size() code reorganized | |
1357 | - new static detect_owl_blunder() and detect_tactical_blunder() in utils.c | |
1358 | - for walking across dragons new first_worm_in_dragon(), next_worm_in_dragon() | |
1359 | - new next_wormlist[] | |
1360 | - mark_changed_dragon() revised using dragon loop | |
1361 | - bugfix in fill_liberty() | |
1362 | - filllib_confirm_safety() revised | |
1363 | - make_dragon(): resolve inconsistent owl result by calling owl_does_defend() | |
1364 | - add assert on inconsistent do_genmove result() in genmove() | |
1365 | - life code completely disabled | |
1366 | - global variables life and life_eyesize removed | |
1367 | - options --life and --life-eyesize removed | |
1368 | - new eye value scheme; all code handling eye values revised | |
1369 | - new functions set_eyevalue(), min_eyes(), max_eyes(), | |
1370 | add_eyevalues(), eye_move_urgency(), eyevalue_to_string() | |
1371 | - eyes.db revised for new eye value scheme and substantially extended | |
1372 | - configure test for alarm removed | |
1373 | - sigterm_handler() and volatile variable time_to_die removed | |
1374 | - functions special_rescue(), special_rescue2() converted to .._moves() | |
1375 | - break_chain2() removed; use new break_chain2_defense_moves() instead | |
1376 | - defend2() and defend3() simplified | |
1377 | - new reading codes GAIN/LOSS for later use in owl | |
1378 | - more consistent use of WIN and REVERSE_RESULT() macros | |
1379 | - new function sgffile_load_and_print() | |
1380 | - new call convention for sgftree* functions | |
1381 | - sgftreeCreateHeaderNode() revised | |
1382 | - sgffile_debuginfo() renamed to sgffile_add_debuginfo() | |
1383 | - new call convention for sgffile_output() | |
1384 | - --color option effective in scoring mode | |
1385 | - sgftree struct and functions consistently used in play_gmp(), | |
1386 | play_solo(), load_and_analyze_sgf_file(), and load_and_score_sgf_file() | |
1387 | - new arrays close_worms[][], close_white_worms[][], | |
1388 | close_black_worms[][], number_close_worms[], | |
1389 | number_close_white_worms[], number_close_black_worms[] | |
1390 | - compute_surrounding_moyo_sizes() revised | |
1391 | - compute_surrounding_moyo_sizes() variant for experimental-connections option | |
1392 | - new function influence_get_moyo_data() | |
1393 | - tuning | |
1394 | - owl tuning | |
1395 | - new game records and regression tests | |
1396 | ||
1397 | 3.3.8 released September 5, 2002 | |
1398 | ||
1399 | - remove unneeded inclusion of stdlib.h in helpers.c | |
1400 | - bugfix in matcher_check | |
1401 | - URL's updated in documentation | |
1402 | - tests updated | |
1403 | ||
1404 | 3.3.7 released September 4, 2002 | |
1405 | ||
1406 | - better ko tracking searching for additional worm attacks and defenses | |
1407 | in find_more_attack_and_defense_moves() and make_worms() | |
1408 | - new option --output-flags <flags> | |
1409 | - output using sgf trees with -o option | |
1410 | - cleaning and minor bugfixes in play ascii | |
1411 | - sgf handling is disconnected from engine again | |
1412 | - moved sgfAddDebugInfo -> sgffile_debuginfo, outputsgf -> sgffile_output | |
1413 | - write "forced" as comment when this ascii mode command is used | |
1414 | - sgftree_readfile does not change root node to NULL | |
1415 | - new blunder_size(), atari_atari_blunder_size() compute the blunder size | |
1416 | - remove vital_string logic in atari_atari code | |
1417 | - remove allowed_blunder_size heuristic in review_move_reasons() | |
1418 | - instead use blunder size more exactly in new function find_best_move() | |
1419 | - bugfix in hashtable_partially_clear() | |
1420 | - bugfix in gameinfo_play_sgftree_rot() | |
1421 | - bugfix (reading uninitialized memory) in sniff_lunch() | |
1422 | - bugfix (EXPERIMENTAL_CONNECTIONS) in cut_connect_callback() | |
1423 | - bugfix (gameinfo_load_sgfheader) in play_ascii() | |
1424 | - man page revised | |
1425 | - new options --mirror and --mirror-limit | |
1426 | - new global variables play_mirror_go and mirror_stones_limit | |
1427 | - new static find_mirror_move(), test_symmetry_after_move() in genmove.c | |
1428 | - Apply "B" cutting pattern from shapes.db only if connection code confirms | |
1429 | - new function test_attack_either_move; gets invoked by patterns | |
1430 | instead of directly adding the attack-either move reason | |
1431 | - new function mark_changed_dragon() in move_reasons.c | |
1432 | - only mark owl defended stones as safe if also sufficiently tactically safe | |
1433 | - matcher_check can analyze existing sgf files | |
1434 | - twogtp-a kills processes | |
1435 | - break_chain2_moves() revised | |
1436 | - placehand() renamed to place_fixed_handicap() | |
1437 | - new function place_free_handicap() in handicap.c with associated | |
1438 | - static find_free_handicap_pattern(), free_handicap_callback() in handicap.c | |
1439 | - new GTP command place_free_handicap | |
1440 | - new pattern database handicap.db | |
1441 | - new autohelper macros handicap_stones, total_handicap_stones for handicap.db | |
1442 | - mkpat.c revised to avoid compiler warnings for constraints using no labels | |
1443 | - new file engine/handicap.c | |
1444 | - placehand() moved from genmove.c to handicap.c | |
1445 | - bug fix in adjusted_worm_attack_value() | |
1446 | - FIXME added regarding several EITHER_MOVE reasons | |
1447 | - show_dragons() revised | |
1448 | - tuning | |
1449 | - influence tuning | |
1450 | - connection tuning | |
1451 | - owl tuning | |
1452 | - revised tests, many new tests, new game files | |
1453 | - added Evan Berggren Daniel to AUTHORS | |
1454 | ||
1455 | 3.3.6 released August 13, 2002 | |
1456 | ||
1457 | - extended_chainlinks() revised | |
1458 | - MAX_REASONS increased from 80 to 100 | |
1459 | - modify_stupid_eye_vital_point() revised | |
1460 | - new functions improve_lunch_attack() and improve_lunch_defense() | |
1461 | - backfilling in do_owl_attack() when trying the defender's best move | |
1462 | - sniff_lunch() revised | |
1463 | - new experimental_connections contingent code in shapes_callback() | |
1464 | - induce_secondary_move_reasons() revised | |
1465 | - tuning | |
1466 | - endgame tuning | |
1467 | - owl tuning | |
1468 | - request id no longer passed to callbacks in play_gtp.c | |
1469 | - gtp_printid() renamed to gtp_start_response() | |
1470 | - new preprocessing of command lines in gtp_main_loop() | |
1471 | - GTP command dragon_status revised | |
1472 | - bug fix in estimate_strategical_value: EITHER_MOVE negative values | |
1473 | - j pattern value increased from 22.0 to 24.0 | |
1474 | - new gtp experimental_score for metamachine | |
1475 | - new DEBUG_MISCELLANEOUS used only in find_eye_dragons | |
1476 | - connection tuning | |
1477 | - B patterns found by find_cuts inhibit C patterns by find_connections | |
1478 | - new connection tests | |
1479 | - strategic_penalty() adds negative strategical move value a bit more often | |
1480 | - revise_thrashing_dragons() revised | |
1481 | - tuning | |
1482 | - owl tuning | |
1483 | - new tests and game records | |
1484 | ||
1485 | 3.3.5 released July 5, 2002 | |
1486 | ||
1487 | - bugfix in break_through_helper() | |
1488 | - bugfix in combinations() | |
1489 | - reduced_init_owl() allocates bigger owl stack with --experimental-semeai | |
1490 | - bugfixes in pop_owl(): don't crash if owl stack has moved | |
1491 | - reduce reading depth by one in influence pattern matching | |
1492 | - new struct reading_moves in reading.c | |
1493 | - owl stack can now handle two local_owl_data structs | |
1494 | - semeai code now uses owl stack | |
1495 | - don't push owl data in owl_analyze_semeai below branch depth | |
1496 | - Don't change critical dragons to dead due to semeai results | |
1497 | - DEBUG_SEMEAI trace enhancements | |
1498 | - semeai refinements | |
1499 | - owl_phase now local variable in do_owl_analyze_semeai | |
1500 | - bugfix in do_owl_defend(): computation of escape parameter | |
1501 | - bugfix in play_ascii.c: don't crash on unusual boardsizes | |
1502 | - dead stones with no neighbors are captured territory | |
1503 | - improved debug traces in score.c | |
1504 | - decide-dragon clears cache between owl attack and defend | |
1505 | - influence pattern tuning | |
1506 | - new tests and regressions | |
1507 | ||
1508 | 3.3.4 released June 19, 2002 | |
1509 | ||
1510 | - segment_regions also computes territorial value of regions if available | |
1511 | - dragon2.moyo_size_pre_owl andmoyo_size_post_owl replace dragon2.moyo | |
1512 | - new dragon2.moyo_territorial_value, weakness | |
1513 | - strategic dragon evaluation rewritten, setting dragon2[].weakness | |
1514 | - moved interpolate to gg_interpolate in gg_utils.c | |
1515 | - new struct eyevalue | |
1516 | - moves to connect two dragons which are both adjacent to a thrashing | |
1517 | dragon are appreciated by the move valuation | |
1518 | - experimental connections off by default in VC build | |
1519 | - tuning | |
1520 | - influence tuning | |
1521 | - connection tuning | |
1522 | - eye tuning | |
1523 | - joseki tuning | |
1524 | - owl tuning | |
1525 | - new tests and game records | |
1526 | ||
1527 | 3.3.3 released June 4, 2002 | |
1528 | ||
1529 | - new function owl_strong_dragon() and new autohelper with the same name | |
1530 | - vital_chain() returns the max number of eyes | |
1531 | - no amalgamation around eye spaces with experimental_connections enabled | |
1532 | - eye spaces no longer modified by INHIBIT_CONNECTION with | |
1533 | experimental_connections enabled | |
1534 | - bugfix in find_connection_moves() | |
1535 | - pattern classes Y and W introduced in conn.db to identify patterns | |
1536 | which only applies with or without experimental_connections | |
1537 | - patterns with class e in conn.db changed to class I to better | |
1538 | reflect current usage | |
1539 | - connection tuning | |
1540 | - improves DFA compile time by doing fewest possible large syncs | |
1541 | - experimental_influence command line and configure option removed | |
1542 | - new flags dragons_known and is_territorial_influence in influence_data | |
1543 | - struct local_owl_data for speedup only holds eye space of relevant color | |
1544 | - owl_eyespace() and allies use only one eyespace | |
1545 | - dfa doesn't report symmetric patterns multiple times | |
1546 | - escape patterns in owl_defendpats.db given E classification | |
1547 | - owl_determine_life() not called during escape attempt | |
1548 | - only print debug output for eyes during owl reading if owl debug is on | |
1549 | - better traces for unused owl patterns | |
1550 | - --decide-connection also reports ko results | |
1551 | - bugfix in load_and_score_sgf_file() | |
1552 | - new test cases | |
1553 | - edge_block and double_atari_chain2 renamed to *_moves | |
1554 | - do_attack uses simple_ladder_attack when stackp > depth+10 | |
1555 | - give up simple_ladder_attack below 20 ply when we are komaster | |
1556 | - unused caching code removed from attack? and defend? | |
1557 | - macros used to make reading code readable | |
1558 | - dragon field in struct eye_data removed | |
1559 | - new function find_eye_dragons() in optics.c | |
1560 | - dragon_invincible() and genus computation in make_dragons() revised | |
1561 | - play_connect_n() uses string_connect() and disconnect() | |
1562 | unconditionally, no longer contingent on experimental_connections | |
1563 | - default value for experimental_connections reset to 0 | |
1564 | - new command line option --decide-dragon-data | |
1565 | - consistency checking of replacement patterns reenabled for unstable line | |
1566 | - tuning | |
1567 | - new tests and sgf files | |
1568 | ||
1569 | 3.3.2 released May 6, 2002 | |
1570 | ||
1571 | - Macro PATTERN_CHECK_ON_DEMAND retired | |
1572 | - allpats options for owl shape moves repaired | |
1573 | - new function extended_chainlinks() in board.c | |
1574 | - connection and cut move reasons are relative to worms, not dragons | |
1575 | - unused find_worm_pair() and related variables removed from move_reasons.c | |
1576 | - MAX_REASONS increased from 40 to 80 | |
1577 | - induce_secondary_move_reasons() reimplemented | |
1578 | - tuning | |
1579 | - new test case | |
1580 | - fix warnings generated by regress.plx | |
1581 | - doc revisions | |
1582 | - add_block_territory_move() removed | |
1583 | - BLOCK_TERRITORY_MOVE reason removed | |
1584 | - compute_shape_factor() and move_connects_strings() moved to value_moves.c | |
1585 | - move_reasons_confirm_safety() moved and renamed value_moves_confirm_safety() | |
1586 | - b patterns changed to e in endgame.db, fuseki.db, patterns.db, patterns2.db | |
1587 | - classification letters ordered consistently in pattern databases | |
1588 | - find_backfilling_move() in filllib.c revised | |
1589 | - new debug flag DEBUG_TOP_MOVES | |
1590 | - environment variables GG_OPTIONS and GNUGO when (make)ing tests | |
1591 | - top moves list maintained when moves are rejected | |
1592 | - bugfixes in metamachine | |
1593 | - regression revisions | |
1594 | ||
1595 | 3.2 released April 25, 2002 | |
1596 | ||
1597 | - revision of copyright statements and THANKS | |
1598 | - handtalk games moved to their own directory | |
1599 | - correct move number reported in influence for illegal move error | |
1600 | ||
1601 | 3.1.34 released April 20, 2002 | |
1602 | ||
1603 | - "choose best anchor"-platform dependency patch in mkpat.c | |
1604 | - bogus (int) conversion removed in get_next_move_from_list | |
1605 | - 3.0 replaced by 3.2 in WINDOWS | |
1606 | ||
1607 | 3.1.33 released April 19, 2002 | |
1608 | ||
1609 | - regression/READING, STRATEGY and NICKLAS removed | |
1610 | - makevcdist.pl, doc/gnugo-32.[jpg|eps]added to EXTRADIST | |
1611 | - eval3.sh and semeai2.tst added to automake control | |
1612 | - TODO list in texinfo updated | |
1613 | - class field in struct pattern and class_mask in made unsigned int | |
1614 | - input_FILE and output_FILE in mkpat.c explicitly initialized | |
1615 | - tree based reading not compiled by default | |
1616 | - consistency checking of replacement patterns disabled for the stable release | |
1617 | - more Handtalk games in CVS | |
1618 | - Jessie Annala THANKed | |
1619 | - new function gg_normalize_float2int to address optics.c-platform dependency | |
1620 | - hash_init behaviour made independent of boardsize | |
1621 | - output cleanup: --statistics, and EITHER_MOVE-trace | |
1622 | - floats normalized in finish_pattern() in mkpat.c | |
1623 | - put GNU Go's passes in permanent move history | |
1624 | - assertion in compute_connection_distances corrected | |
1625 | ||
1626 | 3.1.32 released April 13, 2002 | |
1627 | ||
1628 | - new update_random_seed() | |
1629 | - gtp_set_boardsize updates the random seed | |
1630 | - reset engine updates the random seed | |
1631 | - aftermath revisions | |
1632 | - combination of --score aftermath and -o options more useful | |
1633 | - dead function opponent_not_passing() removed from genmove.c | |
1634 | - init_influence() and new_value_territory() revised | |
1635 | - sgftree_printboard() made global | |
1636 | - bugfix in owl_hotspots() | |
1637 | - valuation of attack threats revised to allow more ko threats | |
1638 | - bugfix in estimate_strategical_value() | |
1639 | - solid string connection bonus revised to also favor cuts of opponent | |
1640 | - play_gtp() starts with boardsize of board loaded with -l instead of 19 | |
1641 | - no warning by default for FF[1] sgf game records | |
1642 | - bugfix in push_owl | |
1643 | - corrected assertion in examine_cavity() | |
1644 | - shadowed variables fixed in dragon.c | |
1645 | - major aftermath code revisions | |
1646 | - doing_scoring contingent revisions in influence_callback(), shapes(), | |
1647 | shapes_callback(), connection_value(), estimate_strategical_value(), | |
1648 | high_handicap_helper(), and reinforce_helper() | |
1649 | - analyze_neighbor() in filllib.c revised | |
1650 | - size of persistent owl cache increased from 100 to 150 entires | |
1651 | - bugfix in owl_confirm_safety() | |
1652 | - territorial value computed for tactical attacks of dead or defenseless stones | |
1653 | - caching of recent compute_escape_influence() results | |
1654 | - reading cache stores depth-stackp instead of stackp | |
1655 | - infl_followup_value renamed influence_followup_value and initialized | |
1656 | - initialize_dragon_data broken out of make_dragons | |
1657 | - dragon_data initialized even on empty board | |
1658 | - owl reasons ignores empty board positions | |
1659 | - twogtp does not report duplicate scores unless they differ | |
1660 | - new gtp get_random_seed, set_random_seed | |
1661 | - tuning | |
1662 | ||
1663 | 3.1.31 released April 4, 2002 | |
1664 | ||
1665 | - boardsize field added to persistent caches in reading.c and owl.c | |
1666 | - break_chain_efficient_moves() revised | |
1667 | - new function reduced_init_owl() in owl.c | |
1668 | - mark_dragon_hotspot_values() revised | |
1669 | - revised handling of inessential stones in init_influence() | |
1670 | - bugfix in strategic_penalty() | |
1671 | - owl speedup: owl data immediately stored in owl_stack | |
1672 | - bugfix in do_owl_defense() | |
1673 | - attack() now always returns PASS as move if there is no attack | |
1674 | - some ASSERTs removed in board.c. | |
1675 | - revision in get_next_move_from_list | |
1676 | - bugfix in find_connection_moves() | |
1677 | - begin_sgftreedump() can take a NULL pointer parameter | |
1678 | - new gtp command ladder_attack | |
1679 | - unneeded include directories removed from sgf/Makefile.* | |
1680 | - seed field removed from Gameinfo struct | |
1681 | - new global variable random_seed | |
1682 | - joseki tuning | |
1683 | - Handtalk games in regression/games | |
1684 | - doc revision | |
1685 | ||
1686 | 3.1.30 released March 30, 2002 | |
1687 | ||
1688 | - target sgf_properties.h not built by default | |
1689 | - bugfixes in defend2(), special_rescue(), and special_rescue2() | |
1690 | - MAX_INTRUSIONS doubled in size | |
1691 | - intrusions beyond MAX_INTRUSION silently discarded | |
1692 | - new connect_and_cut_helper2 autohelper macro | |
1693 | - platform dependency resolved in store_persistent_reading_cache | |
1694 | - EXP_J_VALUE increased to 35 in shapes.c | |
1695 | - graph_ renamed to tree_ in mkpat.c & related files | |
1696 | - a few FIXMEs addressed | |
1697 | - tuning | |
1698 | - influence tuning | |
1699 | - new logo-32.jpg and logo-32.eps | |
1700 | - newlogo.eps made smaller using level 2 postscript | |
1701 | - doc revision | |
1702 | ||
1703 | 3.1.29 released March 26, 2002 | |
1704 | ||
1705 | - asymmetry in influence computation reduced | |
1706 | - case added in strategic_penalty | |
1707 | - simulation of ko threat + answer in sgf output reinstated in tryko() | |
1708 | - new function gg_normalize_float() in gg_utils.c | |
1709 | - platform dependency fixed in readconnect.c by using gg_normalize_float() | |
1710 | - scoring tweaks and optimizations | |
1711 | - bugfix in gg_cputime() | |
1712 | - new function influence_initial_territory to export territory valuation | |
1713 | - negative strategic value added to invasion type moves | |
1714 | - keima shape bonus removed in CB204b | |
1715 | - tuning | |
1716 | - influence tuning | |
1717 | - code consistency cleanup | |
1718 | - new tests in nngs1.tst | |
1719 | - THANKS updated | |
1720 | ||
1721 | 3.1.28 released March 24, 2002 | |
1722 | ||
1723 | - hashing dependent on compiler switches, default 64 bit and no full position | |
1724 | - default cache size set to 8 | |
1725 | - --stack option and showstack global variable removed | |
1726 | - cache.o removed from libboard.a | |
1727 | - unneeded include of dfa.h removed from patterns.h | |
1728 | - compiler warnings fixed: dragon2_func prototyped, etc. | |
1729 | - bugfix in confirm_safety() plus 1D conversion | |
1730 | - komaster scheme 5 implemented and made default | |
1731 | - update_aa_goal() in combination.c revised | |
1732 | - heuristics to estimate cost of pattern constraint introduced | |
1733 | - constraint cost used in owl callback for speedup | |
1734 | - twogtp and twogtp-a close the sgf file if an engine crashes | |
1735 | - twogtp-a had coordinates reversed | |
1736 | - global variable last_moves[] removed | |
1737 | - move history added to board state | |
1738 | - static function undo_move() in board.c renamed to undo_trymove() | |
1739 | - new global functions store_board(), restore_board(), undo_move(), | |
1740 | get_last_opponent_move(), and get_last_move() in board.c | |
1741 | - macros do_add_stone() and do_remove_stone() removed from board.c | |
1742 | - Position struct removed | |
1743 | - Gameinfo struct revised | |
1744 | - new board_state struct | |
1745 | - API functions gnugo_* work on an internal board state instead of on | |
1746 | an externally provided board state | |
1747 | - board_size workaround in influence.c obsoleted and removed | |
1748 | - revised order of operations in main.c; in particular playing up the | |
1749 | position specified by -l and -L options centralized | |
1750 | - revised modes for --score option | |
1751 | - all undo implementations in GTP, GMP, and ASCII interfaces replaced | |
1752 | by the new undo_move() function in the board code | |
1753 | - Added several .h files to appropriate .dsp files | |
1754 | - corrected gcc warnings & other cleanup in mkpat.c | |
1755 | - komaster_to_string now takes 2 arguments | |
1756 | - new KOMASTER_TRACE; set to log all komaster_trymove calls | |
1757 | - dfa ise announced only as a debug message | |
1758 | - copyright notices updated | |
1759 | - DRAGON2 macro array bounds checking is not the default | |
1760 | - tuning | |
1761 | - test revision | |
1762 | - doc revision | |
1763 | - additional correct answers added to reading.tst | |
1764 | ||
1765 | 3.1.27 released March 1, 2002 | |
1766 | ||
1767 | - important bugfix in store_persistent_owl_cache() | |
1768 | - bugfix in semeai_find_backfilling_move() | |
1769 | - new command line option --debug-flags | |
1770 | - new DEBUG_OWL_PERSISTENT_CACHE | |
1771 | - owl.c:draw_active_area draws the owl point | |
1772 | - new printutils.c:routine_to_string() | |
1773 | - KOMASTER_SCHEME 4 introduced | |
1774 | - Tree-based pattern matching introduced. | |
1775 | - pattern-base reading code supports defense by pattern. | |
1776 | - new command-line switches "(attack|defend)-by-pattern" | |
1777 | - OPT enums re-based to 127, to avoid conflict w/ ASCII values. | |
1778 | - reformatted transform.c to look like matrices. | |
1779 | - DRAGON_WEAK implemented in a function and checks array bounds. | |
1780 | - improved fastlib(). | |
1781 | - DRAGON2 macro checks array bounds. | |
1782 | - bugfix in readconnect.c:moves_to_connect_in_three_moves() | |
1783 | - for non-variadic, non-VC compilers, add trace_dummy assignment | |
1784 | - new function init_owl() in owl.c | |
1785 | - re-order conditions in revise_semeai to insure valid DRAGON2 data | |
1786 | - organize include file order to facilitate pre-compiled headers. | |
1787 | - use location_to_string in replay_node() | |
1788 | - improve assertion in sgftreeAddComment() | |
1789 | - removes a bogus "," from Pattern D305 | |
1790 | - read_attack.db tuning | |
1791 | - new read_defend.db | |
1792 | - VC builds uses precompiled headers | |
1793 | - VC Release builds generate debug symbols | |
1794 | - new '-s' option to regress.pl to control creation of sgf files. | |
1795 | - instruct robots not to follow regress.plx links. | |
1796 | - unexpected results page orders results correctly | |
1797 | - defaults for config.vc(in) made same as 3.1.27 release. | |
1798 | - new semeai test | |
1799 | - doc revision | |
1800 | ||
1801 | 3.1.26 released February 24, 2002 | |
1802 | ||
1803 | - experimental influence, experimental and alternate connections are default | |
1804 | - caching code revised to once more work with TRACE_READ_RESULT enabled | |
1805 | - added EXPERIMENTAL_READING to config.vc(in) | |
1806 | - updated makevcdist.pl | |
1807 | - bugfix in owl.c:dump_pattern_list() | |
1808 | - alternative reorganized owl callback structure for substantial speed-up: | |
1809 | - owl_shapes revised, new functions get_next_move_from_list() et al. | |
1810 | - new function dump_pattern_list(...) for debugging | |
1811 | - pattern cleanup | |
1812 | - spelling fixes | |
1813 | - verbosity revisions with alternate connections in readconnect.c | |
1814 | - bugfix in close_bubbles() | |
1815 | - bugfix in compute_owl_escape_values() | |
1816 | - revised "stepped on a bug" message | |
1817 | - bugfix in update_status in semeai.c | |
1818 | - bugfix in estimate_time_by_move | |
1819 | - replay added to debug helpstring | |
1820 | - revised nonvariadic versions of TRACE and allies | |
1821 | - increased MAXSTACK to MAX_BOARD*MAX_BOARD again | |
1822 | - experimental influence taken down for initial influence when dragons unknown | |
1823 | - doc revision | |
1824 | ||
1825 | 3.1.25 released February 14, 2002 | |
1826 | ||
1827 | - updated AUTHORS | |
1828 | - command line option --options reports configure options | |
1829 | - verbose reduced in readconnect. | |
1830 | - do_genmove tries harder to restrain thrashing dragons. | |
1831 | - DFA_SORT set to 0. | |
1832 | - new gtp tryko. | |
1833 | - new function fastlib() helper for approxlib family. | |
1834 | - a pattern can now force the anchor point. | |
1835 | - matchpat can be run forcing anchor to be in the goal. | |
1836 | - simplification of UPDATE_SAVED_KO_RESULT | |
1837 | - reduce overhead in non-variadic macro TRACE definitions | |
1838 | - reduce MAXSTACK | |
1839 | - EXPERIMENTAL_READING code much more interesting. | |
1840 | - moved most of EXPERIMENTAL_READING code out of do_attack. | |
1841 | - [ox]lib request only up to MAX_LIBERTIES liberties. | |
1842 | - bugfix in reevaluate_ko_threats | |
1843 | - floating point exceptions stopped in readconnect.c | |
1844 | - experimental influence: yet another new_value_territory revision | |
1845 | - experimental influence: fixed followup values really taken down (shapes.c) | |
1846 | - experimental influence: pattern tuning | |
1847 | - experimental influence: follow-up specific constraints for B patterns | |
1848 | - experimental influence: new_value_territory revised (center correction) | |
1849 | - experimental influence: most fixed follow-up values taken down | |
1850 | - experimental influence: tuning, joseki values increased, some bugs fixed | |
1851 | - experimental_influence ignored for escape influence | |
1852 | - influential doc revision | |
1853 | - edge_double_sente_helper is now autohelper | |
1854 | - owl threat loop broken out | |
1855 | - new global thrashing_dragon | |
1856 | ||
1857 | 3.1.24 released February 3, 2002 | |
1858 | ||
1859 | - cleanup of clock.c, filllib.c, fuseki.c, genmove.c, globals.c, | |
1860 | gnugo.h, hash.h, printutils.c, reading.c, showbord.c, utils.c, | |
1861 | worm.c | |
1862 | - New function gfprintf in printutils.c | |
1863 | - do_owl_analyze_semeai won't read below MAX_SEMEAI_DEPTH | |
1864 | - AFFINE_TRANSFORM() macro | |
1865 | - new (stub) function opponent_not_passing | |
1866 | - new function sgffile_write_circle_mark | |
1867 | - gg_cputime used for time statistics consistently. | |
1868 | - alternate connection reading algorithm appended to readconnect.c | |
1869 | - new option --alternate-connections toggles the connection reading algorithms | |
1870 | - Zobrist hashing implemented in owl_analyze_semeai | |
1871 | - do_owl_analyze_semeai no longer considers unsafe outside liberties | |
1872 | - small_semeai reimplemented | |
1873 | - make_worms takes the save_verbose parameter to allow a few traces | |
1874 | - traces improved in decide_tactical_semeai | |
1875 | - EXPERIMENTAL_READING code (pattern based) added. | |
1876 | - added "tried" parameter to special_rescue | |
1877 | - defend2-[CD] won't re-try moves (avoid cache check). | |
1878 | - faster implementation of accurate_approxlib. | |
1879 | - mkpat takes multiple -i parameters, outputs in binary | |
1880 | - Visual C now uses _vsnprintf | |
1881 | - revision of patterns/mkpat.dsp | |
1882 | - sgf output tweeking. | |
1883 | - bugfix in experimental influence: floating point exception cure | |
1884 | - bugfix in regress.plx: handling of gtp worm_stones | |
1885 | - tuning | |
1886 | - owl tuning | |
1887 | - connection tuning | |
1888 | - test revision | |
1889 | ||
1890 | 3.1.23 released January 28, 2002 | |
1891 | ||
1892 | - configure option: alternate-connections | |
1893 | - experimental influence: followup value computed in influence.c | |
1894 | - experimental influence: new_value_territory revised | |
1895 | - experimental influence: new handling for intrusion patterns | |
1896 | - experimental influence: support for standard/experimental specific patterns | |
1897 | - reevaluate_ko_threats now makes checks | |
1898 | - new get_biggest_owl_target() | |
1899 | - DEFEND_BOTH_MOVE reason taken down | |
1900 | - new gtp functions get_komi and get_handicap | |
1901 | - bugfix in gtp worm_stones: did not print newline if board empty | |
1902 | - support for two strings and two results in cache.[ch] | |
1903 | - simplified code to do cache lookup in reading.c and owl.c | |
1904 | - bugfix in estimate_territorial_value() | |
1905 | - bugfix in find_worm_threats() | |
1906 | - readconnect finds connections through ponnuki | |
1907 | - readconnect sgf improvements | |
1908 | - bugfix in estimate_strategical_value(): ALL_MOVE worms were overvalued | |
1909 | - VC build now DFA compliant | |
1910 | - semeai module sets matcher status to ALIVE instead of ALIVE_IN_SEKI | |
1911 | - regression html view enhancements | |
1912 | - fix arraybound violation in compute_aa_values | |
1913 | - constraint diagram checking moved to new check_constraint_diagram() | |
1914 | - Invoke check_constraint_diagram *before* incrementing patno | |
1915 | - atari_atari_find_defense_moves() revised | |
1916 | - ATTACK_EITHER_MOVE taken down | |
1917 | - new ALL_MOVE reason | |
1918 | - new static find_all_data(), all_move_redundant() in move_reasons.c | |
1919 | - new function add_all_move() | |
1920 | - add_defend_both autohelper macro revised | |
1921 | - tuning | |
1922 | - influence tuning | |
1923 | - owl tuning | |
1924 | - hoshi tuning | |
1925 | - new and revised tests | |
1926 | ||
1927 | 3.1.22 released January 20, 2002 | |
1928 | ||
1929 | - find_backfilling_move() in filllib.c revised | |
1930 | - dfa made standard | |
1931 | - owl threat computation made optional (and not default) | |
1932 | - comments added, cleanup around discard_redundant_move_reasons | |
1933 | - new (unused) experimental influence configure and run time options | |
1934 | - unsafe tactical moves now taken care by discard_redundant_move_reasons | |
1935 | - FIXME added for reevaluate_ko_threats | |
1936 | - atari_atari_attack_patterns() uses a goal array to limit search area | |
1937 | - new functions compute_aa_values(), get_aa_value(), and update_aa_goal() | |
1938 | - ko contingent defenses excluded in get_saved_worms(), get_saved_dragons() | |
1939 | - valuation of atari_atari move reasons revised | |
1940 | - recognize_eye() revised | |
1941 | - spelling corrections | |
1942 | - fflush() added a few places | |
1943 | - owl tries tactical defense for small groups | |
1944 | - owl logs number of variations per sub-tree in SGF file | |
1945 | - [ox]play_(attack_either|defend_both) handles ko correctly. | |
1946 | - added [ox]play_connect and dis_connect helpers | |
1947 | - allow followup value if defense threat is contingent on ko. | |
1948 | - only allow territory move values if move is deemed safe. | |
1949 | - reduce cutstone values in case of ko. | |
1950 | - debug printing in influence.c slightly restructured | |
1951 | - new function influence_moyo_color_opposite() | |
1952 | - one trace output reenabled in confirm_safety() | |
1953 | - bugfix in sgftreeAddStone | |
1954 | - bugfix in komaster_trymove | |
1955 | - mascot in dragon.c | |
1956 | - tuning | |
1957 | - eye tuning | |
1958 | - atari_atari tuning | |
1959 | - connection tuning | |
1960 | - fuseki tuning | |
1961 | - owl tuning | |
1962 | - test revisions | |
1963 | ||
1964 | 3.1.21 released January 12, 2002 | |
1965 | ||
1966 | - revision of compute_surrounding_moyo_sizes() | |
1967 | - bugfix in pattern EE302 | |
1968 | - value_moves.c split from move_reasons.c | |
1969 | ||
1970 | 3.1.20 released January 11, 2002 | |
1971 | ||
1972 | - ko return codes from owl_does_attack() and owl_does_defend() handled | |
1973 | in analyze_semeai() | |
1974 | - special_rescue2() generalized and reimplemented | |
1975 | - bugfix in edge_clamp() | |
1976 | - mkpat does consistency checking between the diagram and constraint diagram | |
1977 | - new function connect_and_cut_helper() in helpers.c | |
1978 | - least significant bit of move reason now denotes a threat | |
1979 | - bugfix in add_attack_either_move | |
1980 | - new move reason: EITHER_MOVE | |
1981 | - disabled add_attack_either_move | |
1982 | - removed redundant EITHER_MOVEs | |
1983 | - minor cleanup in move_reasons.c | |
1984 | - some cleanup in move_reasons.c | |
1985 | - renamed some move reasons for name consistency | |
1986 | - new function special_rescue6() in reading.c | |
1987 | - defend3() revised | |
1988 | - don't run compute_eyes on eye spaces not attached to a dragon | |
1989 | - avoid giving followup values to non-sente threats in | |
1990 | threaten_to_capture_helper() and in estimate_territorial_value() | |
1991 | - new test_gray_border() in board.c with assertions in genmove.c | |
1992 | - xplay_attack_either returns WIN not 1 | |
1993 | - improved debugging and trace output | |
1994 | - checking of sgf GM and FF properties revised | |
1995 | - Makefile.in's converted using Automake 1.5 | |
1996 | - html view enhancements | |
1997 | - tuning | |
1998 | - influence tuning | |
1999 | - owl tuning | |
2000 | - fuseki tuning | |
2001 | - performance tuning | |
2002 | - test revisions | |
2003 | ||
2004 | 3.1.19 released January 2, 2002 | |
2005 | ||
2006 | - bugfix in aftermath_genmove() | |
2007 | - bugfixes in the atari_atari code | |
2008 | - obsolete atari_atari code removed | |
2009 | - tuning | |
2010 | - owl tuning | |
2011 | - sgf2tst repair | |
2012 | - regress.plx improvements | |
2013 | ||
2014 | 3.1.18 released December 23, 2001 | |
2015 | ||
2016 | - 1D conversion of incremental.texi | |
2017 | - new function dragon_looks_inessential() in dragon.c | |
2018 | - adjusted_worm_attack_value() revised | |
2019 | - indented debug output of secondary move values | |
2020 | - new local struct aa_move in combinations.c | |
2021 | - new pattern class 'c' for conditional moves in aa_attackspats.db | |
2022 | - atari_atari() tries to attack smallest targets first | |
2023 | - combinations() finds multiple defenses when opponent has a combination attack | |
2024 | - new gtp commands owl_connection_defends and owl_substantial | |
2025 | - mkpat checks that main diagram and constraint diagram have the same size | |
2026 | - mkpat stricter in parsing of classification field | |
2027 | - new function gg_sort() in gg_utils.c | |
2028 | - all calls to qsort() replaced by calls to gg_sort() | |
2029 | - linear_eye_space() removed | |
2030 | - make RTRACE and VTRACE variatic functions same as macros | |
2031 | - debug output and valuation of attack on defenseless stones corrected | |
2032 | - TODO revised | |
2033 | - fixed value of J patterns no longer scaled with board_size | |
2034 | - bugfix in owl_attackpats.db pattern D1137 | |
2035 | - assertion added in owl_escape_value() | |
2036 | - bugfix in moves_to_connect_in_three_moves() in readconnect.c | |
2037 | - support for all tactical worm points in debugboard | |
2038 | - tuning | |
2039 | - owl tuning | |
2040 | - influence tuning | |
2041 | - atari_atari tuning | |
2042 | - test revisions | |
2043 | ||
2044 | 3.1.17 released December 16, 2001 | |
2045 | ||
2046 | - new configure and runtime options semeai-variations | |
2047 | - new function semeai_trymove() | |
2048 | - bugfix in catalog_goal | |
2049 | - semeai revisions | |
2050 | - warning avoided in dfa_avoid_string() | |
2051 | - code cleanup | |
2052 | - devalued attacking dead group bonus | |
2053 | - corrected value to final_value in review_move_reasons() | |
2054 | - value_territory() in influence.c revised | |
2055 | - common debug code moved from compute_eyes(), compute_eyes_pessimistic() | |
2056 | to print_eyes() | |
2057 | - inactive support to test against linear_eyes() in compute_eyes_pessimistic() | |
2058 | - MAXPATNO increased to 400 in mkeyes.c | |
2059 | - naive_ladder() replaced by simple_ladder() | |
2060 | - bugfixes in attack_threats() | |
2061 | - new gtp commands reset_connection_node_counter, get_connection_node_counter | |
2062 | - removed small valued lunch attacks and defenses in owl_determine_life() | |
2063 | - new gtp commands owl_threaten_attack, owl_threaten_defense | |
2064 | - better error reporting in mkpat.c | |
2065 | - improved error reporting in owl.c | |
2066 | - html regression view tweeks | |
2067 | - new function second_order_liberty_of_string() in board.c | |
2068 | - readconnect.c revised | |
2069 | - take into account followup values if reverse_followup >= 1 | |
2070 | - try a little harder in attack_either | |
2071 | - break_through_helper improved | |
2072 | - tuning | |
2073 | - owl tuning | |
2074 | - eye tuning, adding many patterns with occupied margins | |
2075 | - test revisions | |
2076 | ||
2077 | 3.1.16 released December 9, 2001 | |
2078 | ||
2079 | - readconnect revised | |
2080 | - new board.c function breakchain3() | |
2081 | - dsp and config.vc updates | |
2082 | - new function influence_get_moyo_segmentation() | |
2083 | - new function add_influence_source() | |
2084 | - computations of moyo size surrounding a dragon changed | |
2085 | - confirm_safety() takes two new parameters to tell which stones were saved | |
2086 | - atari_atari_confirm_safety() revised | |
2087 | - compute_aa_status() revised | |
2088 | - new is_vital_string() in combinations.c tracks stones not to be sacrificed | |
2089 | - generation of attack moves in do_atari_atari uses patterns | |
2090 | - new pattern database pattern/aa_attackpats.db | |
2091 | - atari_atari_find_defense_moves() improved | |
2092 | - new functions get_saved_worms() and get_saved_dragons() in move_reasons.c | |
2093 | - new function move_reasons_confirm_safety() | |
2094 | - examine_move_safety() revised | |
2095 | - new function decide_combination() in sgfdecide.c | |
2096 | - new option --decide-combination | |
2097 | - new experimental-combination configure option, and command line options | |
2098 | - new gtp command aa_confirm_safety | |
2099 | - bugfix in trymove() | |
2100 | - 1D revisions and cleaning up | |
2101 | - new file: engine/movelist.c | |
2102 | - generalized handling of move lists and moved from worm.c | |
2103 | - attack_threats() enhanced | |
2104 | - AA_THREAT_DEPTH set to 3 | |
2105 | - find_worm_threats() uses attack_threats more | |
2106 | - pessimistic_compute_eyes() tries harder to find a vital point | |
2107 | - new atari_atari_find_attack_moves() and atari_atari_find_defense_moves() | |
2108 | - do_atari_atari() restructured | |
2109 | - experimental-semeai configure option | |
2110 | - experimental_semeai command line option | |
2111 | - new function new_semeai() | |
2112 | - owl_analyze_semeai improvements | |
2113 | - split USAGE_DEBUG in half due to VC limitation | |
2114 | - removed final VC warning in dfa.c | |
2115 | - revised trace in value_move_reasons() | |
2116 | - regress.plx improvements | |
2117 | - speedup in gtp_same_dragon | |
2118 | - test revisions | |
2119 | - 13x13 tests | |
2120 | ||
2121 | 3.1.15 released November 30, 2001 | |
2122 | ||
2123 | - new field value in struct half_eye_data | |
2124 | - topological_eye(), evaluate_diagonal_intersection() take ko into account | |
2125 | - improved debug output in compute_eyes() and compute_eyes_pessimistic() | |
2126 | - add_half_eye() renamed add_false_eye | |
2127 | - make_proper_eye_space() and remove_eyepoint() removed | |
2128 | - owl_topological_eye() reimplemented to look up stored data | |
2129 | - new function special_rescue5() in reading.c | |
2130 | - defend2() and defend3() revised | |
2131 | - new GTP commands list_stones and tactical_analyze_semeai() | |
2132 | - new command line option --decide-tactical-semeai | |
2133 | - support for marginal eye points with opponent stones in eyes.db | |
2134 | - persistent caching added to owl_does_attack() | |
2135 | - owl_does_defend() and owl_does_attack() now understand ko | |
2136 | - owl_determine_life() revised | |
2137 | - owl_analyze_semeai() revised | |
2138 | - small_semeai() calls owl_analyze_semeai | |
2139 | - new function silent_examine_position() | |
2140 | - find_more_owl_attack_and_defense_moves() revised | |
2141 | - ko valuation revised | |
2142 | - cutting worms are never inessential | |
2143 | - 1D revision of print_eye() in optics.c | |
2144 | - compute_eyes_pessimistic() revised | |
2145 | - bugfixes in evaluate_diagonal_intersection() | |
2146 | - new gtp commands owl_analyze_semeai, owl_does_attack, and owl_does_defend | |
2147 | - revision of owl_analyze_semeai() | |
2148 | - new static catalog_goal in owl.c | |
2149 | - sgfdecide functions made 1D | |
2150 | - empty_corner_value adjusted to board size in fuseki() | |
2151 | - removed tactical reading move pass from owl.c | |
2152 | - contribution of (reverse) followup values revised in value_move_reasons | |
2153 | - comments made 1D in owl.c | |
2154 | - regress.pl now accepts "problem sets" | |
2155 | - regress.plx includes "unexpected result" list | |
2156 | - new gtp_example/sgf2tst.pl | |
2157 | - changed warning to error in mkpat.c | |
2158 | - minor change to regress.pl | |
2159 | - atari_atari now considers general threat the first moves | |
2160 | - new depth parameter aa_threat_depth | |
2161 | - new function: atari_atari_succeeded | |
2162 | - cleanup in atari_atari functions | |
2163 | - compute_escape_influence now 1D | |
2164 | - new function in reading.c: attack_threats | |
2165 | - handling of tactical moves in worm.c no longer static | |
2166 | - replaced abort() in mkeyes with fatal error messages | |
2167 | - patterns.dsp and gnugo.dsw revised | |
2168 | - tuning | |
2169 | - influence tuning | |
2170 | - connection_tuning | |
2171 | - owl tuning | |
2172 | - test revisions | |
2173 | - new trevora tests | |
2174 | - new semeai tests | |
2175 | - doc revision | |
2176 | ||
2177 | 3.1.14 released November 17, 2001 | |
2178 | ||
2179 | - recognize_eye() revised | |
2180 | - new function test_eyeshape() in optics.c | |
2181 | - new gtp command test_eyeshape | |
2182 | - vital and num_vital fields removed from struct eye_graph | |
2183 | - mkeyes.c revised | |
2184 | - non-territory patterns introduced in the influence code | |
2185 | - revised formula for addition of followup_value | |
2186 | - better trace output for followup_value and reverse_followup_value | |
2187 | - typo fixed (whose_moyo for whose_area) in value_territory() | |
2188 | - new debug flag DEBUG_TERRITORY | |
2189 | - delta computation of territory, moyo, and area in influence.c restructured | |
2190 | - influence_value part of move valuation removed | |
2191 | - new function is_edge_vertex() in board.c | |
2192 | - guess_eye_space() revised | |
2193 | - compute_eyes_pessimistic revised | |
2194 | - do_owl_defend() revised | |
2195 | - move stupid vital marginals from first to second line in owl_determine_life() | |
2196 | - patterns.dsp doesn't reference invalid file | |
2197 | - regress.pl deals with threads better on Win32 | |
2198 | - regress.plx supports view by category | |
2199 | - updated regress.pl | |
2200 | - add file & line numbers to more warnings in mkpat.c | |
2201 | - comments in reading.c made 1D | |
2202 | - DFA_ENABLE ifdefs removed | |
2203 | - remove *.dfa stuff from makefiles keeping only DFA_FLAGS for mkpat. | |
2204 | - configure --enable-dfa touches .db files. | |
2205 | - bugfix in find_double_threats() | |
2206 | - global_matchpat() renamed matchpat() | |
2207 | - regression view includes node counts, SGF link, and -t output. | |
2208 | - GTP echo_err added to allow echoing to STDERR. | |
2209 | - atari_atari moved to combination.c | |
2210 | - restricted_defend1 and restricted attack2 now public functions | |
2211 | - in find_double_threats, make threat reasons into attack_either reasons | |
2212 | - old disabled function remove_move_reason() now enabled | |
2213 | - some simple cleaning | |
2214 | - genmove now 1D | |
2215 | - out of bounds array violation in showbord.c fixed. | |
2216 | - regress.pl records sgf trace for owl_attack & owl_defend. | |
2217 | - regress.plx provides access to sgf trace files if present. | |
2218 | - tuning | |
2219 | - connection tuning | |
2220 | - eye tuning | |
2221 | - owl tuning | |
2222 | - influence tuning | |
2223 | - revision of rot tests | |
2224 | - ld_owl_life.tst removed | |
2225 | - new and revised regression tests | |
2226 | - Some tests in endgame.tst corrected. | |
2227 | ||
2228 | 3.1.13 released November 6, 2001 | |
2229 | ||
2230 | - new function are_neighbor_dragons() | |
2231 | - verbose value reduced while running owl_reasons | |
2232 | - influence code revised | |
2233 | - function find_stones_saved_by_move() in move_reasons.c removed | |
2234 | - find_more_owl_attack_and_defense_moves() revised | |
2235 | - owl attacks induce strategical defenses of friendly neighbors | |
2236 | - connection values revised | |
2237 | - territorial value of attacks, defenses, owl attacks, and owl | |
2238 | defenses computed through influence function, not effective_size | |
2239 | - bugfix in computing effects of min and max territory values | |
2240 | - played stone not automatically in goal array in owl_does_defend(), | |
2241 | owl_confirm_safety(), and owl_connection_defends() | |
2242 | - gtp commands debug_influence, debug_move_influence, move_influence removed | |
2243 | - cleanup in mkpat.c | |
2244 | - malformed line warning turned into error in mkpat | |
2245 | - 1D documentation revisions. | |
2246 | - twogtp-a now give a (halfhearted) default to missing goprog. | |
2247 | - twogtp-a works for VC builds now. | |
2248 | - mkpat.c generates more useful errors. | |
2249 | - mkpat.c forces output to have compile error if input also had errors. | |
2250 | - comments in readconnect.c | |
2251 | - snapback only looks at one liberty in readconnect.c | |
2252 | - do_atari_atari confirms the *defense_point is safe before returning | |
2253 | - atari_atari_confirm_safety initializes defense_point | |
2254 | - trivial bugfix in move_reasons.c | |
2255 | - important bugfix in semeai.c, could cause a crash | |
2256 | - tuning | |
2257 | - owl tuning | |
2258 | - influence tuning | |
2259 | - gtp_set_boardsize resets the engine and stack | |
2260 | - new and revised regression tests | |
2261 | - new command-line option --orientation | |
2262 | - -l and decide-* options can be combined with --orientation | |
2263 | - tuning and regression revisions | |
2264 | - regress.plx revisions: total line, time display, command line hint | |
2265 | ||
2266 | 3.1.12 released October 28, 2001 | |
2267 | ||
2268 | - break_chain2_efficient_moves() and break_chain2_moves() revised | |
2269 | - add_array() in readconnect.c simplified | |
2270 | - bugfix in moves_to_connect_in_two_moves() | |
2271 | - sgf traces turned off in quiescence_capture() | |
2272 | - new fields owl_attack_code and owl_defense_code in struct dragon_data | |
2273 | - revised definition of WEAK and WEAKLY_ALIVE dragons in make_dragons() | |
2274 | - revised computation of size of surrounding moyo for a dragon | |
2275 | - 1D revisions | |
2276 | - add_attack_move() and relatives also take the result code as parameter | |
2277 | - new move reasons ATTACK_MOVE_GOOD_KO, ATTACK_MOVE_BAD_KO, and so on | |
2278 | - move valuation distinguishes between attacks, defenses, owl attacks | |
2279 | and owl defenses with or without ko | |
2280 | - connections tested as owl defenses when connecting out a critical dragon | |
2281 | - revised valuation of threats and strategical attacks | |
2282 | - compute_eyes_pessimistic() revised | |
2283 | - owl_determine_life() revised | |
2284 | - new static compute_aa_status() broken out of three atari_atari functions | |
2285 | - tuning | |
2286 | - connection tuning | |
2287 | - owl tuning | |
2288 | - joseki tuning | |
2289 | - new and revised regression tests | |
2290 | - new reorientation test suites | |
2291 | - remove rot* subdirs from EXTRA_DIST | |
2292 | - bugfix in score.c (typo from 1D conversion) | |
2293 | - revisions to extract_fuseki: make partial board patterns | |
2294 | - revised fuseki9.db | |
2295 | - Corrected VC build error converting unsigned 64-bit long to double | |
2296 | - regress.pl split into regress.pl & regress.plx | |
2297 | - added -all, to have regress.pl parse Makefile.in for tstfile list. | |
2298 | - html view has better marking of non gg_genmove positions. | |
2299 | - New move generator: combinations() in new file combinations.c | |
2300 | - double attack threats detected | |
2301 | - better valuation of attacks on worms | |
2302 | - general cleanups | |
2303 | ||
2304 | 3.1.11 released October 21, 2001 | |
2305 | ||
2306 | - tuning | |
2307 | - owl tuning | |
2308 | - eye tuning | |
2309 | - new function owl_proper_eye() and autohelper with the same name | |
2310 | - valuation of uncertain owl defense moves revised | |
2311 | - evaluate_diagonal_intersection() revised | |
2312 | - new pattern class b in owl_defendpats.db | |
2313 | - handling of same_dragon field in struct owl_data revised | |
2314 | - do_atari_atari() revised | |
2315 | - bugfixes in make_worms() | |
2316 | - 1D revisions all over the engine | |
2317 | - new debug flag DEBUG_READING_CACHE | |
2318 | - same_dragon() renamed is_same_dragon() | |
2319 | - new gtp commands start_sgftrace and finish_sgftrace | |
2320 | - new and revised regression tests | |
2321 | - new gtp command top_moves | |
2322 | - bugfix in draw_back | |
2323 | - Add ON_BOARD1 assertions in liberty_of_string and neighbour_of_string | |
2324 | - Use Win32 API to get CPU time usage for all Win32 builds, not just VC | |
2325 | - Added a few scattered regression comments | |
2326 | - Updated regress.pl to latest ever evolving version. | |
2327 | - Adds several test cases and SGF files to trevor.tst & games/trevor/ | |
2328 | - reorientation code moved from gtp.c to play_gtp.c | |
2329 | - owl_rot.tst uses reorientation code | |
2330 | - fixed sscanf problem in (worm|dragon)_(stones|data) | |
2331 | - allow dragon_stones to take color parameter, as well as coord. | |
2332 | - revisions to capture.tst and vie.tst | |
2333 | - further 1D revision in dragon.c | |
2334 | - top_move functionality added to regress.pl | |
2335 | - filllib.c and semeai.c made 1-dimensional | |
2336 | - new gg_cputime in gg_utils.c | |
2337 | - improved configuration for ncurses/{term,curses}.h | |
2338 | - new and improved tests | |
2339 | ||
2340 | 3.1.10 released October 14, 2001 | |
2341 | ||
2342 | - portability fix for MINGW. Don't include crtdbg.h | |
2343 | - rename connect to string_connect. | |
2344 | - all move reason handling is 1D | |
2345 | - owl goal and other date are 1D | |
2346 | - new and revised test cases | |
2347 | - bugfix in random.c | |
2348 | - revision of readconnect.c | |
2349 | - bugfix for Cygwin: gtp_dragon_data misreports invalid coordinate | |
2350 | - revision of trevor.tst | |
2351 | - bugfix in inv_rotate: use bs-1 instead of bs | |
2352 | - new gtp function orientation | |
2353 | - new gtp function query_orientation | |
2354 | - in gtp_mprintf use gtp_print_vertex for the %m format specifier. | |
2355 | - revision of regress.pl, Stone.pm | |
2356 | - revision of engine/engine.dsp: remember readconnect.c | |
2357 | - make gtp_loadsgf reorient gamerecords | |
2358 | - make gtp_printvertices orient output points back | |
2359 | - new function count_common_libs() in board.c | |
2360 | - struct worm_data tracks all attack, defense, attack and defense threat points | |
2361 | - remove_attack_move() and remove_defense_move() removed | |
2362 | - attack_move_known(), defense_move_known(), attack_threat_move_known(), | |
2363 | and defense_threat_move_known() moved from move_reasons.c to worm.c | |
2364 | - change_attack() and change_defense() moved from utils.c to worm.c | |
2365 | - new functions change_attack_threat() and change_defense_threat() in worm.c | |
2366 | - new function worm_reasons() in worm.c | |
2367 | - trace messages in worm.c changed to DEBUG_WORMS messages | |
2368 | - remove_opponent_attack_and_defense_moves() and | |
2369 | do_remove_false_attack_and_defense_moves() removed from move_reasons.c | |
2370 | - NON_ATTACK_MOVE and NON_DEFEND_MOVE move reasons removed | |
2371 | - try a little harder to find attack threats | |
2372 | - attack.db and defense.db revised | |
2373 | - indirect_helper() removed from helpers.c | |
2374 | - tuning | |
2375 | - minor owl tuning | |
2376 | - new function have_common_lib() in board.c | |
2377 | - new option --decide-connection | |
2378 | - new function decideconnection() in sgfdecide.c | |
2379 | - bugfixes in board.c, sgfdecide.c, and main.c | |
2380 | - new IS_COLOR macro | |
2381 | - comments moved from regression/STRATEGY to strategy.tst | |
2382 | - time_report has a mintime parameter | |
2383 | - many new tests in strategy4.tst | |
2384 | - new regression/golois/*.sgf | |
2385 | - new connect.tst global.tst vie.tst wolf.tst | |
2386 | - new gtp function cputime | |
2387 | ||
2388 | 3.1.9 released October 7, 2001 | |
2389 | ||
2390 | - revised examine_move_safety heuristics | |
2391 | - owl_determine_life() revised | |
2392 | - new gtp functions connect and disconnect | |
2393 | - naive_ladder() made global | |
2394 | - warnings eliminated from readconnect.c | |
2395 | - most functions in readconnect.c made static | |
2396 | - add point reorientation functions | |
2397 | - add some comments to dfa.c | |
2398 | - bugfix and cleanup in naive_ladder() | |
2399 | - new interface/GoImage/Stone.pm | |
2400 | - struct eye_data arrays changed from 2D to 1D | |
2401 | - 9x9 case revised in fuseki() | |
2402 | - bugfix in goal detection in matchpat, don't accept empty goal vertices | |
2403 | - bugfix in gtp_genmove() | |
2404 | - new test cases in owl.tst | |
2405 | - further 1D revisions in worm.c | |
2406 | - find_lunch() moved from utils.c to worm.c | |
2407 | - is_same_worm() converted to 1D | |
2408 | - bugfix in list_move_reasons() | |
2409 | - revised test case in niki.tst | |
2410 | - tuning | |
2411 | - owl tuning | |
2412 | - connection tuning | |
2413 | - new implementation of compute_primary_domains() | |
2414 | - new eye pattern | |
2415 | - bugfix in fuseki.c | |
2416 | - cleanup and further 1D conversion in optics.c | |
2417 | - sgf_decideeye doesn't require owl computation | |
2418 | - 1D revisions in worm.c | |
2419 | - is_worm_origin(), propagate_worms(), does_attack(), does_defend() are 1D | |
2420 | - NNGS customization removed from ascii interface | |
2421 | - gtp_worm_stones can be run with stackp>0 and can take a color argument | |
2422 | - mkpat can take -i and -o options | |
2423 | - MIN_BOARD is 5 | |
2424 | ||
2425 | 3.1.8 released October 1, 2001 | |
2426 | ||
2427 | - defend2() revised | |
2428 | - attack2() revised | |
2429 | - break_chain2_moves() revised | |
2430 | - connection_value() revised | |
2431 | - most parts of move_reasons.c converted to 1D | |
2432 | - domain calculation in optics.c now 1D | |
2433 | - hash.c is more 1D | |
2434 | - new function is_ko_point() in board.c | |
2435 | - computation of cavities removed from worm.c | |
2436 | - computation of caves removed from dragon.c | |
2437 | - computation of inessential worms moved from make_dragons() to make_worms() | |
2438 | - computation of ko points removed from make_worms() | |
2439 | - printing of cutting stones removed from genmove.c | |
2440 | - examine_cavity() simplified and made static | |
2441 | - cavity_recurse() simplified | |
2442 | - ko field removed from worm_data struct | |
2443 | - border field removed from dragon_data struct | |
2444 | - several fields moved from struct dragon_data to struct dragon_data2 | |
2445 | - false_margin field eliminated from struct eye_data | |
2446 | - cleanup of sgf code | |
2447 | - extended functionality of gtp commands dragon_stones and worm_stones | |
2448 | - gtp_dragon_data returns a list of strings | |
2449 | - new gtp functions dragon_stones and worm_stones | |
2450 | - revision of extract_fuseki | |
2451 | - revision of fuseki.c | |
2452 | - bugfix in break_chain3 | |
2453 | - bugfix in special_attack4 | |
2454 | - warning fixed in mkpat | |
2455 | - formatting errors fixed in decidestring and other places: use %1m | |
2456 | - bugfix: trace in move_reasons.c | |
2457 | - gtp_dragon_data() revised | |
2458 | - new gtp functions dragon_stones and worm_stones | |
2459 | - twogtp-a writes html | |
2460 | - tuning | |
2461 | - owl tuning | |
2462 | - eye tuning | |
2463 | - one new test case in reading.tst | |
2464 | - new regression/games/trevor/* and unsorted tests mv'ed to trevor | |
2465 | - new tests xxlin.tst | |
2466 | - strategy4 target in regression/Makefile.am corrected | |
2467 | - rotated tests revised | |
2468 | - dsp files revised | |
2469 | ||
2470 | 3.1.7 released September 24, 2001 | |
2471 | ||
2472 | - heye[] is now stored as a 1-dimensional array | |
2473 | - halfeye() is now called is_halfeye() | |
2474 | - new macro for traversing all points: for_all_board() | |
2475 | - atari_atari and helper functions now 1D | |
2476 | - all goal functions in reading.c now 1D | |
2477 | - calls to the goal functions in reading.c converted to 1D calling standards. | |
2478 | - bufix in do_find_superstring() | |
2479 | - bugfix in aftermath_genmove() | |
2480 | - bugfix in hashdata_recalc() | |
2481 | - bugfix in store_persistent_owl_cache() | |
2482 | - assertions added to are_neighbor_strings() | |
2483 | - analyze_neighbor() in filllib.c revised | |
2484 | - alternative definition of ASSERT1 macro corrected | |
2485 | - revised valuation of vital eye moves | |
2486 | - colored legends with -T output | |
2487 | - make internals of worm[][] 1-dimensional | |
2488 | - make eye data 1-dimensional | |
2489 | - new macros: PASS_MOVE and NO_MOVE | |
2490 | - change_attack and change_defense are now 1-dimensional | |
2491 | - worm handling in move_reasons.c is now 1-dimensional | |
2492 | - dragon.c is now 1-dimensional | |
2493 | - prefix struct option in getopt.c with gg_ | |
2494 | - prefix all occurences of optarg with gg_ | |
2495 | - improved color support in cygwin and VC++ | |
2496 | - brighter colors under VC++ | |
2497 | - increase BOARDSIZE by one | |
2498 | - set MAX_BOARD to 19 for development versions | |
2499 | - new functions readsgffilefuseki, gametreefuseki in sgfnode() | |
2500 | - tuning | |
2501 | - owl tuning | |
2502 | - new strategy4.tst and unsorted.tst | |
2503 | - new game record and new and revised filllib regression tests | |
2504 | ||
2505 | 3.1.6 released September 15, 2001 | |
2506 | ||
2507 | - limited pushing of p[][] allows one level of recursion in global_matchpat | |
2508 | - bugfix in sgf_utils.c function get_moveX() and get_moveY() | |
2509 | - new functions find_common_libs() and are_neighbor_strings() in board.c | |
2510 | ||
2511 | 3.1.5 released September 15, 2001 | |
2512 | ||
2513 | - board changed from 2D to 1D array representation | |
2514 | - major revisions of board.c and reading.c | |
2515 | - smaller revisions more or less anywhere | |
2516 | ||
2517 | 3.1.4 released September 14, 2001 | |
2518 | ||
2519 | - do_atari_atari tries harder to find defenses | |
2520 | - confirm_atari_atari checks to see if tried move really causes the combination | |
2521 | - changing a group's status from CRITICAL to DEAD does not satisfy atari_atari | |
2522 | - bugfix in find_more_owl_attack_and_defense_moves() | |
2523 | - new function start_timer() and time_report() in utils.c | |
2524 | - showtime code cleaned up in dragon.c, genmove.c, and move_reasons.c | |
2525 | - move numbers printed correctly in ascii interface | |
2526 | - minor changes and cleanup in ascii interface | |
2527 | - prefix getopt_long and the options struct with gg_ | |
2528 | - new functions sgfFreeNode and sgfFreeProperty | |
2529 | - tuning | |
2530 | - influence tuning | |
2531 | ||
2532 | 3.1.3 released September 6, 2001 | |
2533 | ||
2534 | - bugfix in the atari_atari code | |
2535 | - obsolete sgf_dump facilities removed | |
2536 | - remove_string removed from gnugo.h | |
2537 | - add_replacement_move() in move_reasons.c revised | |
2538 | - in value_move_reasons() ko threats are affected by shape values | |
2539 | - tuning | |
2540 | - don't call new_position for every stone when playing out an SGF tree. | |
2541 | - new gtp engine metamachine in interface/gtp_examples | |
2542 | - new gtp command query_boardsize | |
2543 | ||
2544 | 3.1.2 released September 4, 2001 | |
2545 | ||
2546 | - realloc space for owl stack if needed | |
2547 | - new static functions push_owl and pop_owl | |
2548 | - bugfix in move_reasons.c to avoid overcounting certain attacks | |
2549 | - move replacement mechanism implemented in move_reasons.c | |
2550 | - new autohelper action replace() | |
2551 | - new game record and regression test | |
2552 | - new tests and regressions | |
2553 | ||
2554 | 3.1.1 released August 31, 2001 | |
2555 | ||
2556 | - halfeyes valued slightly more guessing eye value for shapes not in eyes.db | |
2557 | - all owl data stored in do_owl_attack() and do_owl_defend() | |
2558 | - revised definition of inessential strings in owl_find_lunches() | |
2559 | - confirm_safety() revised | |
2560 | - owl tuning | |
2561 | - global_matchpat() to perform pattern matching on the whole board. | |
2562 | - removed scan loops from different files. | |
2563 | - matchpat() made static | |
2564 | - size test made one time for all the board. | |
2565 | - reverse spiral implemented to compute the move's row in the spiral path. | |
2566 | - bugfixes and improved trace output in atari_atari functions | |
2567 | - bugfix in dragon.c: broken format crashed printworms option | |
2568 | - bugfix in play_gtp.c: format needed extra newline | |
2569 | - configure --enable-profile implemented | |
2570 | - new game records and regressions | |
2571 | - new gtp_example vanilla.c | |
2572 | - missing subheadings added in doc/*texi | |
2573 | - BREAKAGE reset | |
2574 | ||
2575 | 3.0.0 released August 24, 2001 | |
2576 | ||
2577 | - komi can be set from CGoban using the command line | |
2578 | - play_gmp takes a Gameinfo * parameter | |
2579 | - corrected bounds in small_semeai | |
2580 | - simplified bounds check in double_atari | |
2581 | - explicit cast to avert warning in play_gtp.c | |
2582 | - doc revision | |
2583 | ||
2584 | 2.7.256 released August 23, 2001 | |
2585 | ||
2586 | - unused dragon.old_safety retired | |
2587 | - bugfix in owl_determine_life: signed char mx | |
2588 | - no long filenames in games/arb | |
2589 | - variations eliminated in dublin1.sgf | |
2590 | - one dublin1 test in connection.tst | |
2591 | - doc revision | |
2592 | ||
2593 | 2.7.255 released August 22, 2001 | |
2594 | ||
2595 | - two declarations moved in liberty.h | |
2596 | - dilate_erode, sgftree_printboard and resize_dfa are static | |
2597 | - doc revision | |
2598 | ||
2599 | 2.7.254 released August 21, 2001 | |
2600 | ||
2601 | - MAXSTACK expanded | |
2602 | - struct move_data renamed owl_move_data in owl.c | |
2603 | - superstring_breakchain made static | |
2604 | - bugfix in showboard: capture colors switched | |
2605 | - stray | removed from manyfaces.tst | |
2606 | - revised newlogo | |
2607 | - Trevor Morris and Stephan Somogyi THANKed | |
2608 | - initials cleaned and comments edited in patterns.db | |
2609 | - doc revision | |
2610 | ||
2611 | 2.7.253 released August 20, 2001 | |
2612 | ||
2613 | - gtp_loadsgf modified to work on Mac OS X | |
2614 | - DEFAULT_LEVEL 10 in config.vc and config.vcin | |
2615 | - newlogo.jpg restored in doc/ | |
2616 | - gtp2_6 added to interface/gtp_examples/ | |
2617 | - doc revision | |
2618 | ||
2619 | 2.7.252 released August 19, 2001 | |
2620 | ||
2621 | - moved interface/gtp/ to interface/gtp_examples/ | |
2622 | - pragma disable 4244 4305 added to config.vc and config.vcin again | |
2623 | - placehand does not place a stone if handicap == 1 | |
2624 | - gameinfo_play_sgftree default handicap is 0.5 if handicap != 0 | |
2625 | - regress.awk strips carriage returns for DOS compatibility | |
2626 | - doc revision | |
2627 | ||
2628 | 2.7.251 released August 18, 2001 | |
2629 | ||
2630 | - moved the komi field from Gameinfo to Position | |
2631 | - change usages of komi in various places | |
2632 | - estimate_score no longer declared in gnugo.h | |
2633 | - use gnugo_estimate_score in play_gmp, play_solo, play_ascii, debugboard | |
2634 | - bugfix in gameinfo_load_sgfheader: initialize handicap | |
2635 | - abortgo.sgf reference taken out of abortgo | |
2636 | - gameinfo_play_sgftree does not place a stone if handicap 1 | |
2637 | - twogtp default handicap 0, not 1 | |
2638 | - twogtp declares file FF[4] not FF[3] | |
2639 | - doc revision | |
2640 | - win/ directory removed | |
2641 | - WINDOWS revised again | |
2642 | ||
2643 | 2.7.250 released August 17, 2001 | |
2644 | ||
2645 | - bugfix in main.c: stray hyphen broke compile | |
2646 | - bugfix in interface.c: reject weird handicaps | |
2647 | - bugfix in double_atari: reject off board locations | |
2648 | - bugfix in aftermath: reject off board locations | |
2649 | - new WINDOWS | |
2650 | - new logo | |
2651 | - do_play_move made static | |
2652 | - doc revision | |
2653 | - pragma disable 4244 4305 added to config.vc and config.vcin | |
2654 | - new command load <file name> in ascii mode. | |
2655 | - reference of --autolevel in help massege. | |
2656 | - fixed a bug in sgf file saving (to avoid strange handicap) | |
2657 | ||
2658 | 2.7.249 released August 16, 2001 | |
2659 | ||
2660 | - print_moyo color parameter eliminated | |
2661 | - All FIXME's classified post 3.0 | |
2662 | - bugfix in owl_big_eyespace: check ON_BOARD(oi,oj) | |
2663 | - bugfix in fill_liberty: check ON_BOARD | |
2664 | - bugfix: initialize path in dfa matcher | |
2665 | - moved dfa scan function and others from dfa.c to matchpat.c | |
2666 | - moved dfa_fixup_for_size into dfa_compile_for_match. | |
2667 | - cleanup of dfa code | |
2668 | - removed heavy functions dfa_scan() and dfa_restart() | |
2669 | - new function scan_for_pattern() | |
2670 | - New warning in mkpat for DFA_MAX_MATCHED update. | |
2671 | - a warning fixed in dfa.c | |
2672 | - Any pattern db can use wired dfa's. | |
2673 | - removed load_dfa() and save_dfa() functions. | |
2674 | - removed -d option from mkpat. | |
2675 | - removed unused values from dfa_t struct | |
2676 | - sync_product uses a hash table instead of an huge array | |
2677 | - new stucture test_array_t and new static functions in dfa.c | |
2678 | - DFA_MAX_BOARD set to 21 | |
2679 | - revision of all .dsp files | |
2680 | - analyze.h removed from engine/Makefile.am | |
2681 | - unused function dump_data removed from score.c | |
2682 | - bugfix in aftermath_genmove() | |
2683 | - code cleanup | |
2684 | - unchosen fuseki moves from fuseki database awarded a smaller value | |
2685 | - filllib and aftermath moves also recorded with move_considered() | |
2686 | - potential_moves array converted from int to float | |
2687 | - PROFILE_PATTERNS disabled by default | |
2688 | - computation of inessential strings in owl_find_lunches revised | |
2689 | - is_worm_origin() moved from utils.c to worm.c | |
2690 | - test mode option replaced by a replay option | |
2691 | - code in play_test.c heavily rewritten | |
2692 | - owl tuning | |
2693 | - new gtp function top_moves | |
2694 | - new game record and regression tests | |
2695 | - doc revision | |
2696 | - new tests tanguy.tst, dublin1.sgf and dublin2.sgf | |
2697 | ||
2698 | 2.7.248 released August 7, 2001 | |
2699 | ||
2700 | - undo implemented in play_gtp | |
2701 | - estimate_score renamed old_estimate_score | |
2702 | - new_estimate_score renamed estimate_score | |
2703 | - gtp commands new_score and prisoners renamed estimate_score and captures | |
2704 | - default level set to 10 | |
2705 | - config.guess and config.sub removed from the distribution | |
2706 | - moyo.c and analyze.c removed from the distribution | |
2707 | - obsolete --moyo options retired | |
2708 | - count_territory, evaluate_territory and remove_string removed | |
2709 | - new function gnugo_estimate_score | |
2710 | - doc revision | |
2711 | - cleanup | |
2712 | - minor tuning | |
2713 | - Jens Yllman added to authors | |
2714 | - patterns.dsp replaced | |
2715 | - VC++ warnings addressed | |
2716 | ||
2717 | 2.7.247 released August 2, 2001 | |
2718 | ||
2719 | - aftermath_genmove() revised | |
2720 | - bugfix in do_genmove(), no reinforcing moves while scoring | |
2721 | - bugfix in estimate_territorial_value(), no reinforcing moves while scoring | |
2722 | - bugfix in score.c, 19 replaced by board_size | |
2723 | - bugfix in confirm_safety(), verbose not restored in two cases | |
2724 | - values used by worm[][].conditional_status made more consistent | |
2725 | - connection_value returns a higher value if we are ahead | |
2726 | - status INESSENTIAL distrusted by connection_value if we are ahead | |
2727 | - xcut autohelper macro rejects B pattern ! as well as * | |
2728 | - connection tuning | |
2729 | - score, upper_bound and lower_bound are made global variables | |
2730 | - estimate_strategical_value takes score parameter | |
2731 | - revision of score report in play_solo | |
2732 | - new --showscore option | |
2733 | - tuning | |
2734 | - owl tuning | |
2735 | - spelling mistake in regression/Makefile.am fixed | |
2736 | - new regression test and game record | |
2737 | - code cleanup in analyze.c | |
2738 | - assert() changed to gg_assert() in extract_fuseki.c | |
2739 | - mkpat and joseki add copyright notice to built files | |
2740 | - verbose prints the score | |
2741 | - bugfix in report_dragon: if dragon.id = -1 ignore dragon2 | |
2742 | - VC++ compatibility changes | |
2743 | - DFAFLAGS is -D instead of -d | |
2744 | - autolevel target is level 10, not 11 | |
2745 | - play_gmp uses new_score at game end | |
2746 | - doc revision | |
2747 | - revision of twogtp | |
2748 | - new game records and connection tests | |
2749 | ||
2750 | 2.7.246 released July 15, 2001 | |
2751 | ||
2752 | - if ahead, owl_prevent_threat move reasons given real value | |
2753 | - tuning | |
2754 | - owl tuning | |
2755 | - Chinese counting implemented | |
2756 | - ascii mode revised | |
2757 | - files gtp.c and gtp.h under X11 licensing | |
2758 | - autolevel option activated | |
2759 | - bugfix in matchpat.c | |
2760 | - new #define GNUGO_PATH in config.h.in | |
2761 | - fixed some problems with inclusion of dfa in pattern c files. | |
2762 | - mkpat is now called with option -D instead of -d => no more binary dfa files. | |
2763 | - in matchpat.c dfa_match_init do not try to load dfa's files anymore. | |
2764 | - load_dfa() adapted to enable wired dfas | |
2765 | - wired dfas | |
2766 | - new macro gg_assert | |
2767 | - change_dragon_status() replaced by change_matcher_status() | |
2768 | - minor cleanup | |
2769 | - atari_atari_try_combination turns down verbose | |
2770 | - hyphenation of some command line options | |
2771 | - project files *.dsp and *.dsw revised | |
2772 | - color support revised | |
2773 | - doc revision | |
2774 | ||
2775 | 2.7.245 released July 5, 2001 | |
2776 | ||
2777 | - aftermath code revised | |
2778 | - new options --allow-suicide, --play-out-aftermath, --capture-all-dead | |
2779 | - unused constant MAX_TRY removed from genmove.c | |
2780 | - option --noinhibit removed | |
2781 | - new function and autohelper max_eye_value() | |
2782 | - new global doing_scoring affecting valuations while scoring | |
2783 | - bugfix in valuation of attack_either and defend_both moves | |
2784 | - neither black nor white used in colored displays | |
2785 | - new gtp commands final_status, final_status_list, and protocol_version | |
2786 | - gtp_playblack and gtp_playwhite revised | |
2787 | - warning eliminated in debugboard/gui.c | |
2788 | - fuseki9.db regenerated from a bigger set of games | |
2789 | - new regression tests and game records | |
2790 | - regressions/niki.tst included (omitted by mistake from 2.7.244) | |
2791 | - new autohelper macro effective_size | |
2792 | - copyright notice added to twogtp | |
2793 | - depth values increased in owl_substantial | |
2794 | - followup contribution cap lowered to tot_value | |
2795 | - tuning | |
2796 | - owl tuning | |
2797 | - hyphens replace underscores in command line options | |
2798 | - doc revision | |
2799 | ||
2800 | 2.7.244 released July 1, 2001 | |
2801 | ||
2802 | - followup values are calculated more carefully | |
2803 | - attacks on uncertainly DEAD dragons are now called uncertain defense | |
2804 | - confirm_safety less verbose | |
2805 | - demotion of many fuseki patterns | |
2806 | - tuning | |
2807 | - owl tuning | |
2808 | - reduction of j and t classes | |
2809 | - new function atari_atari_try_combination and autohelper macros | |
2810 | - TRACE_ATARI_ATARI replaced with DEBUG_ATARI_ATARI | |
2811 | - Use double instead of timeval structs for clock time values | |
2812 | - Removed a lot of heavy timeval functions from clock.c | |
2813 | - new function clock_time_graph() for time/move/level stats | |
2814 | - added more traces to clock functions | |
2815 | - pushbutton does not complain when no initialisation is done | |
2816 | - removed a lot of non used memory check in mkpat: | |
2817 | - mkpat never rejects a pattern but complains if it makes the dfa big | |
2818 | - the -d and -D option of mkpat do not require arguments | |
2819 | - -m option is now alway used in Makefiles to save memory on owl pats | |
2820 | - -r option eradicated from mkpat. | |
2821 | - ignore trailing white space in input to mkeyes.c | |
2822 | - remove @SET_MAKE@ from Makefile.am. | |
2823 | - remove config.guess en config.sub from distribution | |
2824 | - revision of coloring part of configure.in | |
2825 | - play_ascii correctly marks the last stone played while GNU Go thinks | |
2826 | - doc revision | |
2827 | - new test nikki.tst | |
2828 | ||
2829 | 2.7.243 released June 22, 2001 | |
2830 | ||
2831 | - dragon.owl_status_certain split to owl_attack_certain, owl_defend_certain | |
2832 | - new_estimate_score is run every move if level >= 8 | |
2833 | - if safely ahead, uncertain defensive moves are added | |
2834 | - revision of certain connection values | |
2835 | - WEAK safety value reduced | |
2836 | - doc/gtp.texi revised | |
2837 | - aftermath code revised | |
2838 | - warnings eliminated in clock.c | |
2839 | - on board assertions in same_dragon() | |
2840 | - liberty filling code revised | |
2841 | - value of empty corners reduced in fuseki.c | |
2842 | - tweek in influence_callback() | |
2843 | - more careful valuation of ko threats in value_move_reasons() | |
2844 | - confirm_safety() call in review_move_reasons() avoids bad ko threats | |
2845 | - more careful detection of disturbing moves in the persistent owl cache | |
2846 | - new function owl_confirm_safety() | |
2847 | - new function atari_atari_confirm_safety() | |
2848 | - confirm_safety() and double_atari() revised | |
2849 | - gtp_final_score() revised | |
2850 | - new gtp commands fixed_handicap, level, name, and version | |
2851 | - code cleanup | |
2852 | - tuning | |
2853 | - owl tuning | |
2854 | - eye tuning | |
2855 | - new helper backfill_helper() and autohelper function with same name | |
2856 | - new function interface/twogtp | |
2857 | ||
2858 | 2.7.242 released June 19, 2001 | |
2859 | ||
2860 | - bonus for uncertain defense/attacks reduced | |
2861 | - bugfix: defense threat move reasons not generated for illegal moves | |
2862 | - tuning | |
2863 | - owl tuning | |
2864 | - more careful to get dragon.owl_status_certain right | |
2865 | - dragon.owl_status_certain can affect dragon.safety | |
2866 | - corrections to -m option | |
2867 | - bugfix: OWL_DEFENSE_THREAT was reported incorrectly | |
2868 | - adjective ``reliable'' disassociated from semeai() | |
2869 | - bugfix in decidedragon: report uncertainty correctly | |
2870 | - revision of gtp_report_uncertainty | |
2871 | - ignore trailing whitespace in patterns | |
2872 | - add prototype in dfa.h for print_c_dfa | |
2873 | - some sgf files standardized | |
2874 | ||
2875 | 2.7.241 released June 12, 2001 | |
2876 | ||
2877 | - owl_attack and owl_defend return a certainty value | |
2878 | - new field dragon.owl_status certain | |
2879 | - new UNCERTAIN_OWL_ATTACK and UNCERTAIN_OWL_DEFEND move reasons | |
2880 | - revisions and corrections to some gtp functions | |
2881 | - tuning | |
2882 | - owl tuning | |
2883 | - reduced value of j patterns by one point | |
2884 | - merged new_matchpat.c into matchpat.c | |
2885 | - when no dfa file is found, use standard do_matchpat() | |
2886 | - fixed a reference to nonexistent merged_board[][]. | |
2887 | - updated dfa matcher to merged_val optimization. | |
2888 | - removed check_pattern() function. | |
2889 | - dfa board preparation moved to dfa_match_init() | |
2890 | - new constant DFA_MAX_MATCHED | |
2891 | - assertion to check possible DFA_MAX_MATCHED overflows. | |
2892 | - added --clock,--byo_time and --byo_period in --help listing. | |
2893 | - new function print_c_dfa() in dfa.c | |
2894 | - new option -D <memory> in mkpat.c puts the dfa into the binary | |
2895 | - doc revision | |
2896 | - new tests and regressions | |
2897 | - corrections to old tests and regressions | |
2898 | ||
2899 | 2.7.240 released June 12, 2001 | |
2900 | ||
2901 | - new autohelper function macro owl_threatens | |
2902 | - CAN_THREATEN_ATTACK and CAN_THREATEN_DEFENSE renumbered | |
2903 | - status_to_string revised | |
2904 | - gtp declarations sorted alphabetically | |
2905 | - new gtp command "help" lists gtp commands | |
2906 | - gtp command dragon_data revised | |
2907 | - show_dragon revised | |
2908 | - new function safety_to_string | |
2909 | - tuning | |
2910 | - owl tuning | |
2911 | - game regression/games/pending ssstator.sgf added | |
2912 | - last two moves cached in global last_moves_i, last_moves_j array | |
2913 | - bugfix: sometimes owl_threat_status was wrongly UNCHECKED | |
2914 | - when reading a file even passes are given to gnugo_play_move | |
2915 | - OWL_PREVENT_THREAT reason valued more if opponent adds to a dead dragon | |
2916 | - new vital owl attack pattern VA17 | |
2917 | - change ko_i and ko_j to board_ko_i and board_ko_j in new_matchpat.c | |
2918 | - bugfixes in captured_territory() from score.c | |
2919 | - new game records and regression tests | |
2920 | - aftermath code revised | |
2921 | - pure_threat_value increased from 0.0 to 0.4 in genmove() | |
2922 | - new flag worthwhile_threat in the move[][] array used in move_reasons.c | |
2923 | - new function add_worthwhile_threat_move() in move_reasons.c | |
2924 | - new pattern classification W for worthwhile threats | |
2925 | - bugfix in owl_does_defend() | |
2926 | - active area computation in store_persistent_owl_cache() revised | |
2927 | - bugfix in atari_atari code | |
2928 | - print_regions() in score.c reimplemented | |
2929 | - new game records and regression tests | |
2930 | - doc revision | |
2931 | ||
2932 | 2.7.239 released June 8, 2001 | |
2933 | ||
2934 | - use gg_gettimeofday routines in stead of gettimeofday | |
2935 | - make autoconf 2.50 script detect mingw32 | |
2936 | - include config.h in gnugo.h | |
2937 | - new file score.c | |
2938 | - new function new_estimate_score() | |
2939 | - new gtp function gtp_new_score | |
2940 | - fixed --score last and --score [movenum] | |
2941 | - aftermath code revisions | |
2942 | - new function same_string() in board.c | |
2943 | - global variable threats_enabled renamed disable_threat_computation | |
2944 | - new global variable disable_endgame_patterns | |
2945 | - new function owl_hotspots() and reading_hotspots() | |
2946 | - revision of induce_secondary_move_reasons() | |
2947 | - connect_strings bonus revised | |
2948 | - new functions edge_clamp() and edge_block() in reading.c | |
2949 | - performance improvement in atari_atari() and do_atari_atari() | |
2950 | - improved traces from the atari_atari functions | |
2951 | - minor tweaking of move ordering parameters | |
2952 | - performance improvement in superstring_add_string() in utils.c | |
2953 | - tuning | |
2954 | - owl tuning | |
2955 | - new regression suites blunder.tst and newscore.tst | |
2956 | - new and revised regression tests | |
2957 | - new and revised game records | |
2958 | - missing parameters supplied to is_illegal_ko_capture in value_moves | |
2959 | - bugfix in fuseki | |
2960 | - incorrectly dimensioned arrays fixed in gtp_all_legal | |
2961 | - is_pass() moved to board.c | |
2962 | - A number of FIXMEs addressed | |
2963 | - minor cleanup | |
2964 | ||
2965 | 2.7.238 released May 28, 2001 | |
2966 | ||
2967 | - aftermath_genmove() revised | |
2968 | - new global threats_enabled to disable computing worm and dragon threats | |
2969 | - definition of WIN, KO_A, KO_B, LOSE, and CUT only in gnugo.h | |
2970 | - minor optimizations in filllib.c and owl.c | |
2971 | - better debug support for persistent owl cache | |
2972 | - move order tuning in reading.c | |
2973 | - neighbors of invincible worms excluded from active area in persistent cache | |
2974 | - owl tuning | |
2975 | - new game records and regression tests | |
2976 | - new option --autolevel (not activated by default). | |
2977 | - revision of clock.c and clock.h | |
2978 | - broken return codes corrected | |
2979 | - new gtp command worm_cutstone | |
2980 | - doc revision | |
2981 | ||
2982 | 2.7.237 released May 27, 2001 | |
2983 | ||
2984 | - revised reading and owl return codes | |
2985 | - incremental_board.c removed from engine/Makefile.am | |
2986 | - parameters to chainlinks() and chainlinks2() revised | |
2987 | - incremental_order_moves() counts stones in atari more accurately | |
2988 | - superstring functions reimplemented | |
2989 | - new function find_superstring_stones_and_liberties | |
2990 | - optimization in owl_does_defend() | |
2991 | - detection of insubstantial strings in owl_determine_life made more efficient | |
2992 | - persistent reading cache size doubled from 50 to 100 entries | |
2993 | - revisions in defend2() and defend3() | |
2994 | - order_moves() revised | |
2995 | - bugfix in break_through_helper | |
2996 | - order_moves doesn't sort singleton lists | |
2997 | - pure threat value in do_genmove set to zero | |
2998 | - more stats with -b option | |
2999 | - globals your_last_move_*, my_last_move_*, no_old_data_exists removed | |
3000 | - superceded dragon data caching scheme taken down | |
3001 | - new tests and regressions | |
3002 | - new gtp command worm_cutstone | |
3003 | - new testsuite cutstone.tst | |
3004 | - new game record wormflaw.sgf | |
3005 | - minor tuning | |
3006 | - doc revisions | |
3007 | - some FIXMEs addressed | |
3008 | - debugboard now shows all worm and most dragon data | |
3009 | - upgrade configure.in to work with autoconf version >= 2.50 | |
3010 | - new files config.guess and config.sub | |
3011 | ||
3012 | 2.7.236 released May 17, 2001 | |
3013 | ||
3014 | - shadowing and persistent caching of reading functions implemented | |
3015 | - new function get_move_from_stack() | |
3016 | - new functions draw_reading_shadow() and purge_persistent_reading_cache() | |
3017 | - new function attack_and_defend() | |
3018 | - new tests and regressions | |
3019 | - fill_liberty() looks for ko back captures | |
3020 | - minor tuning | |
3021 | - bugfix in double_atari | |
3022 | - bugfix in komaster_trymove: i - j confusion | |
3023 | - new functions: gnugo_play_sgfnode and gnugo_play_sgftree | |
3024 | - new functions: gameinfo_load_sgfheader and gameinfo_play_sgftree | |
3025 | - renamed load_sgf_header, play_sgf_tree, sgfPlayNode and sgfPlayTree | |
3026 | - sgfutils.c removed | |
3027 | - removed incremental_board.c and sgfutils.c from engine/Makefile.am | |
3028 | - renamed neighbor_of to neighbor_of_string | |
3029 | - renamed liberty_of to liberty_of_string | |
3030 | - minor cleanup of gnugo.h | |
3031 | - doc revision | |
3032 | - print more debugging info in worm.c | |
3033 | - rewrite loop in worm.c with deltai and deltaj arrays | |
3034 | - revision of play_test | |
3035 | ||
3036 | 2.7.235 released May 5, 2001 | |
3037 | ||
3038 | - aftermath code revised | |
3039 | - owl reuse is off by default | |
3040 | - function komaster_trymove() replaces move_allowed() | |
3041 | - optimization in is_self_atari() | |
3042 | - new function owl_big_eyespace() and corresponding autohelper function | |
3043 | - new field unconditional_status in struct worm_data | |
3044 | - new static function edge_closing backfill in reading.c | |
3045 | - move ordering scores available outside order_moves() | |
3046 | - attack4() rewritten | |
3047 | - propose_edge_moves() revised | |
3048 | - relative_break_chain() obsoleted and removed | |
3049 | - move ordering scores written in sgf output file with variations | |
3050 | - sgf output file records komaster | |
3051 | - changed parameters to unconditional_life() | |
3052 | - unconditional_life() now finds unconditional dead stones and territory | |
3053 | - reinforce_helper() revised | |
3054 | - tuning, owl tuning | |
3055 | - tune_move_ordering() can write c code for inclusion | |
3056 | - new and revised regression tests and game records | |
3057 | - new global variable shadow[][] | |
3058 | ||
3059 | 2.7.234 released May 4, 2001 | |
3060 | ||
3061 | - komaster implementation corrected in owl.c | |
3062 | - sgf traces now show komaster in -o output | |
3063 | - bugfix: --no_owl_reuse was broke | |
3064 | - bugfix in sgfutils.c which could crash on some files with IL property | |
3065 | - IL property moved to the end of files reading16.sgf and reading20.sgf | |
3066 | - variable length value for SGFproperty | |
3067 | - numeric keypad can be used for cursor movement in debugboard | |
3068 | - debugboard needs slightly smaller screen | |
3069 | - debugboard shows data for both black and white eyes | |
3070 | - new movement buttons for debugboard: ctrl-a and ctrl-e | |
3071 | ||
3072 | 2.7.233 released April 29, 2001 | |
3073 | ||
3074 | - revision of the komaster scheme | |
3075 | - persistent owl caching | |
3076 | - owl_attack is more cautious if an attack can produce a ko | |
3077 | - parameters in acconfig.h sorted in order recommended by comments in file | |
3078 | - config.vcin is once again brought in sync with the current config.h | |
3079 | - bugfix in eyes.db | |
3080 | - SGF IL property can set (board_ko_i, board_ko_j) | |
3081 | - owl test 27 corrected | |
3082 | - new tests manyfaces.tst | |
3083 | - new directory regression/games/seki_exotics | |
3084 | - doc revision | |
3085 | ||
3086 | 2.7.232 released April 25, 2001 | |
3087 | ||
3088 | - break_chain2_efficient_moves() revised | |
3089 | - bugfixes in order_moves() | |
3090 | - new tuning parameter safe_atari_score in order_moves() | |
3091 | - bugfix in configure.in | |
3092 | - spelling correction in gnugo.texi | |
3093 | - same_dragon(), report_dragon() and ascii_report_dragon() moved to dragon.c | |
3094 | - speed improvements in filllib.c | |
3095 | - corrected size of defend_not_adjacent_lib_score[] array in reading.c | |
3096 | - bugfix and minor reorganization in review_move_reasons() | |
3097 | - remove incremental_board.[ch] from engine/Makefile.am | |
3098 | - hashtable_unlink_closed_results() can now remove read results selectively | |
3099 | - remove incremental_board.[ch] from engine/Makefile.am | |
3100 | - hashtable_unlink_closed_results() can now remove read results selectively | |
3101 | - attack tuning | |
3102 | - new GTP command: echo | |
3103 | - attack tuning | |
3104 | - tuning | |
3105 | - endgame performance tuning | |
3106 | - minor cleanup | |
3107 | - commented some tests in NICKLAS test suite | |
3108 | - bugfix in nicklas2.tst | |
3109 | - SGF PL property handling in play_ascii.c corrected | |
3110 | - revised order of inclusion of header files in interface/main.c | |
3111 | - Chinese and Japanese rules were switched | |
3112 | - new files "clock.h" and "clock.c" | |
3113 | - new global struct "clk" handeling the timers. | |
3114 | - new global variable "clock_enabled" (set to 1 by --clock XXX). | |
3115 | - new functions clock_isOver(), clock_isByoYomi(), clock_getTimeLeft() | |
3116 | - new options --clock, --byo_time and --byo_period | |
3117 | - compute the clock delta error | |
3118 | - cleanup clock initialisation in main.c | |
3119 | - new games and regressions in arb.tst | |
3120 | - new games mfgg*.sgf and nightmare.sgf in regression/games/pending | |
3121 | - macros abs, max and min renamed gg_abs, gg_max and gg_min | |
3122 | ||
3123 | 2.7.231 released April 20, 2001 | |
3124 | ||
3125 | - we do not reuse data unless 2 last moves are on the board | |
3126 | - last moves are set by play_solo | |
3127 | - extra level inserted between levels 6 and 7 | |
3128 | - nominal depth variables by mandated depth variables | |
3129 | - revised handling of depth variables set at command line | |
3130 | - new function set_depth_values() | |
3131 | - get_location renamed string_to_location and moved | |
3132 | - review_move_reasons tries harder not to return illegal moves | |
3133 | - same_dragon() moved to board.c | |
3134 | - redundant lunch timing removed from dragon.c | |
3135 | - average move time computed by --showtime | |
3136 | - atari_atari uses restricted_defend1 to find second move | |
3137 | - tuning | |
3138 | - aftermath code revised | |
3139 | - new function aftermath_compute_score() | |
3140 | - new debug flag DEBUG_AFTERMATH | |
3141 | - new functions store_position(), restore_position() in engine/interface.c | |
3142 | - who_wins() moved from moyo.c to utils.c and revised | |
3143 | - superstring_breakchain() now considers ko | |
3144 | - score computations consistently use positive values for white wins | |
3145 | - gtp_loadsgf sets no_old_data_exists=1 | |
3146 | - new gtp command final_score() | |
3147 | - scoring option --score aftermath now works properly | |
3148 | - new regression file score.tst | |
3149 | - add configure test for variadic #define | |
3150 | - fix bug in configure test for __FUNCTION__ | |
3151 | - remove __ prefix from function prototypes in gg-getopt.h | |
3152 | - new option --chinese_rules | |
3153 | - new configure option --enable-chinese-rules | |
3154 | - new functions ascii_report_dragon and report_dragon for use in gdb | |
3155 | - new game records and test cases | |
3156 | - minor doc revision | |
3157 | ||
3158 | 2.7.230 released April 13, 2001 | |
3159 | ||
3160 | - default default level is 8 | |
3161 | - default level can be set at configure or run time | |
3162 | - default cache can be set to arbitrary value at configure time | |
3163 | - revised ko handling | |
3164 | - kothreat_needed no longer needed | |
3165 | - aftermath uses genmove_conservative | |
3166 | - tuning | |
3167 | - owl tuning | |
3168 | - influence tuning | |
3169 | - systematic use of faster ON_BOARD macro | |
3170 | - new function is_illegal_ko_capture() | |
3171 | - does_capture_something() made public | |
3172 | - new function genmove_conservative | |
3173 | - improved --showtime information | |
3174 | - minor revision of confirm_safety | |
3175 | - print_top_moves() split out from review_move_reasons() | |
3176 | - configure tests for keypad | |
3177 | - malloc.h inclusions taken down | |
3178 | - help string revised | |
3179 | - new tests and regressions | |
3180 | ||
3181 | 2.7.229 released April 9, 2001 | |
3182 | ||
3183 | - caching of owl data implemented and reuse on later moves | |
3184 | - showtime option shows information about owl reading time | |
3185 | - new global variables my_last_move_i, my_last_move_j, no_old_data_exists | |
3186 | - last_move_i, last_move_j renamed your_last_move_i, your_last_move_j | |
3187 | - incremental_order_moves() revised | |
3188 | - order_moves() revised | |
3189 | - attack2() revised | |
3190 | - bugfix in linear_eyes() | |
3191 | - do_owl_attack() and do_owl_defend() revised and simplified | |
3192 | - more robust topological eye analysis in owl_determine_life() | |
3193 | - vital moves for multiple eyespaces recognized in owl_determine_life() | |
3194 | - sniff_lunch() revised | |
3195 | - owl_eyespace() ignores eyespaces which do not yield a single eye | |
3196 | - joseki.c revised | |
3197 | - tuning, owl tuning, eye tuning | |
3198 | - new takamoku joseki | |
3199 | - new game record and test cases | |
3200 | - test results updated | |
3201 | ||
3202 | 2.7.228 released March 30, 2001 | |
3203 | ||
3204 | - parameters kom_i and kom_j complement komaster field in many functions | |
3205 | - routine_i_j_stackp renamed compressed_data | |
3206 | - komaster added to cached compressed_data field | |
3207 | - parameters ko_i and ko_j renamed board_ko_i and board_ko_j | |
3208 | - GRAY is a synonym for GRAY_BORDER | |
3209 | - incremental_board.* removed | |
3210 | - incremental board functionality merged into board.c | |
3211 | - revised komaster scheme in reading.c and owl.c | |
3212 | - trick to avoid sorting corners in matchpat.c | |
3213 | - mkpat -m now works in both dfa and non-dfa mode | |
3214 | - compile_for_match() no longer calculates merged values | |
3215 | - revised debug messages in influence.c and sgfnode.c | |
3216 | - tuning | |
3217 | - owl tuning | |
3218 | - influence tuning | |
3219 | - new game records and regression tests | |
3220 | - test results updated | |
3221 | ||
3222 | 2.7.227 released March 23, 2001 | |
3223 | ||
3224 | - new file engine/aftermath.c | |
3225 | - temporary option "--score aftermath" | |
3226 | - "connect strings" bonus in move_reasons.c revised | |
3227 | - bugfix in value_move_reasons | |
3228 | - all vital owl attack pattern matches counted | |
3229 | - bugfix in owl_determine_life(), a no longer valid shortcut disabled | |
3230 | - dead code removed from owl_reasons() | |
3231 | - break_chain2() revised | |
3232 | - various FIXMEs addressed | |
3233 | - try kos in play_break_through_n(), play_attack_defend_n(), | |
3234 | and play_attack_defend2_n() | |
3235 | - bugfix in atari_atari | |
3236 | - worm threats on second order liberties. | |
3237 | - new transform.c | |
3238 | - endgame tuning | |
3239 | - tuning | |
3240 | - eye tuning | |
3241 | - owl tuning | |
3242 | - new regression test cases and game records | |
3243 | - more copyright messages updated | |
3244 | - minor doc revision | |
3245 | ||
3246 | 2.7.226 released March 21, 2001 | |
3247 | ||
3248 | - bugfix in atari_atari | |
3249 | - minor speedups in matchpat.c | |
3250 | - looks for tactical ko theats | |
3251 | - long USAGE string split in interface/main.c | |
3252 | - removed main.c.zheng and interface.dsp from distribution | |
3253 | - tuning | |
3254 | - owl tuning | |
3255 | - updated copyright messages | |
3256 | ||
3257 | 2.7.225 released March 15, 2001 | |
3258 | ||
3259 | - new move reasons: ATTACK_THREAT_MOVE and DEFEND_THREAT_MOVE | |
3260 | - new functions compute_effective_worm_sizes() and | |
3261 | find_worm_attacks_and_defenses() split off from make_worms() | |
3262 | - new function find_worm_threats(), called from make_worms() | |
3263 | - redundant NULLs removed from attack.db, barriers.db, conn.db, | |
3264 | defense.db, endgame.db, fuseki19.db, fuseki9.db, and patterns2.db | |
3265 | - extract_fuseki.c revised not to generate unnecessary NULL string | |
3266 | - owl tuning | |
3267 | - new and revised regression tests and game records | |
3268 | ||
3269 | 2.7.224 released March 8, 2001 | |
3270 | ||
3271 | - komaster status stored in reading cache | |
3272 | - several functions in cache.c made static | |
3273 | - new function incremental_order_moves() to support order_moves() | |
3274 | - cleanup in topological_eye() and evaluate_diagonal_intersection() | |
3275 | - improved traces in owl.c | |
3276 | - semeai detecting code in owl_reasons() taken down | |
3277 | - tuning | |
3278 | - eye tuning | |
3279 | - owl tuning | |
3280 | - endgame tuning | |
3281 | - new game record | |
3282 | - new and revised regression test cases | |
3283 | - endgame fix in move_reason.c | |
3284 | - cleanup in helpers.c | |
3285 | - tests for both sides in endgame.tst | |
3286 | - estimate_score only if DEBUG_SCORING | |
3287 | - revision of rotated tests and arb.tst | |
3288 | - vc project files revised | |
3289 | - Yin Zheng and Don Wagner added to acknowledgements | |
3290 | ||
3291 | 2.7.223 released February 28, 2001 | |
3292 | ||
3293 | - bugfix in play_move() | |
3294 | - make_domains() distinguishes strictly between owl calls and others | |
3295 | - bugfix in examine_position() | |
3296 | - inessential worms excluded in one time in estimate_strategical value | |
3297 | - false_margin() revised | |
3298 | - inessential strings added in the owl code | |
3299 | - MAXPATNO incresead in mkeyes.c | |
3300 | - tuning | |
3301 | - eye tuning | |
3302 | - owl tuning | |
3303 | - name collisions resolved in pattern databases | |
3304 | - regression/READING revised | |
3305 | - new and revised regression test cases | |
3306 | - bugfix in regressions/Makefile* | |
3307 | - revised nicklas* regressions | |
3308 | ||
3309 | 2.7.222 released February 26, 2001 | |
3310 | ||
3311 | - dead code removed from dfa.c, dfa.h, mkpat.c | |
3312 | - o_somewhere and x_somewhere only check matcher_status if stackp==0 | |
3313 | - bugfix in atari_atari | |
3314 | - bugfix in analyze_semeai | |
3315 | - dragon.owl_status, status and matcher status initialized | |
3316 | - tactically critical nakade stones reclassified as inessential | |
3317 | - influence code revised | |
3318 | - no strategical attack value for strongly alive dragons | |
3319 | - hardwired values for J, j, and t patterns scaled with the board size | |
3320 | - maximum values for j and t patterns disabled for boards < 17x17 | |
3321 | - tuning | |
3322 | - influence tuning | |
3323 | - owl tuning | |
3324 | - endgame tuning | |
3325 | - bugfix in mkpat.c, patterns of class c were unintentionally disabled | |
3326 | - new game records | |
3327 | - new and revised regression test cases | |
3328 | - nonstandard SGF records and missing handicap stones fixed | |
3329 | - Mathias Wagner thanked | |
3330 | ||
3331 | 2.7.221 released February 19, 2001 | |
3332 | ||
3333 | - restricted_attack2 and restricted_defend1 remember to set komaster | |
3334 | - matcher_status only initialized to CRITICAL if owl code says so | |
3335 | - bugfix in matchpat(), static variable properly reset | |
3336 | - new debug messages in semeai.c | |
3337 | - tuning | |
3338 | - rotated tests updated | |
3339 | - test results updated | |
3340 | - new test reading 141 | |
3341 | ||
3342 | 2.7.220 released February 17, 2001 | |
3343 | ||
3344 | - TODO revised | |
3345 | - experimental influence based score estimation | |
3346 | - scoring option in ascii interface uses the influence score estimate | |
3347 | - test for tactically critical O worms restored from 2.7.218 | |
3348 | - atari_atari tries harder to find refutations | |
3349 | - influence B patterns do not accept dead stones | |
3350 | - revised connection values | |
3351 | - bonus for moves which both owl defend/attack and connect/cut something | |
3352 | - new autohelper for owl patterns; owl_eyespace() | |
3353 | - defend_both() tries harder to find attackable splitting strings | |
3354 | - class_mask[CRITICAL][color]=CLASS_O in new_matchpat | |
3355 | - open dfa files in binary mode on MS-DOS and Windows | |
3356 | - fix dfa error messages. | |
3357 | - sgf code now understands PL[1] and PL[2] | |
3358 | - new pattern class c, weak connections | |
3359 | - tuning | |
3360 | - owl tuning | |
3361 | - influence tuning | |
3362 | - eye tuning | |
3363 | - new game records | |
3364 | - new and revised regression tests | |
3365 | - test results updated | |
3366 | ||
3367 | 2.7.219 released February 13, 2001 | |
3368 | ||
3369 | - redundant test for tactically critical O worms taken down in shapes_callback | |
3370 | - fix bug in glib configuring | |
3371 | - link dfa.c instead of include it. | |
3372 | - extra parens in influence | |
3373 | - add extra brackets to code1 macro in accumulate_influence | |
3374 | - tuning | |
3375 | - bugfix in mkpat.c: autohelper function halfeye() now works | |
3376 | - gnits automake option removed | |
3377 | - new test ego.sgf | |
3378 | ||
3379 | 2.7.218 released February 7, 2001 | |
3380 | ||
3381 | - O patterns reject CRITICAL friendly dragons | |
3382 | - in make_worms() if worm.defend==PASS move not tried | |
3383 | - in attack_callback() ignore strings with 5 liberties | |
3384 | - default memory increased to 32Mb | |
3385 | - configure supports 48MB and 64MB models | |
3386 | - minor tuning | |
3387 | - doc revision | |
3388 | - vsnprintf error gives warning, not fatal error | |
3389 | - duplicate owl test 186 renumbered | |
3390 | ||
3391 | 2.7.217 released February 1, 2001 | |
3392 | ||
3393 | - worm.c: only add defense move if worm.defend != PASS | |
3394 | - find_defense returns PASS if string is alive as stands | |
3395 | - defend1 pattern gets constraint | |
3396 | - caching scheme revised so that the cache can be cleared on the fly | |
3397 | - new debug flag DEBUG_READING_PERFORMANCE | |
3398 | - only make requested dfa files (currently owl*dfa) | |
3399 | - tuning | |
3400 | - owl tuning | |
3401 | - new game record dniwog.sgf | |
3402 | ||
3403 | 2.7.216 released January 29, 2001 | |
3404 | ||
3405 | - missing files generate_owl_dfa.sh and matchtest.sh in minipat2 restored | |
3406 | - local_owl_node_counter initialized in owl_substantial | |
3407 | ||
3408 | 2.7.215 released January 28, 2001 | |
3409 | ||
3410 | - bugfix in analyze_semeai() | |
3411 | - bugfix in find_attack_patterns() | |
3412 | - new gtp command combination_attack | |
3413 | - defend_against_atari_helper() revised | |
3414 | - new regression test suite atari_atari.tst | |
3415 | - STRATEGY revised | |
3416 | - new regression tests and game records | |
3417 | - reenable board printing on core dumps | |
3418 | - bugfix in attack_callback: attack patterns are matched again | |
3419 | - integrate rolled and unrolled versions of accumulate_influence | |
3420 | - move invariant code out of loop in accumulate_influence | |
3421 | - put patterns/minipat2 under automake control | |
3422 | - include unistd.h in patterns/dfa.c for sleep function prototype | |
3423 | - add pkgdata_DATA macro to patterns/Makefile.am | |
3424 | - add macro DFAFLAGS | |
3425 | - bugfix in dfa generation: borders constraints now always checked. | |
3426 | - modification in patterns.h to avoid a warning: struct dfa *pdfa | |
3427 | - add experimental check_pattern_light() function only checking | |
3428 | - DEBUG_OWL_PERFORMANCE reports CPU times | |
3429 | - vgprintf uses %.2f for %f | |
3430 | - tuning | |
3431 | - influence tuning | |
3432 | - owl tuning | |
3433 | - attack tuning | |
3434 | - minor cleaning | |
3435 | ||
3436 | 2.7.214 released January 21, 2001 | |
3437 | ||
3438 | - combo attack and defend_both/attack_either can't both add to move value | |
3439 | - bugfix in atari_atari() | |
3440 | - eye tuning | |
3441 | - owl tuning | |
3442 | - READING revised | |
3443 | - new and revised regression tests | |
3444 | - test results updated (except nicklas*.tst) | |
3445 | - doc revision | |
3446 | ||
3447 | 2.7.213 released January 20, 2001 | |
3448 | ||
3449 | - bigger moyo measure allowed for big dragons before owl code is disabled | |
3450 | - compute_eyes_pessimistic() no longer consults the life code | |
3451 | - cleanup of mkeyes.c | |
3452 | - now possible to specify edge and corner vertices in eyes.db | |
3453 | - mkeyes.c and recognize_eye() | |
3454 | - owl_substantial() revised | |
3455 | - bugfix in special_rescue3() | |
3456 | - loop unrolled in order_moves | |
3457 | - revision of is_hoshi_point | |
3458 | - bugfix in analyze_semeai(): don't try PASS moves | |
3459 | - shape value in j or t pattern now modifies hard-wired value | |
3460 | - atari_atari makes atari even if a chain is already in atari | |
3461 | - environment variable $GNUGO_PATH used to load dfa files | |
3462 | - fixup a Sun portability bug with enable-dfa | |
3463 | - fixup for owl_vital_apats.db with enable-dfa | |
3464 | - tuning | |
3465 | - connection tuning | |
3466 | - eye tuning | |
3467 | - owl tuning | |
3468 | - READING revised | |
3469 | - new regression tests and game records | |
3470 | ||
3471 | 2.7.212 released January 18, 2001 | |
3472 | ||
3473 | - assertion added in is_ko() | |
3474 | - revision of compute_eyes_pessimistic() | |
3475 | - vital_apats consulted also by do_owl_defend | |
3476 | - vital_apats only consulted if level >= 9 | |
3477 | - followup values reduced in two helpers | |
3478 | - eye tuning | |
3479 | - owl tuning | |
3480 | - two new helpers finish_ko_helper() and squeeze_ko_helper() | |
3481 | - portability patch for dfa in patterns.h | |
3482 | - portability patch for cygwin in mkpat.c | |
3483 | - test revisions | |
3484 | ||
3485 | 2.7.211 released January 16, 2001 | |
3486 | ||
3487 | - new file owl_vital_apats.db | |
3488 | - vital_apats are consulted by do_owl_attack regardless of genus | |
3489 | - new static variable match_found in owl.c | |
3490 | - estimate_territorial_value() limits overvaluation of half point kos | |
3491 | - changed order of min and max constraints in value_move_reasons() | |
3492 | - analyze_semeai() revised | |
3493 | - generic_walk made static in utils.c | |
3494 | - tuning | |
3495 | - owl tuning | |
3496 | - eye tuning | |
3497 | - READING and STRATEGY revised | |
3498 | - new and revised regression test cases | |
3499 | - new game records | |
3500 | - rotated tests corrected | |
3501 | ||
3502 | 2.7.210 released January 14, 2001 | |
3503 | ||
3504 | - bugfix in reading.c: superstring liberty arrays needed more space | |
3505 | - bugfix in owl_reasons which could cause a crash | |
3506 | - bugfix in owl_threaten_attack(): return value was always 0 | |
3507 | - owl threatened groups are WEAKLY_ALIVE | |
3508 | - value of connecting WEAK and WEAKLY_ALIVE groups increased | |
3509 | - owl_threats not evaluated if level <= 7 | |
3510 | - tactical reading move order tuned | |
3511 | - tuning | |
3512 | - owl tuning | |
3513 | - tuning of hoshi.sgf and sansan.sgf | |
3514 | - new regression suites endgame.tst, viking.tst and strategy28.sgf | |
3515 | - new tests in owl.tst and strategy2.tst | |
3516 | - new regression game records | |
3517 | - revision of rotated test suites | |
3518 | ||
3519 | 2.7.209 released January 10, 2001 | |
3520 | ||
3521 | - new parameter superstring_depth (default 7) | |
3522 | - minor tuning of hoshi.sgf | |
3523 | - tuning | |
3524 | - owl tuning | |
3525 | - connection tuning | |
3526 | - renumbering of owl patterns | |
3527 | - AB property added to handicap games in regression/games | |
3528 | - one new owl test | |
3529 | - doc revision | |
3530 | ||
3531 | 2.7.208 released January 7, 2001 | |
3532 | ||
3533 | - new reading function special_rescue3 | |
3534 | - break_chain2 and break_chain3 calls removed from defend2 and defend3 | |
3535 | - call edge reading function from attack2 and attack3 | |
3536 | - superstring_breakchain depth in defend2 changed to backfill2_depth | |
3537 | - defend2 and defend3 try playing a liberty of the superstring | |
3538 | - special_rescue3 called from defend3 | |
3539 | - break_chain2_moves tests for self atari | |
3540 | - move ordering adds bonus for saved moves | |
3541 | - doc revision | |
3542 | - basic worm building extracted from make_worms. | |
3543 | - new function: build_worms | |
3544 | - estimate_territorial_value requires owl reasons with VITAL_EYE_MOVE | |
3545 | - better reading at the edge | |
3546 | - some fixes in debugboard | |
3547 | - use same reading depths in debugboard as in gnugo | |
3548 | - minor tuning | |
3549 | ||
3550 | 2.7.207 released January 4, 2001 | |
3551 | ||
3552 | - new function break_chain2_efficient_moves | |
3553 | - revision of special_rescue() | |
3554 | - revision of attack2(), attack3(), superstring_breakchain() | |
3555 | - look harder for neighbors of attack moves in examine_move_safety() | |
3556 | - compute_eyes_pessimistic tracks margins adjacent to margins | |
3557 | - owl_find_lunches considers ko captures | |
3558 | - owl_escape_value checks empty before returning -10 | |
3559 | - decision to handle tactically moved to semeai_analyzer | |
3560 | - semeai analyzer adds move reasons instead of moving defense | |
3561 | - tuning | |
3562 | - owl tuning | |
3563 | - influence tuning | |
3564 | - revision of rotated tests | |
3565 | ||
3566 | 2.7.206 released January 3, 2001 | |
3567 | ||
3568 | - revision of print_influence and print_numeric_influence | |
3569 | - value_move_reasons considers moves with min_territory>0 | |
3570 | - reversed level inequality fixed in review_move_reasons | |
3571 | - is_legal replaced by safe_move call in semeai_analyzer | |
3572 | - revision of proper_superstring_chainlinks() and superstring_recurse() | |
3573 | - new patterns in barriers.db | |
3574 | - general cleanup | |
3575 | - tuning of seki patterns | |
3576 | - comments about regression tests | |
3577 | - doc revision | |
3578 | - manpage revision | |
3579 | - new file gnugo.pod | |
3580 | ||
3581 | 2.7.205 released January 1, 2001 | |
3582 | ||
3583 | - semeai analyzer looks for owl solution first | |
3584 | - semeai analyzer not invoked for inessential dragons | |
3585 | - owl patterns classified | |
3586 | - bugfix in superstring_breakchain | |
3587 | - minor tuning | |
3588 | - new regessions arion.tst | |
3589 | - revision of rotated tests | |
3590 | - minor doc revision | |
3591 | ||
3592 | 2.7.204 released December 26, 2000 | |
3593 | ||
3594 | - superstring technology used in attack2, defend2 | |
3595 | - new static functions restricted_attack2, in_list in reading.c | |
3596 | - libi, libj arrays sized 2 (formerly 3) in attack2 | |
3597 | - minimum standard joseki value raised to 27 | |
3598 | - hurry replaced by level | |
3599 | - print_influence takes dragons_known parameter | |
3600 | - obsolete code removed from optics.c | |
3601 | - minor tuning | |
3602 | - doc revision | |
3603 | - doc/indigo2.sgf removed from distribution | |
3604 | ||
3605 | ||
3606 | 2.7.203 released December 21, 2000 | |
3607 | ||
3608 | - owl status is checked also for dragons with high escape potential | |
3609 | - new safety value WEAKLY_ALIVE for dragons which are owl alive by escape | |
3610 | - fill_liberty() code revised | |
3611 | - new function filllib_confirm_safety() | |
3612 | - new debug flag DEBUG_FILLLIB and new debug traces in filllib.c | |
3613 | - move valuation slightly revised | |
3614 | - influence code revisions | |
3615 | - maximum move values for standard joseki removed in shapes_callback() | |
3616 | - tuning | |
3617 | - owl tuning | |
3618 | - influence tuning | |
3619 | - new regression test suite filllib.tst | |
3620 | - new tests and game records | |
3621 | - doc revision | |
3622 | - new superstring functions in utils.c | |
3623 | - find_superstring_recurse() renamed superstring_recurse() and generalized | |
3624 | - new superstring_breakchain() and restricted_defend1() | |
3625 | - Separated the SGF library totally from the engine | |
3626 | - integrated sgf_utils.h into sgftree.h | |
3627 | - The Gameinfo struct expanded | |
3628 | - movenum moved to the internals (from gnugo.h to liberty.h) | |
3629 | - Some FIXMEs addressed | |
3630 | - General minor cleanup | |
3631 | ||
3632 | 2.7.202 released December 17, 2000 | |
3633 | ||
3634 | - anisotropic attenuation removed from the influence function | |
3635 | - attenuation and strength split into black and white in influence.c | |
3636 | - new semantics for E class patterns in influence_callback() | |
3637 | - new macro ASSERT_ON_BOARD defined in liberty.h | |
3638 | - assertions added in optics.c, move_reasons.c, owl.c, and reading.c | |
3639 | - minor revisions of valuation of defense and connect moves | |
3640 | - bugfix in linear_eye_space() | |
3641 | - bugfix in attack1() | |
3642 | - warnings eliminated in main.c | |
3643 | - workaround in influence.c for bug in main.c | |
3644 | - bugfix in patterns/patterns.h | |
3645 | - bugfix in mkpat for dfa | |
3646 | - tuning | |
3647 | - owl tuning | |
3648 | - default owl_node_limit increased to 600 | |
3649 | - revisions of golife.tst, ld_owl.tst, and ld_owl_rot.tst | |
3650 | - doc revisions | |
3651 | ||
3652 | 2.7.201 released December 8, 2000 | |
3653 | ||
3654 | - interface/interface.c removed from the distribution | |
3655 | - legal(), suicide() and self_atari() renamed is_legal() etc. | |
3656 | - New API function: gnugo_is_suicide. | |
3657 | - interface/interface.c removed | |
3658 | - playing options quiet is now a global variable | |
3659 | - A number of FIXMEs addressed | |
3660 | - bugfix in linear_eye_space | |
3661 | - minor revision of komoku.sgf and hoshi.sgf | |
3662 | - minor tuning | |
3663 | - unnecessary NULLs removed in patterns.db | |
3664 | - doc revision | |
3665 | ||
3666 | 2.7.200 released November 30, 2000 | |
3667 | ||
3668 | - serious bugfix in semeai() | |
3669 | - bugfix in owl.c | |
3670 | - bugfix in pattern ED58 | |
3671 | - bugfix in fill_liberty() | |
3672 | - revision of rotated tests | |
3673 | - new file regression/games/me.tst and 3 new strategy2 tests | |
3674 | - test results updated | |
3675 | ||
3676 | 2.7.199 released November 29, 2000 | |
3677 | ||
3678 | - color support test restored to 2.7.193 condition in configure.in | |
3679 | - missing doc/api.texi replaced | |
3680 | - analyze_semeai is not called if an owl_substantial worm is en prise | |
3681 | - minor tuning | |
3682 | ||
3683 | 2.7.198 released November 28, 2000 | |
3684 | ||
3685 | - bugfixes in owl.c | |
3686 | - new patterns in eyes.db | |
3687 | - tuning | |
3688 | - owl tuning | |
3689 | - minor revisions in analyze_semeai | |
3690 | - revised and new regression tests | |
3691 | - bugfix in dfa.c: gpout was not cleanly reset before synchronization | |
3692 | - if DFA_SORT is set in new_matchpat then sort patterns before check_pattern | |
3693 | - new stat functions update_pattern_stats(), display_pattern_stats(), | |
3694 | reset_pattern_stat() | |
3695 | - dfa_add_pattern is now able to add all transformations into the dfa | |
3696 | - new functions for dfa_add_pattern: permut() and show_pattern_instance() | |
3697 | - fixed some bugs in matcher.c, and matchtest.sh | |
3698 | - removed some unused files. | |
3699 | - option -tm forces the anchor to be in the center and adds all transformations | |
3700 | - added little_owl.tst | |
3701 | - test results updated | |
3702 | ||
3703 | 2.7.197 released November 27, 2000 | |
3704 | ||
3705 | - old code removed from moyo.c | |
3706 | - sgffile_decidestring() renamed decidestring() etc. | |
3707 | - owl data structs in owl_attack, etc. made static | |
3708 | - assertion changed in join_dragons | |
3709 | - config.h included in interface.c and main.c | |
3710 | - revisions to owl_analyze_semeai | |
3711 | - show_dragons() lists worm lunches | |
3712 | - assertion corrected in join_dragons() | |
3713 | - new function find_more_owl_attack_and_defense_moves() in move_reasons.c | |
3714 | - strategically_sound_defense() reimplemented | |
3715 | - tuning | |
3716 | - owl tuning | |
3717 | - new file regression/READING reviewing failed reading tests | |
3718 | - new tests in reading.tst and ld_owl.tst | |
3719 | - new game records | |
3720 | - test results updated | |
3721 | ||
3722 | 2.7.196 released November 23, 2000 | |
3723 | ||
3724 | - old definition of inessential worms restored | |
3725 | - minor revision of owl_analyze_semeai | |
3726 | - Small rearrangements in board.c | |
3727 | - init_board() renamed to clear_board() | |
3728 | - Some comments and rearrangements in gnugo.h | |
3729 | - major cleanup in hash.h and hash.c | |
3730 | - old definition of inessential worms restored | |
3731 | - #include <config.h> restored in play_ascii.c, play_gtp.c and hash.c | |
3732 | - new function owl_update_goal() | |
3733 | - revisions of owl_does_defend(), owl_does_attack(), | |
3734 | owl_connection_defends(), and owl_threaten_defense() | |
3735 | - bugfix in owl_threaten_attack() | |
3736 | - doc revision | |
3737 | ||
3738 | 2.7.195 released November 19, 2000 | |
3739 | ||
3740 | - owl_analyze_semeai() complete (though still very buggy) | |
3741 | - struct local_owl_data now has a color field | |
3742 | - owl_find_lunches no longer has color parameter | |
3743 | - two missing sgf files restored | |
3744 | - config.h included again in matchpat.c and analyze.c | |
3745 | ||
3746 | 2.7.194 released November 18, 2000 | |
3747 | ||
3748 | - continued localization of owl | |
3749 | - new struct local_owl_data for passing goal, boundary and lunches | |
3750 | - new functions owl_update_boundary_marks() and owl_make_domains() | |
3751 | - new function owl_topological_eye() | |
3752 | - name restored in autohelper macro owl_topological_eye | |
3753 | - get_coordinate globalized and moved to printutils.c | |
3754 | - new --decidesemeai option | |
3755 | - new function owl_analyze_semeai() | |
3756 | - Removed all unnecessary inclusion of config.h | |
3757 | - cleanup of worm.c | |
3758 | - Error handing in main.c: get_coordinate() | |
3759 | - shuffling of main.c | |
3760 | - inclusion of cache.h removed from board.c | |
3761 | - definition of inessential worms changed | |
3762 | - dragons classified CRITICAL when owl_attack() and owl_defend() disagree | |
3763 | - join_dragons() revised to choose origin consistently within dragons | |
3764 | - dragon_ring() and dragon_eye() cleaned up and revised | |
3765 | - clear_move_reasons() moved from genmove() to reset_engine() | |
3766 | - revised and extended debug output from influence.c | |
3767 | - strategically_sound_defense() revised | |
3768 | - valuation of inessential dragons corrected | |
3769 | - the owl code doesn't consider escape on the first move | |
3770 | - filter out vital defense moves which are self ataris in owl_determine_eye() | |
3771 | - bugfix in owl_shapes | |
3772 | - bugfixes in owl_substantial() | |
3773 | - attack2() revised | |
3774 | - new function special_attack4() in reading.c | |
3775 | - move ordering retuned | |
3776 | - safe_move() again changed to return 3 for illegal ko captures | |
3777 | - bugfix in shapes_callback() | |
3778 | - gtp_loadsgf() now also calls reset_engine() | |
3779 | - cut_connect_callback revised to deal with join_dragons() changes | |
3780 | - tuning of barriers.db, influence.db, conn.db, and eyes.db | |
3781 | - tuning | |
3782 | - owl tuning | |
3783 | - revision of joseki values | |
3784 | - new game records and test cases | |
3785 | - regression/STRATEGY revised | |
3786 | - mkpat and mkeyes tolerate "\r" for Windows compatibility | |
3787 | - Mingw32 and VC++ compatibility changes in configure.in and debugboard | |
3788 | ||
3789 | 2.7.193 released November 14, 2000 | |
3790 | ||
3791 | - owl_topological_eye autohelper macro replaced by topological_eye | |
3792 | - owl goals and boundaries systematically localized | |
3793 | - global owl_goal_color removed | |
3794 | - now O patterns accept critical friendlies if * rescues tactically | |
3795 | - matcher_status used in print_ascii_area (moyo.c) | |
3796 | - new function matcher_status() | |
3797 | - ascii mode save command fixed | |
3798 | - fixme's addressed in play_ascii.c | |
3799 | - tuning | |
3800 | - two ld*sgf files had gotten overwritten by rotated versions--fixed | |
3801 | - revision of test results | |
3802 | ||
3803 | 2.7.192 released November 12, 2000 | |
3804 | ||
3805 | - new on board assertions in move_reasons.c | |
3806 | - increased safety value for strongly alive dragons | |
3807 | - territory changes are counted for owl attacks and defenses | |
3808 | - influence changes are counted for semeai moves | |
3809 | - reverse followup values can never more than double the move value | |
3810 | - bugfix in liberty_of_dragon(), check that vertex is empty | |
3811 | - somewhere() function and corresponding autohelpers require that | |
3812 | found stone does not have status dead | |
3813 | - play_attack and play_defend autohelpers return ko results | |
3814 | - tuning of barriers.db, conn.db, endgame.db | |
3815 | - owl tuning | |
3816 | - tuning of patterns.db and patterns2.db | |
3817 | - double_does_break_helper and wide_break_helper replaced by constraints | |
3818 | - new helpers edge_double_sente_helper and defend_against_atari_helper | |
3819 | - new autohelper defend_against_atari | |
3820 | - new target all_batches in regression/Makefile.am | |
3821 | - revision of rotated testsuite | |
3822 | - updating of test results | |
3823 | ||
3824 | 2.7.191 released November 10, 2000 | |
3825 | ||
3826 | - bug fix in update_liberties: k<MAX_LIBERTIES | |
3827 | - bug fix in owl_mark_boundary: don't look for neighbors if dragon.id == -1 | |
3828 | - bug fix in owl_does_attack: omit marking goal string | |
3829 | - bug fix in semeai.c: several bj's should have been bi's | |
3830 | - pattern ED70 taken down | |
3831 | - bugfix in sgfgen | |
3832 | - suppress owl traces during estimate_territorial_value() | |
3833 | ||
3834 | 2.7.190 released November 7, 2000 | |
3835 | ||
3836 | - effective_size reduced | |
3837 | - minor revision of connection value | |
3838 | - bug fixes in obvious_false_eye, do_owl_attack and do_owl_defend. | |
3839 | - bug fixes in find_superstring_recurse and find_superstring_recurse | |
3840 | - attack4 is more careful about ko | |
3841 | - removed the copy of dfa.c from new_matchpat.c | |
3842 | - new function dfa_add_pattern | |
3843 | - 2 new helpers for dfa_add_pattern: range_check_ok & show_pattern_instance | |
3844 | - removed dead code from mkpat.c | |
3845 | - testsuite revisions | |
3846 | - tuning | |
3847 | ||
3848 | 2.7.189 released November 4, 2000 | |
3849 | ||
3850 | - atari_atari tries to find irreducible combinations | |
3851 | - loop ununrolled in do_atari_atari() | |
3852 | - depths increased during atari_atari to avoid horizon effect | |
3853 | - improved traces during atari_atari | |
3854 | - joseki patterns do not have strategic attack bonus | |
3855 | - joseki patterns have cap on valuation | |
3856 | - dead code in influence.c removed | |
3857 | - backfill2_depth in modify_depth_values(), etc. | |
3858 | - autohelper functions revised to use matcher_status instead of status | |
3859 | - owl reasons consults matcher status, taking semeai() into account | |
3860 | - subtract one point from move value for a sacrifice play | |
3861 | - tuning | |
3862 | - owl tuning | |
3863 | - 'A' comment field in joseki db no longer case sensitive | |
3864 | - new tests and game records | |
3865 | ||
3866 | 2.7.188 released November 1, 2000 | |
3867 | ||
3868 | - doc revisions | |
3869 | - include gg_utils.h rather than gg_utils.c in analyze.c | |
3870 | - new parameter stop_before_owl for make_dragons() | |
3871 | - new target EXAMINE_DRAGONS_WITHOUT_OWL for examine_position() | |
3872 | - matcher_status printed by show_dragons() | |
3873 | - dragon_escape() revised | |
3874 | - safe_move() calls in filllib.c reviewed | |
3875 | - unnecessary line removed from incremental_remove_string() | |
3876 | - temporary reduction of depth values during influence computation | |
3877 | disabled | |
3878 | - obvious_false_eye() made public | |
3879 | - semeai threat move reasons listed by list_move_reasons() | |
3880 | - more move valuation details when using DEBUG_MOVE_REASONS debug bit | |
3881 | - bug fixes in move valuation to avoid points being counted multiple | |
3882 | times for the same stones when they are defended or attacked | |
3883 | according to multiple sources (tactical reading, owl, semeai) | |
3884 | - new function move_connects_strings() in move_reasons.c | |
3885 | - shape bonus added for moves which connect multiple strings | |
3886 | - revised set of function calls disabled by 'urgent' variable | |
3887 | - do_owl_attack and do_owl_defend also try tactical attack/defense | |
3888 | moves | |
3889 | - code simplification in do_owl_attack | |
3890 | - DEBUG_OWL_PERFORMANCE traces added in owl_threaten_attack() and | |
3891 | owl_threaten_defense() | |
3892 | - goal propagation in do_owl_defend() revised | |
3893 | - owl_determine_life() revised | |
3894 | - avoid unnecessary reading in owl_shapes_callback() | |
3895 | - owl_mark_boundary() revised | |
3896 | - FIXME added in owl_does_attack() | |
3897 | - new static function one_two_point() in owl.c | |
3898 | - sniff_lunch() revised | |
3899 | - bugfixes in owl_escape_value() | |
3900 | - atari_atari() revised | |
3901 | - new function find_superstring() in utils.c | |
3902 | - bugfix in examine_cavity() and examine_cavity_recurse() | |
3903 | - a number of stackp==0 assertions added in worm.c and semeai.c | |
3904 | - semantics of GTP command eval_eye changed | |
3905 | - three new patterns in conn.db | |
3906 | - new helper threaten_to_capture_helper() | |
3907 | - new autohelper functions threaten_to_capture, obvious_false_oeye, | |
3908 | and obvious_false_xeye | |
3909 | - komoku joseki revisions | |
3910 | - tuning and owl tuning | |
3911 | - comment added in regressions/STRATEGY | |
3912 | - owl, ld_owl, strategy, and reading test suites revised and/or extended | |
3913 | ||
3914 | 2.7.187 released October 31, 2000 | |
3915 | ||
3916 | - bugfix in owl_reasons: do not pass PASS as a move reason | |
3917 | - bugfix in small_semeai: missing popgo() | |
3918 | - bugfix in pattern ED62: move could be off board | |
3919 | - bugfix in make_dragons: typo for second_defendj | |
3920 | - sethand.c removed | |
3921 | - recordhand() renamed to sgffile_recordboard | |
3922 | - sethand() removed. | |
3923 | - placehand() moved to genmove.c | |
3924 | - ON_BOARD assertions added in move_reasons.c | |
3925 | - FIXME in analyze.c removed | |
3926 | - initialize_engine() renamed reset_engine() | |
3927 | - Reset verbose to correct value in examine_position() | |
3928 | - description of change_dragon_status fixed. | |
3929 | - doc revision | |
3930 | - regress.awk tries to spot core dumps | |
3931 | ||
3932 | 2.7.186 released October 28, 2000 | |
3933 | ||
3934 | - tuning | |
3935 | - we try to add only legal owl threat move reasons | |
3936 | - bugfix: pattern 't' attribute was incompletely implemented | |
3937 | - doc revision | |
3938 | - fixed a compilation warning in new_matchpat.c | |
3939 | - added an option -t to mkpat | |
3940 | ||
3941 | 2.7.185 released October 28, 2000 | |
3942 | ||
3943 | - white/black_points parameters split in evaluate_territory() | |
3944 | - tuning | |
3945 | - owl tuning | |
3946 | - implementation supplied for owl_does_attack | |
3947 | - trace level reduced when atari_atari runs | |
3948 | - allpats overrides normal shortcuts when an urgent move is on the board | |
3949 | - missing files restored in minipat2/ | |
3950 | - material added to and joice respelled in minipat2/README | |
3951 | - revision of rotated tests | |
3952 | ||
3953 | 2.7.184 released October 25, 2000 | |
3954 | ||
3955 | - bugfix in owl_substantial: remember that owl_goal_color is global | |
3956 | - but patterns/dfa.c is in EXTRADIST | |
3957 | - configure works with or without --enable-dfa to create alternative versions | |
3958 | - rotated patterns included for tests * | |
3959 | - updated test results | |
3960 | ||
3961 | 2.7.183 released October 24, 2000 | |
3962 | ||
3963 | - new module atari_atari with global variable aa_depth | |
3964 | - new atari_atari move reasons | |
3965 | - new autohelper function has_aji() | |
3966 | - value of move in empty corner reduced from 40 to 27 | |
3967 | - new owl function owl_substantial | |
3968 | - owl_mark_boundary() split off from owl_mark_goal() | |
3969 | - new function neighbor_of(), a frontend for incremental_neighbor_of() | |
3970 | - tuning | |
3971 | - minor owl tuning | |
3972 | - safe_move() returns 0 in case of an illegal ko capture (as before 2.7.180) | |
3973 | - use AC_SEARCH_LIBS to add -lm only when needed | |
3974 | - curses test is moved outside the enable_color to accomodate debugboard | |
3975 | - adds test for KEY_UP to the curses configuration | |
3976 | - adjust interface/debugboard/main.c if KEY_UP unavailable | |
3977 | - use AC_SEARCH_LIBS for detection of curses and termcap library | |
3978 | - use AC_CACHE_CHECK macro for __function__ and KEY_UP detection | |
3979 | - dfa.c and dfa.h are now in patterns/ not patterns/minipat2/ | |
3980 | - new_mkpat adds a dfa_t pointer when DFA_ENABLE is set to 1. | |
3981 | - load_dfa(file_name, NULL) can return pointers to dfa_t struct | |
3982 | - dfa compiles with less errors when -Wall | |
3983 | - made more dfa functions static | |
3984 | - new tests and game records | |
3985 | ||
3986 | 2.7.182 released October 19, 2000 | |
3987 | ||
3988 | - new move reason OWL_PREVENT_THREAT | |
3989 | - attacking a dragon that can threaten life gets a small value | |
3990 | - bugfix in recognize_eye | |
3991 | - bugfix in "threat" move valuations: max should be min | |
3992 | - init_gnugo() moved from board.c to interface.c | |
3993 | - new tests and game files | |
3994 | ||
3995 | 2.7.181 released October 18, 2000 | |
3996 | ||
3997 | - bugfix in owl_attack: ko dealt with if original goal stone captured | |
3998 | - matcher_status replaces dragon.status in examine_move_safety DEFEND case | |
3999 | - extra newlines eliminated in traces in find_more_attack_and_defense_moves() | |
4000 | - new tests | |
4001 | ||
4002 | 2.7.180 released October 16, 2000 | |
4003 | ||
4004 | - semeai_analyzer no longer called with tactically dead dragons | |
4005 | - semeai_analyzer now called with owl critical dragons | |
4006 | - new global variabls owl_distrust_depth and backfill2_depth | |
4007 | - new static owl functions owl_add_move() and obvious_false_eye() | |
4008 | - revision of sniff_lunch | |
4009 | - vital_chain() moved to owl.c | |
4010 | - separate move reasons for both dragons in semeai | |
4011 | - new function add_semeai_threat() | |
4012 | - semeais no longer enumerated for move reasons | |
4013 | - owl tuning | |
4014 | - eye tuning and revision of eyes.db | |
4015 | - bugfix in owl_defendpat D51 | |
4016 | - revisions of most reading functions | |
4017 | - break_chain_new() renamed break_chain_moves() | |
4018 | - edge_attack() and edge_defend() unified in edge_attack_defend() | |
4019 | - break_chain() removed | |
4020 | - new function compute_eyes_pessimistic | |
4021 | - looks for positions where eye code | |
4022 | - evaluate_diagonal_intersections() takes new parameters (i,j) | |
4023 | - MAX_LUNCHES increased to 10 | |
4024 | - option --enable-dfa sets DFA_ENABLED equal to 1 | |
4025 | - minor tuning | |
4026 | - calls to TRACE made DEBUG in life.c | |
4027 | - revision of STRATEGY | |
4028 | - revision of minipat2/ (has own ChangeLog) | |
4029 | - changes to config.vcin | |
4030 | - changes to configure.in and gg_utils.in to make clean mingw build | |
4031 | ||
4032 | 2.7.179 released October 12, 2000 | |
4033 | ||
4034 | - node limits revised in initialize_engine() | |
4035 | - traces corrected for owl threat reasons | |
4036 | - bonus for owl threat move (not ko threat) reduced to 3 points | |
4037 | - revision of patterns/minipat2/ (has own ChangeLog) | |
4038 | - minor tuning | |
4039 | - regression/REVIEW renamed STRATEGY and completed | |
4040 | - new owl tests | |
4041 | - test results updated | |
4042 | ||
4043 | 2.7.178 released October 10, 2000 | |
4044 | ||
4045 | - new global variables urgent and kothreat_needed | |
4046 | - if a ko threat seems needed, GNU Go tries to make one | |
4047 | - moves that threatens to kill or live are tried near end of game | |
4048 | - if an urgent joseki move is found, some code is not executed | |
4049 | - new dragon fields owl_threat_status, owl_second_attack, owl_second_defend | |
4050 | - new functions owl_threaten_defense() and owl_threaten_attack() | |
4051 | - new function look_for_kos() | |
4052 | - tuning | |
4053 | - new file regression/REVIEW | |
4054 | ||
4055 | 2.7.177 released October 7, 2000 | |
4056 | ||
4057 | - experimental directory patterns/minipat2 | |
4058 | - bugfixes and indentation fixups in owl.c | |
4059 | - one new eye pattern | |
4060 | - owl tuning | |
4061 | - cleaning of some regression game records | |
4062 | - new and revised regression tests | |
4063 | - release date for 2.7.172 corrected in ChangeLog | |
4064 | - Makefile.bump removed from distribution | |
4065 | ||
4066 | 2.7.176 released October 6, 2000 | |
4067 | ||
4068 | - modify_eye_spaces() replaces modify_eye_spaces1() and 2() | |
4069 | - minor cleanup in optics.c | |
4070 | - new eye pattern and cleanup in eyes.db | |
4071 | - tuning | |
4072 | - owl tuning | |
4073 | ||
4074 | 2.7.175 released October 6, 2000 | |
4075 | ||
4076 | - if configure --enable-dfa then new_matchpat.c replaces matchpat.c | |
4077 | - tuning | |
4078 | - owl tuning | |
4079 | - only count trymove when we do create a new position | |
4080 | - liberty_of() made incremental | |
4081 | - singleton() replaced by countstone() calls | |
4082 | - matchpat.c and new_matchpat.c: CRITICAL added to class masks | |
4083 | - reformatting in new_patchpat.c and semeai.c | |
4084 | - two new eye patterns | |
4085 | - preliminary garbage taken out of .sgf files | |
4086 | - ad hoc code in worm.c replaced by call to liberty_of() | |
4087 | - gtp can set komi | |
4088 | - new tests, including rotated versions of some old ones | |
4089 | ||
4090 | 2.7.174 released October 3, 2000 | |
4091 | ||
4092 | - tuning | |
4093 | - owl tuning | |
4094 | - new patterns and regressions | |
4095 | - in somewhere() move_num replaced by move_num-1 | |
4096 | - bugfix in o_somewhere autohelper | |
4097 | - revised handling of labels in joseki.c | |
4098 | - strategy.tst split in two | |
4099 | - proposed replacement engine/new_matchpat.c for matchpat.c | |
4100 | - in new_matchpat new function check_pattern() split from do_matchpat() | |
4101 | - in new_matchpat arrays and_mask,val_mask and class_mask moved | |
4102 | - new tests and game records | |
4103 | - doc revision | |
4104 | - fixme's updated and classified | |
4105 | - THANKS revised | |
4106 | ||
4107 | 2.7.173 released September 30, 2000 | |
4108 | ||
4109 | - bugfix in attack1() | |
4110 | - bugfix in semeai.c: dragon data updated correctly | |
4111 | - revision of whose_moyo_restricted() | |
4112 | - backfill depth increased to 12 | |
4113 | - value_moves() visits moves in standard lexicographical order | |
4114 | - tuning | |
4115 | - owl tuning | |
4116 | - new game records and tests | |
4117 | ||
4118 | 2.7.172 released September 27, 2000 | |
4119 | ||
4120 | - new joseki classification t, some patterns downgraded | |
4121 | - new chainlinks2(), draw_back(), special_attack3() break_chain_new() | |
4122 | - calling convention for find_cap2() changed | |
4123 | - edge_defend() returns untested candidate moves | |
4124 | - break_chain() no longer returns which link was captured | |
4125 | - edge_attack() now takes ko results into account | |
4126 | - find_cap3() generalized | |
4127 | - chain breaking moves and liberties are ordered in defensive functions | |
4128 | - chain breaking moves, liberties and backfills ordered in attack2() | |
4129 | - defense functions made more uniform | |
4130 | - backfills tested in defend2() | |
4131 | - code reshuffled in attack3() | |
4132 | - order_moves() revised | |
4133 | - backfill_depth increased to 10 | |
4134 | - reading_node_counter not incremented by break_chain() and relatives | |
4135 | - new GTP command tune_move_ordering can set order_moves() parameters | |
4136 | - new tests and game records | |
4137 | - doc revision | |
4138 | - typedef of row_of_eye_data moved to liberty.h | |
4139 | ||
4140 | 2.7.171 [NOT RELEASED] | |
4141 | ||
4142 | 2.7.170 released September 24, 2000 | |
4143 | ||
4144 | - minor doc revision | |
4145 | - bugfix in estimate_strategical_value() | |
4146 | - reading code revisions for improved performance | |
4147 | - do_find_defense() added to hash defaults | |
4148 | - a few double kakari variations added to hoshi.sgf | |
4149 | - tuning | |
4150 | - joseki values promoted somewhat | |
4151 | - new game record regression/games/reading10.sgf | |
4152 | - one new test case in reading.tst | |
4153 | - owl tests 122 and 123 include move number | |
4154 | - neurogo.tst extended | |
4155 | ||
4156 | 2.7.169 released September 22, 2000 | |
4157 | ||
4158 | - modification to whose_moyo_restricted made default (still overrideable) | |
4159 | - owl_attack tries defending lunch | |
4160 | - owl node limit cut from 1000 to 500 | |
4161 | - new autohelper functions x_somewhere and o_somewhere | |
4162 | - new function somewhere() | |
4163 | - tuning | |
4164 | - owl tuning | |
4165 | - new test regression/neurogo.tst | |
4166 | - dragon_invincible modified for portability | |
4167 | - vgprintf calls replaced by fgprintf in printutils.c | |
4168 | - on board assertion in owl_lively | |
4169 | - colored dragon and owl display revamped | |
4170 | - option --statistics works again. | |
4171 | - cleanup of globals.c | |
4172 | - gnugo.h checked for unused declarations | |
4173 | - renumbering of hash bits | |
4174 | - doc revision | |
4175 | ||
4176 | 2.7.168 released September 20, 2000 | |
4177 | ||
4178 | - if file "hurry" found on disk, hurry is read from it each move | |
4179 | - new function get_hurry() | |
4180 | - bugfix in examine_move_safety() | |
4181 | - bugfix in compute_primary_domains() | |
4182 | - minor tuning | |
4183 | - new file regression/games/FSF-neurogo.sgf | |
4184 | ||
4185 | 2.7.167 released September 19, 2000 | |
4186 | ||
4187 | - reading code speedup | |
4188 | - modification to whose_moyo_restricted contingent on --inhibit option | |
4189 | - minor joseki variations (j classification) promoted to value 20 | |
4190 | - reviewing move reasons contingent on -w | |
4191 | - trace format slightly more compact | |
4192 | - minor change in hoshi.sgf | |
4193 | - tuning | |
4194 | - revision of test strategy 51 and new strategy test 79 | |
4195 | - UNUSED defined in utils/gg_utils.c | |
4196 | ||
4197 | 2.7.166 released September 18, 2000 | |
4198 | ||
4199 | - revised computation of size of moyo surrounding a dragon | |
4200 | - improved workaround in induce_secondary_move_reasons() | |
4201 | - examine_move_safety() made more accurate | |
4202 | - move valuation improvements | |
4203 | - owl_reasons() avoids adding owl attack reasons against nakade stones | |
4204 | - owl_reasons() defends before attacking when there's a semeai | |
4205 | - improved handling of ko attack codes in worm.c | |
4206 | - new anchoring option in mkpat.c | |
4207 | - bugfix in pattern matching of attack and defense patterns | |
4208 | - tuning | |
4209 | - new game record and regression tests | |
4210 | - doc revision | |
4211 | ||
4212 | 2.7.165 released September 14, 2000 | |
4213 | ||
4214 | - semeai() updates matcher_status for unfriendly dragons alive by semeai | |
4215 | - revised computation of size of moyo surrounding a dragon | |
4216 | - tuning | |
4217 | - owl tuning | |
4218 | - new files in regression/games (strategy18, 19, 20 and owl11) | |
4219 | - new and revised test cases in owl.tst and strategy.tst | |
4220 | - configure test for availability of usleep() | |
4221 | - select() replaces missing ment for usleep() in debugboard/main.c | |
4222 | - embedded newlines in patterns/transpat.c replaced by explicit \n | |
4223 | - explicit (int) casts to arguments of toupper and tolower | |
4224 | ||
4225 | 2.7.164 released September 11, 2000 | |
4226 | ||
4227 | - edge patterns in patterns.db and patterns2.db rotated to standard position | |
4228 | - bugfix in move_reasons.c: too many dragon connections | |
4229 | - dead code removed from dragon.c | |
4230 | - PL[W] added to regression/games/owl10.sgf | |
4231 | - location_set.* removed from engine/ | |
4232 | - target transpat is now EXTRA | |
4233 | - doc revision | |
4234 | ||
4235 | 2.7.163 released September 6, 2000 | |
4236 | ||
4237 | - mouse code is renamed owl | |
4238 | - new target transpat in patterns/ | |
4239 | - new files patlib.c, patlib.h and transpat.c | |
4240 | - default cache size reduced to 16 M | |
4241 | - owl_node_limit reduced from 10000 to 1000 | |
4242 | - new configure options --enable-large-model and --enable-small-model | |
4243 | - Changelog entry for 2.7.162 added | |
4244 | - ko result macros moved from reading.c to cache.c | |
4245 | - ko handling in mouse.c simplified and made more strict | |
4246 | - portability fix in hash.c, ULL suffix removed from small constants | |
4247 | - doc revision | |
4248 | - THANKS revised | |
4249 | ||
4250 | 2.7.162 released September 5, 2000 | |
4251 | ||
4252 | - minor change to hoshi.sgf | |
4253 | - mouse code is somewhat ko aware | |
4254 | - tuning | |
4255 | - mouse tuning | |
4256 | - new tests | |
4257 | - new autohelper functions legal_xmove and legal_omove | |
4258 | - AUTHORS and THANKS revised | |
4259 | ||
4260 | 2.7.161 released September 1, 2000 | |
4261 | ||
4262 | - mouse tuning | |
4263 | ||
4264 | 2.7.160 released August 31, 2000 | |
4265 | ||
4266 | - one new pattern in mouse_defendpats.db | |
4267 | - hoshi.sgf revised | |
4268 | - improved ko awareness in reading.c | |
4269 | - loop ununrolled in attack2() | |
4270 | - SGFTRACE calls added to break_chain(), break_chain2(), break_chain3(), | |
4271 | and relative_break_chain() | |
4272 | - reading functions consistently return an illegal ko capture rather than | |
4273 | pass if it is the best way to win | |
4274 | - bugfix in gtp_genmove_black() and gtp_genmove_white() | |
4275 | - new files reading08.sgf and reading09.sgf in regression/games/ | |
4276 | - new reading tests | |
4277 | ||
4278 | 2.7.159 released August 30, 2000 | |
4279 | ||
4280 | - mouse tuning | |
4281 | - tuning | |
4282 | - new files jahy.sgf and reading07.sgf in regression/games/ | |
4283 | - new tests | |
4284 | - Wolfgang Manner's hoshi.sgf | |
4285 | - missing include added to cache.c | |
4286 | - fuseki database turned on by default; option --fusekidb replaced by | |
4287 | option --nofusekidb | |
4288 | - new option --nojosekidb to turn off joseki database | |
4289 | - simplified code in defend1() and defend2() | |
4290 | - new macros UPDATE_SAVED_KO_RESULT() and | |
4291 | UPDATE_SAVED_KO_RESULT_UNREVERSED() in reading.c to simplify keeping | |
4292 | track of moves leading to ko | |
4293 | - better handling of ko results in various reading.c functions | |
4294 | ||
4295 | 2.7.158 released August 27, 2000 | |
4296 | ||
4297 | - tuning | |
4298 | - cleanup of patterns.db and patterns2.db | |
4299 | - mouse tuning | |
4300 | - new files regression/games/mouse08.sgf and mouse09.sgf | |
4301 | - new mouse tests | |
4302 | ||
4303 | 2.7.157 released August 25, 2000 | |
4304 | ||
4305 | - tuning | |
4306 | - minor mouse tuning | |
4307 | - revised awards for J and j patterns | |
4308 | - new files reading06.sgf, mouse07.sgf, strategy14.sgf, strategy15.sgf, | |
4309 | and strategy16.sgf in regression/games/ | |
4310 | - new test cases | |
4311 | - removed vitality report from debugboard gui | |
4312 | - minor doc revision | |
4313 | - keep track of lively dragons in dragon.c | |
4314 | - bugfix in influence_callback() | |
4315 | - bugfix in analyze_semeai() | |
4316 | - dead code removed from helpers.c | |
4317 | - new helper: reinforce_helper | |
4318 | ||
4319 | 2.7.156 released August 23, 2000 | |
4320 | ||
4321 | - bugfix in compute_primary_domains | |
4322 | - revision of corner handling in compute_primary_domains | |
4323 | - minor deviation from documented algorithm fixed in compute_primary_domains | |
4324 | - attack1 returns 2 in case of a legal ko capture | |
4325 | - cut_connect_callback accepts X stones safe by ko | |
4326 | - basic_cut_helper accepts X stone safe by ko | |
4327 | - followup_value and reverse_followup_value are no longer additive | |
4328 | - unused symbols removed from move_reasons.c | |
4329 | - tuning | |
4330 | - new files strategy13.sgf and semeai1.sgf in regression/games/ | |
4331 | - new tests | |
4332 | - semeai() rewritten for new move valuation scheme | |
4333 | - semeai() called from make_dragons() rather than from genmove() | |
4334 | - unused vitality field removed from struct dragon_data | |
4335 | - attempt to identify inessential dragons | |
4336 | - gtp commands debug_influence and debug_move_influence give more information | |
4337 | - function liberty_of_dragon() made static to semeai.c | |
4338 | - bugfix in mouse_determine_life() | |
4339 | - strategically_sound_defense() revised | |
4340 | - bugfix in estimate_strategical_value() | |
4341 | - more careful handling of ko return codes in do_find_defense() and defend3() | |
4342 | - defend2() no longer insists in finding best defense | |
4343 | - regression/regress.awk revised | |
4344 | ||
4345 | 2.7.155 released August 21, 2000 | |
4346 | ||
4347 | - bugfix in init_influence() | |
4348 | - semicolon added after action lines in pattern database files | |
4349 | - mkpat no longer adds semicolon after antisuji | |
4350 | - induce_secondary_move_reasons() revised | |
4351 | - dragon_safety() rewritten | |
4352 | - review_move_reasons() lists top ten moves in trace outputs | |
4353 | - new format %M in vgprintf | |
4354 | - SGFTRACE calls added after edge_defend() and edge_attack() calls | |
4355 | ||
4356 | 2.7.154 released August 21, 2000 | |
4357 | ||
4358 | - new reading functions edge_defend and edge_attack | |
4359 | - reading code smarter about moves on the first line | |
4360 | - liberty_of renamed liberty_of_dragon | |
4361 | - new function liberty_of | |
4362 | - break_chain2 does not try filling liberties of attacked string | |
4363 | - revision of order_moves | |
4364 | - Joseki database turned back on | |
4365 | - mkpat adds semicolon and newline after antisuji | |
4366 | - substantial tuning of patterns.db | |
4367 | - mouse tuning | |
4368 | - new game regression/games/strategy12.sgf (no tests yet) | |
4369 | ||
4370 | 2.7.153 released August 13, 2000 | |
4371 | ||
4372 | - autohelper vitality() removed | |
4373 | - autohelper weak() revised | |
4374 | - struct dragon_data field safety renamed old_safety | |
4375 | - new field invincible in struct worm_data | |
4376 | - dragon_invincible() in dragon.c implemented | |
4377 | - worm invincibility and dragon safety printed in show_dragons() | |
4378 | - dragon safety values revised | |
4379 | - init_influence() revised | |
4380 | - connection_value2() in move_reasons.c reimplemented and renamed | |
4381 | connection_value() | |
4382 | - dragon status used instead of dragon safety in showbord.c | |
4383 | ||
4384 | 2.7.152 released August 10, 2000 | |
4385 | ||
4386 | - bugfix in defend2() | |
4387 | - bugfix in tryko() | |
4388 | - new function sgf_trace() in cache.c and macro SGFTRACE() in cache.h | |
4389 | - all --decide* options now save sgf trees in memory | |
4390 | - SGFTRACE() calls in the reading and mouse code | |
4391 | - bugfix in mouse_determine_life() | |
4392 | - bugfix in interface/debugboard/main.c | |
4393 | - bugfix in main.c | |
4394 | - GTP command loadsgf now returns the color to play | |
4395 | - new GTP command same_dragon | |
4396 | - new test suite regression/connection.tst | |
4397 | - new test cases in reading.tst, mouse.tst, strategy.tst, and nicklas.tst | |
4398 | - five new game records in regression/games and regression/games/nicklas | |
4399 | ||
4400 | 2.7.151 released August 9, 2000 | |
4401 | ||
4402 | - regression framework revised, temporary .gtp and .res files no longer | |
4403 | needed | |
4404 | - cleanup of patterns/patterns.db | |
4405 | - experimental code for doing sgf dumps of reading variations in memory | |
4406 | - cleanup of files in sgf/ directory | |
4407 | - bugfixes in writing of sgf trees to file | |
4408 | - global variable mouse removed, together with option --nomouse | |
4409 | - patterns/patterns.c split into patterns/patterns.c and | |
4410 | patterns/josekidb.c so that the latter file contains the joseki database | |
4411 | files derived from the joseki sgf files | |
4412 | - bugfix in mouse_defendpats.db | |
4413 | - one new game record regression/games/reading04.sgf | |
4414 | - one new test case in reading.tst | |
4415 | ||
4416 | 2.7.150 released August 7, 2000 | |
4417 | ||
4418 | - old escape route measure removed, together with option --old_escape | |
4419 | - new field safety in struct dragon_data2 | |
4420 | - bugfix in influence code, tactically saved stones block influence | |
4421 | - more restrictive definitions of moyo and area in the influence code | |
4422 | - new function find_stones_saved_by_move() in move_reasons.c | |
4423 | - bugfix in make_dragons(), status propagated to all intersections before | |
4424 | calling the mouse code | |
4425 | - tuning | |
4426 | - mouse tuning | |
4427 | - several new game records | |
4428 | - several new test cases in mouse.tst, strategy.tst, and nicklas.tst | |
4429 | ||
4430 | 2.7.149 released August 3, 2000 | |
4431 | ||
4432 | - revised handling of shape in move_reasons.c | |
4433 | - tuning of patterns.db, patterns2.db, barriers.db, conn.db, | |
4434 | mouse_defendpats.db, komoku.sgf, mokuhazushi.sgf, and sansan.sgf | |
4435 | - doc revision | |
4436 | - goal dragon expanded with the whole string containing a new stone in | |
4437 | do_mouse_defend() | |
4438 | - new autohelper function mouse_goal_dragon and supporting code in mouse.c | |
4439 | and mkpat.c | |
4440 | ||
4441 | 2.7.148 released August 2, 2000 | |
4442 | ||
4443 | - tuning | |
4444 | - influence values reduced | |
4445 | - friendly influence is valued greater than unfriendly in moyo | |
4446 | - bugfix in examine_move_safety() in move_reasons.c | |
4447 | - bugfix in estimate_territorial_value() in move_reasons.c | |
4448 | - unused sigterm_handler commented out from interface/main.c | |
4449 | - stricter matching of certain commands in the ascii interface | |
4450 | - new game records and tests | |
4451 | ||
4452 | 2.7.147 released July 31, 2000 | |
4453 | ||
4454 | - domains can no longer leak past a nikken tobi (2 space extension) | |
4455 | - value used for fuseki database moves increased | |
4456 | - new option --mouse_node_limit | |
4457 | - nominal values for mouse reading parameters introduced | |
4458 | - effects of --hurry option revised | |
4459 | - the mouse reading is now interrupted when too many nodes have been | |
4460 | visited | |
4461 | - bugfix in territorial valuation of vital eye points | |
4462 | - bugfix in estimate_strategical_value(), avoid counting the same stones | |
4463 | twice | |
4464 | ||
4465 | 2.7.146 released July 30, 2000 | |
4466 | ||
4467 | - new move reason: reverse_followup, intended for reverse sente | |
4468 | - reverse followup value added to a few patterns | |
4469 | - interface/main.h removed | |
4470 | - signal handlers made static | |
4471 | - new tests | |
4472 | - revised handling of -a option | |
4473 | - revision of pattern CB207 | |
4474 | - parts of make_dragon() restructured | |
4475 | - dragon_status() revised | |
4476 | - escape influence computation revised | |
4477 | - new field in dragon[][] array, matcher_status | |
4478 | - matchpat() uses matcher_status | |
4479 | - revise_semeai() revised to modify matcher_status | |
4480 | - patterns/influence.db revised | |
4481 | - new mouse defense patterns | |
4482 | - tuning of patterns/patterns.db | |
4483 | ||
4484 | 2.7.145 released July 29, 2000 | |
4485 | ||
4486 | - TODO revised | |
4487 | - one pattern revised in patterns/conn.db | |
4488 | - one pattern revised in patterns/patterns.db | |
4489 | - 7 new game records in regression/games/ | |
4490 | - 3 new mouse test cases | |
4491 | - 20 new strategy test cases | |
4492 | ||
4493 | 2.7.144 released July 28, 2000 | |
4494 | ||
4495 | - new counter for number of trymoves/trykos similar to | |
4496 | reading_node_counter et al | |
4497 | - new GTP commands clear_trymove_counter and get_trymove_counter | |
4498 | - Tests for life and strategy enhanced with trymove_counter | |
4499 | - goal functions attack(), find_defense(), attack_either(), defend_both(), | |
4500 | and break_through() collected together in reading.c | |
4501 | - reading_node_counter incremented also in the break chain functions | |
4502 | - doc/patterns.texi, doc/reading.texi, and doc/using.texi revised | |
4503 | - territorial valuation of vital moves revised | |
4504 | - bugfix in mkpat.c | |
4505 | ||
4506 | 2.7.143 released July 27, 2000 | |
4507 | ||
4508 | - regression/regress.awk and regression/eval.sh revised | |
4509 | - reordering of some code in attack2 and attack3 | |
4510 | - fixmes addressed in reading.c | |
4511 | - new reading functions find_cap3 and break_chain3 | |
4512 | - sgf variation count shifted in trymove | |
4513 | - new file regression/games/net3 | |
4514 | - net3 regressions | |
4515 | - N1 accepted for reading test 29 | |
4516 | - printing functions split off from utils.c to new file printutils.c | |
4517 | - sgffile_decide* functions split off from sgffile.c to new file sgfdecide.c | |
4518 | - new library libboard.a built in engine/ | |
4519 | - patterns/joseki.c rewritten from scratch | |
4520 | - joseki database file patterns/*.sgf revised for new joseki compiler | |
4521 | - show_dragons() revised to also show moyo and neighbor info | |
4522 | - order_moves() revised | |
4523 | - new joseki pattern classes added in patterns/patterns.h | |
4524 | - shapes_callback() revised to deal with new joseki pattern classes | |
4525 | ||
4526 | 2.7.142 released July 26, 2000 | |
4527 | ||
4528 | - linker option -lm moved from various Makefile.am to configure.in | |
4529 | - new variable branch_depth, defaulting to 13 | |
4530 | - default depth value increased from 14 to 16 | |
4531 | - defend3(), defend4(), attack3(), and attack4() revised to use | |
4532 | branch_depth | |
4533 | - new option --branch_depth | |
4534 | - one new pattern in patterns2.db | |
4535 | - new file regression/games/strategy3.sgf | |
4536 | - one new test case in regression/strategy.tst | |
4537 | - new test suite regression/nicklas.tst | |
4538 | - 7 new files regression/games/nicklas/nicklas*.sgf | |
4539 | - new GTP command gg_genmove | |
4540 | - contribution of randomness in move_reasons.c revised | |
4541 | - one new pattern in conn.db | |
4542 | ||
4543 | 2.7.141 released July 26, 2000 | |
4544 | ||
4545 | - hash.h and hash.c split into hash.h/cache.h and hash.c/cache.c | |
4546 | - common reading cache code in reading.c and mouse.c moved to | |
4547 | cache.c/cache.h | |
4548 | - new functions reading_cache_init() and reading_cache_cleared() in | |
4549 | cache.c | |
4550 | - movehash variable no longer global | |
4551 | - configure option --disable-hashing removed together with HASHING | |
4552 | preprocessor constant | |
4553 | - double_atari_chain2() made static to reading.c | |
4554 | - ATTACK() and DEFEND() macros in patterns/patterns.h renamed to avoid | |
4555 | name collision | |
4556 | - pow() used to compute effect of shape value in move_reasons.c | |
4557 | - optics.c now includes eyes.h rather than eyes.c | |
4558 | - mkeyes.c revised to finish the graphs array with an all-zero entry | |
4559 | - changed order in top level Makefile.am; engine is now compiled before | |
4560 | patterns | |
4561 | - extract_fuseki program bugfixed and once more compiled by default | |
4562 | - regress.awk and eval.sh in regression/ revised to deal with negated | |
4563 | tests | |
4564 | - new file regression/games/strategy2.sgf | |
4565 | - three new tests in regression/strategy.tst | |
4566 | ||
4567 | 2.7.140 released July 25, 2000 | |
4568 | ||
4569 | - sniff_lunch() made static to mouse.c | |
4570 | - private half_eye array for the mouse code | |
4571 | - several functions take half_eye data as a parameter | |
4572 | - regression/strategy.tst included for real | |
4573 | ||
4574 | 2.7.139 released July 25, 2000 | |
4575 | ||
4576 | - cleanup of reading.c | |
4577 | - minor tuning | |
4578 | - effective_size only looks to distance <= 3 | |
4579 | - debugboard displays dragon.safety as a string | |
4580 | - new files regression/strategy.tst and regression/games/strategy1.sgf | |
4581 | - doc revision | |
4582 | - mouse code enabled by default | |
4583 | - --mouse option replaced by --nomouse option | |
4584 | - alternative escape route algorithm enabled by default | |
4585 | - --alternative_escape option replaced by --old_escape option | |
4586 | - obsolete option --style removed | |
4587 | - new field moyo in struct dragon_data2 | |
4588 | - new function influence_get_moyo_size() in influence.c | |
4589 | ||
4590 | 2.7.138 released July 21, 2000 | |
4591 | ||
4592 | - bugfix in regression/regress.sh, VPATH build was broken | |
4593 | - new function special_attack2() containing code broken out of attack2() | |
4594 | - new function special_rescue2() containing code broken out of defend2() | |
4595 | - more functions use order_moves() | |
4596 | - all reading functions use the same parameter names (attacked/defended | |
4597 | string is (si, sj)). | |
4598 | - new debug bit DEBUG_MOUSE_PERFORMANCE | |
4599 | - new debug outputs in mouse.c | |
4600 | - bugfix in mouse_does_defend() and mouse_connection_defends() | |
4601 | - new struct dragon_data2 in liberty.h | |
4602 | - new static function compute_supplementary_dragon_data() in dragon.c | |
4603 | ||
4604 | 2.7.137 released July 19, 2000 | |
4605 | ||
4606 | - new file regression/regress.awk | |
4607 | - regression/regress.sh revised | |
4608 | - wrapper functions gg_vwprintw() and gg_wprintw() introduced in | |
4609 | interface/debugboard/ files | |
4610 | - order_moves() in reading.c partially reimplemented | |
4611 | - new function gtp_decode_color() in interface/gtp.c | |
4612 | - new GTP commands boardsize, is_legal, all_legal, prisoners | |
4613 | - new function position_force_to_globals() in engine/interface.c | |
4614 | - gameinfo no longer used by the GTP functions | |
4615 | - movenum updated by board functions | |
4616 | ||
4617 | 2.7.136 released July 17, 2000 | |
4618 | ||
4619 | - enhancement in ladder reading in attack2() | |
4620 | - cleanup of half of reading.c | |
4621 | - do_find_defense() and do_attack() now static | |
4622 | - more logical numbering of the reading functions for hashing | |
4623 | - new function order_moves() in reading.c | |
4624 | - function order3() removed from reading.c | |
4625 | - dead code (old versions of special_rescue()) removed from reading.c | |
4626 | - defend2(), defend3(), and defend4() track break_chain save_codes | |
4627 | - mouse pattern D13 devalued | |
4628 | ||
4629 | 2.7.135 released July 17, 2000 | |
4630 | ||
4631 | - statistics functions reset_reading_node_counter() and | |
4632 | get_reading_node_counter() in reading.c | |
4633 | - corresponding new GTP commands reset_reading_node_counter and | |
4634 | get_reading_node_counter | |
4635 | - all regression test files report the total number of nodes visited by | |
4636 | the tactical reading | |
4637 | - corrected answers to two test cases in regression/mouse.tst | |
4638 | ||
4639 | 2.7.134 released July 17, 2000 | |
4640 | ||
4641 | - debug bits renumbered | |
4642 | - doc/using.texi updated | |
4643 | - tweaking of influence function for escape value computation | |
4644 | - debug and trace outputs in mouse.c revised | |
4645 | - debug outputs revised in reading.c | |
4646 | - new pattern classification e in influence.db for patterns which get an | |
4647 | increased value during computation of escape influence | |
4648 | - mouse tuning | |
4649 | - tuning of patterns2.db | |
4650 | - new files incident267.sgf, incident269.sgf, incident272.sgf, | |
4651 | incident278.sgf, and incident287.sgf in regression/games/ | |
4652 | - two new tests in regression/mouse.tst | |
4653 | - three new tests in regression/reading.tst | |
4654 | - bugfix in regression/eval.sh and regression/regress.sh | |
4655 | ||
4656 | 2.7.133 released July 13, 2000 | |
4657 | ||
4658 | - mouse tuning | |
4659 | - improved trace messages in do_mouse_attack() and do_mouse_defend() | |
4660 | - mouse_find_lunches() simplified | |
4661 | - -lm added to LDADD in interface/Makefile.am | |
4662 | - tuning of patterns.db | |
4663 | - new file regression/games/incident263.sgf | |
4664 | - five new test in regression/mouse.tst | |
4665 | ||
4666 | 2.7.132 released July 12, 2000 | |
4667 | ||
4668 | - interface/loadsgffile.c removed | |
4669 | - library interface/libinterface.a removed | |
4670 | - sgf/sgfkey.c and sgf/sgfkey.h removed | |
4671 | - globals sgf_root and lastnode removed | |
4672 | - new datatype: SGFTree | |
4673 | - many sgfXXX functions now have their sgftreeXXX counterpart | |
4674 | - sgf/ttsgf.h renamed to sgf/sgftree.h | |
4675 | - sgf/ttsgf.c renamed to sgf/sgfnode.c | |
4676 | - sgf/sgfana.h moved to engine/analyze.h | |
4677 | - sgf/sgfana.c moved to engine/analyze.c | |
4678 | - new file: sgf/sgftree.c | |
4679 | - new file: engine/sgfutils.c | |
4680 | ||
4681 | 2.7.131 released July 12, 2000 | |
4682 | ||
4683 | - references to the escape2 field of struct dragon_data removed from | |
4684 | interface/debugboard/gui.c | |
4685 | - new variables mouse_branch_depth and mouse_reading_depth | |
4686 | - new options --mouse_branch and --mouse_reading | |
4687 | - mouse reads only one node when stackp>mouse_branch_depth | |
4688 | - reading terminates when stackp>mouse_reading_depth | |
4689 | - doc revision | |
4690 | - revised dragon_escape() to allow kosumi directly from dragon | |
4691 | - revised effect of I class influence patterns when computing escape | |
4692 | influence | |
4693 | - find_influence_patterns() add influence barriers "manually" when | |
4694 | computing escape influence | |
4695 | - dragon under consideration is now allowed to contribute influence during | |
4696 | computation of escape influence | |
4697 | - mouse_find_lunches() made static to mouse.c | |
4698 | - new autohelper function mouse_escape_value | |
4699 | - 7 new patterns in mouse_defendpats.db, aiming at escape | |
4700 | - new function mouse_connection_defends() in mouse.c | |
4701 | - code revised in do_mouse_attack(), do_mouse_defend(), and | |
4702 | mouse_mark_dragon() | |
4703 | - mouse_mark_dragon now can take either one or two dragons | |
4704 | - bugfix in do_mouse_attack(), two loop end conditions were off by one | |
4705 | - bugfix in do_mouse_attack() and do_mouse_defend(), the second most | |
4706 | important move was removed when pattern of value 99 found, but not third | |
4707 | most important one | |
4708 | - move_safety field of move_data struct initialized correctly in | |
4709 | move_reasons.c | |
4710 | - examine_move_safety() revised | |
4711 | - order of examine_move_safety() and induce_secondary_move_reasons() calls | |
4712 | reversed in review_move_reasons() | |
4713 | - same_dragon() in utils.c revised to be able to deal with the "no dragon" | |
4714 | case, i.e. (-1, -1) coordinates | |
4715 | - effective_move measure revised to never include intersections further | |
4716 | away than distance 4 | |
4717 | ||
4718 | 2.7.130 released July 11, 2000 | |
4719 | ||
4720 | - escape2 field removed from dragon_data struct together with code to | |
4721 | compute it | |
4722 | - patterns/escape.db removed | |
4723 | - mouse status and if applicable attack and defense points printed by | |
4724 | show_dragons() | |
4725 | - bugfix in compute_escape_influence() in influence.c | |
4726 | - revised debug and trace messages in mouse.c | |
4727 | - new function examine_move_safety() in move_reasons.c | |
4728 | - strategically_sound_defense() revised | |
4729 | - more restrictions on which move reasons induce a block/expand move reason | |
4730 | ||
4731 | 2.7.129 released July 9, 2000 | |
4732 | ||
4733 | - redundant assignments removed from mouse.c | |
4734 | - reading cache cleared after examine_position() call in | |
4735 | sgffile_decidedragon() and sgffile_decideposition() | |
4736 | - new file regression/games/incident262.sgf | |
4737 | ||
4738 | 2.7.128 released July 8, 2000 | |
4739 | ||
4740 | - obsolete declarations of black_domain and white_domain removed from | |
4741 | liberty.h | |
4742 | - dragon_escape() and compute_alternative_escape() in dragon.c revised | |
4743 | - new function compute_escape_influence() in influence.c | |
4744 | - new static functions compute_mouse_escape_values() and | |
4745 | mouse_escape_route() in mouse.c | |
4746 | - if --alternative_escape option enabled, do_mouse_attack() and | |
4747 | do_mouse_defend() cut off reading if mouse_escape_route() report a | |
4748 | sufficiently high escape potential | |
4749 | - redundant file interface/debugboard/loadsgffile.c really removed | |
4750 | - removed remaining occurences of return code 2 in do_mouse_attack() and | |
4751 | do_mouse_defend() | |
4752 | - new lunch pattern in patterns/conn.db | |
4753 | ||
4754 | 2.7.127 released July 6, 2000 | |
4755 | ||
4756 | - redundant file interface/debugboard/loadsgffile.c removed | |
4757 | - parts of interface/play_solo.c moved into new file | |
4758 | interface/loadsgffile.c | |
4759 | - new library interface/libinterface.a for use by interface/debugboard | |
4760 | - new files sgf/sgfkey.c and sgf/sgfkey.h to handle new abstract type | |
4761 | sgfkey | |
4762 | - find_border() renamed to examine_cavity() in worm.c | |
4763 | - static functions propagate_worm_recursive() and libertiesrec() removed | |
4764 | from worm.c | |
4765 | - code in worm.c simplified and cleaned up | |
4766 | - dragon genus initialized in make_dragons() instead of in make_worms() | |
4767 | - new static functions dragon_escape() and compute_alternative_escape() | |
4768 | in dragon.c | |
4769 | - new option --alternative_escape to enable new escape route measure | |
4770 | - new file /regression/games/incident261.sgf | |
4771 | - one new test in regression/mouse.tst | |
4772 | ||
4773 | 2.7.126 released July 5, 2000 | |
4774 | ||
4775 | - change in definition to higher order liberties | |
4776 | ||
4777 | 2.7.125 released July 4, 2000 | |
4778 | ||
4779 | - statistics functions reset_mouse_node_counter() and | |
4780 | get_mouse_node_counter() in mouse.c | |
4781 | - corresponding new GTP commands reset_mouse_node_counter and | |
4782 | get_mouse_node_counter | |
4783 | - mouse.tst, ld_mouse.tst, and ld_mouse_life.tst reports the total number of | |
4784 | nodes visited by the mouse reading | |
4785 | - bugfix in mouse_determine_life(), attack and defense points for lunches | |
4786 | were switched | |
4787 | - constraints in some mouse patterns reordered for better performance | |
4788 | - new files incident256.sgf and incident 258.sgf in regression/games | |
4789 | - four new tests in regression/mouse.tst | |
4790 | ||
4791 | 2.7.124 released July 1, 2000 | |
4792 | ||
4793 | - tuning of mouse_defendpats.db | |
4794 | - new files incident253.sgf and incident254.sgf in regression/games/ | |
4795 | - two new tests in regression/mouse.tst | |
4796 | - restructured and corrected coordinate conversion code in play_ascii.c | |
4797 | ||
4798 | 2.7.123 released June 27, 2000 | |
4799 | ||
4800 | - one new pattern in mouse_attackpats.db | |
4801 | - new file regression/games/life_and_death/ld18.sgf | |
4802 | - two new test cases in regression/ld*.tst | |
4803 | - bugfixes in life.c | |
4804 | - new GTP commands debug_move_influence, influence, move_influence, | |
4805 | worm_data, and dragon_data | |
4806 | - new function gtp_mprintf() in interface/gtp.c | |
4807 | - new functions in influence.c to export influence data | |
4808 | ||
4809 | 2.7.122 released June 22, 2000 | |
4810 | ||
4811 | - partial implementation of debugboard eyes tab | |
4812 | - black_domain[][] and white_domain[][] now static in optics.c | |
4813 | - make_domains() restructured | |
4814 | - xor() and unique_color() macros removed from showbord.c | |
4815 | - support for boards smaller than 19x19 in debugboard | |
4816 | - worm[][].attacki comparisons with -1 replaced everywhere with | |
4817 | comparisons of worm[][].attack_code with 0 | |
4818 | - likewise for worm[][].defendi and worm[][].defend_code | |
4819 | - doc/dragon.texi revised | |
4820 | - new GTP command debug_influence | |
4821 | - code for debug printing restructured in influence.c | |
4822 | ||
4823 | 2.7.121 released June 20, 2000 | |
4824 | ||
4825 | - mouse option automatically enabled with decidedragon and decideposition | |
4826 | options | |
4827 | - matchpat() uses mouse status if available | |
4828 | - new file regression/games/incident252.sgf | |
4829 | - one new reading test | |
4830 | ||
4831 | 2.7.120 released June 17, 2000 | |
4832 | ||
4833 | - mouse lunches must have attack code 1 | |
4834 | - bugfix in tryko sgf output | |
4835 | - many reading functions take komaster argument | |
4836 | - many reading functions made static | |
4837 | - new functions do_attack and do_find_defense (with komaster) | |
4838 | - cleanup in reading.c | |
4839 | - doc revision | |
4840 | - pattern Eye1 in conn.db taken out | |
4841 | ||
4842 | 2.7.119 released June 16, 2000 | |
4843 | ||
4844 | - new function gg_vsnprintf in gg_utils.c | |
4845 | - check in configure.in for vwprintf | |
4846 | - gg_vsnprintf used as workaround if vwprintf unavailable | |
4847 | - fcntl/read stuff removed from debugboard | |
4848 | - display_board_cursor() call added at the end of display_refresh() | |
4849 | - leaveok() call removed from display_init() | |
4850 | - debugboard cursor can be controlled by arrow keys | |
4851 | - COLOR_* renamed to GG_COLOR_* to avoid name collision when using | |
4852 | pdcurses | |
4853 | - new file regression/games/life_and_death/ld17.sgf and new ld* test cases | |
4854 | - non-options treated as filenames | |
4855 | - new format strings %H and %C to vgprintf() and relatives | |
4856 | - trymove() and tryko() write hash value together with node number to | |
4857 | output sgf file | |
4858 | - new files incident248.sgf and incident251.sgf in regression/games | |
4859 | - decideeye() moved from utils.c to sgffile.c and renamed | |
4860 | sgffile_decideeye() | |
4861 | - decideeye option now can write variations to an sgf file | |
4862 | - life code revisions | |
4863 | - utils.texi revised | |
4864 | - bugfix in attack_callback() in worm.c | |
4865 | ||
4866 | 2.7.118 released June 13, 2000 | |
4867 | ||
4868 | - minor sniff_lunch revision | |
4869 | - new mouse_attack pattern | |
4870 | - new file regression/games/reading03.tst. | |
4871 | - one new reading test | |
4872 | - check for curses also in -lpdcurses | |
4873 | - check for term.h and curses.h in AC_CHECK_HEADERS | |
4874 | instead of separate AC_CHECK_HEADER | |
4875 | - new #define TERMINFO in config.h for the color | |
4876 | code in gg_utils.c, debugboard builds with pdcurses | |
4877 | on DJGPP despite the absence of term.h | |
4878 | - workaround for the case when vwprintw is not available (as in pdcurses) | |
4879 | in display_message() in interface/debugboard/display.c | |
4880 | - print the error message about too small screen after the screen has been | |
4881 | cleared in display_message() | |
4882 | - use O_NONBLOCK as mask instead of FNDELAY since O_NONBLOCK | |
4883 | is more widely available | |
4884 | - remove HAVE_STRING_H use | |
4885 | - include <winsock.h> instead of <windows32/sockets.h> for mingw | |
4886 | included with new cygwin-1.1.1 release | |
4887 | - cleanup of regression/Makefile.am | |
4888 | - load_and_score_sgf_file() revised | |
4889 | - life code revisions | |
4890 | - default life eyesize increased from 8 to 10 | |
4891 | - bugfix in mouse_attack() and mouse_defend() | |
4892 | - decideeye() in utils.c revised | |
4893 | - terse option removed | |
4894 | - function remove_string_and_mark() removed from board.c | |
4895 | - distance and strategic_distance code removed | |
4896 | ||
4897 | 2.7.117 released June 11, 2000 | |
4898 | ||
4899 | - bugfix in regression/Makefile.am | |
4900 | - countsize() renamed to countstones() | |
4901 | - new function findstones() | |
4902 | - life.c completely rewritten | |
4903 | - regression/games/marginal.sgf extended | |
4904 | - new life and optics tests | |
4905 | - depth values no longer reduced while running make_domains() | |
4906 | - revision of topological_eye()-calling code in dragon.c and mouse.c | |
4907 | - doc/utils.texi revised | |
4908 | ||
4909 | 2.7.116 released June 9, 2000 | |
4910 | ||
4911 | - goal now static to mouse.c | |
4912 | - mouse_attack() and mouse_defend() usage simplified | |
4913 | - mouse_effective_defense replaced by mouse_does_defend | |
4914 | - doc revision | |
4915 | - debugboard: strings renamed to worms | |
4916 | - debugboard now gives info about dragons | |
4917 | - debugboard now has a help screen | |
4918 | - color_to_string enhanced with eye colors also | |
4919 | - new function status_to_string in utils.c | |
4920 | - regression/Makefile.am revised so that make check also works with a | |
4921 | VPATH build | |
4922 | - STACK_SIZE revised and assertion added in incremental_board.c | |
4923 | - recognize_eyes2() now returns 0 if the eyespace is too large to evaluate | |
4924 | - assertion added in eyehash_index() in life.c | |
4925 | - size of hash table in life.c corrected | |
4926 | - new function location_set_get_size() | |
4927 | - bugfix in hadj() macro in optics.c | |
4928 | - gtp.c keeps track of the board size in a static variable | |
4929 | - one new reading test | |
4930 | ||
4931 | 2.7.115 released June 7, 2000 | |
4932 | ||
4933 | - regression/Makefile.am prepared for VPATH build | |
4934 | - compiling without curses works again, debugboard disabled in that case | |
4935 | - assert that color is BLACK or WHITE in do_trymove() | |
4936 | - pass move in minimize_eyes() scored and tested together with the other | |
4937 | legal moves | |
4938 | - bugfix in maximize_eyes() | |
4939 | - new GTP commands genmove_black and genmove_white | |
4940 | - eyes1.sgf, eyes2.sgf, and eyes3.sgf in regression/games/ extended | |
4941 | - new tests in optics.tst and life.tst | |
4942 | ||
4943 | 2.7.114 released June 6, 2000 | |
4944 | ||
4945 | - sniff_lunch revised and moved to mouse.c | |
4946 | - mouse code classifies boundary strings | |
4947 | - bugfix: mouse code was unsafe when stackp>0 | |
4948 | - new functions do_mouse_attack() and do_mouse_defend | |
4949 | - more careful includes in interface/debugboard/display.c | |
4950 | - bugfix in incremental_sloppy_self_atari() | |
4951 | - regression shell scripts revised | |
4952 | - global variable color_has_played eliminated | |
4953 | - new function stones_on_board() in board.c | |
4954 | - movenum no longer used in fuseki.c | |
4955 | - examine_position() avoids recomputing data that are up to date | |
4956 | - caching of mouse reading results is no longer using code 2 to indicate a | |
4957 | successful result for pass | |
4958 | - new workaround for mangling of cached negative move coordinates | |
4959 | - statistics functions reset_life_node_counter() and | |
4960 | get_life_node_counter() in life.c | |
4961 | - corresponding new GTP commands reset_life_node_counter and | |
4962 | get_life_node_counter | |
4963 | - life.tst, ld_life.tst, and ld_mouse_life.tst reports the total number of | |
4964 | nodes visited by the life code | |
4965 | - make_worms no longer returns anything | |
4966 | - correct answer for mouse test 37 revised | |
4967 | - temporary workaround in recognize_eye2(), chimeras are reported as one | |
4968 | and a half eye | |
4969 | - maximize_eyes() and minimize_eyes() score and sort the moves to test | |
4970 | - performance optimizations in maximize_eyes() and minimize_eyes(), | |
4971 | shortcut loops where possible unless all attack or defense moves are | |
4972 | asked for | |
4973 | - bugfix in maximize_eyes(), check for marginality when counting eyes | |
4974 | ||
4975 | 2.7.113 released June 5, 2000 | |
4976 | ||
4977 | - mouse lunches are sniffed | |
4978 | - sniff_lunch revised | |
4979 | - bugfix in mouse_find_lunches | |
4980 | - new global mouse_goal_color | |
4981 | - bugfix in mouse_topological_eye autohelper | |
4982 | - decidedragon messages corrected when tenuki wins | |
4983 | - mouse tuning | |
4984 | - new function location_to_string() in utils.c | |
4985 | - new function position_examine_position() in engine/interface.c | |
4986 | - new program debugboard located in interface/debugboard/ | |
4987 | - warning fixed in utils/gg_utils.c | |
4988 | - comments about mapping of colors for linux console moved from showbord.c | |
4989 | to utils/gg_utils.c | |
4990 | - unused define -DBUILDING_GNUGO_ENGINE removed from engine/Makefile.am | |
4991 | - config.h no longer included by moyo.c or showbord.c | |
4992 | - new functions suicide() and self_atari() in board.c | |
4993 | - a few approxlib() calls in reading.c replaced by suicide() and | |
4994 | self_atari() | |
4995 | - new files incident59.sgf, incident74.sgf, and reading02.sgf in | |
4996 | regression/games | |
4997 | - new mouse and reading test cases | |
4998 | ||
4999 | 2.7.112 released June 5, 2000 | |
5000 | ||
5001 | - optimizations of false_margin() | |
5002 | - safe_move() no longer called from make_domains() if mouse code enabled | |
5003 | - call to modify_eye_spaces1() from make_domains() disabled if mouse code | |
5004 | enabled | |
5005 | - bugfix in attack2() | |
5006 | - bugfix in break_chain2() | |
5007 | - duplicate comment block removed from reading.c | |
5008 | - new files incident169.sgf, incident246.sgf, incident91.sgf, and | |
5009 | reading01.sgf in regression/games | |
5010 | - regression/games/life_and_death/ld11.sgf slightly revised | |
5011 | - new mouse and reading test cases | |
5012 | ||
5013 | 2.7.111 released June 4, 2000 | |
5014 | ||
5015 | - comment added in attack4 | |
5016 | - mouse_attack and mouse_defend call make_domains when stackp==0 | |
5017 | - new files mouse04.sgf, incident185.sgf, incident186.sgf, | |
5018 | incident199.sgf, and incident225.sgf in regression/games/ | |
5019 | - new mouse and reading tests | |
5020 | ||
5021 | 2.7.110 released June 3, 2000 | |
5022 | ||
5023 | - init_color() in utils/gg_utils.c renamed to gg_init_color() to avoid | |
5024 | name collision with curses library function | |
5025 | ||
5026 | 2.7.109 released June 3, 2000 | |
5027 | ||
5028 | - HASH64 removed from configure.in and acconfig.h | |
5029 | - config.vcin brought in sync with config.h.in | |
5030 | - macro UCHAR_ALIAS replaced by char | |
5031 | - curses initialization and drawing code moved from moyo.c and showbord.c | |
5032 | to utils/gg_utils.c | |
5033 | - argument source_root removed from sgf_write_header | |
5034 | - new files games/mouse02.sgf and games/mouse03.sgf | |
5035 | - new tests, revised results | |
5036 | - MAX_MOVES increased to 3 in mouse.c | |
5037 | - attack4 tries a little harder | |
5038 | - tuning of mouse patterns | |
5039 | - life and death test cases 52-64 completed | |
5040 | ||
5041 | 2.7.108 released June 1, 2000 | |
5042 | ||
5043 | - mouse functions use a return code of 2 if tenuki works | |
5044 | - Zobrist hashing extended to mouse_attack and mouse_defend | |
5045 | - new function new_position() in board.c | |
5046 | - warning fixed in life.c | |
5047 | ||
5048 | 2.7.107 released May 31, 2000 | |
5049 | ||
5050 | - random.c and random.h moved from engine/ to utils/ | |
5051 | - gg_snprintf() and gg_gettimeofday() moved to new file utils/gg_utils.c | |
5052 | and corresponding header file utils/gg_utils.h | |
5053 | - new function gg_version() in utils/gg_utils.c | |
5054 | - safe move cache implemented for mouse_shapes_callback | |
5055 | - topological_eye autohelper function (taken down in 2.7.104) is back for mice | |
5056 | - topological eye takes both eyespaces as parameters | |
5057 | - 32 new life and death test cases, 1 new mouse test | |
5058 | ||
5059 | 2.7.106 released May 30, 2000 | |
5060 | ||
5061 | - tuning of mouse patterns | |
5062 | - fuseki9.db rebuilt from a larger set of games | |
5063 | - new game records and test cases | |
5064 | ||
5065 | 2.7.105 released May 29, 2000 | |
5066 | ||
5067 | - config.h only included by files which need it | |
5068 | - one new mouse pattern | |
5069 | - new test suite ld.tst with variations for --mouse and --life options; | |
5070 | added for real this time | |
5071 | - new dedicated fullboard pattern matcher for use with the fuseki | |
5072 | databases | |
5073 | - first move patterns in fuseki9.db and fuseki19.db no longer commented | |
5074 | out | |
5075 | - missing borders added in fuseki9.db and fuseki19.db | |
5076 | - number of preambles in mkpat.c reduced from three to one | |
5077 | - mkpat.c revised to also handle patterns for fullboard matcher | |
5078 | - bugfix in make_dragons(), lunches weren't propagated to the whole dragon | |
5079 | - one new pattern in eyes.db | |
5080 | - pattern Lunch2 in conn.db revised | |
5081 | - regression/games/marginal.sgf revised | |
5082 | - new optics and life regression test cases | |
5083 | ||
5084 | 2.7.104 released May 28, 2000 | |
5085 | ||
5086 | - topological_eye takes the eye_data as a parameter | |
5087 | - newgoal removed from mouse_attack | |
5088 | - mouse_attack wins if ALL strings of original dragon are taken | |
5089 | - topological_eye autohelper function temporarily taken down | |
5090 | - mouse apat A39 revised | |
5091 | - make_dragons does not add_lunch if lunch already eaten | |
5092 | - doc revision | |
5093 | - new function false_marginal_eye in life.c | |
5094 | - new eye pattern for 4 point linear eye with a false margin | |
5095 | - Tests for life and optics restructured | |
5096 | - New tests for false margins | |
5097 | - config.h only included by files which need it, plus still liberty.h | |
5098 | - new GTP command dragon_status | |
5099 | - new test suite ld.tst with variations for --mouse and --life options | |
5100 | - shell scripts in regression/ revised | |
5101 | - new game records ld1.sgf -- ld8.sgf in regression/games/life_and_death | |
5102 | ||
5103 | 2.7.103 released May 27, 2000 | |
5104 | ||
5105 | - new fields height and width added to the pattern struct | |
5106 | - bugfix in fixup_patterns_for_board_size() in matchpat.c; matching now | |
5107 | works correctly also when the board size changes between calls to | |
5108 | matchpat | |
5109 | - bugfixes in does_attack() and does_defend() in utils.c | |
5110 | - bugfix in false_margin() in optics.c | |
5111 | ||
5112 | 2.7.102 released May 26, 2000 | |
5113 | ||
5114 | - better documentation of life code in the source | |
5115 | - life.c handles false marginals | |
5116 | - new function: location_set_isempty() in location_set.c | |
5117 | - regression/games/marginal.sgf revised | |
5118 | - new optics and life tests | |
5119 | ||
5120 | 2.7.101 released May 25, 2000 | |
5121 | ||
5122 | - revised doc/gnugo-logo.jpg and doc/gnugo-logo.jpg | |
5123 | - new tests in reading.tst and mouse.tst | |
5124 | - bugfixes in test files | |
5125 | ||
5126 | 2.7.100 released May 24, 2000 | |
5127 | ||
5128 | - minimize_eyes and maximize_eyes simplified and bugfixed | |
5129 | - better documentation of the hash table in life.c | |
5130 | - some cleanup in life.c, optics.c | |
5131 | - new format character 'x' in vgprintf (utils.c) | |
5132 | - improved printing of pass moves when %m is used in vgprintf | |
5133 | - default life_eyesize increased to 8 | |
5134 | - new eye tests | |
5135 | ||
5136 | 2.7.99 released May 23, 2000 | |
5137 | ||
5138 | - suffix rules for .gtp and .res in regression/Makefile | |
5139 | - new regression files regression/*.tst | |
5140 | - regression shell scripts revised | |
5141 | - regression/expected removed | |
5142 | - several new files in regression/games | |
5143 | - several new regression tests | |
5144 | - regression/ directory now under control of automake | |
5145 | ||
5146 | 2.7.98 released May 22, 2000 | |
5147 | ||
5148 | - false marginals are renamed false margins | |
5149 | - eyespace search revised in mouse_determine_life | |
5150 | - new file regression/expected | |
5151 | - new targets in regression/Makefile | |
5152 | - regression/games/false_marginal.sgf renamed regression/games/marginal.sgf | |
5153 | - mouse tuning | |
5154 | - several new files in regression/games | |
5155 | - several new tests in regression/mouse.gtp, regression/eyes.gtp, and | |
5156 | regression/reading.gtp | |
5157 | - new GTP commands trymove, popgo, dump_stack, increase_depths, and | |
5158 | decrease_depths | |
5159 | - new function gtp_decode_move() in interface/gtp.c | |
5160 | - ko eyes assigned to a dragon so halfeye analysis is performed | |
5161 | - old regression files in regression/obsolete/ removed | |
5162 | ||
5163 | 2.7.97 released May 21, 2000 | |
5164 | ||
5165 | - false marginals are detected during make_domains | |
5166 | - new function false_marginal | |
5167 | - new file regression/games/false_marginal.sgf | |
5168 | - regression tests in regression/eyes reimplemented to use GTP | |
5169 | - regression shell scripts revised | |
5170 | - new targets in regression/Makefile to test optics and life code | |
5171 | - new global variable position_number which is increased any time a real | |
5172 | move (not a trymove) is made or the board is permanently changed by some | |
5173 | other means | |
5174 | - safe_move cache modified to use position_number instead of movenum | |
5175 | - caches in moyo.c modified likewise | |
5176 | - new function setup_board() in board.c | |
5177 | - the functions in engine/interface.c no longer modifies the global board | |
5178 | on their own | |
5179 | - new function gtp_finish_response in interface/gtp.c | |
5180 | - new gtp command eval_eye | |
5181 | ||
5182 | 2.7.96 released May 20, 2000 | |
5183 | ||
5184 | - GTP documented | |
5185 | - new file doc/gtp.texi | |
5186 | - reading test suite extended | |
5187 | - regression shell scripts revised | |
5188 | - bugfix in gtp_loadsgf() | |
5189 | - output from gtp_attack(), gtp_defend(), gtp_mouse_attack(), and | |
5190 | gtp_mouse_defend() revised | |
5191 | ||
5192 | 2.7.95 released May 19, 2000 | |
5193 | ||
5194 | - new interface: GTP, Go Text Protocol | |
5195 | - new files in interface/: gtp.c, gtp.h, and play_gtp.c | |
5196 | - old contents of regression/ moved to regression/obsolete/ | |
5197 | - new regression scripts and suits in regression/ | |
5198 | - doc/regression.texi revised | |
5199 | ||
5200 | 2.7.94 released May 18, 2000 | |
5201 | ||
5202 | - bugfixes in mouse.c | |
5203 | ||
5204 | 2.7.93 released May 16, 2000 | |
5205 | ||
5206 | - writesgf() split into sgf_write_header() and writesgf() | |
5207 | ||
5208 | 2.7.92 released May 14, 2000 | |
5209 | ||
5210 | - bugfix in utils.c, config.h included before using information from | |
5211 | configure tests | |
5212 | ||
5213 | 2.7.91 released May 14, 2000 | |
5214 | ||
5215 | - all functions in sgffile.c are now prefixed with sgffile_ instead of | |
5216 | sgf_ to separate them from functions which handle SGF trees | |
5217 | - some minor cleanup in dragon.c | |
5218 | - globals last_move_i, last_move_j made local to interface/play_ascii.c | |
5219 | - functions save_state() and restore_state() removed together with | |
5220 | variables white_captured_backup and black_captured_backup. | |
5221 | - move reasons are now sorted | |
5222 | - inclusion of sys/time.h made contingent on HAVE_SYS_TIME_H in utils.c | |
5223 | - inclusion of time.h and/or sys/time.h removed from hash.c and | |
5224 | interface/play_solo.c | |
5225 | - one new pattern in eyes.db | |
5226 | ||
5227 | 2.7.90 released May 12, 2000 | |
5228 | ||
5229 | - bugfixes in play_gmp.c, play_solo.c, and play_test.c; gameinfo correctly | |
5230 | initialized | |
5231 | - cleanup of play_gmp.c | |
5232 | ||
5233 | 2.7.89 released May 10, 2000 | |
5234 | ||
5235 | - bugfixes in main.c; decidestring, decidedragon, and decideeye options | |
5236 | work correctly again | |
5237 | - new function color_to_string() in utils.c | |
5238 | ||
5239 | 2.7.88 released May 9, 2000 | |
5240 | ||
5241 | - minor tuning of mouse_attackpats.db | |
5242 | - extended documentation of influence function | |
5243 | - new function unconditional_life() in utils.c | |
5244 | - MAX_STRINGS macro moved from incremental_board.h to liberty.h | |
5245 | - unused variable removed from do_pass() in play_ascii.c | |
5246 | ||
5247 | 2.7.87 released May 8, 2000 | |
5248 | ||
5249 | - guess_mode_from_sgf_comment() removed | |
5250 | - coordinates (-1, -1) are now always used for pass moves (rather than | |
5251 | (board_size, board_size)) | |
5252 | - obsolete and unused debug flags marked in gnugo.h | |
5253 | - inclusion of sys/types.h removed from gmp.c | |
5254 | - unused function str2short() removed from sgf_utils.c | |
5255 | - cleanup of play_solo.c, play_test.c, and sgf_utils.c | |
5256 | - bugfix: move number again passed from the interfaces to the engine | |
5257 | ||
5258 | 2.7.86 released May 7, 2000 | |
5259 | ||
5260 | - doc revision | |
5261 | - more comments in the code for multiple diagonals of a halfeye | |
5262 | - extended debug outputs in optics.c | |
5263 | - bugfix in hash.c | |
5264 | - new datataype Gameinfo | |
5265 | - Gameinfo used everywhere in interface/*.c | |
5266 | - Gameinfo used instead of Position in a few places otherwise | |
5267 | - new function: position_recordhand() | |
5268 | - board_size no longer public; moved from gnugo.h to liberty.h | |
5269 | - several small functions removed from interface/interface.c | |
5270 | - bugfix in regression/Makefile | |
5271 | - bugfix in mkpat.c | |
5272 | ||
5273 | 2.7.85 released May 5, 2000 | |
5274 | ||
5275 | - bugfix in recognize_eye() | |
5276 | ||
5277 | 2.7.84 released May 3, 2000 | |
5278 | ||
5279 | - multiple vital eye moves in conjunction with topological halfeyes | |
5280 | supported in both optics and life code | |
5281 | - compiler warnings fixed in interface/play_ascii.c and engine/interface.c | |
5282 | - parameter names added to function prototypes in interface/interface.h | |
5283 | ||
5284 | 2.7.83 released May 1, 2000 | |
5285 | ||
5286 | - new functions in engine/interface.c | |
5287 | - p[][], ko_i, ko_j, black_captured, white_captured moved from gnugo.h | |
5288 | to liberty.h, i.e. made local to the engine | |
5289 | - attack() and find_defense() also made local to the engine | |
5290 | - board handling functions removed from interface/interface.c | |
5291 | - all interface functions in interface/interface.c now use the Position | |
5292 | datatype | |
5293 | - sgfAddMoveFromTree() and sgfPlayTree() moved from sgfana.c to ttsgf.c | |
5294 | - minor tuning of mouse_defendpats.db | |
5295 | ||
5296 | 2.7.82 released April 30, 2000 | |
5297 | ||
5298 | - new file engine/interface.c included for real this time | |
5299 | - removed types SGFNodeP and SGFPropertyP | |
5300 | - play_solo() and play_gmp() now plays on a Position. | |
5301 | - get_moveXY moved from play_solo.c to sgf_utils.c | |
5302 | - minor cleanup in a number of places | |
5303 | - main.h moved from engine/ to interface/ | |
5304 | ||
5305 | 2.7.81 released April 28, 2000 | |
5306 | ||
5307 | - new function sniff_lunch (unused and untested) | |
5308 | - new function remove_string_and_mark | |
5309 | - originate_eye now public | |
5310 | - add_half_eye now takes half_eye array as an argument | |
5311 | - doc revision | |
5312 | - jump_out_helper() rewritten to use influence function rather than | |
5313 | strategic distance | |
5314 | - matchpat_db() renamed to matchpat() | |
5315 | - redundant autohelper function singleton() removed | |
5316 | ||
5317 | 2.7.80 released April 27, 2000 | |
5318 | ||
5319 | - bugfix in hash_rand() | |
5320 | - obsolete -DBUILDING_GNUGO_ENGINE removed from patterns/Makefile.am | |
5321 | - countlib2(), findlib2(), and approxlib2() renamed to countlib(), | |
5322 | findlib(), and approxlib() respectively | |
5323 | - minor tuning of influence.db | |
5324 | ||
5325 | 2.7.79 released April 26, 2000 | |
5326 | ||
5327 | - count of hash collisions added to the --statistics option | |
5328 | - new files random.c and random.h with an implementation of a twisted | |
5329 | GFSR random number generator | |
5330 | - all calls to rand() or random() replaced by calls to the local random | |
5331 | number generator | |
5332 | - test for random() removed from configure.in | |
5333 | ||
5334 | 2.7.78 released April 25, 2000 | |
5335 | ||
5336 | - sgf/sgf.c moved to the engine and renamed to sgffile.c | |
5337 | - sgf/sgf.h removed; declarations moved to gnugo.h and liberty.h | |
5338 | - removed a few declarations for non-existent functions from sgf_utils.h | |
5339 | - analyzerflag moved to globals.c | |
5340 | - new file: engine/interface.c | |
5341 | - some functions for handling positions. | |
5342 | - ttsgf_read.c and ttsgf_write.c integrated into ttsgf.c | |
5343 | - bugfix in sgfPlayTree() | |
5344 | - old approxlib() removed | |
5345 | - bugfix in life.c | |
5346 | - local random generator removed from hash.c | |
5347 | - cleanup of hash.c | |
5348 | - simplified typedefs in hash.h | |
5349 | ||
5350 | 2.7.77 released April 24, 2000 | |
5351 | ||
5352 | - doc of the colored influence displays added | |
5353 | - new function hashdata_diff_dump() for use in assertions | |
5354 | - local random generator in hash.c | |
5355 | - revised types in hashing code | |
5356 | - bugfix in semeai_analyzer() | |
5357 | - order of engine/ and pattern/ builds changed back | |
5358 | - extract_fuseki no longer built by default | |
5359 | - bugfixes in extract_fuseki.c | |
5360 | - tuning of influence.db | |
5361 | - bugfixes in patterns.db | |
5362 | ||
5363 | 2.7.76 released April 23, 2000 | |
5364 | ||
5365 | - revised assertions in add_stone() and remove_stone() | |
5366 | - declaration and initialization of color_has_played moved from interface/ | |
5367 | to engine/ | |
5368 | - hashtable_clear no longer crashes if passed a NULL pointer | |
5369 | - warning if hashtable allocation fails | |
5370 | - new database matching step in the fuseki module | |
5371 | - new experimental option --fusekidb to enable fuseki database matching | |
5372 | - new program patterns/extract_fuseki.c which compiles a fuseki database | |
5373 | in patterns.db format from a collection of game records | |
5374 | - new pattern databases fuseki9.db and fuseki19.db containing 9x9 and | |
5375 | 19x19 fuseki databases respectively | |
5376 | - bugfix in influence.c to stop a single stone from claiming the whole board | |
5377 | - libengine is now built before the patterns/ subdirectory is compiled | |
5378 | ||
5379 | 2.7.75 released April 20, 2000 | |
5380 | ||
5381 | - recognize_eye() and recognize_eye2() looks for all vital eye points and | |
5382 | passes them to the move generation | |
5383 | - eyes.db format extended for multiple vital moves and database revised | |
5384 | - liberty counting functions in incremental_board.c restructured to agree | |
5385 | with the new corresponding functions in board.c | |
5386 | - approxlib() and countlib() calls converted to countlib2(), findlib2(), | |
5387 | and approxlib2() calls | |
5388 | - countlib() macro removed | |
5389 | - accurate_approxlib() revised and accurate_countlib() macro removed | |
5390 | - autohelper lib() can now be used for stackp>0 | |
5391 | - TODO revised | |
5392 | ||
5393 | 2.7.74 released April 19, 2000 | |
5394 | ||
5395 | - obsolete code removed from genmove() | |
5396 | - board_t renamed to Intersection | |
5397 | - new Position struct added in gnugo.h | |
5398 | - print_influence() now prints everything to stderr | |
5399 | ||
5400 | 2.7.73 released April 18, 2000 | |
5401 | ||
5402 | - revised TODO | |
5403 | - renamed static function compile_for_match_new() back to | |
5404 | compile_for_match() | |
5405 | - removed all external calls to compile_for_match() | |
5406 | - minor cleanup in globals.c | |
5407 | - don't regard marginal eye points as real eyes in the life code | |
5408 | - neighbors to marginal eye points may be captured in the life code | |
5409 | ||
5410 | 2.7.72 released April 13, 2000 | |
5411 | ||
5412 | - old board code removed from board.c | |
5413 | - new functions countlib2(), findlib2(), and approxlib2(), intended to | |
5414 | replace approxlib() | |
5415 | ||
5416 | 2.7.71 released April 12, 2000 | |
5417 | ||
5418 | - bugfixes in the hashing code, now CHECK_HASHING works again | |
5419 | - pattern database code restructured, explicit calls to compile_for_match() | |
5420 | no longer needed | |
5421 | - apats.db renamed to mouse_attackpats.db and dpats.db renamed to | |
5422 | mouse_defendpats.db | |
5423 | - minor cleanup of dragon.c, life.c, optics.c, and patterns/patterns.h | |
5424 | - documentation of hashing added to doc/reading.texi | |
5425 | - cleanup of filllib.c | |
5426 | ||
5427 | 2.7.70 released April 10, 2000 | |
5428 | ||
5429 | - doc revision | |
5430 | - bug fix in fill_liberty | |
5431 | - compiler warning fix | |
5432 | - simplified implementation of double_threat() | |
5433 | - improved trace messages in confirm_safety() | |
5434 | - depth values increased during reading in confirm_safety() | |
5435 | ||
5436 | 2.7.69 released April 9, 2000 | |
5437 | ||
5438 | - bugfix in regression/eyes/test.sh | |
5439 | - revision of confirm_safety | |
5440 | - revision of review_move_reasons | |
5441 | - new function double_atari | |
5442 | - new function accurate_approxlib | |
5443 | - accurate_countlib takes *libi, *libj as parameters | |
5444 | - fill_liberty tries to avoid setting up double ataris | |
5445 | - doc revision | |
5446 | - load_and_analyze_sgf_file assumes color_has_played | |
5447 | - bugfix in mouse_determine_life | |
5448 | ||
5449 | 2.7.68 released April 7, 2000 | |
5450 | ||
5451 | - New switch --terse for test output | |
5452 | - Various minor cleanups | |
5453 | - life.c much commented | |
5454 | - regression tests for life code using --decideeye in regression/eyes | |
5455 | ||
5456 | 2.7.67 released April 5, 2000 | |
5457 | ||
5458 | - check for size of int and long in configure | |
5459 | - configure option --enable-hash64 | |
5460 | - separate options --life and --life_eyesize <n> | |
5461 | - reformatting of help string to fit 80 columns | |
5462 | - bugfix in play_ascii.c | |
5463 | - minor tuning of patterns.db | |
5464 | ||
5465 | 2.7.66 released April 4, 2000 | |
5466 | ||
5467 | - point of attack and point of defense considered separately by | |
5468 | compute_eyes(), recognize_eye(), topological_eye(), and half_eye_data | |
5469 | - make_dragons() now take color to play as parameter | |
5470 | - (defensei, defensej) renamed (defendi, defendj) in a number of places | |
5471 | - minor tuning of patterns2.db | |
5472 | ||
5473 | 2.7.65 released April 3, 2000 | |
5474 | ||
5475 | - removed trailing ',' symbols in enums in main.c and gmp.c | |
5476 | - extraneous declaration of deltai[] and deltaj[] removed from influence.c | |
5477 | - bugfixes in the CHECK_HASHING code | |
5478 | - bugfix in play_ascii.c, repeated save and load now works | |
5479 | - compile_for_match() added in two places | |
5480 | - keep track of attack and defense points of mouse_lunches | |
5481 | - revision of mouse_find_lunches() and mouse_lively() | |
5482 | - minor doc revision | |
5483 | - aesthetic reformatting in eyes.db | |
5484 | - declaration of incremental board functions moved from liberty.h to | |
5485 | incremental_board.h | |
5486 | - new function incremental_mark_string() in incremental_board.c | |
5487 | - replaced mouse_mark_strings() with a generic mark_string() in board.c | |
5488 | ||
5489 | 2.7.64 released April 2, 2000 | |
5490 | ||
5491 | - updated DJGPP info | |
5492 | - removed leading white space in windows.texi for more nicely formatted | |
5493 | info files | |
5494 | - removed obsolete workaround for a texi2html missing feature. | |
5495 | - added members defendi and defendj to struct eye_data | |
5496 | - recognize_eye2 now returns point of defense as well as point | |
5497 | of attack for an eye | |
5498 | - compute_eye now reports defense point as well as attack point | |
5499 | - recognize_eye2 now considers if the boundary of the eye is | |
5500 | captured during eye reading | |
5501 | - speed optimizations in recognize_eye2 | |
5502 | - 5 new functions in location_set.c | |
5503 | - small bugfix in showbord.c | |
5504 | - small bugfix(?) in main.c | |
5505 | - small cleanup in dragon.c | |
5506 | - new function mouse_effective_defense() | |
5507 | - if the mouse code is enabled, strategically_sound_defense() invokes | |
5508 | mouse_effective_defense() | |
5509 | ||
5510 | 2.7.63 released April 2, 2000 | |
5511 | ||
5512 | - new function attack1() to determine whether a string in atari can be | |
5513 | captured | |
5514 | - snapback() made obsolete and removed | |
5515 | ||
5516 | 2.7.62 released April 1, 2000 | |
5517 | ||
5518 | - bugfix in evaluate_diagonal_intersection() | |
5519 | - evaluate_diagonal_intersection moved to optics.c and made static | |
5520 | - new function topological_eye | |
5521 | - new autohelper option topological_eye | |
5522 | - doc revision | |
5523 | - mouse tuning | |
5524 | - hashvalue test whether matchpat is properly prepared for the board | |
5525 | position being matched | |
5526 | - compile_for_match() added in a few places | |
5527 | - modify_eye_spaces1() and find_cuts() not used when make_domains() is | |
5528 | called from the mouse code | |
5529 | - minor bugfixes in life.c and board.c | |
5530 | - minor tuning of patterns2.db | |
5531 | ||
5532 | 2.7.61 released March 31, 2000 | |
5533 | ||
5534 | - bugfix in recognize_eyes2() so it can be used for stackp>0 | |
5535 | - reloading of files in ascii mode is documented | |
5536 | - mouse code tries tenuki if no move of value >40 found | |
5537 | - dpat revision | |
5538 | - eye pattern 524 removed | |
5539 | - obsolete fixme removed from patterns2.db | |
5540 | - new function move_in_stack() in board.c | |
5541 | - improved debug output in life.c | |
5542 | - decideeye() disables trace outputs during make_worms() and make_dragons() | |
5543 | ||
5544 | 2.7.60 released March 30, 2000 | |
5545 | ||
5546 | - doc revision | |
5547 | - new option --life to enable the life code | |
5548 | - new function initialize_engine() in genmove.c | |
5549 | - bugfixes in sgf_decidedragon(), sgf_decideposition(), and decideeye() | |
5550 | - modify_eye_spaces1() only called from make_domains() if stackp==0 | |
5551 | - loop unrolling in accumulate_influence enabled | |
5552 | ||
5553 | 2.7.59 released March 29, 2000 | |
5554 | ||
5555 | - new file life.c with eye reading code | |
5556 | - new file location_set.c with a utility class that contains a set of | |
5557 | locations on the go board | |
5558 | - bew file location_set.h with headers for location_set.c | |
5559 | - bugfix in board.c which makes the allocation of hash nodes correct | |
5560 | - separation of the examination step of genmove() into it's own | |
5561 | function, examine_position(), and calls to this function in a number of | |
5562 | places | |
5563 | - some comments added in mouse.c plus some cleanup | |
5564 | - new option --decideeye which tells the status of an eye | |
5565 | - new function get_coordinate() in main.c | |
5566 | - black_eye and white_eye passed as arguments to make_domains | |
5567 | - private black_eye and white_eye arrays for mouse.c | |
5568 | - eye pattern added to eyes.db | |
5569 | - bugfix in unrolled accumulate_influence() | |
5570 | - bugfix in move_reasons.c | |
5571 | ||
5572 | 2.7.58 released March 28, 2000 | |
5573 | ||
5574 | - loop unrolling in accumulate_influence(), initially disabled by default | |
5575 | ||
5576 | 2.7.57 released March 27, 2000 | |
5577 | ||
5578 | - doc revision | |
5579 | - compile_for_match() called again after running mouse code from genmove() | |
5580 | - mouse_genmove() removed from utils.c (was unused) | |
5581 | - doc/MOUSE and doc/INFLUENCE removed from distribution, all material is | |
5582 | included in the Texinfo documentation | |
5583 | - matchpat aborts if color==EMPTY | |
5584 | - mouse_attack returns true if trymove captures | |
5585 | - unnecessary test eschewed in mouse_find_lunches | |
5586 | - corrected: debug flag set wrong in main.c with --mouse | |
5587 | ||
5588 | 2.7.56 released March 25, 2000 | |
5589 | ||
5590 | - optics.c: redefinition of lively for mousing | |
5591 | - new functions mouse_find_lunches and mouse_lively | |
5592 | - new DEBUG_MOUSE debug option | |
5593 | - does_attack and does_defend no longer require stackp==0 | |
5594 | - new apats and dpats | |
5595 | - doc revision | |
5596 | - sethand.c: bugfix in placehand(), use add_stone() instead of | |
5597 | manipulating p[][] directly | |
5598 | ||
5599 | 2.7.55 released March 25, 2000 | |
5600 | ||
5601 | - initialize dragon.mouse_attack and dragon.mouse_defend | |
5602 | - revaluation of joseki database | |
5603 | - hashing code revised for 64 bit architectures | |
5604 | - Makefile added to regression subdirectory and regress.sh revised | |
5605 | - minor tuning of patterns.db | |
5606 | - AUTHORS and doc/introduction.texi revised | |
5607 | ||
5608 | 2.7.54 released March 23, 2000 | |
5609 | ||
5610 | - revised eye patterns, prefer to play on marginal vital points | |
5611 | - doc revision | |
5612 | - introduction moved from incremental.c to texinfo | |
5613 | - special value 99 implemented for apats and dpats | |
5614 | - new apats and dpats | |
5615 | - AUTHORS and doc/introduction.texi revised | |
5616 | - accurate_countlib revised | |
5617 | - slow_findlib() added in incremental_board.c so that | |
5618 | incremental_findlib() and incremental_countlib() can handle all cases | |
5619 | ||
5620 | 2.7.53 released March 21, 2000 | |
5621 | ||
5622 | - bugfixes and other revisions of the incremental board code | |
5623 | - incremental board code enabled by default | |
5624 | - new function accurate_countlib() in utils.c | |
5625 | - a few countlib() calls replaced by accurate_countlib() | |
5626 | - minor bugfix in connection_value2 | |
5627 | ||
5628 | 2.7.52 released March 19, 2000 | |
5629 | ||
5630 | - bugfix: decidestring and decidedragons were getting depth 0 | |
5631 | - new apats and dpats | |
5632 | - minor cleanup of join_dragon invocations | |
5633 | - mouse code reports findings (temporary measure) | |
5634 | - doc revision | |
5635 | ||
5636 | 2.7.51 released March 18, 2000 | |
5637 | ||
5638 | - doc revision | |
5639 | - hurry >= 3 turns off some features | |
5640 | - adjust configure.in, config.vc and sgf/ttsgf.c | |
5641 | to test for vsnprintf instead of snprintf | |
5642 | - replace an embedded newline in a #defined | |
5643 | string in main.c with an explicit \n | |
5644 | - remove trailing ',' characters in enum | |
5645 | declarations | |
5646 | - include interface.h in sgf_utils.h so | |
5647 | that enum testmode is defined when declaring | |
5648 | guess_mode_from_sgf_comment. | |
5649 | - bugfix in break_through_helper() | |
5650 | ||
5651 | 2.7.50 released March 17, 2000 | |
5652 | ||
5653 | - new option --showtime makes genmove report its time | |
5654 | - new option --hurry decrements depth parameters | |
5655 | - hurry can be set during ascii play | |
5656 | - new global variables hurry and showtime | |
5657 | - gg_gettimeofday made global | |
5658 | - new global variables nominal_depth, nominal_backfill_depth, | |
5659 | nominal_fourlib_depth, and nominal_ko_depth | |
5660 | ||
5661 | 2.7.49 released March 15, 2000 | |
5662 | ||
5663 | - bugfix in make_dragons (--mouse could cause crash) | |
5664 | - bugfix in mouse_determine_life | |
5665 | - bugfix in vgprintf | |
5666 | - new function vital_chain | |
5667 | - new autohelper functions singleton and vital_chain | |
5668 | - mouse tuning | |
5669 | - new eye pattern | |
5670 | - mouse code documented | |
5671 | - string.h included in incremental_board.c to stop warning | |
5672 | - sgf functions cleaned up by passing around a file handle instead of | |
5673 | sharing a global one | |
5674 | - minor optimizations in break_chain() and relative_break_chain() | |
5675 | - minor changes and more comments in incremental_board.c | |
5676 | - stack implementation revised in incremental_board.h | |
5677 | ||
5678 | 2.7.48 released March 14, 2000 | |
5679 | ||
5680 | - new global variable mouse | |
5681 | - new functions mouse_reasons, add_mouse_attack_move, add_mouse_defend_move | |
5682 | - new option --mouse | |
5683 | - support for loading a position from file and continue playing with the | |
5684 | ascii interface | |
5685 | ||
5686 | 2.7.47 released March 13, 2000 | |
5687 | ||
5688 | - singleton() moved from utils.c to board.c | |
5689 | - new files incremental_board.c and incremental_board.h, supplying an | |
5690 | implementation of incremental board updates | |
5691 | - support for incremental board updates added to board.c but still disabled | |
5692 | - updateboard() made static to board.c | |
5693 | - return type of pushgo() and popgo() changed to void | |
5694 | - new function play_move() replaces updateboard() for use from interfaces | |
5695 | ||
5696 | 2.7.46 released March 10, 2000 | |
5697 | ||
5698 | - chainlinks() and chain() moved from reading.c to board.c | |
5699 | - find_origin() moved from utils.c to board.c | |
5700 | - count() made static to board.c | |
5701 | ||
5702 | 2.7.45 released March 9, 2000 | |
5703 | ||
5704 | - globals global_size, global_lib, global_libi, and global_libj eliminated | |
5705 | - new function countsize() in board.c | |
5706 | - tenuki (?) implemented for autohelpers | |
5707 | - two autohelpers in patterns.db and one in dpats.db use tenuki | |
5708 | - type omitted from findex entries | |
5709 | - decideposition takes a color option | |
5710 | - if (MOUSE) then showboard prints two diagrams | |
5711 | - new apats and dpats | |
5712 | - error messages in mkpat slightly revised | |
5713 | - Martijn van der Kooij and NNGS are thanked | |
5714 | - minor spelling corrections in Texinfo documentation | |
5715 | - windows.texi revised | |
5716 | ||
5717 | 2.7.44 released March 8, 2000 | |
5718 | ||
5719 | - globals size, lib, libi, libj renamed global_size, global_lib, | |
5720 | global_libi, global_libj | |
5721 | - new parameters to count(), approxlib(), and countlib() for passing | |
5722 | liberty locations | |
5723 | - bug fixed in mouse_determine_life which could cause crash | |
5724 | - new option --decideposition | |
5725 | - showboard can display mouse_status | |
5726 | - mouse_status computed in dragon.c | |
5727 | - a few new apats and dpats | |
5728 | - findex entries omit parameters | |
5729 | - windows installation instructions added to Texinfo documentation | |
5730 | ||
5731 | 2.7.43 released March 7, 2000 | |
5732 | ||
5733 | - connection_value2() revised | |
5734 | - type of potential_move array changed to int | |
5735 | - updated VC project files | |
5736 | ||
5737 | 2.7.42 released March 6, 2000 | |
5738 | ||
5739 | - mouse goal array changed from int to char | |
5740 | - C patterns implemented for mouse patterns | |
5741 | - bugfix in mouse_defense: misplaced popgo() popped | |
5742 | - new function goaldump for debugging | |
5743 | - new function mouse_mark (like count but does not mark liberties) | |
5744 | - new mouse patterns | |
5745 | - cleanup of interface.c | |
5746 | - pushgo() made static | |
5747 | - pattern profiling output now computes the total number of hits and | |
5748 | reading nodes | |
5749 | - O symmetry introduced in barriers.db | |
5750 | ||
5751 | 2.7.41 released March 5, 2000 | |
5752 | ||
5753 | - documentation revision | |
5754 | - new file doc/influence.texi | |
5755 | - move generation functions are documented in Texinfo | |
5756 | - influence.c functions are documented in Texinfo | |
5757 | - short section on Migration removed from move_generation.texi | |
5758 | - new pattern profiling option --profile_patterns | |
5759 | - minor tuning | |
5760 | - new symmetry class 'O' | |
5761 | - joseki pattern values reduced to a third | |
5762 | ||
5763 | 2.7.40 released March 4, 2000 | |
5764 | ||
5765 | - doc revision | |
5766 | - tryko returns 0 if suicide is attempted | |
5767 | - now --printsgf works with -L | |
5768 | - implementation of trymove() and tryko() unified | |
5769 | - minor optimization in attack_either() | |
5770 | - cleanup of utils.c | |
5771 | - experimental pattern CB327 in patterns.db | |
5772 | ||
5773 | 2.7.39 released March 1, 2000 | |
5774 | ||
5775 | - revision of patterns/apats.db and patterns.dpats.db | |
5776 | - default depth values restored to 2.6 level | |
5777 | - new functions set_temporary_depth_values() and restore_depth_values() | |
5778 | in utils.c | |
5779 | - depth values temporarily decreased while computing influence | |
5780 | - bugfix in tryko() | |
5781 | ||
5782 | 2.7.38 released February 29, 2000 | |
5783 | ||
5784 | - handle handicap stones in sgf files correctly | |
5785 | - bugfix in mouse.c | |
5786 | - trymove() replaced by tryko() in compute_move_influence | |
5787 | ||
5788 | 2.7.37 released February 28, 2000 | |
5789 | ||
5790 | - point to strings instead of copying them in mouse.c | |
5791 | - more than two moves per position can now be handled by the mouse code by | |
5792 | increasing the value of MAX_MOVES | |
5793 | - B class patterns in dpats.db inhibit addition of the stone to the dragon | |
5794 | - AUTHORS, THANKS, and doc/introduction.texi revised | |
5795 | - two eye patterns revised | |
5796 | - bugfix in sgfOverwritePropertyInt() in ttsgf.c | |
5797 | - sethand() split into two halves to make it more flexible | |
5798 | - play_ascii.c revised to deal correctly with handicap stones | |
5799 | ||
5800 | 2.7.36 released February 27, 2000 | |
5801 | ||
5802 | - dragon.c: serious bug fixed in topological eye evaluation | |
5803 | - substantial revision of mouse.c | |
5804 | - new patterns in apats.db and dpats.db | |
5805 | - sgf.c: revision of decidedragon | |
5806 | - doc expanded of certain autohelper functions | |
5807 | - Jamal Hannah's typing Gnu acknowledged as logo source | |
5808 | - documentation of influence function begun in doc/INFLUENCE | |
5809 | ||
5810 | 2.7.35 released February 26, 2000 | |
5811 | ||
5812 | - mouse_attack and mouse_defend avoid some duplicate eyespace evaluations | |
5813 | - missing eye pattern in eyes.db | |
5814 | - sgf_decidedragon correctly invoked from main.c | |
5815 | - close sgf file before reopening it | |
5816 | - do not close stdout in sgf_close_file | |
5817 | - print_eye revised to give nice output also when stackp>0 | |
5818 | ||
5819 | 2.7.34 released February 25, 2000 | |
5820 | ||
5821 | - experimental mouse code | |
5822 | - gnugo.eps and gnugo.jpg renamed gnugo-logo.eps and gnugo-logo.jpg | |
5823 | ||
5824 | 2.7.33 released February 23, 2000 | |
5825 | ||
5826 | - VC project files and WINDOWS revised | |
5827 | ||
5828 | 2.7.32 released February 22, 2000 | |
5829 | ||
5830 | - reading cache cleared once it becomes full | |
5831 | - -M option now takes float argument | |
5832 | - -M 0 no longer causes a floating exception | |
5833 | ||
5834 | 2.7.31 released February 21, 2000 | |
5835 | ||
5836 | - VC project files adapted from 2.6 | |
5837 | - win/ directory with makefile brought over from 2.6 | |
5838 | - bugfix in main.c, optind replaced by gg_optind | |
5839 | - WINDOWS revised | |
5840 | - minor assorted cleanups | |
5841 | ||
5842 | 2.7.30 released February 19, 2000 | |
5843 | ||
5844 | - cleaned up code for debuginfluence option | |
5845 | - general cleanup of main.c | |
5846 | - minor tuning of patterns2.db | |
5847 | - AUTHORS, THANKS, and README brought up to date with 2.6 | |
5848 | - TODO revised | |
5849 | - Added news for 2.6 in NEWS | |
5850 | - WINDOWS brought over from 2.6 | |
5851 | - year 2000 added in copyright notices everywhere | |
5852 | - emacs interface added from 2.6 | |
5853 | - gnugo.jpg added from 2.6 | |
5854 | - gnugo.eps built by encapsulating gnugo.jpg into postscript level 2 using | |
5855 | jpeg2ps | |
5856 | - Texinfo documentation merged with late changes from 2.6 | |
5857 | - various other late changes from 2.6 merged | |
5858 | ||
5859 | 2.7.29 released February 11, 2000 | |
5860 | ||
5861 | - tuning of barriers.db, endgame.db, and patterns.db | |
5862 | - sprintf replaced by vsprintf in gg_snprintf | |
5863 | - spelling corrections | |
5864 | - TODO revised | |
5865 | - unreachable code in hashdata_init() commented out | |
5866 | - UNUSED and ON_BOARD macros moved to liberty.h | |
5867 | - special_rescue() made more general | |
5868 | - calls to special_rescue() also in defend3() | |
5869 | ||
5870 | 2.7.28 released February 8, 2000 | |
5871 | ||
5872 | - bugfix in break_through() | |
5873 | - tuning of conn.db, influence.db, patterns.db, and patterns2.db | |
5874 | - various minor fixes to eliminate warnings on certain platforms | |
5875 | - opterr, optind, and optopt prefixed with gg_ to allow building with | |
5876 | profiling | |
5877 | ||
5878 | 2.7.27 released February 6, 2000 | |
5879 | ||
5880 | - copying.texi added for real this time | |
5881 | - minor revision of patterns.texi | |
5882 | - various code revisions in influence.c | |
5883 | - new functions for segmenting connected regions of territory, moyo, and | |
5884 | area added to influence.c | |
5885 | - -m option can take hexadecimal values | |
5886 | - tuning of barriers.db, influence.db, conn.db, patterns.db, and | |
5887 | patterns2.db | |
5888 | - conn.db reorganized | |
5889 | - retuning of joseki patterns | |
5890 | - corner moves in fuseki.c retuned | |
5891 | - minor revisions of move_reasons.c | |
5892 | - workaround to avoid black characters on black background in showbord.c | |
5893 | - we no longer add half eyes when eye.dragoni == -1 | |
5894 | ||
5895 | 2.7.26 released January 31, 2000 | |
5896 | ||
5897 | - endgame patterns split off from patterns.db to endgame.db and matched | |
5898 | separately | |
5899 | - influence_delta_territory results cached | |
5900 | - tuning of barriers.db, conn.db, patterns.db, and patterns2.db | |
5901 | - new eye pattern from 2.5.63 | |
5902 | - new option --debuginfluence to help tuning influence function | |
5903 | - listing of worms includes origins of corresponding dragons | |
5904 | - bugfix in move_reasons.c; don't accept cuts or connections of one dragon | |
5905 | and itself | |
5906 | ||
5907 | 2.7.25 released January 29, 2000 | |
5908 | ||
5909 | - AUTHORS, INSTALL, and THANKS revised | |
5910 | - GPL added to texinfo documentation | |
5911 | - small_semeai() documented in texinfo documentation | |
5912 | - autohelper call moved from matchpat() to callback | |
5913 | - possible to pass auxiliary data through matchpat() to callback | |
5914 | - DEPTH decreased from 14 to 12, BACKFILL_DEPTH from 8 to 6, and KO_DEPTH | |
5915 | from 8 to 6 | |
5916 | - new functions for drawing boards for debug output | |
5917 | - symbolic names for colors | |
5918 | - influence function implemented in influence.c and influence.h | |
5919 | - new patterns to assist influence function in patterns/barriers.db and | |
5920 | patterns/influence.db | |
5921 | - terri renamed to territory in a number of places | |
5922 | - revised heuristics to decide when a tactical defense is strategically | |
5923 | sound, using influence values | |
5924 | - territorial value estimated with influence_delta_territory() instead of | |
5925 | delta_terri() from moyo module | |
5926 | - influence value estimated with influence module functions instead of | |
5927 | delta_moyo() from moyo module | |
5928 | - secondary_value weighted down substantially in computation of total move | |
5929 | value | |
5930 | - symbolic names for printmoyo values | |
5931 | - local optimizations in shapes_callback() to avoid unnecessary reading | |
5932 | - increased depth values when evaluating reading constraints disabled to | |
5933 | improve speed | |
5934 | - new patterns in conn.db | |
5935 | - local optimization in connections.c, don't evaluate autohelper if there | |
5936 | is nothing to amalgamate | |
5937 | - autohelper functions xarea, oarea, xmoyo, omoyo, xterri, and oterri | |
5938 | changed to use functions from influence module | |
5939 | - separate flag to mkpat to decide anchoring policy | |
5940 | - tuning of patterns.db and patterns2.db | |
5941 | ||
5942 | 2.7.24 released January 27, 2000 | |
5943 | ||
5944 | - cleanup of the interface/ files | |
5945 | - minor revision to doc/using.texi | |
5946 | - doc/reading.texi updated from 2.5.62 | |
5947 | ||
5948 | 2.7.23 released January 26, 2000 | |
5949 | ||
5950 | - removed inclusion of unistd.h where unnecessary | |
5951 | - include io.h on platforms where unistd.h not available | |
5952 | - remove unused files utils/long-options.[ch] utils/closeout.[ch], and | |
5953 | utils/error.h | |
5954 | - fixed getopt warnings by renaming the getopt in utils/ to gg-getopt | |
5955 | - TODO revised | |
5956 | - -M option repaired | |
5957 | - bugfix in init_gnugo() in board.c; don't do everything twice | |
5958 | - default size of reading cache increased from 8 MB to 32 MB | |
5959 | - docs/ directory replaced by doc/ with texinfo documentation from 2.5.60 | |
5960 | - gnugo.6 man page moved from top directory to doc/ | |
5961 | - /docs/WINDOWS updated from 2.5.60 and moved to top directory | |
5962 | ||
5963 | 2.7.22 released January 20, 2000 | |
5964 | ||
5965 | - always use strtok in play_ascii.c and skip strsep | |
5966 | - cleanup in configure.in | |
5967 | - bugfix in play_solo.c | |
5968 | - configure test for gettimeofday in interface/ | |
5969 | - HAVE___FUNCTION__ moved to the right position in acconfig.h | |
5970 | - in configure.in, add -lwsock32 to $LIBS for the mingw32 environment | |
5971 | for the select call in gmp.c | |
5972 | - include windows.h and windows32/sockets.h to get definitions for fd_set, | |
5973 | select and FD_* macros in gmp.c | |
5974 | - incorrect "abort;" changed to "abort();" in several places | |
5975 | - TODO item about converting documentation into texinfo marked as done | |
5976 | ||
5977 | 2.7.21 released January 17, 2000 | |
5978 | ||
5979 | - confirm_safety() called from review_move_reasons() in order to avoid | |
5980 | certain blunders | |
5981 | - the search for lunches moved to the end of make_worms() | |
5982 | ||
5983 | 2.7.20 released January 16, 2000 | |
5984 | ||
5985 | - removed unused file utils/getdate.c from distribution | |
5986 | - pattern Eye2 taken out from conn.db as workaround to a bug | |
5987 | - only victims with attack code 1 or 2 are considered lunch | |
5988 | - separation of interface into a public and a private part; liberty.h | |
5989 | split into gnugo.h for external interface and liberty.h for internal | |
5990 | interface | |
5991 | - dragon_status() renamed to compute_dragon_status() | |
5992 | - new function dragon_status() hiding dragon_data struct | |
5993 | - default cached function is only attack() | |
5994 | - new function is_worm_origin() | |
5995 | - new function confirm_safety() | |
5996 | - update the files getopt.c getopt1.c and getopt.h in utils/ to glibc-2.1.2 | |
5997 | - add a file README in the utils directory explaining where the getopt | |
5998 | files come from. | |
5999 | - make utils the first subdirectory to compile | |
6000 | - link in utils/libutils.a when linking mkpat.c | |
6001 | ||
6002 | 2.7.19 released January 13, 2000 | |
6003 | ||
6004 | - unsigned char changed into signed char in sgfana.c, ttsgf.c, and | |
6005 | ttsgf_write.c to eliminate DEC-cc warnings. | |
6006 | ||
6007 | 2.7.18 released January 12, 2000 | |
6008 | ||
6009 | - src directory renamed to engine | |
6010 | ||
6011 | 2.7.17 released January 10, 2000 | |
6012 | ||
6013 | - cleanup in moyo.c, eliminating DEC-cc compiler warnings | |
6014 | - main.c moved from src/ to interface/ | |
6015 | - dragon.weak renamed dragon.safety | |
6016 | ||
6017 | 2.7.16 released January 8, 2000 | |
6018 | ||
6019 | - cleanup in configure.in | |
6020 | - cleanup in make_proper_eye_space() | |
6021 | - autohelper functions for modifying eyespace | |
6022 | - more debug output for DEBUG_EYES | |
6023 | - tuning | |
6024 | - one new pattern in eyes.db | |
6025 | ||
6026 | 2.7.15 released January 6, 2000 | |
6027 | ||
6028 | - cleanup in configure.in | |
6029 | - configure tests for random and alarm | |
6030 | - embedded newline removed from a string in mkeyes.c | |
6031 | - extra pair of braces to avoid ambiguous else in optics.c | |
6032 | - compiler warning about snprintf eliminated from ttsgf.c | |
6033 | - documentation about dragon.status and dragon.weak revised in docs/DRAGON | |
6034 | - attack() is more cautious about snapbacks | |
6035 | - dragon_status() revised to consider a missing case | |
6036 | - docs/PATTERNS fully revised | |
6037 | - slight revision of the definition of higher order liberties, in an attempt | |
6038 | to fix escape_route problem | |
6039 | - reading depths increased with the number of explicitly placed stones | |
6040 | in autohelpers | |
6041 | - minor cleanup in utils.c | |
6042 | - patterns shuffled around in patterns.db and patterns2.db | |
6043 | - two extra matching pattern steps to modify eyespaces, patterns temporarily | |
6044 | hosted in conn.db | |
6045 | - not_lunch patterns moved to conn.db and matched together with eye space | |
6046 | modifying patterns | |
6047 | - autohelpers can now also be used in conn.db patterns with no '*' | |
6048 | - minor revision of escape.db | |
6049 | - dont_attack_helper removed since it was no longer in use | |
6050 | - remaining references to EXPERIMENTAL_MOVEGEN removed | |
6051 | - bugfix in add_half_eye() | |
6052 | - new function make_proper_eye_space() in optics.c for use from autohelpers | |
6053 | - tuning | |
6054 | ||
6055 | 2.7.14 released January 4, 2000 | |
6056 | ||
6057 | - four vgprintf calls in utils.c changed to vprintf calls | |
6058 | - variable sized arrays changed to fixed size in sgfana.c | |
6059 | - declaration of board_size in ttsgf.h made consistent with liberty.h | |
6060 | - removed embedded newlines in strings in mkeyes.c and main.c | |
6061 | - escape.db patterns revised | |
6062 | - bugfix in matchpat | |
6063 | - revised heuristics for non-matched eye shapes | |
6064 | - tuning | |
6065 | ||
6066 | 2.7.13 released January 3, 2000 | |
6067 | ||
6068 | - help debug prints default hash memory | |
6069 | - decidestring reports even if verbose=0 | |
6070 | - print_eye() documented, prototype moved | |
6071 | - documentation in docs/PATTERNS partially updated to reflect changes | |
6072 | in pattern format | |
6073 | - bugfix in mkpat.c | |
6074 | - bugfix in getopt string | |
6075 | - bugfixes in trace messages in shapes.c | |
6076 | - new function dragon_status2() using new escape route measure in | |
6077 | the escape2 field (not yet in actual use) | |
6078 | - new patterns in escape.db | |
6079 | - tuning | |
6080 | ||
6081 | 2.7.12 released January 2, 2000 | |
6082 | ||
6083 | - configure option to revert to sprintf if neither snprintf or g_snprintf | |
6084 | found | |
6085 | - command line option -M (--memory) to specify hashtable size | |
6086 | - bugfixes in board.c | |
6087 | ||
6088 | 2.7.11 released January 2, 2000 | |
6089 | ||
6090 | - all remaining patterns in patterns.db adapted to new move generation scheme | |
6091 | - format of ":" lines in pattern databases changed | |
6092 | - joseki.c updated to produce new database format | |
6093 | - patterns in conn.db can have action lines | |
6094 | - three new autohelpers: dragonsize(), wormsize(), and potential_cutstone() | |
6095 | - patterns are no longer sorted in mkpat and min weight optimization | |
6096 | removed from matchpat | |
6097 | - updated documentation of autohelpers in docs/PATTERNS | |
6098 | - value field in worm_data and dragon_data obsoleted and removed | |
6099 | - obsolete section removed from docs/PATTERNS | |
6100 | - obsolete pattern classes Q and q removed, remaining ones slightly reordered | |
6101 | - B, C, a, d patterns work on up to five dragons (previously max two or one) | |
6102 | - improved tunability of patterns, possible to specify min and max | |
6103 | territorial and total values | |
6104 | - many helpers converted to constraints and removed | |
6105 | - join_dragons() no longer need to be called with origins of dragons | |
6106 | - wind assistance and moyo assistance functions obsoleted and removed | |
6107 | - connection_value() and compute_score() obsoleted and removed | |
6108 | - attack_either move reason rejected if one of the strings is defenseless | |
6109 | - old style move values no longer used in move generation | |
6110 | - shape value effect changed from additive to multiplicative | |
6111 | - random contribution to move value decreased | |
6112 | - tuning | |
6113 | ||
6114 | 2.7.10 released December 28, 1999 | |
6115 | ||
6116 | - changes from 2.5.47--2.5.52 merged into eyes.db | |
6117 | - tuning | |
6118 | - unused helpers and patterns removed | |
6119 | - many patterns in patterns.db adapted to new move generation scheme | |
6120 | - linear eyes of size 6 with one marginal eye fixed in eyes.db | |
6121 | ||
6122 | 2.7.9 released December 27, 1999 | |
6123 | ||
6124 | - bugfixes and cleanups in configure.in and various Makefile.am | |
6125 | - bugfix in move valuation | |
6126 | - bugfix in add_half_eye: remember to adjust marginal_neighbors | |
6127 | - bugfix in defend1: consider case of 4 liberties after extend | |
6128 | - breakchain2: try_harder to break chain | |
6129 | - bugfix in singleton() | |
6130 | ||
6131 | 2.7.8 released December 23, 1999 | |
6132 | ||
6133 | - break_chain2 considers a few extra possibilities | |
6134 | - stricter syntax checking in mkpat.c | |
6135 | - bugfixes in pattern databases | |
6136 | - caching of read results indexed also on stackp | |
6137 | - warning eliminated in dragon.c | |
6138 | - implementation of tracing of read results revised | |
6139 | - one new pattern in escape.db | |
6140 | - new escape route algorithm documented in docs/DRAGON | |
6141 | ||
6142 | 2.7.7 released December 21, 1999 | |
6143 | ||
6144 | - More verbose autoconf test for __FUNCTION__ | |
6145 | - bugfix and cleanup in patterns/Makefile.am | |
6146 | - Split utils.c into board.c and utils.c | |
6147 | - Cleanup of both files. | |
6148 | - Fix a warning in fuseki.c | |
6149 | - minor tuning | |
6150 | - one new pattern in conn.db | |
6151 | - improved trace messages for read results, contingent on TRACE_READ_RESULTS | |
6152 | ||
6153 | 2.7.6 released December 19, 1999 | |
6154 | ||
6155 | - READ_RETURN0 macro redefined in reading.c | |
6156 | - makes consistent the inequalities in reading.c | |
6157 | - misspelling of "propagate" corrected | |
6158 | - experimental implementation of new escape route algorithm | |
6159 | - new file: patterns/escape.db | |
6160 | - DEBUG_HEY (obsolete) replaced by DEBUG_ESCAPE | |
6161 | - one new pattern in conn.db | |
6162 | - new autohelpers: same_dragon and same_worm | |
6163 | - minor tuning | |
6164 | - bugfix in rr_set_result_ri_rj() macro | |
6165 | - bugfix in compile_for_match() | |
6166 | - don't allocate hash table space in find_defense if more than four liberties | |
6167 | - bugfixes in defend3() | |
6168 | - two compiler warnings eliminated in semeai.c | |
6169 | - bugfixes in attack_callback() and defense_callback in worm.c | |
6170 | ||
6171 | 2.7.5 released December 18, 1999 | |
6172 | ||
6173 | - elimination of stackp<depth contingency in break_chain2 call from defend2 | |
6174 | - reordering of the nodes in break_chain2 for minor speedup | |
6175 | - minor cleanup in reading.c (elimination of unnecessary braces) | |
6176 | - bugfix in attack2 | |
6177 | - bugfix in moyo.c | |
6178 | - minor tuning | |
6179 | - cleanup and revised trace messages in shapes.c | |
6180 | - old style C and B patterns taken out from patterns.db | |
6181 | - debug messages converted to trace messages in move_reasons.c | |
6182 | ||
6183 | 2.7.4 released December 17, 1999 | |
6184 | ||
6185 | - caching of read results fully disabled when stackp>=depth | |
6186 | - dead code cleaned away from reading.c | |
6187 | ||
6188 | 2.7.3 released December 16, 1999 | |
6189 | ||
6190 | - minor tuning | |
6191 | - cleanup of patterns and helpers | |
6192 | - cleanup of matchpat() | |
6193 | - attack and defense patterns moved from patterns.db/patterns2.db to | |
6194 | new files attack.db and defense.db | |
6195 | - attack and defense patterns matched during make_worms() | |
6196 | - error message instead of segmentation fault when using -L without -l | |
6197 | - testmode output modified | |
6198 | - cleanup of ttsgf.c, ttsgf_read.c, and ttsgf_write.c | |
6199 | - improved configure detection of snprintf | |
6200 | - cleanup in Makefile.am and patterns/Makefile.am | |
6201 | - configure tests for gcc specific macro __FUNCTION__ | |
6202 | - bugfix in sgf/Makefile.am | |
6203 | - in break_chain, removed stackp<depth contingency | |
6204 | - bug fix in break_chain2 | |
6205 | - two calls to naive_ladder removed | |
6206 | - fixed two uses of DEPTH where depth was intended in reading.c | |
6207 | - FIXME's in reading.c addressed | |
6208 | ||
6209 | 2.7.2 released December 12, 1999 | |
6210 | ||
6211 | - bugfixes in patterns/Makefile | |
6212 | - cleanup of sgf.c, sgfgen.c, sgf_utils.c, and sgfana.c | |
6213 | - bug fixed in small_semeai which could cause crash | |
6214 | - remember to close file in play_gmp.c | |
6215 | - Jago mentioned in README | |
6216 | - All worm_data and dragon_data fields documented in DRAGON | |
6217 | - code specific to old generation scheme cleaned away | |
6218 | - file attdef.c removed | |
6219 | - fuseki.c reverted to version 2.3.47 and slightly modified | |
6220 | - cleanup of genmove.c | |
6221 | ||
6222 | 2.7.1 released December 10, 1999 | |
6223 | ||
6224 | - minor tuning | |
6225 | - bugfix in defend4 | |
6226 | - cleanup of Makefile.am | |
6227 | - minor tweak of move valuation | |
6228 | ||
6229 | 2.5.46 released December 6, 1999 | |
6230 | ||
6231 | - bugfix in autoconf test for glib-config | |
6232 | - minor tuning | |
6233 | - defend_both() tries a little harder to find an effective move | |
6234 | - find_lunch() now also looks diagonally for food | |
6235 | ||
6236 | 2.5.45 released December 2, 1999 | |
6237 | ||
6238 | - minor tuning | |
6239 | - bugfix in fill_liberty() | |
6240 | - changed semantics for strategical defense in shapes() | |
6241 | - reading.c: corrected a few places where the wrong return value was cached | |
6242 | ||
6243 | 2.5.44 released December 1, 1999 | |
6244 | ||
6245 | - minor tuning | |
6246 | - small tweak in move valuation | |
6247 | - init_board() in joseki.c renamed to avoid collision | |
6248 | - added assertion in filllib.c | |
6249 | - removed assertions in vgprintf() | |
6250 | - simplified handling of read result cache in reading.c | |
6251 | - improved configuring for glib | |
6252 | - AC_EXEEXT macro added for clean install on DOS/Windows | |
6253 | ||
6254 | 2.5.43 released November 27, 1999 | |
6255 | ||
6256 | - one new eye pattern | |
6257 | - not_lunch_helper converted into an autohelper function | |
6258 | - minor revision of hoshi.sgf | |
6259 | - numerous old style patterns no longer considered by new move generation | |
6260 | - tuning of patterns2.db | |
6261 | - new reading function: naive_ladder() | |
6262 | - docs/DRAGON updated with information about worm.cutstone2 | |
6263 | - further cleaning of liberty.h | |
6264 | ||
6265 | 2.5.42 released November 24, 1999 | |
6266 | ||
6267 | Makefile.am | |
6268 | - added a dist-hook rule (see automake documentation) | |
6269 | to remove the built source from patterns.c from the | |
6270 | distribution prior to tar-zipping it. | |
6271 | NEWS | |
6272 | - added line containing version number. with the --gnits | |
6273 | option make dist checks for the presence of the version number | |
6274 | patterns/Makefile.am | |
6275 | - activated the BUILT_SOURCES macro for conn.c patterns.c eyes.c | |
6276 | sgf/Makefile.am | |
6277 | - removed $(srcdir) from BUILT_SOURCES macro. Otherwise | |
6278 | automake won't run. This apparently doesn't break VPATH | |
6279 | building. | |
6280 | - added sgf_properties.h to noinst_HEADERS. Otherwise it isn't | |
6281 | added to the distribution. | |
6282 | src/Makefile.am | |
6283 | - added a noinst_HEADERS macro. Otherwise the headers don't go | |
6284 | into the distribution. | |
6285 | ||
6286 | 2.5.41 released November 23, 1999 | |
6287 | ||
6288 | - bugfix in defend2 | |
6289 | - cleanup of liberty.h | |
6290 | - one new pattern in conn.db | |
6291 | - move generation considers the strategical value of saving lunches | |
6292 | - joseki patterns retuned | |
6293 | - minor revisions of patterns.db | |
6294 | - tuning of patterns2.db | |
6295 | - ko stones considered dead | |
6296 | - tweaks in move generation code | |
6297 | - bugfix in make_worms() | |
6298 | ||
6299 | 2.5.40 released November 21, 1999 | |
6300 | ||
6301 | - empty SUBDIR macros removed | |
6302 | - file- and directory names assigned to the EXTRA_DIST macros | |
6303 | ||
6304 | 2.5.39 released November 21, 1999 | |
6305 | ||
6306 | - default backfill_depth reduced to 8 | |
6307 | - bugfix in defend1 | |
6308 | - prioritization of moves in attack3 and defend3 | |
6309 | - bugfix in attack2 | |
6310 | - one new eye pattern | |
6311 | - several new move reasons | |
6312 | - several new pattern classes | |
6313 | - maximum number of patterns increased to 3000 in mkpat.c | |
6314 | - minor tuning of patterns.db | |
6315 | - block/expand and fuseki patterns adapted to new move generation scheme | |
6316 | - bugfixes and tweaking of move generation | |
6317 | ||
6318 | 2.5.38 released November 14, 1999 | |
6319 | ||
6320 | - bugfixes in the move valuation debug output | |
6321 | - various tweaks to the move valuation | |
6322 | - new move reasons: attack_either and defend_both (e.g. double atari) | |
6323 | - minor tuning of patterns.db and patterns2.db | |
6324 | - revised heuristics for dragon vitality | |
6325 | - eliminated a compiler warning in reading.c | |
6326 | - safe_move() now accepts moves that can only be captured with ko | |
6327 | - patch to automake in docs/automake-1.4.patch | |
6328 | ||
6329 | 2.5.37 released November 13, 1999 | |
6330 | ||
6331 | - move valuation core rewritten | |
6332 | - missing reasons added to list_move_reasons() | |
6333 | - two new eye patterns | |
6334 | - improved debug output in recognize_eye() | |
6335 | - minor tuning | |
6336 | - change_attack and change_defense modify worm.attack and worm.defend | |
6337 | - attack2 and defend2 try a few extra possibilities | |
6338 | - revised small_semeai | |
6339 | ||
6340 | 2.5.36 released November 11, 1999 | |
6341 | ||
6342 | - minor revision of docs/MOVE_GENERATION | |
6343 | - "pass" ignored in nngs_endgame() | |
6344 | - two new patterns in conn.db | |
6345 | - minor tuning of patterns.db and patterns2.db | |
6346 | - bugfix in make_worms() | |
6347 | - minor code restructuring in move_reasons.c | |
6348 | - some test code in moyo.c disabled | |
6349 | - bugfixes and changes to --testmode | |
6350 | ||
6351 | 2.5.35 released November 7, 1999 | |
6352 | ||
6353 | - bugfix in break_through() | |
6354 | - cleanup in moyo.c | |
6355 | - cleanup in worm.c | |
6356 | - revisions to docs/READING | |
6357 | - bugfix in find_defense | |
6358 | - revision of ko code in attack2 and break_chain2 | |
6359 | - two new find_lunch patterns | |
6360 | ||
6361 | 2.5.34 released November 6, 1999 | |
6362 | ||
6363 | - new function try_ko() based on trymove() takes an illegal ko | |
6364 | - optimization: defend2 tries the move that gives more liberties first | |
6365 | - ko modifications to break_chain, break_chain2, defend2 and attack3 | |
6366 | - new field ko_depth and -K (--kodepth) options | |
6367 | - ko_depth and fourlib_depth set to 0 during make domains | |
6368 | - numerous minor changes to ko reading | |
6369 | - bugfix in updateboard | |
6370 | - break_through() fully implemented | |
6371 | - tuning of patterns2.db | |
6372 | - one new connections pattern | |
6373 | ||
6374 | 2.5.33 released November 5, 1999 | |
6375 | ||
6376 | - new pattern class Q for patterns which should not be used with the new | |
6377 | move generation scheme | |
6378 | - bugfix in fuseki.c | |
6379 | - minor tuning of patterns.db and patterns2.db | |
6380 | - retuning of cutting and connecting moves | |
6381 | - shape value added also to old style moves | |
6382 | - list_move_reasons() contingent on verbose rather than debug flag | |
6383 | ||
6384 | 2.5.32 released November 3, 1999 | |
6385 | ||
6386 | - temporary modification of depth values restructured | |
6387 | - bugfix in fill_liberty() | |
6388 | - minor tuning | |
6389 | - one new connections pattern | |
6390 | - one new eye pattern | |
6391 | - new auxiliary reading function: break_through() | |
6392 | - corresponding autohelper functions | |
6393 | - sigterm_handler set in main() independently of any command line switches | |
6394 | - command "defend" in ascii mode now works on any node | |
6395 | ||
6396 | 2.5.31 released November 1, 1999 | |
6397 | ||
6398 | - two new eye patterns | |
6399 | - further revision of TODO | |
6400 | - new file: docs/MOVE_GENERATION | |
6401 | - the new move generation scheme has been made the default | |
6402 | ||
6403 | 2.5.30 released October 31, 1999 | |
6404 | ||
6405 | - defend1 and break_chain try harder to make a ko defense the last resort | |
6406 | - small_semeai_analyzer ignores strings with 2 liberties | |
6407 | - tweak in breakchain2 may yield a speedup | |
6408 | - bugfix in is_ko | |
6409 | - fourlib_depth++ in several places | |
6410 | - does_defend() slightly rewritten parallel to does_attack | |
6411 | - change_defense and change_attack adjust worm.codes | |
6412 | - minor changes to patterns.db (mostly comments) | |
6413 | - decidestring reports ko result | |
6414 | - show_dragons() tells about ko status | |
6415 | - README, TODO, INSTALL, and gnugo.6 revised | |
6416 | - bugfixes in the makefiles to allow compilation in a separate directory | |
6417 | - bugfix in conn.db to stop amalgamations over ko | |
6418 | - debug message removed from induce_secondary_move_reasons() | |
6419 | - retuned old style moves in the new move generation scheme | |
6420 | ||
6421 | 2.5.29 released October 29, 1999 | |
6422 | ||
6423 | - extended statistics collection | |
6424 | - revisions of hoshi.sgf, conn.db, patterns.db, and patterns2.db | |
6425 | - joseki.c changed to generate antisuji patterns for value 0 moves | |
6426 | - more new move generation code | |
6427 | - three helpers replaced by constraints | |
6428 | - bugfix in defend_both() | |
6429 | ||
6430 | 2.5.28 released October 26, 1999 | |
6431 | ||
6432 | - revised eye patterns | |
6433 | - revised connection patterns | |
6434 | - more new move generation code | |
6435 | - revision of patterns2.db continued | |
6436 | - bugfixes in change_defense() and change_attack() | |
6437 | ||
6438 | 2.5.27 released October 24, 1999 | |
6439 | ||
6440 | - reading code now considers ko relationship | |
6441 | - new worm fields attack_code and defend_code contain ko data | |
6442 | - attacker and defender consider ko relationship | |
6443 | - renaming and reordering of reading functions | |
6444 | - revised eye patterns | |
6445 | - bugfix in sgfana.c | |
6446 | - minor tuning | |
6447 | - more new move generation code | |
6448 | ||
6449 | 2.5.26 released October 23, 1999 | |
6450 | ||
6451 | - new connection pattern | |
6452 | - antisuji and shape value patterns in patterns2.db | |
6453 | - effective size measure implemented for worms and dragons | |
6454 | - more new move generation code | |
6455 | - support for %f in vgprintf() | |
6456 | ||
6457 | 2.5.25 released October 21, 1999 | |
6458 | ||
6459 | - basicnet4 attacks by defending a boundary string | |
6460 | - option -F enabled correctly | |
6461 | - more new move generation code | |
6462 | - partial revision of patterns2.db | |
6463 | - bugfix in recognize_eye() | |
6464 | - a few new patterns and major cleanup of eyes.db | |
6465 | - new functions attack_either(), defend_both(), and play_attack_defend2_n() | |
6466 | - new autohelper functions corresponding to attack_either and defend_both | |
6467 | - documentation updated accordingly | |
6468 | - one connection pattern taken out | |
6469 | - minor tuning | |
6470 | ||
6471 | 2.5.24 released October 18, 1999 | |
6472 | ||
6473 | - bugfix in caching of reading results | |
6474 | - improvement in small_semeai() | |
6475 | - minor tuning | |
6476 | - new file: patterns2.db; intended for new move generation scheme | |
6477 | - slight changes in shapes.c for new move generation | |
6478 | ||
6479 | 2.5.23 released October 17, 1999 | |
6480 | ||
6481 | - bugfixes in debug output | |
6482 | - bugfix in sgf territory output | |
6483 | - enhanced basicnet3() | |
6484 | - always use worm origin in caching of reading results | |
6485 | - revised eye patterns | |
6486 | - trivial bugfix in nngs_endgame() | |
6487 | ||
6488 | 2.5.22 released October 14, 1999 | |
6489 | ||
6490 | - new eye patterns | |
6491 | ||
6492 | 2.5.21 released October 12, 1999 | |
6493 | ||
6494 | - minor tuning | |
6495 | - cleanup of play_ascii.c | |
6496 | - NNGS customization option in play_ascii() | |
6497 | - one new eye pattern | |
6498 | - small change in 9x9 fuseki play | |
6499 | - more experimental move generation code | |
6500 | - instructions for playing from Cgoban moved from INSTALL to README | |
6501 | ||
6502 | 2.5.20 released October 10, 1999 | |
6503 | ||
6504 | - tuning | |
6505 | - 13 helpers replaced by constraints | |
6506 | - action lines introduced in the patterns database to complement the | |
6507 | constraints | |
6508 | - zero-valued joseki moves now generate antisuji moves (only effective in | |
6509 | the new move generation scheme) | |
6510 | - more experimental move generation code | |
6511 | - new file: src/move_reasons.c | |
6512 | - bugfix in load_sgf_file() | |
6513 | - many new eye patterns | |
6514 | - cleanup in liberty.h and optics.c | |
6515 | - new diagnostics in compute_eyes() | |
6516 | - in basicnet4 we only consider safe attacking moves | |
6517 | - speedup in basicnet4 for isolated stones and probably other strings | |
6518 | ||
6519 | 2.5.19 released October 9, 1999 | |
6520 | ||
6521 | - new cutstone concept in the experimental move generation | |
6522 | - minor tuning | |
6523 | - bugfixes in fill_liberty() | |
6524 | - bugfix in the handling of lunches | |
6525 | - bugfix in the improvement of attack and defense points | |
6526 | - stray patterns in eyes.db relocated | |
6527 | - autoconf test for glib hopefully working properly | |
6528 | - some remaining references to hey.db removed | |
6529 | ||
6530 | 2.5.18 released October 7, 1999 | |
6531 | ||
6532 | - reduced V_OBA in fuseki.c | |
6533 | - minor tuning | |
6534 | - more experimental move generation code | |
6535 | - new patterns in eyes.db | |
6536 | - bugfix in fill_liberty() | |
6537 | - test legality and safety of move much earlier in shapes_callback() | |
6538 | - autoconf test for glib so snprintf() can be replaced by g_snprintf | |
6539 | if unavailable | |
6540 | - minor change in endgame() output to work around bug in NNGS connecting | |
6541 | program | |
6542 | ||
6543 | 2.5.17 released October 5, 1999 | |
6544 | ||
6545 | - cleanup of hash.h | |
6546 | - new function in utils.c: find_origin() | |
6547 | - attack() and find_defense() represent strings with their origins, | |
6548 | improving the efficiency of the caching strategy. | |
6549 | - backfill depth decreased from 14 to 10 | |
6550 | - optimization and a little cleanup in make_worms() | |
6551 | - bugfix in value_move_reasons() | |
6552 | - three initializing functions tidied away from global view | |
6553 | ||
6554 | 2.5.16 released October 4, 1999 | |
6555 | ||
6556 | - one new eye pattern | |
6557 | - more experimental move generation code | |
6558 | - cleanup of main.h, worm.c, and matchpat.c | |
6559 | - improved diagnostic error messages in moyo.c | |
6560 | - bugfix in moyo.c | |
6561 | - new numbering scheme for eyes.db | |
6562 | - bugfix in small_semeai() | |
6563 | - '*' can now be used as label in autohelper functions | |
6564 | - minor tuning | |
6565 | - backfill depth increased from 8 to 14. | |
6566 | ||
6567 | 2.5.15 released October 3, 1999 | |
6568 | ||
6569 | - new small_semeai() resolves semeais involving worms with 3 or 4 liberties | |
6570 | - bugfix in only_atari_helper | |
6571 | - no message in change_attack helper if both ti and worm[ai][aj].attacki==-1 | |
6572 | - minor changes in patterns.db (mostly comments) | |
6573 | ||
6574 | 2.5.14 released October 1, 1999 | |
6575 | ||
6576 | - small changes and cleaning in ttsgf_read.c | |
6577 | - new experimental attacker/defender code | |
6578 | - minor revisions of hoshi.sgf and patterns.db | |
6579 | - removed unused function mark_defenses() | |
6580 | ||
6581 | 2.5.13 released September 29, 1999 | |
6582 | ||
6583 | - reading code tries to attack strings with 4 liberties | |
6584 | - new function savestone4 | |
6585 | - help string: options --depth etc. are not debug options as they | |
6586 | affect playing strength so these are in main help string now | |
6587 | - bugfix in dragon_status: dragons rescued by ko are not DEAD | |
6588 | - continued cleaning of moyo.c | |
6589 | - one new pattern in eyes.db | |
6590 | ||
6591 | 2.5.12 released September 28, 1999 | |
6592 | ||
6593 | - tuning | |
6594 | - bugfix in two_bird_helper | |
6595 | - the last few helpers updated to use change_attack() and change_defense() | |
6596 | - copyright messages in joseki sgf files replaced by a patterns/README | |
6597 | ||
6598 | 2.5.11 released September 26, 1999 | |
6599 | ||
6600 | - tuning | |
6601 | - revised "You stepped on a bug" message | |
6602 | - new pattern in eyes.db | |
6603 | - revised joseki in hoshi.db | |
6604 | - komi initialized in main.c | |
6605 | ||
6606 | 2.5.10 released September 22, 1999 | |
6607 | ||
6608 | - important bugfix in moyo.c, fixing an indexing out of bounds error. | |
6609 | - tuning | |
6610 | ||
6611 | 2.5.9 released September 21, 1999 | |
6612 | ||
6613 | - cleanup of showbord.c | |
6614 | - hashitem renamed hashdata | |
6615 | - tuning | |
6616 | - more debug info in moyo.c | |
6617 | ||
6618 | 2.5.8 released September 20, 1999 | |
6619 | ||
6620 | - bugfix in fuseki.c to avoid passing if opponent plays on first line | |
6621 | - tuning | |
6622 | - error messages in moyo.c redirected to stderr | |
6623 | ||
6624 | 2.5.7 released September 16, 1999 | |
6625 | ||
6626 | - added src/utils to patterns/ Makefile includes | |
6627 | - tuning | |
6628 | - remember to add center stone in sgf file in sethand() | |
6629 | ||
6630 | 2.5.6 released September 15, 1999 | |
6631 | ||
6632 | - minor changes for Windows support | |
6633 | ||
6634 | 2.5.5 released September 13, 1999 | |
6635 | ||
6636 | - more informative renaming of variables in moyo.c | |
6637 | - added #include "getopt.h" to mkpat.c | |
6638 | - check setlinebuf(), if not available use setbuf() in play_ascii.c | |
6639 | - check snprintf(), if not available redefine to g_snprintf() (glib) | |
6640 | - new file docs/WINDOWS | |
6641 | ||
6642 | 2.5.4 released September 12, 1999 | |
6643 | ||
6644 | - bugfix with --analyze --score: analyze the correct move | |
6645 | - make install now copies gnugo.6 to /usr/local/man/man6 | |
6646 | - we do not install mkpat, joseki, mkeyes or sgfgen | |
6647 | - gnugo.6 moved to top directory | |
6648 | - revisions to documentation | |
6649 | - docs/structure.doc is eliminated | |
6650 | - docs/BOUZY renamed MOYO | |
6651 | - patterns/fuseki2.sgf is back in patterns/ | |
6652 | - suppression of many messages when running --quiet | |
6653 | - bugfix in fuseki.c which could cause illegal moves | |
6654 | - bugfix in fuseki.c: do not set i,j then return 0 | |
6655 | ||
6656 | 2.5.3 released September 10, 1999 | |
6657 | ||
6658 | - bugfix in make_worms: typo in adjacent worm code | |
6659 | - bugfix in trymove() and legal(): check ko color | |
6660 | - tuning and cleanup of patterns.db | |
6661 | - bugfix in filllib preventing rare illegal moves | |
6662 | - bugfix in hashing code | |
6663 | - MAX_HANDICAP set to 9 | |
6664 | ||
6665 | 2.5.2 released September 7, 1999 | |
6666 | ||
6667 | - revision of --help | |
6668 | - revision of documentation | |
6669 | - separation of globals. New file src/globals.c | |
6670 | - further revision of moyo.c: dilation revised | |
6671 | - bugfix in filllib preventing rare illegal moves | |
6672 | - tuning | |
6673 | ||
6674 | 2.5.1 released September 3, 1999 | |
6675 | ||
6676 | - delta_moyo_simple() checks for isolated groups like delta_moyo() | |
6677 | - new function average_moyo_simple() | |
6678 | - docs/BOUZY updated | |
6679 | - reimplementation of erosion | |
6680 | - patch to sgfana.c using multiple character names | |
6681 | ||
6682 | 2.3.94 released September 3, 1999 | |
6683 | ||
6684 | - Tuning | |
6685 | - Renumbering and cleanup of patterns.db | |
6686 | - Bug fix in linear_eye_space(). | |
6687 | - load_sgf_file() gets the right color to move at end of file | |
6688 | - Various small corrections. | |
6689 | - backfill_depth is now 8 | |
6690 | ||
6691 | 2.3.93 released September 2, 1999 | |
6692 | ||
6693 | - bugfix in recognize_eye | |
6694 | - bugfix in readlad1: use null pointers in readlad2 call | |
6695 | - fill_liberty() rewritten recursively with backfilling | |
6696 | - atari_save_helper replaced by constraint. | |
6697 | - tuning | |
6698 | - Previous change to moyo_assistance reimplemented correctly | |
6699 | - sethand() places fixed handicap stones as traditional | |
6700 | ||
6701 | 2.3.92 released September 1, 1999 | |
6702 | ||
6703 | - Two new eye patterns | |
6704 | - Bug fix in filllib.c, avoiding a possible assertion failure | |
6705 | - Use delta_moyo_simple() in moyo assistance function | |
6706 | - Tuning | |
6707 | - gnugo complains about wrong boardsizes | |
6708 | - avoids some warnings in sgfana.c | |
6709 | - now -o in ascii mode works with handicap stones | |
6710 | - bugfix in readlad2 | |
6711 | - bugfix in basicnet3 | |
6712 | - docs/OVERVIEW updated | |
6713 | ||
6714 | 2.3.91 released August 27, 1999 | |
6715 | ||
6716 | - warnings when compiling with ncurses are hopefully fixed | |
6717 | - The connections code no longer amalgamates attackable worms | |
6718 | - Bug fix in the topological halfeye code. | |
6719 | - uncovered a problem with halfeyes in the eyes code, documented in a FIXME | |
6720 | - Minor tuning. | |
6721 | - Bug fix in the linear eyes code. | |
6722 | - Random bonus taken into account in the TRACE prints in shapes. | |
6723 | - fill_liberty() completely rewritten | |
6724 | - destroyer taken down | |
6725 | ||
6726 | 2.3.90 released August 26, 1999 | |
6727 | ||
6728 | - hey.db removed from distribution | |
6729 | - we no longer give a point for a pass and compel white to pass last | |
6730 | - play_solo.c and genmove.c: calls to snprintf changed to sprintf | |
6731 | - revisions to documentation, and to NEWS, AUTHORS, README, INSTALL | |
6732 | - partial cleanup of main.c | |
6733 | - one new eye pattern | |
6734 | - worm.cut field moved to eye_data structure and initialized properly. | |
6735 | - Added endgame patterns to fix one non-finish bug | |
6736 | - Replaced movenum by move_number() in play_solo.c. | |
6737 | - Removed dead code from dragon.c and liberty.h | |
6738 | - Minor cleanup in worm.c | |
6739 | - One new cut pattern in conn.db | |
6740 | - sente_hane1_helper replaced by constraint | |
6741 | - Bugfix in computation of max weight in mkpat.c | |
6742 | - Tuning | |
6743 | ||
6744 | 2.3.89 released August 25, 1999 | |
6745 | ||
6746 | - bugfix in eye_finder | |
6747 | - one new eye pattern | |
6748 | - gaminfo.seed is set | |
6749 | - handicap stones added when not present. | |
6750 | (Doesn't work with "-l filename --mode ascii") | |
6751 | - revision to documentation | |
6752 | - message about unimplemented commands removed from ascii help | |
6753 | - One new connection pattern in conn.db. | |
6754 | - Revised connect_under_helper and | |
6755 | - replaced safe_hane_helper by a constraint | |
6756 | - Revised some joseki values in hoshi.sgf | |
6757 | - Tuning of patterns.db. | |
6758 | ||
6759 | 2.3.88 released August 23, 1999 | |
6760 | ||
6761 | - board size bug fix in moyo.c | |
6762 | - fuseki.c: 3-3 invasion deprecated in 9 stone fuseki | |
6763 | - New joseki in hoshi.sgf (tsukenobi variation and one 3-3 invasion) | |
6764 | - tuning | |
6765 | ||
6766 | 2.3.87 released August 22, 1999 | |
6767 | ||
6768 | - eye.esize-eye.msize>7 is alive in recognize_eye | |
6769 | - several eye patterns added | |
6770 | - dragon_status: escape_route bound for CRITICAL upped to 6 | |
6771 | - -o and --analyzerfile add handicap stones by AB,AW | |
6772 | - in nonfile modes the handicap stones are added in sethand() | |
6773 | - sethand() checks for max handicap values and returns actually set stones | |
6774 | - reduced MAX_HANDICAP to 19 | |
6775 | - main.c checks for MAX_HANDICAP | |
6776 | - sgf_close_file is called only once, when ending ascii mode with "quit" | |
6777 | - GM property added in --analyzerfile | |
6778 | - HA property added in --analyzerfile (in sethand()) | |
6779 | - defined MIN_BOARD 3 in liberty.h | |
6780 | - help output shows MIN_BOARD, MAX_BOARD and MAX_HANDICAP | |
6781 | - cleanup of shapes.c, optics.c and moyo.c | |
6782 | ||
6783 | 2.3.86 released August 21, 1999 | |
6784 | ||
6785 | - resolved: hashed functions shall be readlad2 and basicnet3 | |
6786 | - connection code patch to reconcile amalgamation and cutstone | |
6787 | classification (needs rewriting) | |
6788 | - tuning | |
6789 | - amalgamate over _dead_ ko positions | |
6790 | - bugfix in not_lunch_helper | |
6791 | - Changed semantics of play_attack_defend_n() | |
6792 | - unused color parameter removed from get_read_result | |
6793 | - no compiler warnings under GNU/Linux | |
6794 | - man page docs/gnugo.6 added | |
6795 | - convenient tcsh completion described in docs/MISC | |
6796 | ||
6797 | 2.3.85 released August 20, 1999 | |
6798 | ||
6799 | - configure option --disable-hashing now functional | |
6800 | - values are not hashed when stackp>depth | |
6801 | - cleanup of mkpat.c | |
6802 | - cleanup of eyes.h | |
6803 | - tuning | |
6804 | - now prints number of eyes in analyzerfile with --analyze eyeinfo | |
6805 | ||
6806 | 2.3.84 released August 18, 1999 | |
6807 | ||
6808 | - tuning | |
6809 | - cleanup of dragon.c | |
6810 | - halfeyes.c removed from the distribution | |
6811 | - configure option --disable-hashing sets HASHING to 0 | |
6812 | - sgf.c: avoid trying to close output file twice | |
6813 | - eyes.db: code # has been changed to @ to avoid conflict with comments | |
6814 | - Revised compute_eyes() and split off linear eyes to an own function. | |
6815 | - Made return value from recognize_eye() more consistent. | |
6816 | - New autohelper functions to identify eye space points: eye(), | |
6817 | proper_eye(), and marginal_eye() | |
6818 | - Major revisions of endgame patterns, taking eye space into account | |
6819 | - obsolete functions play_attack_defend2() to play_attack_defend8() removed | |
6820 | ||
6821 | 2.3.83 released August 15, 1999 | |
6822 | ||
6823 | - joseki.c upgraded to generate constraints in .db | |
6824 | - 3 new autohelpers in mkpat.c: diff_moyo, area_space, area_stone | |
6825 | - interface/play_test.c: bugfix when --testmode and --analyze are combined | |
6826 | - CHECK_HASHING turned off | |
6827 | ||
6828 | 2.3.82 released August 14, 1999 | |
6829 | ||
6830 | - hash codes are now computed incrementally | |
6831 | - bugfix in hash.c | |
6832 | - reading.c: sacrifice only if stackp<backfill_depth to avoid slow reads | |
6833 | - sgf.c and main.c: --decidestring works with small boards | |
6834 | - cleanup of src/attdef.c | |
6835 | - update: doc/MISC | |
6836 | - play_ascii: new commands HELPDEBUG, GOTO, DEFEND, SHOWMOYO, SHOWTERRI, | |
6837 | SHOWAREA, SHOWDRAGONS, SAVE, and LISTDRAGONS | |
6838 | - play_ascii: command COMMENT now only writes to analyzerfile | |
6839 | - analyze: new commands AREACOLOR, DEFENSE, MOYOVALUE, TERRICOLOR, TERRITORY, TERRIVALUE | |
6840 | - abortgo saves abortgo.sgf independent of any -o or --analyzerfile | |
6841 | ||
6842 | 2.3.81 released August 11, 1999 | |
6843 | ||
6844 | - new function number_weak returns the number of weak groups | |
6845 | - little tuning in hoshi.sgf | |
6846 | - major update of all fuseki.c | |
6847 | - change in --playstyle options, new fuseki become the default | |
6848 | - added stone color NONE in liberty.h for use with set_computer_player() | |
6849 | - new function capture in ascii mode | |
6850 | - new function last in ascii mode | |
6851 | - bugfix: sethand does not set handicap stones to sgf tree any more | |
6852 | - bugfix: testmode game with --analyze skips variations | |
6853 | - new sgfana.c with analyze functions and gnugo specific parts of ttsgf.c | |
6854 | - new function sgfTriangle() | |
6855 | - new function sgfMarkWorm() | |
6856 | - bugfix: analyze function recommended switched off as default | |
6857 | - new analyze function capture | |
6858 | ||
6859 | 2.3.80 released August 10, 1999 | |
6860 | ||
6861 | - Implement hashing for attack() and find_defense() | |
6862 | - option -H = --hash allows user to specify which functions use hashing | |
6863 | - cleanup of sethand.c | |
6864 | - cleanup of semeai.c | |
6865 | - option --playstyle <style>, replace old --fuseki and --fearless | |
6866 | ||
6867 | 2.3.79 released August 10, 1999 | |
6868 | ||
6869 | - hash.h: bugfix which caused reading errors in rr_set_result_ri_rj | |
6870 | - reading.c: savestone2 looks for double ataris to chain when stackp>depth | |
6871 | - updated docs/MISC: analyze functions | |
6872 | - option --analyze works again (was temporarily off by accident) | |
6873 | - option --analyze works in --testmode game, no variations tested | |
6874 | - new analyze functions: moyocolor, recommended, eyeinfo, worminfo | |
6875 | - bug fix in analyze function eyes | |
6876 | - option --score last --analzyerfile saves the potential territory with TW,TB | |
6877 | - option --statistics writes also to analyzerfile | |
6878 | - abortgo() saves analyzerfile | |
6879 | - ttsgf.c: ttsgf_move_made() removed | |
6880 | - play_solo.c: timing added to benchmark mode | |
6881 | ||
6882 | 2.3.78 released August 7, 1999 | |
6883 | ||
6884 | - hashing in basicnet3 and savestone3 | |
6885 | - bugfix in play_gmp.c: undo now seems to work! | |
6886 | - sgf/sgf_utils.c: bugfixes in get_moveX and get_moveY | |
6887 | - interface/play_solo.c: bugfix in get_moveXY | |
6888 | ||
6889 | 2.3.77 released August 5, 1999 | |
6890 | ||
6891 | - showbord.c: revised behavior of -E option | |
6892 | - minor change in moyo.c to have it reinitialized when a game is reloaded | |
6893 | - change in scoring system for compliancy with chinese & japanese style rules | |
6894 | - ascii mode: save territory points to analyzerfile | |
6895 | - gmp mode: log game in sgf tree | |
6896 | - gmp mode: undo implemented by replaying sgf tree | |
6897 | - gmp mode: save result and territory points to analyzerfile | |
6898 | - ttsgf.c: new function sgfOverwritePropertyInt() | |
6899 | - ttsgf.c: new function sgfAddStone() | |
6900 | - sethand.c: sets handicap stones to sgf tree | |
6901 | - hash.diff removed from distribution | |
6902 | ||
6903 | 2.3.76 released August 4, 1999 | |
6904 | ||
6905 | - interface/html directory contains cgi interface | |
6906 | - bugfix in optics.c: initialization of domains | |
6907 | - bugfix in reading.c: some variations were being overlooked | |
6908 | - hashing implemented in savestone2 | |
6909 | ||
6910 | 2.3.75 released August 2, 1999 | |
6911 | ||
6912 | - mark illegal moves in --printsgf with IL property | |
6913 | - Some new macros in hash.h | |
6914 | - Use hashing in readlad2 | |
6915 | - Some cleanup of worm.c | |
6916 | - option -f rewritten : opening tuning, including oba moves | |
6917 | - non fuseki part of old -f option became --fearless option | |
6918 | ||
6919 | 2.3.74 released August 1, 1999 | |
6920 | ||
6921 | - bugfixes in helpers.c. One of these could cause a crash | |
6922 | - two connection patterns increased substantially | |
6923 | - moved get_komi() and inc_movenumber() to liberty.h | |
6924 | - play_ascii(): new commands to navigate the game tree in ascii mode | |
6925 | - back command (undo) implemented in ascii mode! Newly placed | |
6926 | stones appear as variations in the sgf | |
6927 | - play_ascii(): changed the compare length of some commands. Now q works | |
6928 | for quit, b for back and f for forward. | |
6929 | - removed bug in play_ascii(): user pass after computer pass did not | |
6930 | display result. | |
6931 | - fixed bug in helpanalyzer output | |
6932 | - utils.c: added function intialize board() and removed remove_stone() | |
6933 | - fixed the komi bug reported by Douglas in --analzyerfile | |
6934 | ||
6935 | 2.3.73 This version may be released later | |
6936 | ||
6937 | 2.3.72 released July 30, 1999 | |
6938 | ||
6939 | - bugfix in updateboard ko handling | |
6940 | - Moved obsolete documentation about reading.c to doc about utils.c | |
6941 | - Expanded documentation about reading with hashing | |
6942 | - minor tuning | |
6943 | ||
6944 | 2.3.71 released July 29, 1999 | |
6945 | ||
6946 | - bugfix in make_worms: moving point of defense | |
6947 | - fixes to handling of ko after a pass | |
6948 | - updatepassmove() removed | |
6949 | - updateboard now handles pass moves. | |
6950 | - KO handling by trymove is currently broke | |
6951 | - play_ascii.c, play_gmp.c, play_solo.c updated accordingly. | |
6952 | - revisions to ascii interface. | |
6953 | - legal() now reports a pass move to be legal. | |
6954 | - revision of one eye pattern | |
6955 | - tuning to increase attention to connections | |
6956 | - 2 new helpers | |
6957 | - mkpat: weak autohelper option needed ==CRITICAL | |
6958 | - modified worm values | |
6959 | ||
6960 | 2.3.70 released July 28, 1999 | |
6961 | ||
6962 | - Zobrist hashing implemented | |
6963 | - new files src/hash.h and src/hash.c | |
6964 | - readlad1 uses hashing | |
6965 | - readlad2 does consider 2 stone sacrifices if stackp<backfill_depth | |
6966 | - revised method of ko detection using | |
6967 | - New file docs/HALFEYES describing the topology of false eyes and half eyes. | |
6968 | - Halfeye detection rewritten from scratch according to docs/HALFEYES. | |
6969 | - Revisions to connection code. | |
6970 | - A small amount of tuning. | |
6971 | - Dragon values changed when worm values are. | |
6972 | - Designation of marginal eye spaces revised to consider if enemy has a safe move | |
6973 | - Bugfix in worm.c | |
6974 | ||
6975 | 2.3.69 released July 27, 1999 | |
6976 | ||
6977 | - bug fix in connections.c | |
6978 | - two false eye patterns added | |
6979 | - one pattern added | |
6980 | - readlad2 sorts liberties before plunging in to the read | |
6981 | - readlad2 rejects sacrifices of more than one stone | |
6982 | - bugfix in shapes.c | |
6983 | - in worm.c we sometimes try point of attack for defense | |
6984 | - removed the -b bug | |
6985 | - removed some warnings | |
6986 | - ascii mode: new command comment writes one line comments to file | |
6987 | - ascii mode: new command score displays terri_eval | |
6988 | - ascii mode: new command dead shows dead stones as lower letters | |
6989 | - ascii mode: at end shows dead dragons, lets user toggle their state | |
6990 | - ascii mode: REsult propterty is written to analyzerfile | |
6991 | - new command line option helpanalyze | |
6992 | - option --score end outputs territory points (TW,TB) to analyzerfile | |
6993 | - utils.c: new function remove_stone | |
6994 | - utils.c: new function change_dragon_status | |
6995 | - main.c: added shortcut for --help to the help message | |
6996 | - ttsgf.c: reduced the memory consumption of the sgf structure | |
6997 | - liberty.h: made the dragon structure public | |
6998 | ||
6999 | 2.3.68 released July 26, 1999 | |
7000 | ||
7001 | - Tuning, seki patterns. | |
7002 | - New connection patterns. | |
7003 | - Revision of connections code. | |
7004 | - New helpers. | |
7005 | - eye_finder() now considers shape's move as defender() and attacker() do | |
7006 | - Cleaning up and bug fixes in attdef.c. | |
7007 | - More debug messages for the eyes code. | |
7008 | - Bug fixes in compute_eyes() and play_attack_defend_n(). | |
7009 | - Bug fix in shapes.c: TRACE was missing an argument | |
7010 | - fixed testwind compiler warning | |
7011 | ||
7012 | 2.3.67 released July 25, 1999 | |
7013 | ||
7014 | - bugfix in attacker: depth was changing each move | |
7015 | - A class patterns, analogous to the D class, implemented but not tested | |
7016 | - B and C classes can now be used in the same pattern. | |
7017 | - The meta_connect bonus now specified with a new field | |
7018 | - doc/PATTERNS revised | |
7019 | - the oplay_attack() and similar autohelper functions documented | |
7020 | - meta_connect bonus removed from most patterns except block/expand | |
7021 | - Weakness bonuses are now applied at a later time than they were. | |
7022 | Thus B and C patterns are treated the same as patterns using helpers | |
7023 | - A 5,5 weakness bonus added to all cut/connect patterns | |
7024 | - diag_miai2 helper revised. | |
7025 | - Some tuning. | |
7026 | - shapes.c cleaned up. | |
7027 | - revisions in interface/play_ascii.c | |
7028 | - substantial revision in sgf/ttsgf.c | |
7029 | - new option --analyzerfile (see docs/MISC) | |
7030 | - docs/SCORING is renamed docs/MISC | |
7031 | ||
7032 | 2.3.66 released July 23, 1999 | |
7033 | ||
7034 | - make_worms: bugfix in resetting of worm.attack and worm.defend | |
7035 | - bugfix in does_defend | |
7036 | - new autohelper macros | |
7037 | - play_attack_defend_n can take an arbitrary number of parameters | |
7038 | - function who_win renamed who_wins for grammatical reasons | |
7039 | - play_gmp.c: if there is a handicap we assume komi=0.5 | |
7040 | - play_solo.c: captures not added a second time | |
7041 | - new patterns in eyes.db | |
7042 | - some tuning | |
7043 | - sgf.c: pass is [tt] unless board_size>19 | |
7044 | - depth and backfill_depth are augmented in attacker() and defender() | |
7045 | - bugfix in printsgf mode | |
7046 | - sgf_printboard prints current board position to sgf file | |
7047 | - LOAD_AND_PRINT mode: read file, output final position | |
7048 | ||
7049 | 2.3.65 released July 21, 1999 | |
7050 | ||
7051 | - dragon_eye does not amalgamate across an ikken tobi | |
7052 | - play_ascii.c: change depth on the fly | |
7053 | - new option --statistics | |
7054 | - revision of various helpers and 2 new helpers | |
7055 | - mkpat rewritten so constraints can now be on several lines. | |
7056 | - New autohelper functions xplay_attack, oplay_attack, xplay_defend, | |
7057 | and oplay_defend, which take variable number of arguments. | |
7058 | - New functions in utils.c to support the above. | |
7059 | - tuning | |
7060 | - bugfix in sethand.c | |
7061 | - increased DEPTH to 14 and BACKFILL_DEPTH to 7 | |
7062 | - change_attack can sometimes reclassify dragons as DEAD | |
7063 | - command line resetting of depth | |
7064 | ||
7065 | 2.3.64 released July 20, 1999 | |
7066 | ||
7067 | - reformatting of reading.c | |
7068 | - bugfix in break_chain2 | |
7069 | - revised basicnet3: try harder to rescue boundary chains | |
7070 | - revised basicnet3: remember moves tried to avoid redundant reading | |
7071 | - bugfix in find_lunch: pick juciest worm | |
7072 | - sgf property PL implemented in play_solo | |
7073 | - revisions in play_solo.c and fuseki.c for small boards | |
7074 | ||
7075 | 2.3.63 released July 19, 1999 | |
7076 | ||
7077 | - delta_moyo, delta_terri work with either color | |
7078 | - 2 new functions diff_terri and diff_moyo, | |
7079 | - cleanup of moyo.c | |
7080 | - -f option revised | |
7081 | - docs/BOUZY revised | |
7082 | - new docs/SCORING | |
7083 | - New autohelper functions. | |
7084 | - New connection patterns and revisions of the connections matching code. | |
7085 | - Bugfix to an eye pattern. | |
7086 | - Much tuning. | |
7087 | - Revised criterion for when to defend or attack a worm. | |
7088 | - Extended the scope of destroyer(). | |
7089 | - Experimental worm and cut revaluation in light of dragon formations | |
7090 | - Changed heuristics for eye values of non-matched eye shapes. | |
7091 | - reordered arguments to does_attack() and does_defend() | |
7092 | - bugfix in readlad2: backfill was turned off | |
7093 | - default backfill_depth is now 5 | |
7094 | - -l and -o options can be - for stdin and stdout | |
7095 | ||
7096 | 2.3.62 released July 17, 1999 | |
7097 | ||
7098 | - New autohelper functions, xlib(), olib(), xcut(), and ocut(). | |
7099 | - Revised documentation for autohelper functions. | |
7100 | - Connections database introduced. New files: connections.c and conn.db. | |
7101 | - find_dragon_pairs() disabled, replaced by connection patterns. | |
7102 | - Cutting patterns from the connection database can modify eye spaces. | |
7103 | - Amalgamation in dragon_eye() no longer done over marginal eyes. | |
7104 | - mkpat partially rewritten. | |
7105 | - Minor correction to eyes.db. | |
7106 | - Nakade helpers cleaned away. | |
7107 | - Minor tuning, | |
7108 | - two more nakade like patterns removed, EC63 again C pattern. | |
7109 | - Bug fix in attacker(): discount bad captures, not good ones | |
7110 | - New function destroyer() to capture of strings that can't currently | |
7111 | be defended, but which could be after opponent backfilling | |
7112 | - Some cleaning in genmove.c. | |
7113 | - Attack points of non-defendable strings not moved in make_worms | |
7114 | - defense points added for adjacent non-defendable strings so | |
7115 | dragon amalgamation won't confuse semeai() | |
7116 | - new function read_sgf_header used by load_and_analyse_sgf_file | |
7117 | - new function load_and_score_sgf_file | |
7118 | - new option --score and new mode LOAD_AND_SCORE | |
7119 | - new function evaluate_territory | |
7120 | ||
7121 | 2.3.61 released July 15, 1999 | |
7122 | ||
7123 | - nakade patterns are gone | |
7124 | - only linear patterns are currently hand-coded | |
7125 | - many new eye patterns | |
7126 | - not_lunch_helper aids in hane/kill combinations | |
7127 | - undid a change in 2.3.59: amalgamation on first line | |
7128 | ||
7129 | 2.3.60 released July 15, 1999 | |
7130 | ||
7131 | - TODO revised | |
7132 | - copyright revised in interface/ files | |
7133 | - new pattern in eyes.db | |
7134 | - halfeyes: require O not dead | |
7135 | - revision of detect_trap_helper | |
7136 | - revision of one pattern in hey.db | |
7137 | - new ko patterns | |
7138 | - other minor changes | |
7139 | - new functions does_attack and does_defend in utils.c | |
7140 | - attacker and defender call these functions | |
7141 | - copyright notice slightly changed in main.c | |
7142 | - reformatting of worm.c | |
7143 | - unwanted handicap printf removed from play_gmp.c | |
7144 | ||
7145 | 2.3.59 released July 14, 1999 | |
7146 | ||
7147 | - revision of docs/DRAGON | |
7148 | - several new eye patterns | |
7149 | - fair amount of tuning. Particularly, changes to diag_miai patterns | |
7150 | - dragon.c: we don't amalgamate a dragon if it touches the eyeshape | |
7151 | only on the first line | |
7152 | - COLOR_STACK_SIZE increased to 70 | |
7153 | - DEBUG used in optics.c | |
7154 | ||
7155 | 2.3.58 released July 13, 1999 | |
7156 | ||
7157 | - mkpat revised. Autohelper functions now can take multiple parameters. | |
7158 | First out is defend_against(a,b) which plays our own stone at a and | |
7159 | then checks whether the opponent can safely play at b. | |
7160 | - some tuning of patterns. | |
7161 | - new function defend_against() in utils.c | |
7162 | - bugfix in compute_eyes(): missing returns | |
7163 | - two new eye patterns | |
7164 | - bugfix in add_half_eye | |
7165 | - more refined testing of att_X case in halfeyes.c | |
7166 | - halfeye: obsolete test that eye and halfeye are in distinct cavities omitted | |
7167 | - halfeye: we check that * is a safe move for X | |
7168 | - restored marginal test in throw_in_atari_helper (removed in 2.3.55) | |
7169 | - superceded docs/GRAPHS removed from distribution | |
7170 | - filllib.c reformatted | |
7171 | ||
7172 | 2.3.57 released July 12, 1999 | |
7173 | ||
7174 | - count and chain rewritten for speed | |
7175 | - more graceful error message if no in file specified in testmode | |
7176 | - eye pattern 10 needed a vital point | |
7177 | - find_lunch and make_worms: a ko is not lunch | |
7178 | ||
7179 | 2.3.56 released July 11, 1999 | |
7180 | ||
7181 | - add_half_eye: when a half eye's vital point is in another eyeshape | |
7182 | the eyeshapes are amalgamated. This is correct and stops some crashes | |
7183 | - computer tries to compute the score at end of game | |
7184 | - new function who_win in moyo.c | |
7185 | - one chimera pattern included in eyes.db | |
7186 | - bugfix in attdef.c: color in territory test | |
7187 | - bugfix in showbord.c: display of capture count | |
7188 | ||
7189 | 2.3.55 released July 9, 1999 | |
7190 | ||
7191 | - integration of half eye and eye code | |
7192 | - separate eye domains for black and white | |
7193 | - revision of docs/EYES to document the algorithm | |
7194 | - a couple of changes that will be undone in a later release: | |
7195 | temporary oversimplification of treatment of att_X in hey_callback | |
7196 | temporary oversimplification of throw_in_atari_helper | |
7197 | - removal of one half eye pattern | |
7198 | - experimental penalty for running inside enemy territory | |
7199 | - bug fix in semeai.c | |
7200 | - revision in showboard for -E option | |
7201 | ||
7202 | 2.3.53 released July 8, 1999 | |
7203 | ||
7204 | - reading.c: new function special_rescue finds certain saving moves | |
7205 | - revisions to savestone2 including use of special_rescue | |
7206 | - speedup in find_lunch | |
7207 | - minor revisions to hey.db and eyes.db | |
7208 | - bugfix in mkpat (this could cause compilation failure) | |
7209 | - bug fix in make_dragons (ignore eyes when not relevant) | |
7210 | ||
7211 | 2.3.52 released July 7, 1999 | |
7212 | ||
7213 | - bugfix in setup_double_atari_helper (could cause crash) | |
7214 | - minor tuning | |
7215 | - revision make_domains: influence can't creep under third line stone | |
7216 | - revision to find_lunch: if already eaten it's not lunch | |
7217 | - revision in halfeyes.c vis a vis Pattern 12 | |
7218 | ||
7219 | 2.3.51 released July 6, 1999 | |
7220 | ||
7221 | - revision of mkeyes | |
7222 | - new function recognize_eye() for use by the reading code (unfinished) | |
7223 | - revision of the -f option (move generator based on territory) | |
7224 | - cleanup in helpers.c and replacement of helpers by constraints | |
7225 | ||
7226 | 2.3.50 released July 4, 1999 | |
7227 | ||
7228 | - gnugo -f implements search for big moves with delta_moyo>=12 | |
7229 | - and delta_terri >=14. Such a move gets value 80. | |
7230 | - tuning | |
7231 | - some work on false eye code | |
7232 | - some work on the eye code | |
7233 | - bugfix in double_atari_helper | |
7234 | ||
7235 | 2.3.49 released July 2, 1999 | |
7236 | ||
7237 | - Correction to sgf output from ascii interface. | |
7238 | - Results of safe_move() are cached if stackp==0. | |
7239 | - Helpers and some other code rewritten to use safe_move() | |
7240 | - Bugfixes in block_attack_defend_helper and urgent_connect_helper | |
7241 | - Reading bug fixed in savestone2(). | |
7242 | - tuning | |
7243 | - autohelper options safe_xmove,safe_omove,xmoyo,omoyo,xarea,oarea,xterri,oterri | |
7244 | - new function mkeyes to compile the eye database (unfinished) | |
7245 | - docs/GRAPHS explains the approach to the eye code | |
7246 | - revisions to eyes.db and eyes.h | |
7247 | - in halfeyes.c we make an exception to the rule that X can't be captured | |
7248 | - revisions to hey.db | |
7249 | - dragons with one eye and lunch are CRITICAL | |
7250 | - revisions to eye_finder to find such dragons | |
7251 | - eyespaces are not connected through adjacent marginal eyes | |
7252 | - various fields initialized in make_domains() | |
7253 | - bugfixes in make_domains | |
7254 | - bugfix in compute_eyes: sometimes found the wrong end of a linear space | |
7255 | ||
7256 | 2.3.48 released June 29, 1999 | |
7257 | ||
7258 | - experimental changes to fuseki.c | |
7259 | - revisions to helpers and patterns | |
7260 | - eye_finder() now calls sgf_move_considered() | |
7261 | - revisions to compute_eyes: eye shapes of size 4 | |
7262 | - DEPTH is now 13, BACKFILL_DEPTH is 9 | |
7263 | - gnugo --help now prints defaults of depth and backfill_depth | |
7264 | - bugfix in worm.c: some non-kos were incorrectly identified as ko | |
7265 | ||
7266 | 2.3.47 released June 29, 1999 | |
7267 | ||
7268 | - substantial speedup in chainlinks | |
7269 | - minor tuning | |
7270 | ||
7271 | 2.3.46 release June 28, 1999 | |
7272 | ||
7273 | - tuning, new helpers and patterns | |
7274 | - some half eye code restored to dragon.c | |
7275 | - some further linear patterns in compute_eyes() | |
7276 | - bugfix in savestone3 | |
7277 | - speedup in find_lunch: if stackp==0, we used cached info | |
7278 | - in break_chain2 don't try certain foolish moves | |
7279 | - speedup in basicnet3 (avoid unnecessary readlad1) | |
7280 | ||
7281 | 2.3.45 released June 27, 1999 | |
7282 | ||
7283 | - 3 new functions delta_terri_color, delta_moyo_color, delta_area_color | |
7284 | - new board stack in moyo.c | |
7285 | - BOUZY updated | |
7286 | - bug fixes regarding half eyes in dragon.c and eyes.c | |
7287 | - new code for some linear patterns | |
7288 | - bugfix: dragons around a ko were getting amalgamated | |
7289 | ||
7290 | 2.3.44 released June 25, 1999 | |
7291 | ||
7292 | - bugfix in atari_save_helper (could cause crash) | |
7293 | - revision to CD68 (could cause GNU to play out a ladder) | |
7294 | - bugfix in dragon.c: incrementing msize wrongly | |
7295 | - minor revisions to make_domains() | |
7296 | - new functions int moyo_color(int m,int n) and int terri_color(int m,int n) | |
7297 | returning the color of the intersection as seen by terri & moyo modules | |
7298 | - new function delta_moyo_simple() without meta_connect bonus, delta_moyo() | |
7299 | is now a wrapper to this one (should be a transparent modification) | |
7300 | - diag_miai_helper uses the new moyo_color() | |
7301 | ||
7302 | 2.3.43 released June 24, 1999 | |
7303 | ||
7304 | - revisions to ascii interface | |
7305 | - gnugo can resume adjourned games | |
7306 | - gnugo plays through endgame phase of the ascii interface | |
7307 | - much tuning | |
7308 | - revisions to helpers and new helpers | |
7309 | - in this version a weak group has between 0 and 20 points space | |
7310 | - two half eye patterns are back. Half eyes still not working right | |
7311 | - (incomplete) revision of eye code to deal with half eyes | |
7312 | - bug fix in eyes.c regarding opponent stones within eyespace | |
7313 | - tinkering with hoshi.sgf | |
7314 | ||
7315 | ||
7316 | 2.3.42 released June 23, 1999 | |
7317 | ||
7318 | - weak groups now have between 4 and 20 liberties | |
7319 | - diag_miai_helper won't recommend a move in opponent's territory | |
7320 | - revisions to patterns/hoshi.sgf | |
7321 | - mkpat.c: fields in NULL pattern at end of patterns.c corrected | |
7322 | - mkpat.c: weak option added to pattern compiler | |
7323 | - some tuning | |
7324 | - dragon.c: error eye.msize was preventing us from finding false eyes | |
7325 | - some code moved from eye.c to dragon.c to help finding false eyes | |
7326 | - compute_eyes and propogate_eyes are now public functions | |
7327 | - bugfix in shapes.c: obonus and xbonus should now work correctly | |
7328 | - revisions to documentation | |
7329 | ||
7330 | 2.3.41 released June 22, 1999 | |
7331 | ||
7332 | - compute_eyes is partially written (without using matchpat) | |
7333 | - revisions to computation of genus | |
7334 | - openeyes is expunged | |
7335 | - half eye database is invoked earlier | |
7336 | - half eye database used only to find false eyes | |
7337 | - bonus field split into obonus and xbonus | |
7338 | - obonus and xbonus are applied to patterns involving weak groups | |
7339 | - most EB patterns now have bonuses | |
7340 | - 5 point bonus for patterns involving weak groups (2.3.38) is gone | |
7341 | - some tuning | |
7342 | - some bugfixes in eyes.c, dragons.c and semeai.c | |
7343 | ||
7344 | 2.3.40 released June 21, 1999 | |
7345 | ||
7346 | - substantial revisions and new code in dragon.c and eye.c | |
7347 | - dragons around an eye shape are now amalgamated | |
7348 | - delta_moyo looks in meta_connect for the tested move | |
7349 | - Bug fixes for two helpers. | |
7350 | - Minor tuning. | |
7351 | - GNU now can read sgf files with missing final ")". | |
7352 | - defender and the attacker try the move suggested by shapes() | |
7353 | - The semeai player now prefers to play on mutual liberties if this | |
7354 | improves the liberty balance. | |
7355 | ||
7356 | 2.3.39 released June 18, 1999 | |
7357 | ||
7358 | - some tuning, new helper block_attack_defend_helper | |
7359 | - eye code now fills out an array eye[][] with data | |
7360 | - revision to eye algorithm | |
7361 | - open eye spaces now have origins | |
7362 | - bugfix with -E option | |
7363 | - dead groups are now cyan in showboard (were white) | |
7364 | ||
7365 | 2.3.38 released June 17, 1999 | |
7366 | ||
7367 | - experimental bonus of 5 points to patterns involving a weak dragon | |
7368 | - revision of patterns/hoshi.sgf: attachment variations deprecated | |
7369 | - open eye shapes are now computed. Display these with gnugo -E | |
7370 | - some tuning | |
7371 | ||
7372 | 2.3.37 released June 16, 1999 | |
7373 | ||
7374 | - weak groups no longer classed dragon.status==CRITICAL. Instead ... | |
7375 | - new field dragon.weak | |
7376 | - old worm.weak and dragon.weak renamed worm.lunch and dragon.lunch | |
7377 | - weak groups (found by moyo) classed dragon.weak==CRITICAL | |
7378 | - dragon.weak field not used by genmove but displayed by showboard | |
7379 | - new helper wedge2_helper | |
7380 | - tuning and other revisions to pattern database | |
7381 | - src/eye.c code is now linked though not used by genmove | |
7382 | - revisions to showboard to display eye domains if xo=1 | |
7383 | - int make_worms() (was void) returns 1 if board not empty | |
7384 | - find_weak() renamed find_lunch() | |
7385 | ||
7386 | 2.3.36 released June 15, 1999 | |
7387 | ||
7388 | - weak groups are classed CRITICAL so they scrounge eyes | |
7389 | - new function test_weak to find weak groups (in moyo.c) | |
7390 | - revision to print_txt_color | |
7391 | - bugfix in fill_liberties | |
7392 | - revised docs/BOUZY | |
7393 | - bugfix: find_defense no longer checks that strings can be attacked | |
7394 | which required some modifications, slowing us down a little | |
7395 | - DEPTH reduced to 12 | |
7396 | ||
7397 | 2.3.35 released June 15, 1999 | |
7398 | ||
7399 | - reading code is much faster now and hopefully also more accuracy. | |
7400 | - new function relative_break_chain() used in revised readlad2() | |
7401 | - caching of moves eschewed in break_chain(), break_chain2() | |
7402 | if return pointer is NULL | |
7403 | - DEPTH increased from 10 to 13 | |
7404 | - new docs/READING explains using --decidestring -o with gdb | |
7405 | - connect_under_helper() rewritten to use connection_value() | |
7406 | - housecleaning in patterns.db | |
7407 | ||
7408 | 2.3.34 released June 14, 1999 | |
7409 | ||
7410 | - test for pass in play_solo.c corrected | |
7411 | - tuning | |
7412 | - new pattern classification: Edge Expansion | |
7413 | - GNU tries in two ways to fill liberties (points in Chinese count) | |
7414 | - before passing, DEAD opponent stones in semeai are reclassed | |
7415 | unknown, then shapes is rerun | |
7416 | - if that doesn't work, new function fill_liberty() tries again | |
7417 | - new field dragon.semeai, new function revise_semeai() | |
7418 | - static_eval() is gone (superceded by moyo()) | |
7419 | - reading.c: new function savestone3() | |
7420 | - reading.c: savestone2 no longer tries to find the best move since | |
7421 | we have ways to improve points of attack and defense | |
7422 | - some code taken out of find_defense() | |
7423 | - dump_stack() uses gprintf instead of TRACE and counts variation | |
7424 | ||
7425 | 2.3.33 released June 12, 1999 | |
7426 | ||
7427 | - new function meta_connect to test a move against area ownership | |
7428 | (returns true when the move connects/disconnects meta groups) | |
7429 | - area ownership now sees kosumi connections | |
7430 | - minor changes in moyo.c data structures | |
7431 | - in shape.c, added some bonus for meta_connect moves | |
7432 | - in mkpat.c, some bonus added to maxwt for meta_connect moves | |
7433 | - minor tuning | |
7434 | - in readlad2() we consider throwins | |
7435 | - Copyright updated (no longer says 2.0) in src/ and patterns/ | |
7436 | ||
7437 | 2.3.32 released June 11, 1999 | |
7438 | ||
7439 | - substantial speedup of reading code | |
7440 | - in savestone2, we try to find an easy saving move before reading | |
7441 | - in savestone2, we don't try second move if first works | |
7442 | - in readlad2, we postpone break_chain2 but not break_chain | |
7443 | - option --decidestring -o now outputs variation numbers | |
7444 | - bugfix in extend_to_kill_helper | |
7445 | - embryonic src/eyes.c included in tar file | |
7446 | ||
7447 | 2.3.31 released June 10, 1999 | |
7448 | ||
7449 | - new globals last_move_i and last_move_j give the last move made. | |
7450 | This is used to improve(?) ascii output. | |
7451 | - fixed bug ascii play where the captured stones where added wrong | |
7452 | - play_ascii and play_test start with move 0 like play_gmp | |
7453 | - in ascii play the last move is now marked | |
7454 | - bug fixed in ascii play when a pass is made | |
7455 | ||
7456 | 2.3.30 released June 9, 1999 | |
7457 | ||
7458 | - reimplementation of of handicap in ascii without writing p[][] | |
7459 | - new functions for saving/restoring game state without using stack | |
7460 | - use inc_movenum instead of movenum++ in play_gmp and play_solo | |
7461 | - revision to ko_important_helper: ko values cut in half | |
7462 | - move_attack() and move_defense() renamed change_attack() and change_defense() | |
7463 | - new komoku pattern | |
7464 | - 2 new patterns | |
7465 | ||
7466 | 2.3.29 released June 7, 1999 | |
7467 | ||
7468 | - connection_value moved to src/util.c | |
7469 | - alive11_helper modified | |
7470 | - eschewing of kos by attacker() and defender(), dropped in 2.3.28 is back | |
7471 | - edge_ko_important helper added | |
7472 | - new sente_extend_helper, straight_connect_helper, block_to_kill_helper | |
7473 | extend_to_kill_helper, revise_value_helper | |
7474 | - new half eye pattern | |
7475 | - several new patterns and changes to patterns.db | |
7476 | - moved some CC patterns from wrong section | |
7477 | - now --color should work with ascii interface | |
7478 | ||
7479 | 2.3.28 released June 6, 1999 | |
7480 | ||
7481 | - bugfix (worm.c, shapes.c, helpers.c): propogate_worm not used with stackp>0 | |
7482 | - attacker() and defender() no longer eschew kos | |
7483 | - unused sgfAddPlay is commented out (fixing a warning) | |
7484 | - fixes to trace (indent is back, caves which are kos are reported correctly) | |
7485 | - default backfill_depth is 7 (arrived at by trial and error) | |
7486 | - option --decidestring no longer requires -o (useful with or without it) | |
7487 | - in make_worms() code to improve worm.attack, worm.defend we now read | |
7488 | one step deeper in the stack to avoid horizon effect | |
7489 | - initialization in propogate_worm() uses memset | |
7490 | ||
7491 | 2.3.27 released June 5, 1999 | |
7492 | ||
7493 | - new option -B [depth] should now work | |
7494 | - default values of depth and backfill_depth are 10 and 5 | |
7495 | - new function mprintf which is similar to gprintf but writes to stdout | |
7496 | - changed vgprintf to work with different outputs (i.e. stderr, stdout) | |
7497 | - the testmode now write its output to stdout only (never stderr) | |
7498 | - bugfix in backfire_helper | |
7499 | ||
7500 | 2.3.26 released June 4, 1999 | |
7501 | ||
7502 | - Backfill depth can now be set with -B [depth] | |
7503 | - very minor revisions to patterns.db | |
7504 | - reading.c: bc was not being initialized when stackp>0 (twice) | |
7505 | ||
7506 | 2.3.25 released June 1, 1999 | |
7507 | ||
7508 | - bug fix in new make_worm() code | |
7509 | - connection_value gives a bonus if the connecting move makes 2 eyes | |
7510 | - mystery pattern CB102 removed | |
7511 | ||
7512 | 2.3.24 released May 30, 1999 | |
7513 | ||
7514 | - tuning of joseki and patterns | |
7515 | - revised definition of inessential worms --- require worm.weak==-1 | |
7516 | - new code in make_worms() to revise points of attack/defense | |
7517 | - BACKFILL_DEPTH reduced to 4 due to increased slowness | |
7518 | - basicnet4 included but turned off | |
7519 | ||
7520 | 2.3.23 released May 29, 1999 | |
7521 | ||
7522 | - asymmetry bug in moyo.c fixed: when init_moyo() is launched, | |
7523 | boardsize is not known | |
7524 | - area computation and dilat algorithm bug | |
7525 | - distribution includes reading.c.alt for the experimentally inclined | |
7526 | - tuning and new helpers | |
7527 | - dragon.c split into dragon.c and worm.c | |
7528 | ||
7529 | 2.3.22 released May 27, 1999 | |
7530 | ||
7531 | - disabled long jumps into enemy area without a secure connection | |
7532 | - no center pattern can jump down to or along the second line | |
7533 | - revision to the endgame patterns according to docs/ENDGAME | |
7534 | - detect_trap_helper looks for moves attacking two groups at once | |
7535 | - some other tuning | |
7536 | - evaluate_game removed from the distribution | |
7537 | - semeai will not recommend a move which leads to an immediate loss | |
7538 | - bugfix in semeai: bestlib was not getting updated | |
7539 | ||
7540 | 2.3.21 released May 27, 1999 | |
7541 | ||
7542 | - Empty corner play moved to src/fuseki.c (new) and reimplemented | |
7543 | - Embryos for 3-4, 3-3, 5-3, and 5-4 joseki databases in patterns/*.sgf | |
7544 | - option -m [level] for debugging moyos | |
7545 | - docs/EYES revised | |
7546 | - bugfix in urgent_connect_helper | |
7547 | - pattern revisions | |
7548 | ||
7549 | 2.3.20 released May 26, 1999 | |
7550 | ||
7551 | - readlad2 now tries backfilling. readlad2 and attack return 2 if | |
7552 | a backfill is found but no direct attacking move | |
7553 | - new patterns | |
7554 | - use of macros to simplify helpers | |
7555 | - trymove: sgf --decidestring now gives more information | |
7556 | - solves errors when MAX_DILAT != MOY_DILAT | |
7557 | - now the area ownership uses 4 dilation, which seems better. | |
7558 | - docs/ENDGAME added from Gunnar's email of May 18, 1999 | |
7559 | ||
7560 | 2.3.19 released May 24, 1999 | |
7561 | ||
7562 | - edge block/expand patterns reordered | |
7563 | - tuning | |
7564 | - a new joseki | |
7565 | - a new helper | |
7566 | - Move evaluate_game functionality into play_test.c | |
7567 | - It is now main.c that loads the sgf file into a tree. | |
7568 | - If no playmode / testmode is supplied, look for a comment | |
7569 | of the form C[testmode=...] in the root node. If found, | |
7570 | this sets the playmode / testmode. | |
7571 | - Other interface fns take the tree, rather than filename, as param. | |
7572 | - testmode is now a local variable, passed as param into play_test, | |
7573 | rather than setting into global state via set_testmode / get_testmode | |
7574 | - Move the tests for acceptable sgf file (GM[1]FF[3/4]) into the | |
7575 | sgf reader, rather than in the user of the tree. | |
7576 | - bugfix in hane_backfill_helper | |
7577 | - semeai now attacks dragons of low vitality | |
7578 | - semeai tries a little harder to choose a smart liberty | |
7579 | ||
7580 | 2.3.18 released May 23, 1999 | |
7581 | ||
7582 | - break_chain() and break_chain2() return 2 if saving move can be taken | |
7583 | - savestone2() and find_defense() try harder not to make self-atari | |
7584 | - find_defense() now considers tenuki | |
7585 | - forgot to initialize adjsize and adjlib in chainlinks() | |
7586 | ||
7587 | 2.3.17 released May 23, 1999 | |
7588 | ||
7589 | - Complete reordering and some tuning of the fuseki patterns. | |
7590 | - A little tuning elsewhere. | |
7591 | - Documentation of the new features in the patterns.db format. | |
7592 | - The -m option enhanced with another board with delta_moyo values. | |
7593 | - chainlinks test now in basicnet3 | |
7594 | - delta_terri(int ti, int tj,int color) : the same as delta_moyo(), | |
7595 | but against the 5/21 evaluation | |
7596 | - area ownership evaluation (using 5/0 algo), with wrapper functions : | |
7597 | area_stone(int m,int n), area_space(int m,int n) | |
7598 | area_color(int m,int n), area_tag(int m,int n) | |
7599 | set_area_tag(int m,int n,int tag) | |
7600 | - the values are computed during make_moyo evaluation, use | |
7601 | "gnugo -m" to see how area are evaluated. | |
7602 | - bugfix in play_test.c | |
7603 | ||
7604 | 2.3.16 released May 22, 1999 | |
7605 | ||
7606 | - Wind assistance complemented by moyo assistance. | |
7607 | - Move dependent randomness replaced by pattern dependent randomness. | |
7608 | - Format of patterns.db changed to accomodate new features mentioned above. | |
7609 | - One new joseki line. | |
7610 | - Jump out patterns retuned. They may still be somewhat out of tune | |
7611 | but in a new and different way. Or maybe they even work quite well. | |
7612 | - Some tuning of fuseki patterns. | |
7613 | - Caching of upower and mypower values from testwind. | |
7614 | - Some functions moved from matchpat.c to shapes.c. | |
7615 | ||
7616 | 2.3.15 released May 22, 1999 | |
7617 | ||
7618 | - board-setup nodes were being ignored in test-mode | |
7619 | - fixes a bug where moves annotated as bad (MA[]) were reported as good. | |
7620 | - took ascii_showboard out of play_test.c. | |
7621 | - end_sgfdump() tries to pop the stack before closing the file | |
7622 | - DEPTH ramped all the way up to 10, the new reading code is so fast | |
7623 | - evaluation of moves is moved to break_chain and break_chain2 | |
7624 | - simplification of readlad1, readlad2, savestone2, find_defense and basicnet3 | |
7625 | - a few annotated games against David Fotland's XGO added to regression/ | |
7626 | ||
7627 | 2.3.14 released May 21, 1999 | |
7628 | ||
7629 | - documentational changes to helpers.c | |
7630 | - minor changes in patterns.db | |
7631 | - all jump_out_helper patterns changed to weight 60 for moyo heuristics | |
7632 | - jump_out_helper() modified to use moyo heuristics | |
7633 | - new function delta_moyo() run quite fastly, using the cache as proposed. | |
7634 | the result of this function go in global variables : | |
7635 | moyo_test[WHITE],moyo_test[BLACK] and the difference from precedent | |
7636 | moyo evaluation is in moyo_test[0] | |
7637 | delta_moyo returns what is expected : the difference from point of view | |
7638 | of "color" player, aka moyo_test[0] | |
7639 | the same for moyo_eval[3] and terri_eval[3] | |
7640 | so all the results are availables for later use. | |
7641 | (see sources for details) | |
7642 | - used #defines for the variables 5/21 and 5/10 (can be 4/10 too), see liberty.h | |
7643 | ||
7644 | ||
7645 | 2.3.13 released May 20, 1999 | |
7646 | ||
7647 | - further revisions to ttsgf_read.c regarding file buffering | |
7648 | - tuning, new patterns, helpers, half eye patterns | |
7649 | ||
7650 | 2.3.12 released May 20, 1999 | |
7651 | ||
7652 | - tuning | |
7653 | - ttsgf_read.c: changed | |
7654 | ||
7655 | 2.3.11 released May 19, 1999 | |
7656 | ||
7657 | - reading.c from 2.3.8 is restored | |
7658 | - MAX_FILE_BUFFER increased to 150000 in ttsgf_read.c | |
7659 | - tuning and a new joseki | |
7660 | - hide most of liberty.h from non-src/ code. | |
7661 | - src/ and patterns/ define BUILDING_GNUGO_ENGINE, | |
7662 | and are therefore allowed to see all the internal | |
7663 | symbols. Otherwise, code just sees a few functions, | |
7664 | and sees 'const' versions of the variables. | |
7665 | - (liberty.h defines a macro PUBLIC_VARIABLE which expands | |
7666 | to extern for engine source files, and extern const | |
7667 | for others) | |
7668 | - *NOTE* : we get many warnings about const violations, | |
7669 | where other modules write to these variables. In particular, | |
7670 | ascii_showboard makes temporary changes to p[][]. | |
7671 | But it still compiles (with gcc at least). These interface | |
7672 | violations were always there. Now they are visible. | |
7673 | - Moved remove_string() and count_territory() from play_ascii | |
7674 | into src/utils : these need to be part of the engine | |
7675 | since they have intimate access to the state. | |
7676 | - Did a bit of gratuitous changes with play_test.c | |
7677 | No functionality changes. | |
7678 | - lost get_*_a and put_*_a interface functions. | |
7679 | - make_dragons() is no longer predicated on movenum, but | |
7680 | on existence of worms. | |
7681 | - potential_moves[][] is now taken seriously : genmove() | |
7682 | clears it at the start of the move cycle, rather than | |
7683 | having sgf_move_made() clear it at some random time | |
7684 | after genmove has returned. | |
7685 | - semeai criterion slightly changed: my dragon.vitality<0 | |
7686 | and your dragon.status==DEAD. | |
7687 | ||
7688 | 2.3.10 released May 18, 1999 | |
7689 | ||
7690 | - hane_backfill_helper deprecated | |
7691 | - semeai module now consults vitality field to initiate fighting | |
7692 | - test mode did not pass movenum to engine code: fixed. | |
7693 | did away with the game_info entries for boardsize and move_number, | |
7694 | made the interface use the engine's global variables instead. | |
7695 | Better solution is needed (see TODO) | |
7696 | ||
7697 | 2.3.9 released May 17, 1999 | |
7698 | ||
7699 | - play_solo.c: in load_sgf_file() we now use global movenum instead of mv | |
7700 | - play_solo.c: white stones were loading as black (fixed) | |
7701 | - new helpers, tuning, revisions to pattern database | |
7702 | - mkpat.c: maxwt now takes bonus into account | |
7703 | - reading.c: break_chain2 simplified | |
7704 | ||
7705 | 2.3.8 released May 17, 1999 | |
7706 | ||
7707 | - backfill.sgf added to regression/ | |
7708 | - color added to moyo.c | |
7709 | - bugfix in moyo.c: captures were counted backwards | |
7710 | - BOUZY added to docs/ | |
7711 | - bugfix in sente_hane_helper | |
7712 | - joseki patterns are now type 's' | |
7713 | - fix the board_size bug in test mode | |
7714 | - reimplement load_sgf_file() in terms of the sgf parser : gives us | |
7715 | ability to read multiple AB[][]... for free | |
7716 | - move load_sgf_file and load_and_analyse_sgf_file from sgf/ into | |
7717 | interface. (Currently play_solo.c but that's temporary.) | |
7718 | Justification is that these fns have more to do with the engine | |
7719 | than with sgf files. | |
7720 | - put in the emacs variable blocks into some of the files | |
7721 | - remove some extern refs from .c files - according to David | |
7722 | this is a bad practise | |
7723 | - Remove a few remaining // comments, and disable // comments in | |
7724 | GNUGO_SOME_WARNINGS | |
7725 | - Reorganise the --help page, and add long options for most of the | |
7726 | short ones. The --help is modelled after gnu tar. | |
7727 | - Some files had #define _NO_PROTO to hide getopt() prototype, but | |
7728 | these files were not doing option parsing, so assume this is redundant. | |
7729 | - interface game_info structure was used only in interface.c, so | |
7730 | moved the structure defn out of a public header file | |
7731 | - The ttsgf_read.c code only offered to parse an sgf file which had | |
7732 | already been read into a buffer. Moved a code fragment which appeared | |
7733 | in two places to load the file then parse it into a readsgffile() | |
7734 | function. | |
7735 | - Prefixed all the symbols for long option names with OPT_, and mode | |
7736 | names with MODE_to avoid namespace clashes. (DECIDE_STRING was being | |
7737 | used as a mode and an option.) | |
7738 | ||
7739 | 2.3.7 released May 15, 1999 | |
7740 | ||
7741 | - Jerome's moyo mode (-m option) | |
7742 | - new patterns and helpers, including backfill patterns CD47 and CD48 | |
7743 | - reading.c: trysafe in readlad2 has been removed | |
7744 | - reading.c: in savestone2 if stackp==0 we first try to capture | |
7745 | - a surrounding string. This would lead to thrashing if we tried | |
7746 | - it at deeper levels | |
7747 | - reading.c: bug fix in find_defense (Gunnar) | |
7748 | - reading.c: in break_chain2 we omit harder attacks if string has | |
7749 | - 3 liberties since this causes too many errors. | |
7750 | - reading.c: in basicnet3 we test a little more the attack really works | |
7751 | ||
7752 | 2.3.6 released May 15, 1999 | |
7753 | ||
7754 | - bug fixes in patterns/ | |
7755 | ||
7756 | 2.3.5 released May 14, 1999 | |
7757 | ||
7758 | - tuning, new helper | |
7759 | - initialization in src/evaluate_game.c and interface/play_test.c | |
7760 | ||
7761 | 2.3.4 released May 13, 1999 | |
7762 | ||
7763 | - Nils' changes to main.c and src/Makefile.am | |
7764 | - tuning, joseki revisions, new helper wedge_helper | |
7765 | ||
7766 | 2.3.3 released May 12, 1999 | |
7767 | ||
7768 | - find_weak eschewed in find_defense | |
7769 | - change to allow build in a directory other than source | |
7770 | - braces to joseki.c to avoid a warning about dangling else | |
7771 | - added --testmode game to analyze games and see if it considered the moves | |
7772 | - added docs/structure.doc describing program structure and APIs | |
7773 | ||
7774 | 2.3.2 released May 12, 1999 | |
7775 | ||
7776 | - missing library files restored in utils/Makefile.am | |
7777 | - tuning, invasion under hoshi joseki | |
7778 | - and a cosmetic bug fix in shapes.c. | |
7779 | - patterns for endgame ko | |
7780 | - bugfix in double_attack patterns | |
7781 | ||
7782 | 2.3.1 released May 11, 1999 | |
7783 | ||
7784 | - Joseki compiler and beginnings of a Joseki database | |
7785 | - some tuning | |
7786 | - Tweak sgf/Makefile.am to write generated sgf_properties to $(srcdir)/ | |
7787 | note : this generates a warning at automake, but I think it is benign. | |
7788 | - remove the GCC_OPTS from the Makefile.am's, and replace with either | |
7789 | @GNUGO_SOME_WARNINGS@ or @GNUGO_ALL_WARNINGS@. | |
7790 | This means we can centralise the choice of which warnings we enable, | |
7791 | rather than having to duplicate the list of warnings in each component. | |
7792 | - Add code to configure.in to generate the above. ALL_WARNINGS switches off use | |
7793 | of // comments (via -Wp,-lang-c89 which runs preprocesser in ansi mode). | |
7794 | SOME_WARNINGS will do the same once all components have been cleaned up. | |
7795 | SOME_WARNINGS is intended for code over which we don't have full control (eg gmp.c) | |
7796 | and so we have to be more liberal in the diagnostics. | |
7797 | - Removed from the build some of the stuff in utils/ which we do not (currently) use. | |
7798 | - fixed clear_board() bug that caused segfaults | |
7799 | - fixed game parameter handling in main() to use interface API | |
7800 | - updated other interfaces to partially use interface API (no more | |
7801 | passing from main!) | |
7802 | - removed // comments where they were not needed | |
7803 | They stil are in the tt* code, that needs to be revisited!! | |
7804 | - patched sgfgen to use stdin and stdout- makes things easier | |
7805 | ||
7806 | 2.1.25 released May 10, 1999 | |
7807 | ||
7808 | - added --decidestring option for sgf debugging reading code | |
7809 | - added regression directory: contains a few example test files | |
7810 | - added --quiet option | |
7811 | - added --testmode option: move, annotation, or both | |
7812 | This allows some flexibility in handling differently annotated files | |
7813 | - added --infile and --outfile options | |
7814 | - wrote play_test to handle regression testing | |
7815 | - wrote sgfgen, a program to translate SGF definitions into a header file | |
7816 | - added Tommy Thorn's code for SGF parsing and implemented tree parsing | |
7817 | - updated ASCII interface to rely on interface routines- it works! | |
7818 | - updated interfaces to handle new 'pass' based on int returned from genmove | |
7819 | - made genmove return boardsize, boardsize coordinates for pass | |
7820 | - added interface specification and code-- we now have engine independence! | |
7821 | - moved all SGF code into sgf directory | |
7822 | ||
7823 | 2.1.23 released May 7, 1999 | |
7824 | ||
7825 | - sgf debugging of reading code (from gdb only in this release) | |
7826 | ||
7827 | 2.1.22 released May 6, 1999 | |
7828 | ||
7829 | - renum target removed from pattern Makefile.am and Makefile.in | |
7830 | - strategic_distance was being calculated incorrectly | |
7831 | - revisions to pattern database | |
7832 | - chainlinks now tabulates the size of adjacent worms in preparation | |
7833 | to trying to sorting them when stackp<depth | |
7834 | - split out play_solo() into play_solo.c | |
7835 | - moved interface routines (play*, gmp*, sgf*) into interfaces/ directory | |
7836 | - combined play*.h into interface.h | |
7837 | - renamed 'lib' directory to 'utils' to be consistent with other dir names | |
7838 | - moved AUTOMAKE.README into docs | |
7839 | ||
7840 | 2.1.21 released May 5, 1999 | |
7841 | ||
7842 | - minor revisions to pattern database | |
7843 | - adds tests for term.h and curses.h before defing CURSES | |
7844 | - fixes a typo in helpers.c | |
7845 | - fixes some hard-wired 18's in make_worms() | |
7846 | - fixes what I believe to be a bug in scoping in make_worms | |
7847 | - gratuitously moves some variable declarations around in make_worms | |
7848 | - moved pattern files to patterns directory | |
7849 | - pattern files and functions are now linked in as a library: libpatterns | |
7850 | ||
7851 | 2.1.20 released May 5, 1999 | |
7852 | ||
7853 | - configure options | |
7854 | - main.c: LOAD_AND_ANALYZE mode | |
7855 | ||
7856 | 2.1.19 released May 4, 1999 | |
7857 | ||
7858 | - removed #include "../lib/getopt.h" from play_ascii.c - not needed | |
7859 | - added some code to better handle config.h to main.c and play_ascii.c | |
7860 | - added ascii_showboard() before the counting starts, useful after 'play 999' | |
7861 | - added --mode option to main.c | |
7862 | - changed how different play modes are started: now using switch() | |
7863 | - removed -g option: use --mode instead | |
7864 | - changed MAX_BOARD to 25 in liberty.h: try some bigger games! | |
7865 | - changed sgf 'pass' to [tt] if boardsize>19, else [] (by SGF standard) | |
7866 | - changed 'pass' moves to send board_size, board_size to sgf routines | |
7867 | ||
7868 | 2.1.18 released May 3, 1999 | |
7869 | ||
7870 | - play_ascii: playblack and playwhite are recognized as valid commands. | |
7871 | - play_ascii: Correct use of strtok on Solaris (missing strsep) | |
7872 | - ascii display and showboard now work as stated in the help command | |
7873 | - ascii display doesn't draw the board twice if showboard is enabled. | |
7874 | - ascii force was broken, is no longer. | |
7875 | - added check for getopt.h to configure.in | |
7876 | - fixed PLAY in play_ascii: need to check for two passes! | |
7877 | - prettyfication in main.c: changed strcmp() usage | |
7878 | - fixed seed printing in sgf.c | |
7879 | - play_gmp: handicap was not being passed to sgf_write_game_info | |
7880 | ||
7881 | 2.1.17 released May 2, 1999 | |
7882 | ||
7883 | - added counting to ascii interface | |
7884 | - Gunnar's reshuffled patterns | |
7885 | - LDFLAGS = $(COLORLIB) in src/Makefile.am and src/Makefile.in | |
7886 | ||
7887 | 2.1.16 released May 1, 1999 | |
7888 | ||
7889 | - further revisions to ascii interface | |
7890 | ||
7891 | 2.1.15 released May 1, 1999 | |
7892 | ||
7893 | - further revisions to play_ascii and sgf.c | |
7894 | - Gunnar's pattern classification in patterns.db | |
7895 | - static evaluation of the board position | |
7896 | ||
7897 | 2.1.13 released April 30, 1999 | |
7898 | ||
7899 | - moved all sgf routines into sgf.c | |
7900 | - changed pass value: from 19, 19 --> board_size, board_size | |
7901 | - added sgf_open_file() sgf_close_file() and sgf_flush_file() to sgf.c | |
7902 | - also added sgf_write_line() and sgf_write_game_info() | |
7903 | - rewrote play_solo to use new sgf routines | |
7904 | - absolutely no more build errors! (at least on Linux...) | |
7905 | - renamed ascii.* play_ascii.* | |
7906 | - moved play_gmp into play_gmp.c and added header file | |
7907 | - added komi option (doesn't do anything yet, just parses it) | |
7908 | ||
7909 | 2.1.12 released April 29, 1999 | |
7910 | ||
7911 | - finished adding long options | |
7912 | - color also works now (--handicap and --boardsize have been working) | |
7913 | - needs a little cleanup with short options- some should become long | |
7914 | - finished ASCII interface | |
7915 | - can display any board size up to 25x25 | |
7916 | - has command line options and help | |
7917 | - enhanced error messages | |
7918 | - added 'switch' command to switch colors in the middle of play | |
7919 | ||
7920 | 2.1.11 realeased April 29, 1999 | |
7921 | ||
7922 | - Minor changes to the syntax of patterns.db and hey.db as a preparation | |
7923 | for restructuring of patterns.db. Documentation in PATTERNS updated. | |
7924 | - moved ascii play code into ascii.c | |
7925 | - copied showboard code for ascii play into ascii.c (ascii_showboard) | |
7926 | - updated Makefile.am's to reflect changes | |
7927 | - removed posix and error.c files from lib dir- not needed | |
7928 | - added long option parsing; still need to add this to help menu | |
7929 | - moved PATTERNS, DRAGON and OVERVIEW to /docs | |
7930 | ||
7931 | 2.1.10 released April 28, 1999 | |
7932 | ||
7933 | - incorporated more reorganizational patches | |
7934 | ||
7935 | 2.1.9 released April 28, 1999 | |
7936 | ||
7937 | - Automake-ized (NL) | |
7938 | - Made code which moves dragon[m][n].borders contingent on !worm[m][n].ko | |
7939 | - Set TRUST_GRID back to 1. | |
7940 | ||
7941 | -------------------------------------------------------------- | |
7942 | ||
7943 | This is GNU Go, a Go program. Contact gnugo@gnu.org, or see | |
7944 | http://www.gnu.org/software/gnugo/ for more information. | |
7945 | ||
7946 | Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 | |
7947 | and 2008 by the Free Software Foundation. | |
7948 | ||
7949 | This program is free software; you can redistribute it and/or | |
7950 | modify it under the terms of the GNU General Public License as | |
7951 | published by the Free Software Foundation - version 3 or | |
7952 | (at your option) any later version. | |
7953 | ||
7954 | This program is distributed in the hope that it will be useful, | |
7955 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
7956 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
7957 | GNU General Public License in file COPYING for more details. | |
7958 | ||
7959 | You should have received a copy of the GNU General Public | |
7960 | License along with this program; if not, write to the Free | |
7961 | Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
7962 | Boston, MA 02111, USA. |