Updated README: Equal sign not required with `--mode` flag.
[sgk-go] / ChangeLog
CommitLineData
7eeb782e
AT
1-------------------------------------------------------------------------
2-- ChangeLog
3-------------------------------------------------------------------------
4
53.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
123.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
233.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
323.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
553.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
803.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
1193.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
1483.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
2053.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
2363.7.6 released September 21, 2005
237
238- a few missing game records restored
239- revised patterns.dsp and new uncompress_fuseki.dsp
240
2413.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
2593.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
2723.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
2863.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
3403.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
4273.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
4323.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
4433.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
4753.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
5113.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
5253.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
5803.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
6133.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
6853.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
7083.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
7593.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
7693.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
7983.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
8403.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
8743.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
9363.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
9463.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
9973.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
10483.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
10753.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
11153.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
11283.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
11853.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
12293.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
12413.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
13183.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
13973.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
14043.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
14553.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
14853.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
15083.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
15273.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
15693.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
15953.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
16013.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
16073.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
16263.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
16633.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
16863.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
17033.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
17213.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
17653.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
18013.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
18253.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
18573.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
18903.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
19273.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
19643.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
19703.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
20043.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
20143.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
20443.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
20773.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
21213.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
21773.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
22283.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
22663.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
23043.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
23403.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
23883.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
24253.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
24703.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
25053.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
25113.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
25173.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
25323.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
25443.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
25543.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
25753.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
25842.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
25932.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
25992.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
26112.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
26192.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
26282.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
26432.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
26582.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
26982.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
27172.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
27502.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
27752.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
28002.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
28292.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
28582.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
28752.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
28992.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
29322.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
29652.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
29822.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
30122.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
30362.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
30592.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
30722.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
30862.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
31232.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
31582.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
31812.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
32022.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
32222.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
32462.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
32572.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
32692.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
32912.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
33092.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
33312.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
33422.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
33672.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
33792.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
33912.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
34032.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
34082.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
34362.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
34472.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
34712.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
34852.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
35022.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
35192.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
35312.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
35502.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
35662.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
35812.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
35922.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
36062.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
36322.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
36522.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
36662.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
36762.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
36832.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
37032.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
37222.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
37382.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
37462.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
37892.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
38032.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
38242.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
38342.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
38482.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
38662.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
39142.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
39322.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
39412.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
39532.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
39612.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
39862.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
39952.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
40022.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
40322.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
40432.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
40552.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
40662.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
40742.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
40902.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
41072.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
41182.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
41402.7.171 [NOT RELEASED]
4141
41422.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
41562.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
41762.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
41852.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
41972.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
42122.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
42252.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
42352.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
42502.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
42602.7.161 released September 1, 2000
4261
4262- mouse tuning
4263
42642.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
42782.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
42952.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
43032.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
43192.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
43452.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
43562.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
43702.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
43842.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
44002.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
44162.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
44302.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
44412.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
44522.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
44652.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
44842.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
44932.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
45062.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
45262.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
45432.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
45672.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
45742.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
45902.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
46042.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
46172.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
46292.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
46392.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
46562.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
46662.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
46812.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
47182.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
47312.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
47382.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
47542.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
47732.7.126 released July 5, 2000
4774
4775- change in definition to higher order liberties
4776
47772.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
47912.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
47982.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
48092.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
48232.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
48312.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
48422.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
48662.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
48972.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
49092.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
49312.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
49432.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
49752.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
49992.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
50132.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
50212.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
50262.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
50412.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
50482.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
50592.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
50652.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
50842.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
51032.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
51122.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
51202.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
51262.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
51362.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
51462.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
51632.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
51822.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
51922.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
52002.7.94 released May 18, 2000
5201
5202- bugfixes in mouse.c
5203
52042.7.93 released May 16, 2000
5205
5206- writesgf() split into sgf_write_header() and writesgf()
5207
52082.7.92 released May 14, 2000
5209
5210- bugfix in utils.c, config.h included before using information from
5211 configure tests
5212
52132.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
52272.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
52332.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
52392.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
52472.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
52582.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
52732.7.85 released May 5, 2000
5274
5275- bugfix in recognize_eye()
5276
52772.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
52842.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
52962.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
53052.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
53172.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
53252.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
53342.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
53502.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
53632.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
53792.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
53932.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
54002.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
54102.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
54162.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
54272.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
54362.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
54492.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
54562.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
54652.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
54732.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
54892.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
55102.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
55162.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
55322.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
55442.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
55532.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
55722.7.58 released March 28, 2000
5573
5574- loop unrolling in accumulate_influence(), initially disabled by default
5575
55762.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
55882.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
55992.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
56082.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
56202.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
56282.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
56362.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
56512.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
56612.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
56782.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
56862.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
56962.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
57022.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
57172.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
57312.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
57372.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
57512.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
57632.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
57732.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
57822.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
57882.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
58002.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
58102.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
58192.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
58242.7.33 released February 23, 2000
5825
5826- VC project files and WINDOWS revised
5827
58282.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
58342.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
58422.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
58592.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
58702.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
58782.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
58952.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
59072.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
59422.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
59482.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
59632.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
59772.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
59832.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
60022.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
60072.7.18 released January 12, 2000
6008
6009- src directory renamed to engine
6010
60112.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
60172.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
60262.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
60552.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
60662.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
60812.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
60882.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
61142.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
61222.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
61312.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
61422.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
61532.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
61712.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
61832.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
61882.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
62092.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
62222.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
62292.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
62362.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
62432.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
62542.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
62652.5.42 released November 24, 1999
6266
6267Makefile.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.
6271NEWS
6272- added line containing version number. with the --gnits
6273 option make dist checks for the presence of the version number
6274patterns/Makefile.am
6275- activated the BUILT_SOURCES macro for conn.c patterns.c eyes.c
6276sgf/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.
6282src/Makefile.am
6283- added a noinst_HEADERS macro. Otherwise the headers don't go
6284 into the distribution.
6285
62862.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
62992.5.40 released November 21, 1999
6300
6301- empty SUBDIR macros removed
6302- file- and directory names assigned to the EXTRA_DIST macros
6303
63042.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
63182.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
63292.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
63402.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
63512.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
63612.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
63742.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
63842.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
63962.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
64032.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
64212.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
64302.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
64382.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
64492.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
64572.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
64712.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
64792.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
64882.5.22 released October 14, 1999
6489
6490- new eye patterns
6491
64922.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
65022.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
65192.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
65302.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
65432.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
65542.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
65672.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
65742.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
65812.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
65912.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
65982.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
66062.5.10 released September 22, 1999
6607
6608- important bugfix in moyo.c, fixing an indexing out of bounds error.
6609- tuning
6610
66112.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
66182.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
66242.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
66302.5.6 released September 15, 1999
6631
6632- minor changes for Windows support
6633
66342.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
66422.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
66562.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
66652.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
66742.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
66822.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
66912.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
67012.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
67142.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
67262.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
67442.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
67592.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
67662.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
67832.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
67972.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
68062.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
68212.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
68282.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
68422.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
68592.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
68672.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
68822.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
68892.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
69032.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
69102.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
69192.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
69352.3.73 This version may be released later
6936
69372.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
69442.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
69602.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
69752.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
69992.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
70122.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
70322.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
70492.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
70652.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
70752.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
70962.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
71212.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
71292.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
71452.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
71552.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
71722.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
71792.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
71892.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
72022.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
72112.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
72192.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
72262.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
72352.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
72562.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
72662.3.47 released June 29, 1999
7267
7268- substantial speedup in chainlinks
7269- minor tuning
7270
72712.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
72812.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
72902.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
73022.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
73162.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
73302.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
73442.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
73562.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
73652.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
73722.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
73862.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
73972.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
74082.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
74252.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
74372.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
74472.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
74562.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
74662.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
74792.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
74912.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
75002.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
75062.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
75122.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
75202.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
75292.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
75402.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
75492.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
75602.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
75802.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
75872.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
76042.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
76162.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
76272.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
76452.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
76502.3.12 released May 20, 1999
7651
7652- tuning
7653- ttsgf_read.c: changed
7654
76552.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
76882.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
76972.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
77052.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
77392.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
77522.3.6 released May 15, 1999
7753
7754- bug fixes in patterns/
7755
77562.3.5 released May 14, 1999
7757
7758- tuning, new helper
7759- initialization in src/evaluate_game.c and interface/play_test.c
7760
77612.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
77662.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
77742.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
77822.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
78062.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
78232.1.23 released May 7, 1999
7824
7825- sgf debugging of reading code (from gdb only in this release)
7826
78272.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
78402.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
78512.1.20 released May 5, 1999
7852
7853- configure options
7854- main.c: LOAD_AND_ANALYZE mode
7855
78562.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
78682.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
78812.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
78872.1.16 released May 1, 1999
7888
7889- further revisions to ascii interface
7890
78912.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
78972.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
79092.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
79202.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
79312.1.10 released April 28, 1999
7932
7933- incorporated more reorganizational patches
7934
79352.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
7943This is GNU Go, a Go program. Contact gnugo@gnu.org, or see
7944http://www.gnu.org/software/gnugo/ for more information.
7945
7946Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
7947and 2008 by the Free Software Foundation.
7948
7949This program is free software; you can redistribute it and/or
7950modify it under the terms of the GNU General Public License as
7951published by the Free Software Foundation - version 3 or
7952(at your option) any later version.
7953
7954This program is distributed in the hope that it will be useful,
7955but WITHOUT ANY WARRANTY; without even the implied warranty of
7956MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7957GNU General Public License in file COPYING for more details.
7958
7959You should have received a copy of the GNU General Public
7960License along with this program; if not, write to the Free
7961Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
7962Boston, MA 02111, USA.