7963 lines
300 KiB
Plaintext
7963 lines
300 KiB
Plaintext
-------------------------------------------------------------------------
|
|
-- ChangeLog
|
|
-------------------------------------------------------------------------
|
|
|
|
3.8 released February 17, 2009
|
|
|
|
- added Wietze Brandsma to THANKS
|
|
- revised config.vc
|
|
- revised NEWS
|
|
- restored missing mkmcpat.dsp, regress.cmd
|
|
|
|
3.8rc1 released February 6, 2009
|
|
|
|
- revisions to montecarlo.texi
|
|
- revised .dsp files
|
|
- Lee Fisher added to AUTHORS
|
|
- WINDOWS doc and install.texi revised per Lee Fisher's changes
|
|
- mkmcpat puts 16 items on a line instead of 8
|
|
- (unsigned char) and (unsigned short) explicit typings
|
|
- missing files added to EXTRA_DIST
|
|
- copyrights updated to 2009
|
|
|
|
3.7.13 released December 23, 2008
|
|
|
|
- restore cmake files that were missing from the 3.7.12 tarball
|
|
- bring copyright date to 2008
|
|
- doc revision
|
|
- be forgiving with replacement moves conflicting with unconditional analysis
|
|
- accept --enable-socket-support even if configure test fails
|
|
- add globals.c to mkmcpat for OS/X build
|
|
|
|
3.7.12 released April 7, 2008
|
|
|
|
- cmake configuration files for generating MSVC project files
|
|
- minor doc revision
|
|
- new options --mc-patterns, --mc-list-patterns, and --mc-load-patterns
|
|
- tunable local patterns for Monte Carlo simulations
|
|
- try harder to find the right move to make seki in find_moves_to_make_seki()
|
|
- better heuristics to avoid calling semeai reading in
|
|
find_moves_to_make_seki() in hopeless cases
|
|
- never amalgamate dragons over three-liberty strings and sometimes not
|
|
over two-liberty strings
|
|
- send_two_return_one() moved from utils.c to board.c and reimplemented
|
|
- new file engine/montecarlo.c
|
|
- new options --monte-carlo and --mc-games-per-level to use Monte Carlo UCT
|
|
search on 9x9 and smaller boards
|
|
- call check_boardsize() from play_gmp.c to avoid crashing on bad board sizes
|
|
- new function check_boardsize()
|
|
- bugfix in handling of foreground color with ncurses
|
|
- orientation invariant board hashes added
|
|
- tuning
|
|
- add STS-RV semeai regression test suite
|
|
- new and revised tests
|
|
|
|
3.7.11 released November 1, 2007
|
|
|
|
- gtp-commands.texi is not built automatically
|
|
- updates texinfo.tex
|
|
- minor doc revision
|
|
- revised configure.in, aclocal.m4 and *Makefile.in for recent autotools
|
|
- removed acconfig.h
|
|
- don't play send-two-return-one in tactical reading attack moves
|
|
- bugfix in reevaluate_ko_threats() to avoid a crash
|
|
- more efficient aftermath moves
|
|
- version 3 of GPL and update copyright for 2007
|
|
- new static function remove_eye_filling_moves() in owl.c
|
|
- semeai reading revisions
|
|
- look more ambitiously for back-capturing moves in attack1()
|
|
- generate cut move reasons for cutting moves found during find_connections()
|
|
- fix compilation with MAX_BOARD set to low boardsizes (>= 7 tested)
|
|
- performance tuning in do_owl_analyze_semeai()
|
|
- detect unconditionally meaningless moves
|
|
- get_lively_stones() revised to be valid also for stackp>0
|
|
- bugfix in compute_owl_escape_values()
|
|
- moves can be marked as known_safe_moves by patterns
|
|
- bugfix in compute_surroundings()
|
|
- owl tuning
|
|
- new and revised tests
|
|
|
|
3.7.10 released May 21, 2006
|
|
|
|
- gnugo.dsw and uncompress_fuseki.dsp revised
|
|
- configure.in revised to improve socket support detection on windows
|
|
- gameinfo_play_sgftree_rot() revised to fail gracefully
|
|
- new static really_do_trymove() and is_superko_violation() in board.c
|
|
- board hashes stored in the move history
|
|
- is_legal() no longer depends on allow_suicide
|
|
- new is_allowed_move() to determine legality for current suicide and ko rules
|
|
- new global variables suicide_rule and ko_rule
|
|
- illegal moves replaced with passes near the end of do_genmove()
|
|
- reevaluate_ko_threats() revised
|
|
- under superko rules look for ko threats also if best move illegal
|
|
- new options --forbid-suicide (default) and --allow-all-suicide
|
|
- new options --simple-ko (default), --no-ko, --positional-superko,
|
|
and --situational-superko
|
|
- is_allowed_move() used instead of is_legal() in play_gtp.c, play_ascii.c
|
|
and play_solo.c
|
|
- identify_thrashing_dragons() called earlier in make_dragons()
|
|
- do not play self-atari while splitting eyespaces in aftermath_genmove()
|
|
- in do_owl_attack(), don't consider send-two-return-one defender moves
|
|
- send-two-return-one moves not tried in find_more_attack_and_defense_moves()
|
|
- send-two-return-one moves not tried in find_worm_attacks_and_defenses()
|
|
- string connection bonus for ko captures reduced in move_connects_strings()
|
|
- maximum bonus from secondary move values limited to 0.4 points
|
|
- more legality checking in fill_liberty()
|
|
- detect_tactical_blunder() revised to avoid finding illegal defense moves
|
|
- semeai.tst reordered
|
|
- new option --limit-commands to regress.pike
|
|
- new testfile 13x13c.tst
|
|
- do not try to add an sgf circle for pass moves in replay_node()
|
|
- new enum same_dragon_value in owl.c
|
|
- new owl_defendpats.db classification "a" for connecting all friendly
|
|
stones to the goal
|
|
- owl tuning
|
|
- influence tuning
|
|
- tuning
|
|
- new and revised tests
|
|
|
|
3.7.9 released March 10, 2006
|
|
|
|
- new GTP command advance_random_seed <games>
|
|
- make update_random_seed() deterministic
|
|
- fix assertion failure in semeai()
|
|
- semeai attack and defense codes added to struct dragon_data2
|
|
- in estimate_territorial_value(), let stones have influence strength also
|
|
when their safety depends on ko
|
|
- unify internal handling of limit_search and restricted_genmove
|
|
- new function play_lib_n() in utils.c and autohelper functions
|
|
oplay_lib/xplay_lib
|
|
- new static function modify_eyefilling_move() in owl.c
|
|
- do not reset permeability around dead stones
|
|
- do not consider moves playing into snapback in
|
|
do_find_more_owl_attack_and_defense_moves()
|
|
- new function playing_into_snapback() in utils.c
|
|
- only call do_find_more_owl_attack_and_defense_moves() when stackp==0
|
|
- use .strategic_size in estimate_strategical_value()
|
|
- new field .strategic_size in dragon_data2, includes bonus for weak neighbors
|
|
- use gg_normalize_float2int() in valuate_combinable_pattern_chain() to
|
|
address platform dependencies
|
|
- carefully select new owl goal origin
|
|
- allow excess strategical value for some single-worm dragons
|
|
- include played move in atari-atari blunder analysis
|
|
- score.c removed from sources
|
|
- owl tuning
|
|
- tuning
|
|
- new and revised tests
|
|
|
|
3.7.8 released January 30, 2006
|
|
|
|
- new global variable handicap
|
|
- chinese scoring adds the number of handicap stones in addition to the
|
|
komi to white's score
|
|
- include handicap in sgf headers
|
|
- dead code removed from influence_evaluate_position() and the rest moved
|
|
to game_status()
|
|
- metamachine enabled in ascii mode (as in GNU Go 3.6)
|
|
- configure option oracle renamed metamachine (as in GNU Go 3.6)
|
|
- new testfile gifu05.tst
|
|
- don't try large scale attack if original owl reading was expensive
|
|
- teach influence_score() about chinese rules
|
|
- copyright notices updated for 2006
|
|
- bugfix in unconditional status analysis
|
|
- let --capture-all-dead and --play-out-aftermath be effective also when
|
|
playing out a game for scoring (e.g. --score finish)
|
|
- semeai analysis turned off when there are a huge number of dragons
|
|
- MAX_STRINGS value corrected
|
|
- new assertions that the next_string pointer hasn't overflowed
|
|
- hash flag bits and -H option removed
|
|
- default size of reading cache set to a fixed number of entries instead
|
|
of a fixed amount of memory, improving platform independence
|
|
- update information about valid boardsizes in gnugo.pod
|
|
- bugfix for drawing 1x1 board in play_ascii.c
|
|
- regress.pike can run multiple engines in parallel (-j option)
|
|
- correction of color in order_moves() call in reading.c
|
|
- doc revision, updated instruction for setting up HTML regression views
|
|
- find_connection_moves() revised
|
|
- GTP command dragon_data fixed to give well-formed output also on empty
|
|
board
|
|
- update regress.pl and regress.plx to count connection nodes instead of
|
|
life nodes and expect reg_genmove instead of gg_genmove
|
|
- remove gnugo_play_sgftree(), gnugo_genmove(), gameinfo_load_sgfheader(),
|
|
and gameinfo_play_move() from engine/interface.c
|
|
- 1D conversion of gnugo_play_move()
|
|
- new function get_sgfmove()
|
|
- let semeai code pass if no riskless move was found
|
|
- do not hardwire owl node limit for large scale attacks
|
|
- remove many unneeded configure tests
|
|
- READLINE compile (warning) fixes
|
|
- complete rework of clock.c, using level adaption logic from play_gtp.c
|
|
- use more tactical moves in do_owl_analyze_semeai()
|
|
- unused function transform2() removed
|
|
- report_worm() made static in worm.c
|
|
- hashdata_to_string() revised for consistency between 32 and 64 bit platforms
|
|
- bugfixes in do_aftermath_genmove()
|
|
- adjust readconnect node limit when starting search at higher stackp
|
|
- new function get_depth_modification()
|
|
- removed functions set_temporary_depth_values()/restore_depth_values()
|
|
- always set dragon status to ALIVE if owl_status is UNCHECKED
|
|
- correct C-code footer in uncompress_fuseki.c for all values of
|
|
NUM_HASHVALUES
|
|
- play_replay() and replay_node() partially rewritten
|
|
- tuning
|
|
- new and revised tests
|
|
|
|
3.7.7 released October 9, 2005
|
|
|
|
- FSF address corrected in COPYING
|
|
- large scale improvements
|
|
- use signed char instead of char most of the time in the engine
|
|
- string_to_location(), debug_influence_move(), and report_worm()
|
|
converted to 1D
|
|
- get_level() removed from genmove.c
|
|
- documentation update
|
|
- remove long deprecated command hurry from play_ascii
|
|
- use signed char in connected_components() in owl.c
|
|
- rotation support for --decide_* options removed
|
|
- remove trivial wrapper functions from engine/interface.c
|
|
- patterns/transpat.c, patterns/patlib.c, and patterns/patlib.h removed
|
|
- unused game records in regression/golois removed
|
|
- makevcdist.pl updated and re-run
|
|
- all Makefile.in regenerated
|
|
- debugboard traces from Makefile and configure removed
|
|
- endgame1.tst removed from distribution but not from CVS
|
|
- cutstone.tst, semeai2.tst, and *_rot.tst removed
|
|
- debugboard removed
|
|
- support for pattern based reading (EXPERIMENTAL_READING) removed
|
|
- support for tree based pattern matching removed
|
|
- view.pike: support multiple tests as argument
|
|
- test revisions
|
|
- consistently initialize global variables in globals.c (not main.c)
|
|
- large scale code reorganized
|
|
- fullboard support (-f option) remove from mkpat
|
|
- atari_atari tuning
|
|
- endgame tuning
|
|
|
|
3.7.6 released September 21, 2005
|
|
|
|
- a few missing game records restored
|
|
- revised patterns.dsp and new uncompress_fuseki.dsp
|
|
|
|
3.7.5 released September 20, 2005
|
|
|
|
- revision to patterns.dsp (but more revision needed before VC will compile)
|
|
- send usage messages caused by bad input to stderr
|
|
- new, larger fuseki database added as compressed files
|
|
- new files patterns/compress_fuseki.c and patterns/uncompress_fuseki.c
|
|
- use a fullboard hash for fuseki database patterns
|
|
- new array comulative_goal in local_owl_data
|
|
- don't count former owl goal dragon stones towards escape measure
|
|
- removed PROFILE_MATCHER
|
|
- handle CRLF newlines correctly in view.pike
|
|
- new static function squeeze_moves() in reading.c
|
|
- fix komaster problem
|
|
- do not trust connection moves to be safe in
|
|
estimate_territorial_value()
|
|
- add random move value contributions also for pure ko threats
|
|
- new and revised tests
|
|
|
|
3.7.4 released June 12, 2005
|
|
|
|
- copyright notices updated for 2005 and new FSF address
|
|
- bugfix in find_backfilling_move in filllib.c
|
|
- make fast_defense() aware of under-the-stones tesuji
|
|
- make superstring_break_chain_moves() attack 3-liberty chains
|
|
- unused code to compute genus removed from make_dragons()
|
|
- owl tuning
|
|
- atari-atari tuning
|
|
- optics tuning
|
|
- tuning
|
|
- new and revised tests
|
|
|
|
3.7.3 released March 22, 2005
|
|
|
|
- special_rescue_moves() allows self atari moves which may set up a snapback
|
|
- increase depth after filling liberties in endgame_find_backfilling_dame()
|
|
- try harder to find safe backfilling moves in endgame_find_backfilling_dame()
|
|
- revised heuristics to find a font file in view.pike
|
|
- avoid crashing on bad engine paths when starting a new engine in view.pike
|
|
- move_connects_strings() revised
|
|
- outcommented patterns removed
|
|
- ignore off board vertices in openregion() in fuseki.c
|
|
- Revise diagonal value in topological_eye() to account for damezumari
|
|
- owl tuning
|
|
- new and revised tests
|
|
|
|
3.7.2 released January 20, 2005
|
|
|
|
- gnugo.el: Grid display implemented
|
|
- gnugo.el: SGF handling improved
|
|
- gnugo.el: Undo and Redo related enhancements
|
|
- gnugo.el: Primitive edit mode
|
|
- gnugo.el: Regression view mode
|
|
- Doc revision (Emacs mode in using.texi)
|
|
- use print_numeric_influence() for printing escape influence
|
|
- take neighbouring half/false eyes into account when estimating lunch value
|
|
- do not trust strategic attack and defense moves to be safe when scoring
|
|
- thrash_around_helper() returns false if fuseki is disabled
|
|
- value_territory() revised to disable certain reductions of the territory
|
|
value when scoring
|
|
- regress.pike revised so that previous output can be used as input
|
|
with -f to rerun tests with unexpected results
|
|
- connection_value() revised
|
|
- use influence-based score estimate instead of Bouzy's algorithm
|
|
- new global variable white_score, black_score
|
|
- should_resign() now depends on optimistic_score instead of average_score
|
|
- added support for GTP over TCP/IP sockets on Windows
|
|
- new static function all_own_neighbors_inessential() in aftermath.c
|
|
- do_aftermath_genmove() revised
|
|
- breakage2tst.py now produces command line for regress.pike
|
|
- further revision of thrashing dragon heuristic
|
|
- try harder to find backfilling moves in fill_liberty()
|
|
- find_backfilling_move() in filllib.c revised
|
|
- test_attack_either() revised
|
|
- fixed anchor building of owl_attackpats.db repaired
|
|
- thrashing dragon heuristics revised
|
|
- readline support in ASCII mode
|
|
- liberties and neighbors list broken out of string_data array in board.c
|
|
for speedup
|
|
- new functions remove_double_blocks(), check_double_block() to improve
|
|
territorial evaluation at places where an intrusion is possible
|
|
- stop using worm data at stackp==0 in does_attack() and does_defend()
|
|
- concerns_noncritical_dragon() revised
|
|
- MIN_BOARD reduced to 1
|
|
- free memory allocated in a failed read of an sgf file
|
|
- extract_fuseki revisions: statistics on outcomes,
|
|
popularity cutoffs based on unique players added to command line
|
|
parameters, tweaks and bugfixes in game selection
|
|
- atari_atari moves considered blocking in estimate_territorial_value()
|
|
- MAX_LIBERTIES reduced to 8
|
|
- popgo() bugfix to repair sgf traces
|
|
- do_owl_analyze_semeai() revised
|
|
- emacs variant of ascii interface removed
|
|
- give less bonus to connection moves when scoring
|
|
- influence tuning
|
|
- owl tuning
|
|
- tuning
|
|
- new testsuite tiny.tst
|
|
- new and revised tests
|
|
|
|
3.7.1 released November 23, 2004
|
|
|
|
- new function send_two_return_one() in utils.c
|
|
- don't consider send-two-return-one moves in
|
|
do_find_more_owl_attack_and_defense_moves()
|
|
- does_attack() made ko aware
|
|
- new GTP commands does_attack and does_defend
|
|
- sgfnode.c (readsgffile): Do not fclose stdin.
|
|
- gtp.texi (GTP command reference): Add @cindex.
|
|
- gtp-commands.sed: Use @verbatim. Tighten output.
|
|
- gtp-commands.sed: Move `Function' field into @item line, sans field name.
|
|
- doc/ Makefile.am (gtp-commands.texi): Eliminate redundant use of cat(1).
|
|
- revision of gtp-commands.sed
|
|
- bugfix in main.c: remember to sgfFreeNode(gameinfo.game_record.root)
|
|
- allow PASS_MOVE in trymove() and tryko()
|
|
- do_trymove() and popgo() revised
|
|
- 'printfsgf -' supported from GTP
|
|
- copyright notices added to xpm files
|
|
- gnugo.el brought up to Thi's gnugo.el-2.2.8
|
|
- new gtp_move_history() for use with gnugo.el
|
|
- minor doc revision
|
|
- capture_non_invincible_strings() and unconditional_life() moved from
|
|
utils.c to unconditional.c
|
|
- resignation option reverted from GTP commands genmove_black and
|
|
genmove_white
|
|
- new heuristic to reduce branching factor in connection reading.
|
|
- resign rather than pass when all own stones seem dead
|
|
- lively_dragon_exists() based on status rather than crude_status
|
|
- potential_moves[] array converted to 1D
|
|
- distance measures converted from floating to fixed point arithmetic
|
|
in connection reading code.
|
|
- owl threats disabled as a command line option
|
|
- EXIT_SUCCESS and EXIT_FAILURE used in transpat.c and sgfgen.c
|
|
- revised interface to all genmove() type functions
|
|
- new global variable depth_offset
|
|
- only cache safe_move() results when reading depth is unmodified
|
|
- revision of interface/emacs.el
|
|
- new interface/xpms/*xpm, make-gnugo-xpms.el and gnugo-xpms.el
|
|
- break_chain2_moves() revised
|
|
- special_attack4_moves() revised
|
|
- defend_secondary_chain_moves() revised and split into two functions
|
|
- check_self_atari() in readconnect.c revised
|
|
- devalue tactical defenses of owl critical dragons when there are
|
|
better owl defenses elsewhere
|
|
- find_moves_to_make_seki() extended to examine the case of dead stones
|
|
inside the eye of single-eyed dragons
|
|
- added support for GTP communication over TCP/IP socket; GNU Go can
|
|
both connect and listen
|
|
- bugfix in break_in_goal_from_str(): check pos+delta on board
|
|
- bugfix in sgfStartVariant
|
|
- constrain thrashing dragons more often
|
|
- hashing cleanups
|
|
- missing files added to EXTRADIST in Makefile.* in doc/ and regression/
|
|
- new file logo-36.pdf
|
|
- DFA micro optimizations
|
|
- Test results updated: cvs tag rel-3-7-1-pre-1
|
|
- use int arrays instead of char arrays to mark eyes in
|
|
owl_determine_life() and dependent functions
|
|
- added .eps-version of new logo
|
|
- help string revised
|
|
- warnings fixed
|
|
- doc revisions
|
|
- TODO revised
|
|
- basic strategies to break mirror go implemented
|
|
- matcher_check verbosity refined
|
|
- new function are_neighbors()
|
|
- 9x9 opening moves tuned
|
|
- view.pike enhancement: switch to new test case
|
|
- debugging enhancement: owl goal marked in sgf trees
|
|
- new move reasons POTENTIAL_SEMEAI_ATTACK/DEFENSE to defer analysis of
|
|
possible semeai winning moves until move valuation
|
|
- infrastructure to cut owl goal dragons
|
|
- new owl pattern class C: threaten to cut owl goal dragon
|
|
- view.pike enhancement: owl_does_defend/attack
|
|
- crash in owl_hotspots() fixed
|
|
- view.pike enhancement: directly start sgf viewer
|
|
- remove special case of CLASS_C in matchpat.c
|
|
- influence tuning
|
|
- owl tuning
|
|
- endgame tuning
|
|
- tuning
|
|
- implement persistent semeai caching
|
|
- don't crash on some .sgf-files from kgs
|
|
- NEWS updated
|
|
- refer to 3.6 instead of 3.4 in docs
|
|
- new and revised tests
|
|
|
|
3.5.10 released August 7, 2004
|
|
|
|
- move initalization of ..._vital_points to initialize_dragon_data()
|
|
- persistent caches reorganized to share common code
|
|
|
|
3.5.9 released July 18, 2004
|
|
|
|
- bugfix in read_eye()
|
|
- bugfix in fast_defense()
|
|
- improved printing of hashvalues
|
|
- bugfix in atari_atari_blunder_size()
|
|
- new static function dump_board_sgf() in printutils.c
|
|
- abortgo() no longer unwinds the stack but prints an sgf file
|
|
- new and revised tests
|
|
- doc revision
|
|
|
|
3.5.8 released June 8, 2004
|
|
|
|
- make `mkpat' detect duplicate pattern names
|
|
- duplicate pattern names renamed
|
|
- reduce DFA_MAX_MATCHED 20 times
|
|
- calculate actual maximum dfa with new dfa_calculate_max_matched_patterns()
|
|
- remove unused configure option --experimental-semeai
|
|
- add missing output to --options
|
|
- new static function special_rescue4() called from defend2() in reading.c
|
|
- fast_defense() now heuristically looks for neighbors to capture
|
|
- don't restore random state in hash_init() and keyhash_init()
|
|
- major `view.pike' revision, added new "single window" mode
|
|
- break_chain2_moves() revised to generate more backfilling moves
|
|
- atari_atari_blunder_size() now returns multiple defenses, better verified
|
|
- remove %r support from gprintf, use result_to_string() instead
|
|
- double_atari_chain2() revised to generate more moves
|
|
- new argument recompute_dragons to owl_analyze_semeai_after_move()
|
|
- owl_mark_dragon() and init_owl() revised
|
|
- detect_tactical_blunder() revised
|
|
- value of tactical blunders doubled to twice the effective size of the string
|
|
- not a blunder if a string alive in seki is saved when outer liberties filled
|
|
- normalize apos, bpos in do_owl_analyze_semeai
|
|
- find_cuts() called from make_dragons() instead of make_domains()
|
|
- new compute_new_dragons() and new static join_new_dragons() in dragon.c
|
|
- new global array cutting_points[]
|
|
- cut field removed from struct eye_data
|
|
- INHIBIT_CONNECTION bit no longer used in the type field of struct eye_data
|
|
- find_cuts() no longer allowed to modify eyespaces
|
|
- bugfix in do_owl_analyze_semeai()
|
|
- tuning
|
|
- new and revised tests
|
|
|
|
3.5.7 released May 27, 2004
|
|
|
|
- minor revisions in score.c
|
|
- regress.pike measures uncertainty of moves
|
|
- global variable hashdata renamed to board_hash
|
|
- hashdata_compare() function removed
|
|
- fields in struct stats_data updated for new cache
|
|
- initialization of Zobrist random numbers in hash.c and cache.c unified
|
|
- new function hash_init_zobrist_array() in hash.c
|
|
- hashdata_remainder() never uses more than the 32 lowest bits of hash value
|
|
- hashdata_NULL, hashdata_clear(), and hashdata_init() macros removed
|
|
- any number of MIN_HASHBITS can now be used
|
|
- ROUTINE_COSTS revised
|
|
- find_connection_moves() revised
|
|
- always print copyright string on stdout
|
|
- do not include "Version" in the --version output
|
|
- old cache implementation removed
|
|
- ignore inessential critical dragons in in dilate_erode()
|
|
- TRACE_CACHED_RESULT* macros implemented for new caching scheme
|
|
- old cache implementation commented out
|
|
- new file engine/unconditional.c added
|
|
- break-in reading tuned
|
|
- safety checks improved for owl defense moves
|
|
- bugfix in find_neighbor_dragons()
|
|
- attribute "noreturn" for abortgo()
|
|
- don't add child to root node in sgffile_printboard()
|
|
- remove color parameter from examine_position(), compute_eyes_pessimistic()
|
|
- new arrays white_vital_points and black_vital_points
|
|
- read_eye() stores vital point in new arrays when add_moves == 1
|
|
- new functions find_lunches(), revise_inessentiality(), eye_computations()
|
|
broken out of make_dragons()
|
|
- VITAL_EYE_MOVE almost retired
|
|
- fix bugs in recursive_break()
|
|
- owl tuning
|
|
- new and revised tests
|
|
|
|
3.5.6 released April 23, 2004
|
|
|
|
- new configure and runtime option large-scale
|
|
- new change_owl_nodes()
|
|
- gprintf supports %r
|
|
- cleanup of patterns/*.sgf
|
|
- revision of dragon_invincible()
|
|
- suppress copyright notice in ASCII playing mode or with --version
|
|
- copyright string shortened
|
|
- new GTP commands move_probabilities and move_uncertainty
|
|
- bugfix in unconditional_life()
|
|
- owl_update_goal() overrides same_dragon == 0 in obvious cases
|
|
- new and revised tests
|
|
|
|
3.5.5 released April 15, 2004
|
|
|
|
- moved TRACE_READ_RESULTS definition to hash.h
|
|
- initialize lunch data for single owl move
|
|
- bugfix in compute_eyes_pessimistic(): initialize chainlinks[]
|
|
- improved sgf trace in trymove: location of tried move noted
|
|
- complete conversion to new cache
|
|
- add priority to reading results in new cache
|
|
- kill unused hash_ng_init()
|
|
- minor statistics improvements
|
|
- enlarge owl goal when it has had lunch
|
|
- komaster and kom_pos made static variables in board.c
|
|
- edge_block_moves() proposes more moves
|
|
- don't try to undo when stackp is not zero (GTP mode)
|
|
- support for multiple engines in view.pike
|
|
- more info about semeais in dragon_data2
|
|
- double-check owl attack moves against dragons involved in semeai(s)
|
|
- be less optimistic about large, but bulky eyespaces
|
|
- support for 'make gnugo.pdf' and make 'gnugo.html' in doc/
|
|
- slowest move statistics from regress.pike
|
|
- update usages of time_report()
|
|
- `twogtp.pike' can now use third engine (arbiter) to score games
|
|
- breakin and readconnect fixes
|
|
- first implementation of owl threat combinator--intended for improving
|
|
move ordering
|
|
- pattern attributes (shape, followup etc.) are now stored in lists, not
|
|
in `pattern' structure
|
|
- there is now a possibility to define virtually unlimited number of new
|
|
pattern attributes
|
|
- common code of shapes_callback() and joseki_callback() is broken into
|
|
new static function handle_joseki_patterns()
|
|
- new function do_find_more_owl_attack_and_defense_moves() broken out
|
|
of find_more_owl_attack_and_defense_moves()
|
|
- induce_secondary_move_reasons() tries to upgrade induced reasons to
|
|
owl attacks/defenses with do_find_more_owl_attack_and_defense_moves()
|
|
- strategical attack move reason is induced for saving certain worms
|
|
adjoining weak opponent dragons
|
|
- major improvement of analyze_eyegraph functionality in optics.c
|
|
- adjust min_level and max_level if --level is set outside their range
|
|
- do not malloc() 0 bytes in pattern_list_build_heap()
|
|
- aftermath_final_status() declaration moved from gnugo.h to liberty.h
|
|
- bugfix in find_connection_moves()
|
|
- bugfix in hashdata_init macro
|
|
- caching enabled for unbranched owl nodes
|
|
- comments added explaining heap in readconnect.c
|
|
- provide links to html regression views from regress.sh
|
|
- semeai analysis in make_dragons() postponed until after revision of
|
|
inessentiality
|
|
- identification of thrashing dragons in make_dragons() postponed
|
|
until after semeai analysis
|
|
- avoid overflow in reading_cache_init()
|
|
- converted owl to use new cache implementation
|
|
- owl tuning
|
|
- new game records and test cases
|
|
|
|
3.5.4 released January 23, 2004
|
|
|
|
- copyright 2004 added to copyright notices
|
|
- new static function capture_non_invincible_strings() broken out of
|
|
unconditional_life()
|
|
- unconditional_life() revised
|
|
- new semeai_propose_eyespace_filling_move() tries to play inside eyeshapes
|
|
- number_of_dragons initialized in initialize_dragon_data()
|
|
- new option --gtp-dump-commands to dump all incoming GTP commands to file
|
|
- new function and autohelper owl_lunch()
|
|
- lunches_are_current field no longer reset in owl_safe_move()
|
|
- don't claim levels higher than 10 are unsupported
|
|
- new GTP command unconditional_status
|
|
- estimate_lunch_eye_value() revised
|
|
- avoid calling owl_substantial() when not needed in aa_compute_status()
|
|
- value_move_reasons() revised
|
|
- special_rescue6_moves() revised
|
|
- find_connection_moves() revised
|
|
- computation of NUM_HASHVALUES corrected in hash.h
|
|
- hashdata_to_string reimplemented
|
|
- defend4() and special_rescue_moves() revised
|
|
- avoid ko captures when filling outer liberties in semeai reading
|
|
- adjust breakin_depth in modify_depth_values()
|
|
- atari_atari tuning
|
|
- endgame tuning
|
|
- eye tuning
|
|
- fuseki tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- tuning
|
|
- new test suite unconditional.tst
|
|
- new game records and test cases
|
|
|
|
3.5.3 released January 7, 2004
|
|
|
|
- new GTP command kgs-genmove_cleanup
|
|
- compute_crude_status() revised to consider dragons with big
|
|
territorial moyo value as alive
|
|
- semeai moves considered safe in mark_changed_dragon
|
|
- compare number of eyes when both colors pass in
|
|
do_owl_analyze_semeai() instead of always consider it a seki
|
|
- do not use the attack point from owl if owl considers a dragon dead
|
|
but semeai revises it to critical
|
|
- bugfix in break_through_helper() in reading.c
|
|
- new static function close_enough_for_proper_semeai() in semeai.c
|
|
- liberty_of_dragon() transformed into neighbor_of_dragon() in semeai.c
|
|
- in semeai(), be more careful when considering two dragons involved
|
|
in a semeai
|
|
- new static function max_lunch_eye_value() in value_moves.c
|
|
- when restraining thrashing dragons, do not bother connecting
|
|
inessential strings which cannot provide an eye (in
|
|
estimate_strategical_value())
|
|
- new autohelper function adjacent_to_stone_in_atari
|
|
- new static bamboo_rescue_moves() in `reading.c'.
|
|
- computation of safety and status values in make_dragons() revised to
|
|
more robustly handle invincible dragons
|
|
- dragon_invincible() revised
|
|
- detect_tactical_blunder() revised
|
|
- owl stack management reimplemented
|
|
- consider semeai worms adjacent to the outside as important in
|
|
owl_analyze_semeai_after_move()
|
|
- additional semeai debug output
|
|
- let stdout be unbuffered instead of line buffered in play_gtp()
|
|
- if one dragon is considerably smaller than the other in a semeai,
|
|
prefer to get ko over seki in do_owl_analyze_semeai()
|
|
- in a semeai, consider also the eyespaces including opponent semeai
|
|
worms in order to detect a definite lack of eyespace and to find
|
|
certain vital moves
|
|
- off-by-one error in loops over semeai_worms[] corrected
|
|
- don't allow "safe" common liberties to depend on ko in
|
|
do_owl_analyze_semeai()
|
|
- new static function find_moves_to_make_seki() in semeai.c
|
|
- do semeai analysis for all pairs of critical/dead dragons except
|
|
when one is inessential, other exceptional cases removed from semeai()
|
|
- defend4() generates superstring moves
|
|
- semeai_move_reasons() revised
|
|
- induce_secondary_move_reasons() revised; do not allow owl attack moves
|
|
to induce strategic defense of neighbors if involved in a semeai
|
|
- connection_value() revised to never give points for connection to
|
|
inessential strings
|
|
- get_influence() revised
|
|
- list_move_reasons() revised and made global
|
|
- new functions print_all_move_values() and prepare_move_influence_debugging()
|
|
- delta_territory cache can be disabled in estimate_territorial_value()
|
|
- new GTP commands all_move_values, eye_data, half_eye_data, move_reasons
|
|
- GTP command influence replaced by initial_influence, move_influence, and
|
|
followup_influence
|
|
- GTP command clear_cache now also clears the non-persistent cache
|
|
- bugfix in corner_add_pattern() (mkpat.c): labels must be rotated too
|
|
- spread_connection_distances() now delays expensive constraint evaluation,
|
|
storing pending evaluation on a heap
|
|
- new function signed_mark_string()
|
|
- computation of active area revised in store_persistent_connection_cache(),
|
|
store_persistent_breakin_cache(), and store_persistent_owl_cache()
|
|
- move_is_marked_unsafe() in move_reasons.h revised
|
|
- modify_stupid_eye_vital_point() revised
|
|
- influence tuning
|
|
- fuseki tuning
|
|
- eye tuning
|
|
- endgame tuning
|
|
- owl tuning
|
|
- tuning
|
|
- new test suite seki.tst
|
|
- new game records and test cases
|
|
|
|
3.5.2 released November 5, 2003
|
|
|
|
- Cosmic GNU Go disabled by default.
|
|
- report_dragon() revised
|
|
- gtp_worm_data() revised
|
|
- pattern tagging
|
|
- regress.sh revised
|
|
- regress.pike revised
|
|
- attack2() revised
|
|
- defend4() revised
|
|
- slow sorting in get_next_move_from_list() is replaced with heap sorting
|
|
- new static functions pattern_list_build_heap() and
|
|
pattern_list_get_next_pattern() in `engine/owl.c'
|
|
- new command line option --no-cosmic-gnugo
|
|
- remove global variables score, lower_bound, upper_bound
|
|
- remove (level >= 8) condition for estimate_score() call
|
|
- pass our_score instead of score to the move valuation functions
|
|
- tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- joseki tuning
|
|
- new game records and test cases
|
|
|
|
3.5.1 released September 4, 2003
|
|
|
|
- semeai() revised to better handle certain cases of multiple simultaneous
|
|
semeais
|
|
- find additional semeai moves in semeai_reasons()
|
|
- added more robust handling of .dtr files
|
|
- removed option to build pre-rotated DFAs
|
|
- unconditional_status in struct worm_data changed to enum dragon_status
|
|
- final_status in the aftermath code changed to use enum dragon_status
|
|
- enum dragon_status extended with BLACK_TERRITORY, WHITE_TERRITORY,
|
|
and DAME
|
|
- new GTP command last_move
|
|
- threaten_to_capture_helper() and pattern `Sente12' retired
|
|
- no buffering on stdout in ascii mode
|
|
- roadmap to engine files in overview.texi updated
|
|
- move DEBUG_func to showbord.c
|
|
- pattern tuning: remove "t" classification from various patterns
|
|
- WHITE_BORDER, BLACK_BORDER, GRAY_BORDER retired
|
|
- colors and komaster state, safety values and dragon status, cache routine
|
|
ids are now "enum"
|
|
- board library: remove all stuff that is not directly related to board
|
|
(and move it to the engine)
|
|
- board library: new file board.h as public interface, new file boardlib.c
|
|
to collect global variable of the board library;
|
|
- board library documentation updated to reflect changes
|
|
- new function: hashdata_to_string()
|
|
- small_semeai() and small_semeai_analyzer() removed
|
|
- support for !experimental_semeai removed
|
|
- old semeai() removed and new_semeai() renamed to semeai()
|
|
- analyze_semeai(), add_appropriate_semeai_moves(), and liberty_of_dragon()
|
|
removed
|
|
- old amalgamation (!experimental_connections) code and patterns removed
|
|
- dragon_eye() removed
|
|
- basic_cut_helper() and ugly_cutstone_helper() removed
|
|
- komaster schemes 1-4 removed
|
|
- komaster_is_empty() retired
|
|
- komaster_to_string() revised
|
|
- KOMASTER_TRACE functionality removed
|
|
- new GTP command combination_defend
|
|
- revised hash table scheme
|
|
- new COSMIC_GNUGO function choose_best_strategy() sets tuning parameters
|
|
- new global tuning parameters: minimum_value_weight, maximum_value_weight,
|
|
invasion_malus_weight, strategical_weight, territorial_weight,
|
|
attack_dragon_weight;
|
|
- remove unneeded configure stuff, add -Wundef to SOME_WARNINGS
|
|
- replace setlinebuf by setvbuf
|
|
- add safety_hash field to delta territory cache, reenable this cache
|
|
- cgi interface in interface/html directory removed
|
|
- owl tuning
|
|
- new game records and test cases
|
|
|
|
3.4 released July 31, 2003
|
|
|
|
- breakage2tst.py and gnugo-db.el added to EXTRA_DIST
|
|
- wariuchi fuseki: invade between shimaris
|
|
- new sgmp mode
|
|
- regress.pike added to EXTRA_DIST
|
|
- revision of copyright notices
|
|
- warnings fixed on some platforms
|
|
- doc revision
|
|
|
|
3.3.23 released July 15, 2003
|
|
|
|
- bugfix in show_dragons()
|
|
- redistribution consistency checking disabled for stable release
|
|
- gg_genmove replaced by reg_genmove almost everywhere in the regressions
|
|
- twogtp.py and twogtp.pike added to gtp_examples/README
|
|
- twogtp and twogtp-a made GTP version 2 compliant
|
|
- break-in code turned off below level 10; other level cutoffs revised
|
|
- support for ranges in sgf files
|
|
- time summaries reported with --showtime in gmp mode
|
|
- TODO revised.
|
|
- clock_init_autolevel() retired
|
|
- new global variables min_level and max_level
|
|
- new options --min-level and --max-level
|
|
- time handling implemented in play_gtp.c
|
|
- speedup: move some functionality of update_liberties() to do_remove_string()
|
|
- bugfix in do_play_move()
|
|
- doc: delete most lists of functions
|
|
- doc: remove move_generation.texi overview sections
|
|
- doc: reorder
|
|
- doc: Consistently use hierarchical structure instead of next/previous/up
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning
|
|
- doc: complete rewrite of first sections of overview.texi
|
|
- doc: subsection on 1D board array moved to board.texi
|
|
- doc: references to cavities in dragon amalgamation removed
|
|
- new game records and test cases
|
|
|
|
3.3.22 released June 28, 2003
|
|
|
|
- break-in code turned off below level 9
|
|
- VPATH modifications in regression/Makefile*
|
|
- new function thrash_around_helper()
|
|
- thrashing patterns in patterns.db
|
|
- configure --enable-cosmic-gnugo produces a center-oriented engine
|
|
- added cache for results of approxlib() and accuratelib()
|
|
- new static functions do_approxlib() and do_accuratelib() in board.c
|
|
- finish_sgftrace() will not free the trace tree if not written successfully
|
|
- remove tabs from twogtp.py
|
|
- twogtp.py checks that board is not empty before indexing it
|
|
- active area for persistent breakin cache shrinked
|
|
- new HIGH_LIBERTY_BIT2 in persistent caches, used by breakin cache
|
|
- new function break_chain4_moves()
|
|
- owl moves for non-critical dragons discarded
|
|
- do_owl_analyze_semeai() revised
|
|
- detect_owl_blunder() also looks for semeai defenses
|
|
- estimate_strategical_value() revised
|
|
- new function defend_secondary_chain_moves() in reading.c
|
|
- new parameter be_aggressive to break_chain2_moves(),
|
|
break_chain2_defense_moves() and break_chain3_moves()
|
|
- new depth value: break_chain_depth
|
|
- defend2() no longer plays on self atari liberties
|
|
- superstring_breakchain_moves() renamed superstring_break_chain_moves()
|
|
- fix "no moves found" logic in various readconnect.c functions
|
|
- new debug flag DEBUG_BREAKIN
|
|
- "smaller goal" in breakin.c revised
|
|
- be more careful when erasing territory after successful break-in
|
|
- break-in move generation bug fix
|
|
- endgame_find_backfilling_dame() revised
|
|
- new global array forced_backfilling_moves[]
|
|
- find_backfilling_move in filllib.c revised
|
|
- disable revise_semeai() when doing_scoring
|
|
- no bonus for attack or defense of dead potential cutstones when doing_scoring
|
|
- reevaluate_ko_threats() revised to avoid playing losing ko threats
|
|
- RTRACE and VTRACE retired
|
|
- corrected format of AP property in sgf_write_header()
|
|
- tuning
|
|
- owl_tuning
|
|
- new game records and test cases
|
|
|
|
3.3.21 released June 3, 2003
|
|
|
|
- revision of owl_strong_dragon()
|
|
- extra care is now taken not to waste points on tiny ko threats
|
|
- ko threats with large followups always preferred to large reverse followups
|
|
- twogtp.py fixed to handle jigo in endgame contests
|
|
- made --enable-experimental-break-in the default
|
|
- compute_smaller_goal() makes the goal even smaller in the block_off case
|
|
- persistent caching for break_in()/block_off()
|
|
- inessential dragons handled differently in estimate_territorial_value()
|
|
- use smaller goal area when trying to break into territories
|
|
- semeai_trymove_and_recurse() propagetes back changes to &owla, &owlb
|
|
- copy over old eye_data in do_owl_defend() if escape > MAX_ESCAPE
|
|
- new configure option --experimental-break-in
|
|
- load_and_score_sgf_file() revised
|
|
- detect_tactical_blunder() revised
|
|
- ko result codes no longer discarded in owl_analyze_semeai()
|
|
- new_semeai() revised
|
|
- decide_semeai() in sgfdecide.c revised
|
|
- GTP command owl_analyze_semeai renamed to analyze_semeai
|
|
- new function owl_analyze_semeai_after_move() and corresponding GTP
|
|
command analyze_semeai_after_move
|
|
- gtp_owl_analyze_semeai() revised
|
|
- new static function semeai_trymove_and_recurse() in owl.c
|
|
- all owl_analyze_semeai regression test cases changed to analyze_semeai
|
|
and revised for new result format
|
|
- bugfixes in breakin.c and block_off()
|
|
- new helper functions goal_to_hashvalue(), xor_hashvalues()
|
|
- new function get_read_result_hash_modified to enable calling functions
|
|
to use a modified hash value when storing/looking up results in cache
|
|
- results for recursive_break() and recursive_block() now get cached
|
|
- cast to avoid warnings
|
|
- documentation revisions
|
|
|
|
3.3.20 released June 3, 2003
|
|
|
|
- hoshi.sgf split into hoshi_keima.sgf and hoshi_other.sgf
|
|
- new functions recursive_break(), recursive_block() in readconnect.c:
|
|
decide whether a string can be connected to an arbitrary goal area
|
|
- new functions break_in(), block_off(), frontends to the functions above
|
|
- corresponding GTP commands break_in, block_off
|
|
- new file breakin.c evaluates whether territories can be broken in
|
|
- new command line --experimental-break-in to evaluate territory break-ins
|
|
- retire move_safety check in value_moves.c for territorial move valuation
|
|
- read_eye() revised
|
|
- `num_defends' field of half_eye_data strtucture renamed `num_defenses'
|
|
- maximum 15 points of territorial_value will get shape bonus
|
|
- change of semantics for --seed option
|
|
- new GTP command printsgf
|
|
- debugboard repaired
|
|
- TODO revised
|
|
- new function partition_eyespaces()
|
|
- new function owl_find_relevant_eyespaces()
|
|
- cpu time support for regress.pike
|
|
- broke new spread_connection_distances() out of compute_connection_distances()
|
|
- new spread_connection_distances() tuned
|
|
- t moves devalued to value 16
|
|
- new function edge_distance() in board.c
|
|
- CPU time reported by twogtp.py
|
|
- new static function endgame_find_backfilling_dame() in endgame.c
|
|
- new static function endgame_find_liberties() broken out of
|
|
endgame_analyze_worm_liberties()
|
|
- new owl_mineye() and owl_maxeye() and corresponding autohelper functions
|
|
- move_connects_strings revised not to try connecting invincible strings
|
|
- ALL_MOVE move reasons no longer considered to guarantee a safe move
|
|
- never give cutstone bonus for an inessential string
|
|
- new test suite joseki.tst
|
|
- do_push_owl() doesn't copy unnecessary fields of local_owl_data anymore
|
|
- retire special meaning of owl pattern values 99 and 100
|
|
- bugfix in revise_semeai()
|
|
- find_half_and_false_eyes() bugfixed
|
|
- improve_lunch_attack() revised
|
|
- D219 pattern retired
|
|
- new pattern action good_attack_threat overrides heuristics in value_moves.c
|
|
- new global known_good_attack_threats[][]
|
|
- new functions register_good_attack_threat(), is_known_good_attack_threat()
|
|
- make delta territory cache aware of base influence recomputation
|
|
- owl_find_lunches() revised
|
|
- owl_determine_life() bugfixed
|
|
- owl.c made completely 1D and other revisions
|
|
- new GTP command analyze_eyegraph
|
|
- new functions analyze_eyegraph(), evaluate_eyespace(), tactical_life(),
|
|
tactical_life_attack(), and tactical_life_defend() in optics.c
|
|
- new functions set_/get_/update_/reuse_random_seed()
|
|
- save and restore random_seed where it is set to zero in deterministic
|
|
GTP commands
|
|
- adjust conection and semeai depth parameters according to levels
|
|
- don't forget to switch exchange sgf_messages in order_moves()
|
|
- influence tuning
|
|
- tuning
|
|
- joseki tuning
|
|
- owl tuning
|
|
- major eye tuning
|
|
- atari_atari tuning
|
|
- new tests and test revisions
|
|
|
|
3.3.19 released April 28, 2003
|
|
|
|
- change USE_BDIST to 1 in owl.c
|
|
- who_wins() invokes silent_examine_position()
|
|
- bugfix in do_owl_analyze_semeai()
|
|
- global variable urgent retired
|
|
- num_stones pointer in do_corner_matchpat() replaced with macro
|
|
- joseki tuning
|
|
- new game records and test cases
|
|
|
|
3.3.18 released April 22, 2003
|
|
|
|
- don't even try 'wrong' liberties in simple_ladder_attack()
|
|
- major revision of do_owl_analyze_semeai()
|
|
- do_owl_analyze_semeai tracks ko results and result certainty
|
|
- semeai tactical phase deprecated
|
|
- semeai_trymove() eliminated
|
|
- semeai worms redefined
|
|
- new r format character supported by vgprintf
|
|
- uncertain semeais treated as critical
|
|
- new function sgf_trace_semeai() in cache.c used by SGFTRACE_SEMEAI() macro
|
|
- new dragon2 fields semeai_attack_certain and semeai_defense_certain
|
|
- owl_estimate_life() revised for use in semeai reading
|
|
- don't attack unconditionally dead stones, even if thrashing
|
|
- never play on vertices which are unconditional territory for either player
|
|
- bugfix in attack_either()
|
|
- back-capturing added in attack1() and code restructured
|
|
- new regression script regress.pike
|
|
- hashtable_clear() doesn't clear already clean parts of the table
|
|
- `stackp' pseudofield in Read_result renamed `remaining_depth'
|
|
- endgame1.sgf removed from the distribution
|
|
- play_move_no_history() revised to speed up undo
|
|
- modify_eye_spaces(), remove_lunch(), and not_lunch_helper() removed
|
|
- new function estimate_lunch_eye_value() broken out of sniff_lunch()
|
|
- obvious_false_eye() moved from owl.c to optics.c
|
|
- lunch invalidating patterns removed from conn.db together with
|
|
corresponding code in connections.c
|
|
- semeai moves stored in dragon2 array
|
|
- new functions collect_move_reasons(), semeai_move_reasons()
|
|
- new prevent_attach_threat_helper() adds reverse followup value
|
|
- DEBUG_TERRITORY made less confusing
|
|
- handle suicides in do_commit_suicide(), not in do_play_move()
|
|
- fix prisoner accounting in do_commit_suicide()
|
|
- DEBUG_INFLUENCE made less noisy
|
|
- bugfix in gnugo_estimate_score()
|
|
- reevaluate_ko_threats() revised
|
|
- new helper backfill_replace
|
|
- revisions of twogtp.py
|
|
- bugfix in play_move()
|
|
- improved output files from scoring mode
|
|
- traces added to find_double_threats()
|
|
- semeai tracing improved
|
|
- fix arraybound violation in corner_matchpat()
|
|
- tuning
|
|
- influence tuning
|
|
- joseki tuning
|
|
- owl tuning
|
|
- atari_atari tuning
|
|
- eye tuning
|
|
- new and revised test cases
|
|
|
|
3.3.17 released March 2, 2003
|
|
|
|
- most superstring related move generation broken into new superstring_moves()
|
|
- try (a bit) harder in attack_either()
|
|
- semeai worms do not have to be adjacent but may instead share a liberty
|
|
- only claim win for attacking a semeai worm if the attack is unconditional
|
|
- moves to defend a semeai worm are marked as possibly connected to the dragon
|
|
- liberty_of_goal() shall consider goal vertices where stones were captured
|
|
- allow conditional ko capture in attack4()
|
|
- new function is_corner_vertex() in board.c
|
|
- mark_dragon() changed from static to global
|
|
- global variable time_to_die removed
|
|
- revision of new_semeai()
|
|
- endgame move generator beginnings implemented in endgame.c
|
|
- endgame() in ascii.c renamed ascii_endgame()
|
|
- dragon_weak() moved to dragon.c
|
|
- bugfix in owl_substantial()
|
|
- merge superstring related tactical move generators into superstring_moves()
|
|
- resigning of hopeless games implemented (over GTP and in replay mode)
|
|
- ascii interface revised to support resignation
|
|
- twogtp.py revised to support game resignations and endgame contests
|
|
- ascii_endgame() renamed ascii_count()
|
|
- new ascii_endgame() in play_ascii.c
|
|
- new command-line option --resign-allowed
|
|
- twogtp script updated to understand resignation
|
|
- owl_* fields moved from struct dragon_data to struct dragon_data2
|
|
- more trace output in do_atari_atari()
|
|
- update_aa_goal() revised
|
|
- new dfa builder implemented in dfa.c
|
|
- dfa size reduction algorithm implemented
|
|
- dfa transformation hints (.dtr) files added to repository
|
|
- speed optimizations in cache.c
|
|
- hashtable_unlink_closed_results() renamed hashnode_unlink_closed_results()
|
|
- check for snapback/oiotoshi reactivated in check_self_atari()
|
|
- joseki patterns are matched using corner matcher
|
|
- symmetrical joseki patterns no longer match twice
|
|
- antisuji joseki patterns are handled by callback now
|
|
- goal_elements and callback_data added to all relevant databases to
|
|
drop unnecessary pattern elements
|
|
- add missing break in main.c
|
|
- do_owl_analyze_semeai doesn't crash on certain inconsistent eye results
|
|
- bugfix in adjacent_to_nondead_stone()
|
|
- unneeded fflush(stdout) flushed from patterns/connections.c
|
|
- new tests
|
|
- atari_atari tuning
|
|
- joseki tuning
|
|
- owl tuning
|
|
- tuning
|
|
- speed up scan_for_patterns()
|
|
- remove DFA_SORT
|
|
|
|
3.3.16 released January 29, 2003
|
|
|
|
- redundant patterns removed from hoshi.c
|
|
- killer move heuristic in reading.c
|
|
- bugfix in evaluate_diagonal_intersection
|
|
- do_owl_analyze_semeai doesn't crash on certain inconsistent eye results
|
|
- new static functions mark_dragon() and identify_thrashing_dragons()
|
|
in dragon.c
|
|
- dead friendly neighbors of a thrashing dragon also considered thrashing
|
|
- new global array thrashing_stone[] to mark all thrashing dragons
|
|
- drop move reasons in add_move_reason() when the lists become full
|
|
- bugfix in value_move_reasons()
|
|
- MAX_REASONS increased to 120
|
|
- persistent connection cache implemented but disabled by default
|
|
- bugfix in estimate_score
|
|
- bugfix for unsigned char's concerning pessimistic_min
|
|
- bugfix: estimate_score was called many places with parameters switched
|
|
- don't crash reading a bogus sgf file
|
|
- more reading functions use candidate move mechanism
|
|
- new fast_defense() looks for fast ways to get liberties
|
|
- switch strings sometimes in defend_both
|
|
- atari_atari tuning
|
|
- influence tuning
|
|
- tuning
|
|
- new tests and regressions
|
|
- doc revision
|
|
|
|
3.3.15 released January 12, 2003
|
|
|
|
- evaluate_diagonal_intersection() tries additional moves to defend a diagonal
|
|
- does_secure() made global and moved to reading.c
|
|
- owl_add_move has a new parameter max_moves
|
|
- --allpats works with semeai
|
|
- defend_both() revised to require that both strings can be saved without ko
|
|
- adjacent_to_nondead_stone() in value_moves.c generalized
|
|
- try harder in estimate_territorial_value() to detect when an
|
|
ATTACK_THREAT should not yield a followup value
|
|
- do not use tactical defense threats as ko threats unless the move
|
|
itself is strategically safe
|
|
- do not count strategical value for tactically critical dragons
|
|
- small bonus to dame moves which have a cut or connect move reason
|
|
- threaten_to_capture_helper() revised
|
|
- new autohelper adjacent_to_defendable_stone_in_atari
|
|
- new corner_point in owl.c
|
|
- revision of improve_lunch_attack
|
|
- surround code revised
|
|
- surround code moved up in in make_dragons() and used to correct escape route
|
|
- new utility function square_dist() in board.c
|
|
- new alternate gnugo.el in interface/gtp_examples
|
|
- semeai nodes increased to 500
|
|
- owla life accepted on escape in do_owl_analyze_semeai only if stackp>2
|
|
- use status instead of owl_status in find_more_owl_attack_and_defense_moves
|
|
- speed optimizations in board.c, particularly fastlib()
|
|
- now possible to reduce MAX_BOARD and still get working GNU Go
|
|
- mkpat now has amechanism for dropping patterns
|
|
- corner database creation implemented
|
|
- corner database pattern matcher implemented but not activated
|
|
- bugfix in play_ascii.c: allow changing handicap/komi etc. in new games
|
|
- fixed broken indentation in play_ascii.c
|
|
- bugfix in gtp_known_command
|
|
- new visible_along_edge() and autohelpers
|
|
- influence tuning
|
|
- tuning
|
|
- eye tuning
|
|
- new game records and regression tests
|
|
- doc revision
|
|
|
|
3.3.14 released January 1, 2003
|
|
|
|
- life.c removed from the distribution
|
|
- semeai module made standard
|
|
- never decrement *eyemin to negative
|
|
- unnecessary patval elements removed from some pattern databases
|
|
- mkpat understands goal_elements and callback_data directives
|
|
- new autohelper : owl_eye_size()
|
|
- tuning
|
|
- owl tuning
|
|
- Copyright notices updated for 2003
|
|
- code maintenance
|
|
|
|
3.3.13 released December 22, 2002
|
|
|
|
- new aa_ pattern A16
|
|
- tactical move ordering tuned
|
|
- complete rewrite of interface to influence.c
|
|
- new macros INITIAL_INFLUENCE(color), OPPOSITE_INFLUENCE(color)
|
|
- new functions compute_worm_influence(), get_lively_stones(),
|
|
compute_dragon_influence(), get_alive_stones(), set_dragon_strengths(),
|
|
mark_inessential_stones(), set_strength_data(), mark_changed_string()
|
|
to set up calls to compute_influence()
|
|
- new gtp command clear_cache
|
|
- new functions clear_persistent_owl_cache, clear_persistent_reading_cache
|
|
- joseki preparations: mkpat cleaning
|
|
- joseki preparations: some currently unused mkpat options changed
|
|
- joseki preparations: autohelpers no longer take `patt' argument
|
|
- set_value_helper() retired and replaced with inline code, generated by mkpat
|
|
- structures for the coming joseki pattern matcher defined in patterns.h
|
|
- use "territorial_influence" for pre-owl initial_influence
|
|
- safety values WEAKLY_ALIVE and WEAK removed
|
|
- use dragon2[].weakness or new field .weakness_pre_owl instead in most places
|
|
- use crude_dragon_weakness() to decide whether owl analysis is needed
|
|
- intersections with prisoners only contribute 1.0 to moyo_value
|
|
- arrays worms[], dragons[] removed in worms.c and value_moves.c
|
|
- new discard rule to enforce definiton of attack either/defend both reasons
|
|
- cleanups and improvements in board.c
|
|
- new function set_up_snapback_moves() in reading.c
|
|
- defend1() and restricted_defend1() revised
|
|
- TRACE macros and friends unified
|
|
- matchpat.c converted to 1D
|
|
- strategic bonus for connecting critical dragons out reintroduced
|
|
- strategic effect on critical dragon ignored unless move has owl move reason
|
|
- influence debug output enhanced
|
|
- defense functions in reading.c reorganized
|
|
- eye_vertex and eye_graph structures reorganized
|
|
- mkeyes.c rewritten to conform the changes in eyes.h
|
|
- adjacent() and buggy hadj() macros in optics.c retired
|
|
- recognize_eye(), first_map() and next_map() simplified and sped up
|
|
- new static reset_map() in optics.c
|
|
- new autohelpers omoyo_opposite and xmoyo_opposite
|
|
- CLASS_I added to CLASS_MOVE_REASONS in patterns.h
|
|
- compactify_att() removes duplicates from attribute list in DFA
|
|
- dfa_rt_t.next now stores offset to next state
|
|
- new fucntion dfa_shuffle() to minimize jump sizes between DFA states
|
|
- shorten generated pattern files to avoid too many lines warning
|
|
- new GTP command restricted_genmove
|
|
- new function genmove_restricted() in genmove.c
|
|
- new parameter allowed_moves[] to do_genmove(), review_move_reasons(),
|
|
and find_best_move()
|
|
- always call init_board() when reaching a new_position()
|
|
- eyes.db revised
|
|
- bugfixes in cut_connect_callback() in connections.c
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- connection tuning
|
|
- new tests
|
|
|
|
3.3.12 released November 20, 2002
|
|
|
|
- optimization in do_play_move: don't check ko unnecessarily
|
|
- revision of critical worms to inessential in make_dragons() revised
|
|
- owl vital attack patterns now also used for owl defense
|
|
- major revision of connection_value(), using new function
|
|
crude_dragon_weakness()
|
|
- reading.c: new move for defend1(): try to set up snap back
|
|
- reading.c: special_rescue4() generalized to hane_rescue_moves()
|
|
- a connection move where amalgamtion is inhibited by cut_possible() may
|
|
induce further connection moves
|
|
- new oracle.c and oracle.db
|
|
- oracle is a second gnugo process communicating with the gtp by unix pipes
|
|
- experimental alternative move generation --metamachine using oracle
|
|
- demonstration pattern database using oracle
|
|
- bugfix: gnugo_get_komi() returns float as it should
|
|
- ..goal_list macros converted to functions in owl.c
|
|
- bugfix in owl_determine_life()
|
|
- new functions min_eye_threat() and max_eye_threat() in optics.c
|
|
- somewhere() revised
|
|
- new autohelper functions [ox]_alive_somewhere
|
|
- autohelper functions [ox]_somewhere revised
|
|
- major revision of find_connection_distances()
|
|
- other revisions and tuning in readconnect.c
|
|
- bugfix in find_defense: compare against fourlib_depth when appropriate
|
|
- compiler warnings fixed
|
|
- new struct dfa_rt_t allows different run-time DFA structure from build-time
|
|
- optional #define USE_BDIST in owl.c for better rotational independance
|
|
- new and revised tests
|
|
- new eat_lunch_escape_bonus() called by sniff_lunch()
|
|
- 'make all' does not cause build of extract_fuseki and debugboard
|
|
- owl_determine_life is careful if saving a lunch attacks an eye
|
|
- bugfix: typo in store_persistent_reading_cache()
|
|
- major cleanup in influence.[ch]
|
|
- pre-rotated pattern generation in mkpat. (-p option) implemented.
|
|
- %2m added as valid syntax for gprintf
|
|
- relabel rotation matrices in transform.c
|
|
- bugfix in atari_atari_blunder_size: don't crash on inconsistent defense
|
|
- autoharvesting of documentation from play_gtp.c
|
|
- tuning
|
|
- komoku and hoshi tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
|
|
3.3.11 released October 29, 2002
|
|
|
|
- experimental connection code made default
|
|
- configure --help cleanup
|
|
- minor changes to twogtp*
|
|
- revision of CB20 in conn.db
|
|
- calls to accurate_approxlib() replaced by accuratelib()
|
|
- owl_find_lunches() revised
|
|
- owl tuning
|
|
- eye tuning
|
|
- new game records and regression tests
|
|
|
|
3.3.10 released October 20, 2002
|
|
|
|
- fastlib revised
|
|
- new accuratelib intended to replace accurate_approxlib
|
|
- incremental_self_atari merged into revised is_self_atari
|
|
- accurate_approxlib moved to board.c
|
|
- old sgftree is now freed on successful sgf loading
|
|
- sgftrees are freed when sgf tracing is finished
|
|
- sgffile_printsgf() revised
|
|
- gtp_fixed_handicap revised
|
|
- comments improved in play_gtp.c.
|
|
- play_ascii() revised
|
|
- combinations() revised
|
|
- atari_atari() generates lots of defense moves and validates them
|
|
- do_atari_atari() generates lots of potential defense moves
|
|
- decide_combination() revised
|
|
- YOUR_ATARI_ATARI_MOVE considered safe in examine_move_safety()
|
|
- atari_atari tuning
|
|
- new GTP commands attack_either and defend_both
|
|
- optimization in compute_connection_distances()
|
|
- owl code reorganization
|
|
- new clear_owl_move_data() set_single_owl_move(),
|
|
- break out reading_limit_reached(), owl_estimate_life()
|
|
from do_owl_attack/defend
|
|
- mode local_owl_node_counter global variable for owl.c
|
|
- made long "if (pass == ...)" statements "switch (pass)" in owl.c
|
|
- eliminated unnecessary variable "found_read_result" in owl.c
|
|
- new strategic_effective_size()
|
|
- computation of strategic effect is modified
|
|
- new static read_eye() tries to improve recognize_eye() results
|
|
- recognize_eye() sets vp->num_attacks/defenses to 0 when eye is found
|
|
- new file surround.c
|
|
- new is_surrounded(), does_surround() and surround_map()
|
|
- new gtp functions is_surrounded, does_surround and surround_map
|
|
- new autohelper macros is_surrounded, does_surround and surround_map
|
|
- new command line option --decide-surrounded
|
|
- new global variable gtp_version
|
|
- new option --gtp_version
|
|
- new function simple_showboard() in showbord.c
|
|
- new function get_last_player() in board.c
|
|
- gtp code revised for GTP version 2 and uses this by default
|
|
- new function delete_persistent_reading_entry()
|
|
- inconsistent results in attack_and_defend() resolved
|
|
- compilation errors for EXPERIMENTAL_READING fixed
|
|
- new experimental owl code is aware of tails getting captured
|
|
- new move reasons OWL_ATTACK_MOVE_GAIN and OWL_DEFEND_MOVE_LOSS
|
|
with corresponding supporting code in value_moves.c and move_reasons.c
|
|
- new move reason INVASION_MOVE
|
|
- pattern class I (invasions) can now be used in patterns.db et al
|
|
and not only in influence patterns
|
|
- remove EXPAND_TERRITORY_MOVE from strategic_penalty()
|
|
- new static function do_find_break_chain2_efficient_moves() split off
|
|
from break_chain2_efficient_moves() and revised
|
|
- superstring_breakchain() revised
|
|
- speed optimization of compute_primary_domains()
|
|
- countlib() calls eliminated in count_common_libs(), find_common_libs(),
|
|
and have_common_lib()
|
|
- escape_value arrays changed from int to char
|
|
- bugfix in code awarding strategical value for attacks/defenses of lunches
|
|
- bugfix in ATTACK_THREAT handling in estimate_territorial_value()
|
|
- bugfix in owl_substantial(); depth values modified correctly
|
|
- depth consistency assertion added in do_genmove()
|
|
- bugfix in mkpat.c
|
|
- new static functions analyze_false_eye_territory(),
|
|
connected_to_eye(), and connected_to_eye_recurse() in dragon.c.
|
|
- new global array false_eye_territory[]
|
|
- critical dragons only consisting of inessential worms are revised
|
|
to be inessential
|
|
- new function is_false_eye() in optics.c
|
|
- new autohelper functions o_captures_something(),
|
|
x_captures_something(), false_eye_territory(), and false_eye()
|
|
- owl_tuning
|
|
- eye tuning
|
|
- influence tuning
|
|
- tuning
|
|
- new game records and regression tests
|
|
|
|
3.3.9 released September 29, 2002
|
|
|
|
- new configure option experimental-owl-ext
|
|
- code simplification in safe_move (use REVERSE_RESULT)
|
|
- new randomness_scaling field in struct move_data and new scale_randomness()
|
|
- moves matching Fj and Ft patterns get extra randomness
|
|
- fuseki pattern tuning for kakaris in high handicap games
|
|
- persistent cache code moved from reading.c and owl.c to new file persistent.c
|
|
- speed optimization in order_moves() in reading.c
|
|
- speed optimizations in fastlib(), count_common_libs(), find_common_libs()
|
|
- duplicate lines removed from safety_to_string()
|
|
- draw_active_area() functions in reading.c and owl.c unified
|
|
- new ascii command: freehandicap <num>.
|
|
- new function: ascii_free_handicap
|
|
- report_worm(): print all attack, defense, threat points/codes
|
|
- worm_data::defend_codes is now called defense_codes
|
|
- enhanced result_to_string() with new return codes.
|
|
- removed strategically_sound_defense()
|
|
- mingw build searches for mingwex
|
|
- pattern symmetry corrections in owl_defendpats.db and patterns2.db
|
|
- bugfix in topological_eye()
|
|
- don't spread any influence below INFLUENCE_CUTOFF
|
|
- mark_safe_stones() distinguishes between SAFE_STONE and OWL_SAVED_STONE
|
|
- detect_owl_blunder() calls owl_confirm_safety() if move may harm own eyes
|
|
- bugfix and speedups in accumulate_influence()
|
|
- bugfix in value_territory()
|
|
- comment play_connect_n()
|
|
- document play_connect_n() in the texinfo docs
|
|
- bugfix in play_connect_n (trace output)
|
|
- fix comment in find_double_threats()
|
|
- break_chain2_moves() revised
|
|
- do_play_move() revised to improve performance
|
|
- corrects quoting of special characters in regress.plx
|
|
- sgffile_loadandprint() renamed to sgffile_printsgf() and revised
|
|
- use EOF rather than -1 the code to read sgf files in sgfnode.c
|
|
- major revision of code to write an sgf tree to file in sgfnode.c
|
|
- set_depth_values() reorganized
|
|
- new function find_half_and_false_eyes() in optics.c
|
|
- blunder_size() code reorganized
|
|
- new static detect_owl_blunder() and detect_tactical_blunder() in utils.c
|
|
- for walking across dragons new first_worm_in_dragon(), next_worm_in_dragon()
|
|
- new next_wormlist[]
|
|
- mark_changed_dragon() revised using dragon loop
|
|
- bugfix in fill_liberty()
|
|
- filllib_confirm_safety() revised
|
|
- make_dragon(): resolve inconsistent owl result by calling owl_does_defend()
|
|
- add assert on inconsistent do_genmove result() in genmove()
|
|
- life code completely disabled
|
|
- global variables life and life_eyesize removed
|
|
- options --life and --life-eyesize removed
|
|
- new eye value scheme; all code handling eye values revised
|
|
- new functions set_eyevalue(), min_eyes(), max_eyes(),
|
|
add_eyevalues(), eye_move_urgency(), eyevalue_to_string()
|
|
- eyes.db revised for new eye value scheme and substantially extended
|
|
- configure test for alarm removed
|
|
- sigterm_handler() and volatile variable time_to_die removed
|
|
- functions special_rescue(), special_rescue2() converted to .._moves()
|
|
- break_chain2() removed; use new break_chain2_defense_moves() instead
|
|
- defend2() and defend3() simplified
|
|
- new reading codes GAIN/LOSS for later use in owl
|
|
- more consistent use of WIN and REVERSE_RESULT() macros
|
|
- new function sgffile_load_and_print()
|
|
- new call convention for sgftree* functions
|
|
- sgftreeCreateHeaderNode() revised
|
|
- sgffile_debuginfo() renamed to sgffile_add_debuginfo()
|
|
- new call convention for sgffile_output()
|
|
- --color option effective in scoring mode
|
|
- sgftree struct and functions consistently used in play_gmp(),
|
|
play_solo(), load_and_analyze_sgf_file(), and load_and_score_sgf_file()
|
|
- new arrays close_worms[][], close_white_worms[][],
|
|
close_black_worms[][], number_close_worms[],
|
|
number_close_white_worms[], number_close_black_worms[]
|
|
- compute_surrounding_moyo_sizes() revised
|
|
- compute_surrounding_moyo_sizes() variant for experimental-connections option
|
|
- new function influence_get_moyo_data()
|
|
- tuning
|
|
- owl tuning
|
|
- new game records and regression tests
|
|
|
|
3.3.8 released September 5, 2002
|
|
|
|
- remove unneeded inclusion of stdlib.h in helpers.c
|
|
- bugfix in matcher_check
|
|
- URL's updated in documentation
|
|
- tests updated
|
|
|
|
3.3.7 released September 4, 2002
|
|
|
|
- better ko tracking searching for additional worm attacks and defenses
|
|
in find_more_attack_and_defense_moves() and make_worms()
|
|
- new option --output-flags <flags>
|
|
- output using sgf trees with -o option
|
|
- cleaning and minor bugfixes in play ascii
|
|
- sgf handling is disconnected from engine again
|
|
- moved sgfAddDebugInfo -> sgffile_debuginfo, outputsgf -> sgffile_output
|
|
- write "forced" as comment when this ascii mode command is used
|
|
- sgftree_readfile does not change root node to NULL
|
|
- new blunder_size(), atari_atari_blunder_size() compute the blunder size
|
|
- remove vital_string logic in atari_atari code
|
|
- remove allowed_blunder_size heuristic in review_move_reasons()
|
|
- instead use blunder size more exactly in new function find_best_move()
|
|
- bugfix in hashtable_partially_clear()
|
|
- bugfix in gameinfo_play_sgftree_rot()
|
|
- bugfix (reading uninitialized memory) in sniff_lunch()
|
|
- bugfix (EXPERIMENTAL_CONNECTIONS) in cut_connect_callback()
|
|
- bugfix (gameinfo_load_sgfheader) in play_ascii()
|
|
- man page revised
|
|
- new options --mirror and --mirror-limit
|
|
- new global variables play_mirror_go and mirror_stones_limit
|
|
- new static find_mirror_move(), test_symmetry_after_move() in genmove.c
|
|
- Apply "B" cutting pattern from shapes.db only if connection code confirms
|
|
- new function test_attack_either_move; gets invoked by patterns
|
|
instead of directly adding the attack-either move reason
|
|
- new function mark_changed_dragon() in move_reasons.c
|
|
- only mark owl defended stones as safe if also sufficiently tactically safe
|
|
- matcher_check can analyze existing sgf files
|
|
- twogtp-a kills processes
|
|
- break_chain2_moves() revised
|
|
- placehand() renamed to place_fixed_handicap()
|
|
- new function place_free_handicap() in handicap.c with associated
|
|
- static find_free_handicap_pattern(), free_handicap_callback() in handicap.c
|
|
- new GTP command place_free_handicap
|
|
- new pattern database handicap.db
|
|
- new autohelper macros handicap_stones, total_handicap_stones for handicap.db
|
|
- mkpat.c revised to avoid compiler warnings for constraints using no labels
|
|
- new file engine/handicap.c
|
|
- placehand() moved from genmove.c to handicap.c
|
|
- bug fix in adjusted_worm_attack_value()
|
|
- FIXME added regarding several EITHER_MOVE reasons
|
|
- show_dragons() revised
|
|
- tuning
|
|
- influence tuning
|
|
- connection tuning
|
|
- owl tuning
|
|
- revised tests, many new tests, new game files
|
|
- added Evan Berggren Daniel to AUTHORS
|
|
|
|
3.3.6 released August 13, 2002
|
|
|
|
- extended_chainlinks() revised
|
|
- MAX_REASONS increased from 80 to 100
|
|
- modify_stupid_eye_vital_point() revised
|
|
- new functions improve_lunch_attack() and improve_lunch_defense()
|
|
- backfilling in do_owl_attack() when trying the defender's best move
|
|
- sniff_lunch() revised
|
|
- new experimental_connections contingent code in shapes_callback()
|
|
- induce_secondary_move_reasons() revised
|
|
- tuning
|
|
- endgame tuning
|
|
- owl tuning
|
|
- request id no longer passed to callbacks in play_gtp.c
|
|
- gtp_printid() renamed to gtp_start_response()
|
|
- new preprocessing of command lines in gtp_main_loop()
|
|
- GTP command dragon_status revised
|
|
- bug fix in estimate_strategical_value: EITHER_MOVE negative values
|
|
- j pattern value increased from 22.0 to 24.0
|
|
- new gtp experimental_score for metamachine
|
|
- new DEBUG_MISCELLANEOUS used only in find_eye_dragons
|
|
- connection tuning
|
|
- B patterns found by find_cuts inhibit C patterns by find_connections
|
|
- new connection tests
|
|
- strategic_penalty() adds negative strategical move value a bit more often
|
|
- revise_thrashing_dragons() revised
|
|
- tuning
|
|
- owl tuning
|
|
- new tests and game records
|
|
|
|
3.3.5 released July 5, 2002
|
|
|
|
- bugfix in break_through_helper()
|
|
- bugfix in combinations()
|
|
- reduced_init_owl() allocates bigger owl stack with --experimental-semeai
|
|
- bugfixes in pop_owl(): don't crash if owl stack has moved
|
|
- reduce reading depth by one in influence pattern matching
|
|
- new struct reading_moves in reading.c
|
|
- owl stack can now handle two local_owl_data structs
|
|
- semeai code now uses owl stack
|
|
- don't push owl data in owl_analyze_semeai below branch depth
|
|
- Don't change critical dragons to dead due to semeai results
|
|
- DEBUG_SEMEAI trace enhancements
|
|
- semeai refinements
|
|
- owl_phase now local variable in do_owl_analyze_semeai
|
|
- bugfix in do_owl_defend(): computation of escape parameter
|
|
- bugfix in play_ascii.c: don't crash on unusual boardsizes
|
|
- dead stones with no neighbors are captured territory
|
|
- improved debug traces in score.c
|
|
- decide-dragon clears cache between owl attack and defend
|
|
- influence pattern tuning
|
|
- new tests and regressions
|
|
|
|
3.3.4 released June 19, 2002
|
|
|
|
- segment_regions also computes territorial value of regions if available
|
|
- dragon2.moyo_size_pre_owl andmoyo_size_post_owl replace dragon2.moyo
|
|
- new dragon2.moyo_territorial_value, weakness
|
|
- strategic dragon evaluation rewritten, setting dragon2[].weakness
|
|
- moved interpolate to gg_interpolate in gg_utils.c
|
|
- new struct eyevalue
|
|
- moves to connect two dragons which are both adjacent to a thrashing
|
|
dragon are appreciated by the move valuation
|
|
- experimental connections off by default in VC build
|
|
- tuning
|
|
- influence tuning
|
|
- connection tuning
|
|
- eye tuning
|
|
- joseki tuning
|
|
- owl tuning
|
|
- new tests and game records
|
|
|
|
3.3.3 released June 4, 2002
|
|
|
|
- new function owl_strong_dragon() and new autohelper with the same name
|
|
- vital_chain() returns the max number of eyes
|
|
- no amalgamation around eye spaces with experimental_connections enabled
|
|
- eye spaces no longer modified by INHIBIT_CONNECTION with
|
|
experimental_connections enabled
|
|
- bugfix in find_connection_moves()
|
|
- pattern classes Y and W introduced in conn.db to identify patterns
|
|
which only applies with or without experimental_connections
|
|
- patterns with class e in conn.db changed to class I to better
|
|
reflect current usage
|
|
- connection tuning
|
|
- improves DFA compile time by doing fewest possible large syncs
|
|
- experimental_influence command line and configure option removed
|
|
- new flags dragons_known and is_territorial_influence in influence_data
|
|
- struct local_owl_data for speedup only holds eye space of relevant color
|
|
- owl_eyespace() and allies use only one eyespace
|
|
- dfa doesn't report symmetric patterns multiple times
|
|
- escape patterns in owl_defendpats.db given E classification
|
|
- owl_determine_life() not called during escape attempt
|
|
- only print debug output for eyes during owl reading if owl debug is on
|
|
- better traces for unused owl patterns
|
|
- --decide-connection also reports ko results
|
|
- bugfix in load_and_score_sgf_file()
|
|
- new test cases
|
|
- edge_block and double_atari_chain2 renamed to *_moves
|
|
- do_attack uses simple_ladder_attack when stackp > depth+10
|
|
- give up simple_ladder_attack below 20 ply when we are komaster
|
|
- unused caching code removed from attack? and defend?
|
|
- macros used to make reading code readable
|
|
- dragon field in struct eye_data removed
|
|
- new function find_eye_dragons() in optics.c
|
|
- dragon_invincible() and genus computation in make_dragons() revised
|
|
- play_connect_n() uses string_connect() and disconnect()
|
|
unconditionally, no longer contingent on experimental_connections
|
|
- default value for experimental_connections reset to 0
|
|
- new command line option --decide-dragon-data
|
|
- consistency checking of replacement patterns reenabled for unstable line
|
|
- tuning
|
|
- new tests and sgf files
|
|
|
|
3.3.2 released May 6, 2002
|
|
|
|
- Macro PATTERN_CHECK_ON_DEMAND retired
|
|
- allpats options for owl shape moves repaired
|
|
- new function extended_chainlinks() in board.c
|
|
- connection and cut move reasons are relative to worms, not dragons
|
|
- unused find_worm_pair() and related variables removed from move_reasons.c
|
|
- MAX_REASONS increased from 40 to 80
|
|
- induce_secondary_move_reasons() reimplemented
|
|
- tuning
|
|
- new test case
|
|
- fix warnings generated by regress.plx
|
|
- doc revisions
|
|
- add_block_territory_move() removed
|
|
- BLOCK_TERRITORY_MOVE reason removed
|
|
- compute_shape_factor() and move_connects_strings() moved to value_moves.c
|
|
- move_reasons_confirm_safety() moved and renamed value_moves_confirm_safety()
|
|
- b patterns changed to e in endgame.db, fuseki.db, patterns.db, patterns2.db
|
|
- classification letters ordered consistently in pattern databases
|
|
- find_backfilling_move() in filllib.c revised
|
|
- new debug flag DEBUG_TOP_MOVES
|
|
- environment variables GG_OPTIONS and GNUGO when (make)ing tests
|
|
- top moves list maintained when moves are rejected
|
|
- bugfixes in metamachine
|
|
- regression revisions
|
|
|
|
3.2 released April 25, 2002
|
|
|
|
- revision of copyright statements and THANKS
|
|
- handtalk games moved to their own directory
|
|
- correct move number reported in influence for illegal move error
|
|
|
|
3.1.34 released April 20, 2002
|
|
|
|
- "choose best anchor"-platform dependency patch in mkpat.c
|
|
- bogus (int) conversion removed in get_next_move_from_list
|
|
- 3.0 replaced by 3.2 in WINDOWS
|
|
|
|
3.1.33 released April 19, 2002
|
|
|
|
- regression/READING, STRATEGY and NICKLAS removed
|
|
- makevcdist.pl, doc/gnugo-32.[jpg|eps]added to EXTRADIST
|
|
- eval3.sh and semeai2.tst added to automake control
|
|
- TODO list in texinfo updated
|
|
- class field in struct pattern and class_mask in made unsigned int
|
|
- input_FILE and output_FILE in mkpat.c explicitly initialized
|
|
- tree based reading not compiled by default
|
|
- consistency checking of replacement patterns disabled for the stable release
|
|
- more Handtalk games in CVS
|
|
- Jessie Annala THANKed
|
|
- new function gg_normalize_float2int to address optics.c-platform dependency
|
|
- hash_init behaviour made independent of boardsize
|
|
- output cleanup: --statistics, and EITHER_MOVE-trace
|
|
- floats normalized in finish_pattern() in mkpat.c
|
|
- put GNU Go's passes in permanent move history
|
|
- assertion in compute_connection_distances corrected
|
|
|
|
3.1.32 released April 13, 2002
|
|
|
|
- new update_random_seed()
|
|
- gtp_set_boardsize updates the random seed
|
|
- reset engine updates the random seed
|
|
- aftermath revisions
|
|
- combination of --score aftermath and -o options more useful
|
|
- dead function opponent_not_passing() removed from genmove.c
|
|
- init_influence() and new_value_territory() revised
|
|
- sgftree_printboard() made global
|
|
- bugfix in owl_hotspots()
|
|
- valuation of attack threats revised to allow more ko threats
|
|
- bugfix in estimate_strategical_value()
|
|
- solid string connection bonus revised to also favor cuts of opponent
|
|
- play_gtp() starts with boardsize of board loaded with -l instead of 19
|
|
- no warning by default for FF[1] sgf game records
|
|
- bugfix in push_owl
|
|
- corrected assertion in examine_cavity()
|
|
- shadowed variables fixed in dragon.c
|
|
- major aftermath code revisions
|
|
- doing_scoring contingent revisions in influence_callback(), shapes(),
|
|
shapes_callback(), connection_value(), estimate_strategical_value(),
|
|
high_handicap_helper(), and reinforce_helper()
|
|
- analyze_neighbor() in filllib.c revised
|
|
- size of persistent owl cache increased from 100 to 150 entires
|
|
- bugfix in owl_confirm_safety()
|
|
- territorial value computed for tactical attacks of dead or defenseless stones
|
|
- caching of recent compute_escape_influence() results
|
|
- reading cache stores depth-stackp instead of stackp
|
|
- infl_followup_value renamed influence_followup_value and initialized
|
|
- initialize_dragon_data broken out of make_dragons
|
|
- dragon_data initialized even on empty board
|
|
- owl reasons ignores empty board positions
|
|
- twogtp does not report duplicate scores unless they differ
|
|
- new gtp get_random_seed, set_random_seed
|
|
- tuning
|
|
|
|
3.1.31 released April 4, 2002
|
|
|
|
- boardsize field added to persistent caches in reading.c and owl.c
|
|
- break_chain_efficient_moves() revised
|
|
- new function reduced_init_owl() in owl.c
|
|
- mark_dragon_hotspot_values() revised
|
|
- revised handling of inessential stones in init_influence()
|
|
- bugfix in strategic_penalty()
|
|
- owl speedup: owl data immediately stored in owl_stack
|
|
- bugfix in do_owl_defense()
|
|
- attack() now always returns PASS as move if there is no attack
|
|
- some ASSERTs removed in board.c.
|
|
- revision in get_next_move_from_list
|
|
- bugfix in find_connection_moves()
|
|
- begin_sgftreedump() can take a NULL pointer parameter
|
|
- new gtp command ladder_attack
|
|
- unneeded include directories removed from sgf/Makefile.*
|
|
- seed field removed from Gameinfo struct
|
|
- new global variable random_seed
|
|
- joseki tuning
|
|
- Handtalk games in regression/games
|
|
- doc revision
|
|
|
|
3.1.30 released March 30, 2002
|
|
|
|
- target sgf_properties.h not built by default
|
|
- bugfixes in defend2(), special_rescue(), and special_rescue2()
|
|
- MAX_INTRUSIONS doubled in size
|
|
- intrusions beyond MAX_INTRUSION silently discarded
|
|
- new connect_and_cut_helper2 autohelper macro
|
|
- platform dependency resolved in store_persistent_reading_cache
|
|
- EXP_J_VALUE increased to 35 in shapes.c
|
|
- graph_ renamed to tree_ in mkpat.c & related files
|
|
- a few FIXMEs addressed
|
|
- tuning
|
|
- influence tuning
|
|
- new logo-32.jpg and logo-32.eps
|
|
- newlogo.eps made smaller using level 2 postscript
|
|
- doc revision
|
|
|
|
3.1.29 released March 26, 2002
|
|
|
|
- asymmetry in influence computation reduced
|
|
- case added in strategic_penalty
|
|
- simulation of ko threat + answer in sgf output reinstated in tryko()
|
|
- new function gg_normalize_float() in gg_utils.c
|
|
- platform dependency fixed in readconnect.c by using gg_normalize_float()
|
|
- scoring tweaks and optimizations
|
|
- bugfix in gg_cputime()
|
|
- new function influence_initial_territory to export territory valuation
|
|
- negative strategic value added to invasion type moves
|
|
- keima shape bonus removed in CB204b
|
|
- tuning
|
|
- influence tuning
|
|
- code consistency cleanup
|
|
- new tests in nngs1.tst
|
|
- THANKS updated
|
|
|
|
3.1.28 released March 24, 2002
|
|
|
|
- hashing dependent on compiler switches, default 64 bit and no full position
|
|
- default cache size set to 8
|
|
- --stack option and showstack global variable removed
|
|
- cache.o removed from libboard.a
|
|
- unneeded include of dfa.h removed from patterns.h
|
|
- compiler warnings fixed: dragon2_func prototyped, etc.
|
|
- bugfix in confirm_safety() plus 1D conversion
|
|
- komaster scheme 5 implemented and made default
|
|
- update_aa_goal() in combination.c revised
|
|
- heuristics to estimate cost of pattern constraint introduced
|
|
- constraint cost used in owl callback for speedup
|
|
- twogtp and twogtp-a close the sgf file if an engine crashes
|
|
- twogtp-a had coordinates reversed
|
|
- global variable last_moves[] removed
|
|
- move history added to board state
|
|
- static function undo_move() in board.c renamed to undo_trymove()
|
|
- new global functions store_board(), restore_board(), undo_move(),
|
|
get_last_opponent_move(), and get_last_move() in board.c
|
|
- macros do_add_stone() and do_remove_stone() removed from board.c
|
|
- Position struct removed
|
|
- Gameinfo struct revised
|
|
- new board_state struct
|
|
- API functions gnugo_* work on an internal board state instead of on
|
|
an externally provided board state
|
|
- board_size workaround in influence.c obsoleted and removed
|
|
- revised order of operations in main.c; in particular playing up the
|
|
position specified by -l and -L options centralized
|
|
- revised modes for --score option
|
|
- all undo implementations in GTP, GMP, and ASCII interfaces replaced
|
|
by the new undo_move() function in the board code
|
|
- Added several .h files to appropriate .dsp files
|
|
- corrected gcc warnings & other cleanup in mkpat.c
|
|
- komaster_to_string now takes 2 arguments
|
|
- new KOMASTER_TRACE; set to log all komaster_trymove calls
|
|
- dfa ise announced only as a debug message
|
|
- copyright notices updated
|
|
- DRAGON2 macro array bounds checking is not the default
|
|
- tuning
|
|
- test revision
|
|
- doc revision
|
|
- additional correct answers added to reading.tst
|
|
|
|
3.1.27 released March 1, 2002
|
|
|
|
- important bugfix in store_persistent_owl_cache()
|
|
- bugfix in semeai_find_backfilling_move()
|
|
- new command line option --debug-flags
|
|
- new DEBUG_OWL_PERSISTENT_CACHE
|
|
- owl.c:draw_active_area draws the owl point
|
|
- new printutils.c:routine_to_string()
|
|
- KOMASTER_SCHEME 4 introduced
|
|
- Tree-based pattern matching introduced.
|
|
- pattern-base reading code supports defense by pattern.
|
|
- new command-line switches "(attack|defend)-by-pattern"
|
|
- OPT enums re-based to 127, to avoid conflict w/ ASCII values.
|
|
- reformatted transform.c to look like matrices.
|
|
- DRAGON_WEAK implemented in a function and checks array bounds.
|
|
- improved fastlib().
|
|
- DRAGON2 macro checks array bounds.
|
|
- bugfix in readconnect.c:moves_to_connect_in_three_moves()
|
|
- for non-variadic, non-VC compilers, add trace_dummy assignment
|
|
- new function init_owl() in owl.c
|
|
- re-order conditions in revise_semeai to insure valid DRAGON2 data
|
|
- organize include file order to facilitate pre-compiled headers.
|
|
- use location_to_string in replay_node()
|
|
- improve assertion in sgftreeAddComment()
|
|
- removes a bogus "," from Pattern D305
|
|
- read_attack.db tuning
|
|
- new read_defend.db
|
|
- VC builds uses precompiled headers
|
|
- VC Release builds generate debug symbols
|
|
- new '-s' option to regress.pl to control creation of sgf files.
|
|
- instruct robots not to follow regress.plx links.
|
|
- unexpected results page orders results correctly
|
|
- defaults for config.vc(in) made same as 3.1.27 release.
|
|
- new semeai test
|
|
- doc revision
|
|
|
|
3.1.26 released February 24, 2002
|
|
|
|
- experimental influence, experimental and alternate connections are default
|
|
- caching code revised to once more work with TRACE_READ_RESULT enabled
|
|
- added EXPERIMENTAL_READING to config.vc(in)
|
|
- updated makevcdist.pl
|
|
- bugfix in owl.c:dump_pattern_list()
|
|
- alternative reorganized owl callback structure for substantial speed-up:
|
|
- owl_shapes revised, new functions get_next_move_from_list() et al.
|
|
- new function dump_pattern_list(...) for debugging
|
|
- pattern cleanup
|
|
- spelling fixes
|
|
- verbosity revisions with alternate connections in readconnect.c
|
|
- bugfix in close_bubbles()
|
|
- bugfix in compute_owl_escape_values()
|
|
- revised "stepped on a bug" message
|
|
- bugfix in update_status in semeai.c
|
|
- bugfix in estimate_time_by_move
|
|
- replay added to debug helpstring
|
|
- revised nonvariadic versions of TRACE and allies
|
|
- increased MAXSTACK to MAX_BOARD*MAX_BOARD again
|
|
- experimental influence taken down for initial influence when dragons unknown
|
|
- doc revision
|
|
|
|
3.1.25 released February 14, 2002
|
|
|
|
- updated AUTHORS
|
|
- command line option --options reports configure options
|
|
- verbose reduced in readconnect.
|
|
- do_genmove tries harder to restrain thrashing dragons.
|
|
- DFA_SORT set to 0.
|
|
- new gtp tryko.
|
|
- new function fastlib() helper for approxlib family.
|
|
- a pattern can now force the anchor point.
|
|
- matchpat can be run forcing anchor to be in the goal.
|
|
- simplification of UPDATE_SAVED_KO_RESULT
|
|
- reduce overhead in non-variadic macro TRACE definitions
|
|
- reduce MAXSTACK
|
|
- EXPERIMENTAL_READING code much more interesting.
|
|
- moved most of EXPERIMENTAL_READING code out of do_attack.
|
|
- [ox]lib request only up to MAX_LIBERTIES liberties.
|
|
- bugfix in reevaluate_ko_threats
|
|
- floating point exceptions stopped in readconnect.c
|
|
- experimental influence: yet another new_value_territory revision
|
|
- experimental influence: fixed followup values really taken down (shapes.c)
|
|
- experimental influence: pattern tuning
|
|
- experimental influence: follow-up specific constraints for B patterns
|
|
- experimental influence: new_value_territory revised (center correction)
|
|
- experimental influence: most fixed follow-up values taken down
|
|
- experimental influence: tuning, joseki values increased, some bugs fixed
|
|
- experimental_influence ignored for escape influence
|
|
- influential doc revision
|
|
- edge_double_sente_helper is now autohelper
|
|
- owl threat loop broken out
|
|
- new global thrashing_dragon
|
|
|
|
3.1.24 released February 3, 2002
|
|
|
|
- cleanup of clock.c, filllib.c, fuseki.c, genmove.c, globals.c,
|
|
gnugo.h, hash.h, printutils.c, reading.c, showbord.c, utils.c,
|
|
worm.c
|
|
- New function gfprintf in printutils.c
|
|
- do_owl_analyze_semeai won't read below MAX_SEMEAI_DEPTH
|
|
- AFFINE_TRANSFORM() macro
|
|
- new (stub) function opponent_not_passing
|
|
- new function sgffile_write_circle_mark
|
|
- gg_cputime used for time statistics consistently.
|
|
- alternate connection reading algorithm appended to readconnect.c
|
|
- new option --alternate-connections toggles the connection reading algorithms
|
|
- Zobrist hashing implemented in owl_analyze_semeai
|
|
- do_owl_analyze_semeai no longer considers unsafe outside liberties
|
|
- small_semeai reimplemented
|
|
- make_worms takes the save_verbose parameter to allow a few traces
|
|
- traces improved in decide_tactical_semeai
|
|
- EXPERIMENTAL_READING code (pattern based) added.
|
|
- added "tried" parameter to special_rescue
|
|
- defend2-[CD] won't re-try moves (avoid cache check).
|
|
- faster implementation of accurate_approxlib.
|
|
- mkpat takes multiple -i parameters, outputs in binary
|
|
- Visual C now uses _vsnprintf
|
|
- revision of patterns/mkpat.dsp
|
|
- sgf output tweeking.
|
|
- bugfix in experimental influence: floating point exception cure
|
|
- bugfix in regress.plx: handling of gtp worm_stones
|
|
- tuning
|
|
- owl tuning
|
|
- connection tuning
|
|
- test revision
|
|
|
|
3.1.23 released January 28, 2002
|
|
|
|
- configure option: alternate-connections
|
|
- experimental influence: followup value computed in influence.c
|
|
- experimental influence: new_value_territory revised
|
|
- experimental influence: new handling for intrusion patterns
|
|
- experimental influence: support for standard/experimental specific patterns
|
|
- reevaluate_ko_threats now makes checks
|
|
- new get_biggest_owl_target()
|
|
- DEFEND_BOTH_MOVE reason taken down
|
|
- new gtp functions get_komi and get_handicap
|
|
- bugfix in gtp worm_stones: did not print newline if board empty
|
|
- support for two strings and two results in cache.[ch]
|
|
- simplified code to do cache lookup in reading.c and owl.c
|
|
- bugfix in estimate_territorial_value()
|
|
- bugfix in find_worm_threats()
|
|
- readconnect finds connections through ponnuki
|
|
- readconnect sgf improvements
|
|
- bugfix in estimate_strategical_value(): ALL_MOVE worms were overvalued
|
|
- VC build now DFA compliant
|
|
- semeai module sets matcher status to ALIVE instead of ALIVE_IN_SEKI
|
|
- regression html view enhancements
|
|
- fix arraybound violation in compute_aa_values
|
|
- constraint diagram checking moved to new check_constraint_diagram()
|
|
- Invoke check_constraint_diagram *before* incrementing patno
|
|
- atari_atari_find_defense_moves() revised
|
|
- ATTACK_EITHER_MOVE taken down
|
|
- new ALL_MOVE reason
|
|
- new static find_all_data(), all_move_redundant() in move_reasons.c
|
|
- new function add_all_move()
|
|
- add_defend_both autohelper macro revised
|
|
- tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- hoshi tuning
|
|
- new and revised tests
|
|
|
|
3.1.22 released January 20, 2002
|
|
|
|
- find_backfilling_move() in filllib.c revised
|
|
- dfa made standard
|
|
- owl threat computation made optional (and not default)
|
|
- comments added, cleanup around discard_redundant_move_reasons
|
|
- new (unused) experimental influence configure and run time options
|
|
- unsafe tactical moves now taken care by discard_redundant_move_reasons
|
|
- FIXME added for reevaluate_ko_threats
|
|
- atari_atari_attack_patterns() uses a goal array to limit search area
|
|
- new functions compute_aa_values(), get_aa_value(), and update_aa_goal()
|
|
- ko contingent defenses excluded in get_saved_worms(), get_saved_dragons()
|
|
- valuation of atari_atari move reasons revised
|
|
- recognize_eye() revised
|
|
- spelling corrections
|
|
- fflush() added a few places
|
|
- owl tries tactical defense for small groups
|
|
- owl logs number of variations per sub-tree in SGF file
|
|
- [ox]play_(attack_either|defend_both) handles ko correctly.
|
|
- added [ox]play_connect and dis_connect helpers
|
|
- allow followup value if defense threat is contingent on ko.
|
|
- only allow territory move values if move is deemed safe.
|
|
- reduce cutstone values in case of ko.
|
|
- debug printing in influence.c slightly restructured
|
|
- new function influence_moyo_color_opposite()
|
|
- one trace output reenabled in confirm_safety()
|
|
- bugfix in sgftreeAddStone
|
|
- bugfix in komaster_trymove
|
|
- mascot in dragon.c
|
|
- tuning
|
|
- eye tuning
|
|
- atari_atari tuning
|
|
- connection tuning
|
|
- fuseki tuning
|
|
- owl tuning
|
|
- test revisions
|
|
|
|
3.1.21 released January 12, 2002
|
|
|
|
- revision of compute_surrounding_moyo_sizes()
|
|
- bugfix in pattern EE302
|
|
- value_moves.c split from move_reasons.c
|
|
|
|
3.1.20 released January 11, 2002
|
|
|
|
- ko return codes from owl_does_attack() and owl_does_defend() handled
|
|
in analyze_semeai()
|
|
- special_rescue2() generalized and reimplemented
|
|
- bugfix in edge_clamp()
|
|
- mkpat does consistency checking between the diagram and constraint diagram
|
|
- new function connect_and_cut_helper() in helpers.c
|
|
- least significant bit of move reason now denotes a threat
|
|
- bugfix in add_attack_either_move
|
|
- new move reason: EITHER_MOVE
|
|
- disabled add_attack_either_move
|
|
- removed redundant EITHER_MOVEs
|
|
- minor cleanup in move_reasons.c
|
|
- some cleanup in move_reasons.c
|
|
- renamed some move reasons for name consistency
|
|
- new function special_rescue6() in reading.c
|
|
- defend3() revised
|
|
- don't run compute_eyes on eye spaces not attached to a dragon
|
|
- avoid giving followup values to non-sente threats in
|
|
threaten_to_capture_helper() and in estimate_territorial_value()
|
|
- new test_gray_border() in board.c with assertions in genmove.c
|
|
- xplay_attack_either returns WIN not 1
|
|
- improved debugging and trace output
|
|
- checking of sgf GM and FF properties revised
|
|
- Makefile.in's converted using Automake 1.5
|
|
- html view enhancements
|
|
- tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- fuseki tuning
|
|
- performance tuning
|
|
- test revisions
|
|
|
|
3.1.19 released January 2, 2002
|
|
|
|
- bugfix in aftermath_genmove()
|
|
- bugfixes in the atari_atari code
|
|
- obsolete atari_atari code removed
|
|
- tuning
|
|
- owl tuning
|
|
- sgf2tst repair
|
|
- regress.plx improvements
|
|
|
|
3.1.18 released December 23, 2001
|
|
|
|
- 1D conversion of incremental.texi
|
|
- new function dragon_looks_inessential() in dragon.c
|
|
- adjusted_worm_attack_value() revised
|
|
- indented debug output of secondary move values
|
|
- new local struct aa_move in combinations.c
|
|
- new pattern class 'c' for conditional moves in aa_attackspats.db
|
|
- atari_atari() tries to attack smallest targets first
|
|
- combinations() finds multiple defenses when opponent has a combination attack
|
|
- new gtp commands owl_connection_defends and owl_substantial
|
|
- mkpat checks that main diagram and constraint diagram have the same size
|
|
- mkpat stricter in parsing of classification field
|
|
- new function gg_sort() in gg_utils.c
|
|
- all calls to qsort() replaced by calls to gg_sort()
|
|
- linear_eye_space() removed
|
|
- make RTRACE and VTRACE variatic functions same as macros
|
|
- debug output and valuation of attack on defenseless stones corrected
|
|
- TODO revised
|
|
- fixed value of J patterns no longer scaled with board_size
|
|
- bugfix in owl_attackpats.db pattern D1137
|
|
- assertion added in owl_escape_value()
|
|
- bugfix in moves_to_connect_in_three_moves() in readconnect.c
|
|
- support for all tactical worm points in debugboard
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- atari_atari tuning
|
|
- test revisions
|
|
|
|
3.1.17 released December 16, 2001
|
|
|
|
- new configure and runtime options semeai-variations
|
|
- new function semeai_trymove()
|
|
- bugfix in catalog_goal
|
|
- semeai revisions
|
|
- warning avoided in dfa_avoid_string()
|
|
- code cleanup
|
|
- devalued attacking dead group bonus
|
|
- corrected value to final_value in review_move_reasons()
|
|
- value_territory() in influence.c revised
|
|
- common debug code moved from compute_eyes(), compute_eyes_pessimistic()
|
|
to print_eyes()
|
|
- inactive support to test against linear_eyes() in compute_eyes_pessimistic()
|
|
- MAXPATNO increased to 400 in mkeyes.c
|
|
- naive_ladder() replaced by simple_ladder()
|
|
- bugfixes in attack_threats()
|
|
- new gtp commands reset_connection_node_counter, get_connection_node_counter
|
|
- removed small valued lunch attacks and defenses in owl_determine_life()
|
|
- new gtp commands owl_threaten_attack, owl_threaten_defense
|
|
- better error reporting in mkpat.c
|
|
- improved error reporting in owl.c
|
|
- html regression view tweeks
|
|
- new function second_order_liberty_of_string() in board.c
|
|
- readconnect.c revised
|
|
- take into account followup values if reverse_followup >= 1
|
|
- try a little harder in attack_either
|
|
- break_through_helper improved
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning, adding many patterns with occupied margins
|
|
- test revisions
|
|
|
|
3.1.16 released December 9, 2001
|
|
|
|
- readconnect revised
|
|
- new board.c function breakchain3()
|
|
- dsp and config.vc updates
|
|
- new function influence_get_moyo_segmentation()
|
|
- new function add_influence_source()
|
|
- computations of moyo size surrounding a dragon changed
|
|
- confirm_safety() takes two new parameters to tell which stones were saved
|
|
- atari_atari_confirm_safety() revised
|
|
- compute_aa_status() revised
|
|
- new is_vital_string() in combinations.c tracks stones not to be sacrificed
|
|
- generation of attack moves in do_atari_atari uses patterns
|
|
- new pattern database pattern/aa_attackpats.db
|
|
- atari_atari_find_defense_moves() improved
|
|
- new functions get_saved_worms() and get_saved_dragons() in move_reasons.c
|
|
- new function move_reasons_confirm_safety()
|
|
- examine_move_safety() revised
|
|
- new function decide_combination() in sgfdecide.c
|
|
- new option --decide-combination
|
|
- new experimental-combination configure option, and command line options
|
|
- new gtp command aa_confirm_safety
|
|
- bugfix in trymove()
|
|
- 1D revisions and cleaning up
|
|
- new file: engine/movelist.c
|
|
- generalized handling of move lists and moved from worm.c
|
|
- attack_threats() enhanced
|
|
- AA_THREAT_DEPTH set to 3
|
|
- find_worm_threats() uses attack_threats more
|
|
- pessimistic_compute_eyes() tries harder to find a vital point
|
|
- new atari_atari_find_attack_moves() and atari_atari_find_defense_moves()
|
|
- do_atari_atari() restructured
|
|
- experimental-semeai configure option
|
|
- experimental_semeai command line option
|
|
- new function new_semeai()
|
|
- owl_analyze_semeai improvements
|
|
- split USAGE_DEBUG in half due to VC limitation
|
|
- removed final VC warning in dfa.c
|
|
- revised trace in value_move_reasons()
|
|
- regress.plx improvements
|
|
- speedup in gtp_same_dragon
|
|
- test revisions
|
|
- 13x13 tests
|
|
|
|
3.1.15 released November 30, 2001
|
|
|
|
- new field value in struct half_eye_data
|
|
- topological_eye(), evaluate_diagonal_intersection() take ko into account
|
|
- improved debug output in compute_eyes() and compute_eyes_pessimistic()
|
|
- add_half_eye() renamed add_false_eye
|
|
- make_proper_eye_space() and remove_eyepoint() removed
|
|
- owl_topological_eye() reimplemented to look up stored data
|
|
- new function special_rescue5() in reading.c
|
|
- defend2() and defend3() revised
|
|
- new GTP commands list_stones and tactical_analyze_semeai()
|
|
- new command line option --decide-tactical-semeai
|
|
- support for marginal eye points with opponent stones in eyes.db
|
|
- persistent caching added to owl_does_attack()
|
|
- owl_does_defend() and owl_does_attack() now understand ko
|
|
- owl_determine_life() revised
|
|
- owl_analyze_semeai() revised
|
|
- small_semeai() calls owl_analyze_semeai
|
|
- new function silent_examine_position()
|
|
- find_more_owl_attack_and_defense_moves() revised
|
|
- ko valuation revised
|
|
- cutting worms are never inessential
|
|
- 1D revision of print_eye() in optics.c
|
|
- compute_eyes_pessimistic() revised
|
|
- bugfixes in evaluate_diagonal_intersection()
|
|
- new gtp commands owl_analyze_semeai, owl_does_attack, and owl_does_defend
|
|
- revision of owl_analyze_semeai()
|
|
- new static catalog_goal in owl.c
|
|
- sgfdecide functions made 1D
|
|
- empty_corner_value adjusted to board size in fuseki()
|
|
- removed tactical reading move pass from owl.c
|
|
- contribution of (reverse) followup values revised in value_move_reasons
|
|
- comments made 1D in owl.c
|
|
- regress.pl now accepts "problem sets"
|
|
- regress.plx includes "unexpected result" list
|
|
- new gtp_example/sgf2tst.pl
|
|
- changed warning to error in mkpat.c
|
|
- minor change to regress.pl
|
|
- atari_atari now considers general threat the first moves
|
|
- new depth parameter aa_threat_depth
|
|
- new function: atari_atari_succeeded
|
|
- cleanup in atari_atari functions
|
|
- compute_escape_influence now 1D
|
|
- new function in reading.c: attack_threats
|
|
- handling of tactical moves in worm.c no longer static
|
|
- replaced abort() in mkeyes with fatal error messages
|
|
- patterns.dsp and gnugo.dsw revised
|
|
- tuning
|
|
- influence tuning
|
|
- connection_tuning
|
|
- owl tuning
|
|
- test revisions
|
|
- new trevora tests
|
|
- new semeai tests
|
|
- doc revision
|
|
|
|
3.1.14 released November 17, 2001
|
|
|
|
- recognize_eye() revised
|
|
- new function test_eyeshape() in optics.c
|
|
- new gtp command test_eyeshape
|
|
- vital and num_vital fields removed from struct eye_graph
|
|
- mkeyes.c revised
|
|
- non-territory patterns introduced in the influence code
|
|
- revised formula for addition of followup_value
|
|
- better trace output for followup_value and reverse_followup_value
|
|
- typo fixed (whose_moyo for whose_area) in value_territory()
|
|
- new debug flag DEBUG_TERRITORY
|
|
- delta computation of territory, moyo, and area in influence.c restructured
|
|
- influence_value part of move valuation removed
|
|
- new function is_edge_vertex() in board.c
|
|
- guess_eye_space() revised
|
|
- compute_eyes_pessimistic revised
|
|
- do_owl_defend() revised
|
|
- move stupid vital marginals from first to second line in owl_determine_life()
|
|
- patterns.dsp doesn't reference invalid file
|
|
- regress.pl deals with threads better on Win32
|
|
- regress.plx supports view by category
|
|
- updated regress.pl
|
|
- add file & line numbers to more warnings in mkpat.c
|
|
- comments in reading.c made 1D
|
|
- DFA_ENABLE ifdefs removed
|
|
- remove *.dfa stuff from makefiles keeping only DFA_FLAGS for mkpat.
|
|
- configure --enable-dfa touches .db files.
|
|
- bugfix in find_double_threats()
|
|
- global_matchpat() renamed matchpat()
|
|
- regression view includes node counts, SGF link, and -t output.
|
|
- GTP echo_err added to allow echoing to STDERR.
|
|
- atari_atari moved to combination.c
|
|
- restricted_defend1 and restricted attack2 now public functions
|
|
- in find_double_threats, make threat reasons into attack_either reasons
|
|
- old disabled function remove_move_reason() now enabled
|
|
- some simple cleaning
|
|
- genmove now 1D
|
|
- out of bounds array violation in showbord.c fixed.
|
|
- regress.pl records sgf trace for owl_attack & owl_defend.
|
|
- regress.plx provides access to sgf trace files if present.
|
|
- tuning
|
|
- connection tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- revision of rot tests
|
|
- ld_owl_life.tst removed
|
|
- new and revised regression tests
|
|
- Some tests in endgame.tst corrected.
|
|
|
|
3.1.13 released November 6, 2001
|
|
|
|
- new function are_neighbor_dragons()
|
|
- verbose value reduced while running owl_reasons
|
|
- influence code revised
|
|
- function find_stones_saved_by_move() in move_reasons.c removed
|
|
- find_more_owl_attack_and_defense_moves() revised
|
|
- owl attacks induce strategical defenses of friendly neighbors
|
|
- connection values revised
|
|
- territorial value of attacks, defenses, owl attacks, and owl
|
|
defenses computed through influence function, not effective_size
|
|
- bugfix in computing effects of min and max territory values
|
|
- played stone not automatically in goal array in owl_does_defend(),
|
|
owl_confirm_safety(), and owl_connection_defends()
|
|
- gtp commands debug_influence, debug_move_influence, move_influence removed
|
|
- cleanup in mkpat.c
|
|
- malformed line warning turned into error in mkpat
|
|
- 1D documentation revisions.
|
|
- twogtp-a now give a (halfhearted) default to missing goprog.
|
|
- twogtp-a works for VC builds now.
|
|
- mkpat.c generates more useful errors.
|
|
- mkpat.c forces output to have compile error if input also had errors.
|
|
- comments in readconnect.c
|
|
- snapback only looks at one liberty in readconnect.c
|
|
- do_atari_atari confirms the *defense_point is safe before returning
|
|
- atari_atari_confirm_safety initializes defense_point
|
|
- trivial bugfix in move_reasons.c
|
|
- important bugfix in semeai.c, could cause a crash
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- gtp_set_boardsize resets the engine and stack
|
|
- new and revised regression tests
|
|
- new command-line option --orientation
|
|
- -l and decide-* options can be combined with --orientation
|
|
- tuning and regression revisions
|
|
- regress.plx revisions: total line, time display, command line hint
|
|
|
|
3.1.12 released October 28, 2001
|
|
|
|
- break_chain2_efficient_moves() and break_chain2_moves() revised
|
|
- add_array() in readconnect.c simplified
|
|
- bugfix in moves_to_connect_in_two_moves()
|
|
- sgf traces turned off in quiescence_capture()
|
|
- new fields owl_attack_code and owl_defense_code in struct dragon_data
|
|
- revised definition of WEAK and WEAKLY_ALIVE dragons in make_dragons()
|
|
- revised computation of size of surrounding moyo for a dragon
|
|
- 1D revisions
|
|
- add_attack_move() and relatives also take the result code as parameter
|
|
- new move reasons ATTACK_MOVE_GOOD_KO, ATTACK_MOVE_BAD_KO, and so on
|
|
- move valuation distinguishes between attacks, defenses, owl attacks
|
|
and owl defenses with or without ko
|
|
- connections tested as owl defenses when connecting out a critical dragon
|
|
- revised valuation of threats and strategical attacks
|
|
- compute_eyes_pessimistic() revised
|
|
- owl_determine_life() revised
|
|
- new static compute_aa_status() broken out of three atari_atari functions
|
|
- tuning
|
|
- connection tuning
|
|
- owl tuning
|
|
- joseki tuning
|
|
- new and revised regression tests
|
|
- new reorientation test suites
|
|
- remove rot* subdirs from EXTRA_DIST
|
|
- bugfix in score.c (typo from 1D conversion)
|
|
- revisions to extract_fuseki: make partial board patterns
|
|
- revised fuseki9.db
|
|
- Corrected VC build error converting unsigned 64-bit long to double
|
|
- regress.pl split into regress.pl & regress.plx
|
|
- added -all, to have regress.pl parse Makefile.in for tstfile list.
|
|
- html view has better marking of non gg_genmove positions.
|
|
- New move generator: combinations() in new file combinations.c
|
|
- double attack threats detected
|
|
- better valuation of attacks on worms
|
|
- general cleanups
|
|
|
|
3.1.11 released October 21, 2001
|
|
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning
|
|
- new function owl_proper_eye() and autohelper with the same name
|
|
- valuation of uncertain owl defense moves revised
|
|
- evaluate_diagonal_intersection() revised
|
|
- new pattern class b in owl_defendpats.db
|
|
- handling of same_dragon field in struct owl_data revised
|
|
- do_atari_atari() revised
|
|
- bugfixes in make_worms()
|
|
- 1D revisions all over the engine
|
|
- new debug flag DEBUG_READING_CACHE
|
|
- same_dragon() renamed is_same_dragon()
|
|
- new gtp commands start_sgftrace and finish_sgftrace
|
|
- new and revised regression tests
|
|
- new gtp command top_moves
|
|
- bugfix in draw_back
|
|
- Add ON_BOARD1 assertions in liberty_of_string and neighbour_of_string
|
|
- Use Win32 API to get CPU time usage for all Win32 builds, not just VC
|
|
- Added a few scattered regression comments
|
|
- Updated regress.pl to latest ever evolving version.
|
|
- Adds several test cases and SGF files to trevor.tst & games/trevor/
|
|
- reorientation code moved from gtp.c to play_gtp.c
|
|
- owl_rot.tst uses reorientation code
|
|
- fixed sscanf problem in (worm|dragon)_(stones|data)
|
|
- allow dragon_stones to take color parameter, as well as coord.
|
|
- revisions to capture.tst and vie.tst
|
|
- further 1D revision in dragon.c
|
|
- top_move functionality added to regress.pl
|
|
- filllib.c and semeai.c made 1-dimensional
|
|
- new gg_cputime in gg_utils.c
|
|
- improved configuration for ncurses/{term,curses}.h
|
|
- new and improved tests
|
|
|
|
3.1.10 released October 14, 2001
|
|
|
|
- portability fix for MINGW. Don't include crtdbg.h
|
|
- rename connect to string_connect.
|
|
- all move reason handling is 1D
|
|
- owl goal and other date are 1D
|
|
- new and revised test cases
|
|
- bugfix in random.c
|
|
- revision of readconnect.c
|
|
- bugfix for Cygwin: gtp_dragon_data misreports invalid coordinate
|
|
- revision of trevor.tst
|
|
- bugfix in inv_rotate: use bs-1 instead of bs
|
|
- new gtp function orientation
|
|
- new gtp function query_orientation
|
|
- in gtp_mprintf use gtp_print_vertex for the %m format specifier.
|
|
- revision of regress.pl, Stone.pm
|
|
- revision of engine/engine.dsp: remember readconnect.c
|
|
- make gtp_loadsgf reorient gamerecords
|
|
- make gtp_printvertices orient output points back
|
|
- new function count_common_libs() in board.c
|
|
- struct worm_data tracks all attack, defense, attack and defense threat points
|
|
- remove_attack_move() and remove_defense_move() removed
|
|
- attack_move_known(), defense_move_known(), attack_threat_move_known(),
|
|
and defense_threat_move_known() moved from move_reasons.c to worm.c
|
|
- change_attack() and change_defense() moved from utils.c to worm.c
|
|
- new functions change_attack_threat() and change_defense_threat() in worm.c
|
|
- new function worm_reasons() in worm.c
|
|
- trace messages in worm.c changed to DEBUG_WORMS messages
|
|
- remove_opponent_attack_and_defense_moves() and
|
|
do_remove_false_attack_and_defense_moves() removed from move_reasons.c
|
|
- NON_ATTACK_MOVE and NON_DEFEND_MOVE move reasons removed
|
|
- try a little harder to find attack threats
|
|
- attack.db and defense.db revised
|
|
- indirect_helper() removed from helpers.c
|
|
- tuning
|
|
- minor owl tuning
|
|
- new function have_common_lib() in board.c
|
|
- new option --decide-connection
|
|
- new function decideconnection() in sgfdecide.c
|
|
- bugfixes in board.c, sgfdecide.c, and main.c
|
|
- new IS_COLOR macro
|
|
- comments moved from regression/STRATEGY to strategy.tst
|
|
- time_report has a mintime parameter
|
|
- many new tests in strategy4.tst
|
|
- new regression/golois/*.sgf
|
|
- new connect.tst global.tst vie.tst wolf.tst
|
|
- new gtp function cputime
|
|
|
|
3.1.9 released October 7, 2001
|
|
|
|
- revised examine_move_safety heuristics
|
|
- owl_determine_life() revised
|
|
- new gtp functions connect and disconnect
|
|
- naive_ladder() made global
|
|
- warnings eliminated from readconnect.c
|
|
- most functions in readconnect.c made static
|
|
- add point reorientation functions
|
|
- add some comments to dfa.c
|
|
- bugfix and cleanup in naive_ladder()
|
|
- new interface/GoImage/Stone.pm
|
|
- struct eye_data arrays changed from 2D to 1D
|
|
- 9x9 case revised in fuseki()
|
|
- bugfix in goal detection in matchpat, don't accept empty goal vertices
|
|
- bugfix in gtp_genmove()
|
|
- new test cases in owl.tst
|
|
- further 1D revisions in worm.c
|
|
- find_lunch() moved from utils.c to worm.c
|
|
- is_same_worm() converted to 1D
|
|
- bugfix in list_move_reasons()
|
|
- revised test case in niki.tst
|
|
- tuning
|
|
- owl tuning
|
|
- connection tuning
|
|
- new implementation of compute_primary_domains()
|
|
- new eye pattern
|
|
- bugfix in fuseki.c
|
|
- cleanup and further 1D conversion in optics.c
|
|
- sgf_decideeye doesn't require owl computation
|
|
- 1D revisions in worm.c
|
|
- is_worm_origin(), propagate_worms(), does_attack(), does_defend() are 1D
|
|
- NNGS customization removed from ascii interface
|
|
- gtp_worm_stones can be run with stackp>0 and can take a color argument
|
|
- mkpat can take -i and -o options
|
|
- MIN_BOARD is 5
|
|
|
|
3.1.8 released October 1, 2001
|
|
|
|
- defend2() revised
|
|
- attack2() revised
|
|
- break_chain2_moves() revised
|
|
- connection_value() revised
|
|
- most parts of move_reasons.c converted to 1D
|
|
- domain calculation in optics.c now 1D
|
|
- hash.c is more 1D
|
|
- new function is_ko_point() in board.c
|
|
- computation of cavities removed from worm.c
|
|
- computation of caves removed from dragon.c
|
|
- computation of inessential worms moved from make_dragons() to make_worms()
|
|
- computation of ko points removed from make_worms()
|
|
- printing of cutting stones removed from genmove.c
|
|
- examine_cavity() simplified and made static
|
|
- cavity_recurse() simplified
|
|
- ko field removed from worm_data struct
|
|
- border field removed from dragon_data struct
|
|
- several fields moved from struct dragon_data to struct dragon_data2
|
|
- false_margin field eliminated from struct eye_data
|
|
- cleanup of sgf code
|
|
- extended functionality of gtp commands dragon_stones and worm_stones
|
|
- gtp_dragon_data returns a list of strings
|
|
- new gtp functions dragon_stones and worm_stones
|
|
- revision of extract_fuseki
|
|
- revision of fuseki.c
|
|
- bugfix in break_chain3
|
|
- bugfix in special_attack4
|
|
- warning fixed in mkpat
|
|
- formatting errors fixed in decidestring and other places: use %1m
|
|
- bugfix: trace in move_reasons.c
|
|
- gtp_dragon_data() revised
|
|
- new gtp functions dragon_stones and worm_stones
|
|
- twogtp-a writes html
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning
|
|
- one new test case in reading.tst
|
|
- new regression/games/trevor/* and unsorted tests mv'ed to trevor
|
|
- new tests xxlin.tst
|
|
- strategy4 target in regression/Makefile.am corrected
|
|
- rotated tests revised
|
|
- dsp files revised
|
|
|
|
3.1.7 released September 24, 2001
|
|
|
|
- heye[] is now stored as a 1-dimensional array
|
|
- halfeye() is now called is_halfeye()
|
|
- new macro for traversing all points: for_all_board()
|
|
- atari_atari and helper functions now 1D
|
|
- all goal functions in reading.c now 1D
|
|
- calls to the goal functions in reading.c converted to 1D calling standards.
|
|
- bufix in do_find_superstring()
|
|
- bugfix in aftermath_genmove()
|
|
- bugfix in hashdata_recalc()
|
|
- bugfix in store_persistent_owl_cache()
|
|
- assertions added to are_neighbor_strings()
|
|
- analyze_neighbor() in filllib.c revised
|
|
- alternative definition of ASSERT1 macro corrected
|
|
- revised valuation of vital eye moves
|
|
- colored legends with -T output
|
|
- make internals of worm[][] 1-dimensional
|
|
- make eye data 1-dimensional
|
|
- new macros: PASS_MOVE and NO_MOVE
|
|
- change_attack and change_defense are now 1-dimensional
|
|
- worm handling in move_reasons.c is now 1-dimensional
|
|
- dragon.c is now 1-dimensional
|
|
- prefix struct option in getopt.c with gg_
|
|
- prefix all occurences of optarg with gg_
|
|
- improved color support in cygwin and VC++
|
|
- brighter colors under VC++
|
|
- increase BOARDSIZE by one
|
|
- set MAX_BOARD to 19 for development versions
|
|
- new functions readsgffilefuseki, gametreefuseki in sgfnode()
|
|
- tuning
|
|
- owl tuning
|
|
- new strategy4.tst and unsorted.tst
|
|
- new game record and new and revised filllib regression tests
|
|
|
|
3.1.6 released September 15, 2001
|
|
|
|
- limited pushing of p[][] allows one level of recursion in global_matchpat
|
|
- bugfix in sgf_utils.c function get_moveX() and get_moveY()
|
|
- new functions find_common_libs() and are_neighbor_strings() in board.c
|
|
|
|
3.1.5 released September 15, 2001
|
|
|
|
- board changed from 2D to 1D array representation
|
|
- major revisions of board.c and reading.c
|
|
- smaller revisions more or less anywhere
|
|
|
|
3.1.4 released September 14, 2001
|
|
|
|
- do_atari_atari tries harder to find defenses
|
|
- confirm_atari_atari checks to see if tried move really causes the combination
|
|
- changing a group's status from CRITICAL to DEAD does not satisfy atari_atari
|
|
- bugfix in find_more_owl_attack_and_defense_moves()
|
|
- new function start_timer() and time_report() in utils.c
|
|
- showtime code cleaned up in dragon.c, genmove.c, and move_reasons.c
|
|
- move numbers printed correctly in ascii interface
|
|
- minor changes and cleanup in ascii interface
|
|
- prefix getopt_long and the options struct with gg_
|
|
- new functions sgfFreeNode and sgfFreeProperty
|
|
- tuning
|
|
- influence tuning
|
|
|
|
3.1.3 released September 6, 2001
|
|
|
|
- bugfix in the atari_atari code
|
|
- obsolete sgf_dump facilities removed
|
|
- remove_string removed from gnugo.h
|
|
- add_replacement_move() in move_reasons.c revised
|
|
- in value_move_reasons() ko threats are affected by shape values
|
|
- tuning
|
|
- don't call new_position for every stone when playing out an SGF tree.
|
|
- new gtp engine metamachine in interface/gtp_examples
|
|
- new gtp command query_boardsize
|
|
|
|
3.1.2 released September 4, 2001
|
|
|
|
- realloc space for owl stack if needed
|
|
- new static functions push_owl and pop_owl
|
|
- bugfix in move_reasons.c to avoid overcounting certain attacks
|
|
- move replacement mechanism implemented in move_reasons.c
|
|
- new autohelper action replace()
|
|
- new game record and regression test
|
|
- new tests and regressions
|
|
|
|
3.1.1 released August 31, 2001
|
|
|
|
- halfeyes valued slightly more guessing eye value for shapes not in eyes.db
|
|
- all owl data stored in do_owl_attack() and do_owl_defend()
|
|
- revised definition of inessential strings in owl_find_lunches()
|
|
- confirm_safety() revised
|
|
- owl tuning
|
|
- global_matchpat() to perform pattern matching on the whole board.
|
|
- removed scan loops from different files.
|
|
- matchpat() made static
|
|
- size test made one time for all the board.
|
|
- reverse spiral implemented to compute the move's row in the spiral path.
|
|
- bugfixes and improved trace output in atari_atari functions
|
|
- bugfix in dragon.c: broken format crashed printworms option
|
|
- bugfix in play_gtp.c: format needed extra newline
|
|
- configure --enable-profile implemented
|
|
- new game records and regressions
|
|
- new gtp_example vanilla.c
|
|
- missing subheadings added in doc/*texi
|
|
- BREAKAGE reset
|
|
|
|
3.0.0 released August 24, 2001
|
|
|
|
- komi can be set from CGoban using the command line
|
|
- play_gmp takes a Gameinfo * parameter
|
|
- corrected bounds in small_semeai
|
|
- simplified bounds check in double_atari
|
|
- explicit cast to avert warning in play_gtp.c
|
|
- doc revision
|
|
|
|
2.7.256 released August 23, 2001
|
|
|
|
- unused dragon.old_safety retired
|
|
- bugfix in owl_determine_life: signed char mx
|
|
- no long filenames in games/arb
|
|
- variations eliminated in dublin1.sgf
|
|
- one dublin1 test in connection.tst
|
|
- doc revision
|
|
|
|
2.7.255 released August 22, 2001
|
|
|
|
- two declarations moved in liberty.h
|
|
- dilate_erode, sgftree_printboard and resize_dfa are static
|
|
- doc revision
|
|
|
|
2.7.254 released August 21, 2001
|
|
|
|
- MAXSTACK expanded
|
|
- struct move_data renamed owl_move_data in owl.c
|
|
- superstring_breakchain made static
|
|
- bugfix in showboard: capture colors switched
|
|
- stray | removed from manyfaces.tst
|
|
- revised newlogo
|
|
- Trevor Morris and Stephan Somogyi THANKed
|
|
- initials cleaned and comments edited in patterns.db
|
|
- doc revision
|
|
|
|
2.7.253 released August 20, 2001
|
|
|
|
- gtp_loadsgf modified to work on Mac OS X
|
|
- DEFAULT_LEVEL 10 in config.vc and config.vcin
|
|
- newlogo.jpg restored in doc/
|
|
- gtp2_6 added to interface/gtp_examples/
|
|
- doc revision
|
|
|
|
2.7.252 released August 19, 2001
|
|
|
|
- moved interface/gtp/ to interface/gtp_examples/
|
|
- pragma disable 4244 4305 added to config.vc and config.vcin again
|
|
- placehand does not place a stone if handicap == 1
|
|
- gameinfo_play_sgftree default handicap is 0.5 if handicap != 0
|
|
- regress.awk strips carriage returns for DOS compatibility
|
|
- doc revision
|
|
|
|
2.7.251 released August 18, 2001
|
|
|
|
- moved the komi field from Gameinfo to Position
|
|
- change usages of komi in various places
|
|
- estimate_score no longer declared in gnugo.h
|
|
- use gnugo_estimate_score in play_gmp, play_solo, play_ascii, debugboard
|
|
- bugfix in gameinfo_load_sgfheader: initialize handicap
|
|
- abortgo.sgf reference taken out of abortgo
|
|
- gameinfo_play_sgftree does not place a stone if handicap 1
|
|
- twogtp default handicap 0, not 1
|
|
- twogtp declares file FF[4] not FF[3]
|
|
- doc revision
|
|
- win/ directory removed
|
|
- WINDOWS revised again
|
|
|
|
2.7.250 released August 17, 2001
|
|
|
|
- bugfix in main.c: stray hyphen broke compile
|
|
- bugfix in interface.c: reject weird handicaps
|
|
- bugfix in double_atari: reject off board locations
|
|
- bugfix in aftermath: reject off board locations
|
|
- new WINDOWS
|
|
- new logo
|
|
- do_play_move made static
|
|
- doc revision
|
|
- pragma disable 4244 4305 added to config.vc and config.vcin
|
|
- new command load <file name> in ascii mode.
|
|
- reference of --autolevel in help massege.
|
|
- fixed a bug in sgf file saving (to avoid strange handicap)
|
|
|
|
2.7.249 released August 16, 2001
|
|
|
|
- print_moyo color parameter eliminated
|
|
- All FIXME's classified post 3.0
|
|
- bugfix in owl_big_eyespace: check ON_BOARD(oi,oj)
|
|
- bugfix in fill_liberty: check ON_BOARD
|
|
- bugfix: initialize path in dfa matcher
|
|
- moved dfa scan function and others from dfa.c to matchpat.c
|
|
- moved dfa_fixup_for_size into dfa_compile_for_match.
|
|
- cleanup of dfa code
|
|
- removed heavy functions dfa_scan() and dfa_restart()
|
|
- new function scan_for_pattern()
|
|
- New warning in mkpat for DFA_MAX_MATCHED update.
|
|
- a warning fixed in dfa.c
|
|
- Any pattern db can use wired dfa's.
|
|
- removed load_dfa() and save_dfa() functions.
|
|
- removed -d option from mkpat.
|
|
- removed unused values from dfa_t struct
|
|
- sync_product uses a hash table instead of an huge array
|
|
- new stucture test_array_t and new static functions in dfa.c
|
|
- DFA_MAX_BOARD set to 21
|
|
- revision of all .dsp files
|
|
- analyze.h removed from engine/Makefile.am
|
|
- unused function dump_data removed from score.c
|
|
- bugfix in aftermath_genmove()
|
|
- code cleanup
|
|
- unchosen fuseki moves from fuseki database awarded a smaller value
|
|
- filllib and aftermath moves also recorded with move_considered()
|
|
- potential_moves array converted from int to float
|
|
- PROFILE_PATTERNS disabled by default
|
|
- computation of inessential strings in owl_find_lunches revised
|
|
- is_worm_origin() moved from utils.c to worm.c
|
|
- test mode option replaced by a replay option
|
|
- code in play_test.c heavily rewritten
|
|
- owl tuning
|
|
- new gtp function top_moves
|
|
- new game record and regression tests
|
|
- doc revision
|
|
- new tests tanguy.tst, dublin1.sgf and dublin2.sgf
|
|
|
|
2.7.248 released August 7, 2001
|
|
|
|
- undo implemented in play_gtp
|
|
- estimate_score renamed old_estimate_score
|
|
- new_estimate_score renamed estimate_score
|
|
- gtp commands new_score and prisoners renamed estimate_score and captures
|
|
- default level set to 10
|
|
- config.guess and config.sub removed from the distribution
|
|
- moyo.c and analyze.c removed from the distribution
|
|
- obsolete --moyo options retired
|
|
- count_territory, evaluate_territory and remove_string removed
|
|
- new function gnugo_estimate_score
|
|
- doc revision
|
|
- cleanup
|
|
- minor tuning
|
|
- Jens Yllman added to authors
|
|
- patterns.dsp replaced
|
|
- VC++ warnings addressed
|
|
|
|
2.7.247 released August 2, 2001
|
|
|
|
- aftermath_genmove() revised
|
|
- bugfix in do_genmove(), no reinforcing moves while scoring
|
|
- bugfix in estimate_territorial_value(), no reinforcing moves while scoring
|
|
- bugfix in score.c, 19 replaced by board_size
|
|
- bugfix in confirm_safety(), verbose not restored in two cases
|
|
- values used by worm[][].conditional_status made more consistent
|
|
- connection_value returns a higher value if we are ahead
|
|
- status INESSENTIAL distrusted by connection_value if we are ahead
|
|
- xcut autohelper macro rejects B pattern ! as well as *
|
|
- connection tuning
|
|
- score, upper_bound and lower_bound are made global variables
|
|
- estimate_strategical_value takes score parameter
|
|
- revision of score report in play_solo
|
|
- new --showscore option
|
|
- tuning
|
|
- owl tuning
|
|
- spelling mistake in regression/Makefile.am fixed
|
|
- new regression test and game record
|
|
- code cleanup in analyze.c
|
|
- assert() changed to gg_assert() in extract_fuseki.c
|
|
- mkpat and joseki add copyright notice to built files
|
|
- verbose prints the score
|
|
- bugfix in report_dragon: if dragon.id = -1 ignore dragon2
|
|
- VC++ compatibility changes
|
|
- DFAFLAGS is -D instead of -d
|
|
- autolevel target is level 10, not 11
|
|
- play_gmp uses new_score at game end
|
|
- doc revision
|
|
- revision of twogtp
|
|
- new game records and connection tests
|
|
|
|
2.7.246 released July 15, 2001
|
|
|
|
- if ahead, owl_prevent_threat move reasons given real value
|
|
- tuning
|
|
- owl tuning
|
|
- Chinese counting implemented
|
|
- ascii mode revised
|
|
- files gtp.c and gtp.h under X11 licensing
|
|
- autolevel option activated
|
|
- bugfix in matchpat.c
|
|
- new #define GNUGO_PATH in config.h.in
|
|
- fixed some problems with inclusion of dfa in pattern c files.
|
|
- mkpat is now called with option -D instead of -d => no more binary dfa files.
|
|
- in matchpat.c dfa_match_init do not try to load dfa's files anymore.
|
|
- load_dfa() adapted to enable wired dfas
|
|
- wired dfas
|
|
- new macro gg_assert
|
|
- change_dragon_status() replaced by change_matcher_status()
|
|
- minor cleanup
|
|
- atari_atari_try_combination turns down verbose
|
|
- hyphenation of some command line options
|
|
- project files *.dsp and *.dsw revised
|
|
- color support revised
|
|
- doc revision
|
|
|
|
2.7.245 released July 5, 2001
|
|
|
|
- aftermath code revised
|
|
- new options --allow-suicide, --play-out-aftermath, --capture-all-dead
|
|
- unused constant MAX_TRY removed from genmove.c
|
|
- option --noinhibit removed
|
|
- new function and autohelper max_eye_value()
|
|
- new global doing_scoring affecting valuations while scoring
|
|
- bugfix in valuation of attack_either and defend_both moves
|
|
- neither black nor white used in colored displays
|
|
- new gtp commands final_status, final_status_list, and protocol_version
|
|
- gtp_playblack and gtp_playwhite revised
|
|
- warning eliminated in debugboard/gui.c
|
|
- fuseki9.db regenerated from a bigger set of games
|
|
- new regression tests and game records
|
|
- regressions/niki.tst included (omitted by mistake from 2.7.244)
|
|
- new autohelper macro effective_size
|
|
- copyright notice added to twogtp
|
|
- depth values increased in owl_substantial
|
|
- followup contribution cap lowered to tot_value
|
|
- tuning
|
|
- owl tuning
|
|
- hyphens replace underscores in command line options
|
|
- doc revision
|
|
|
|
2.7.244 released July 1, 2001
|
|
|
|
- followup values are calculated more carefully
|
|
- attacks on uncertainly DEAD dragons are now called uncertain defense
|
|
- confirm_safety less verbose
|
|
- demotion of many fuseki patterns
|
|
- tuning
|
|
- owl tuning
|
|
- reduction of j and t classes
|
|
- new function atari_atari_try_combination and autohelper macros
|
|
- TRACE_ATARI_ATARI replaced with DEBUG_ATARI_ATARI
|
|
- Use double instead of timeval structs for clock time values
|
|
- Removed a lot of heavy timeval functions from clock.c
|
|
- new function clock_time_graph() for time/move/level stats
|
|
- added more traces to clock functions
|
|
- pushbutton does not complain when no initialisation is done
|
|
- removed a lot of non used memory check in mkpat:
|
|
- mkpat never rejects a pattern but complains if it makes the dfa big
|
|
- the -d and -D option of mkpat do not require arguments
|
|
- -m option is now alway used in Makefiles to save memory on owl pats
|
|
- -r option eradicated from mkpat.
|
|
- ignore trailing white space in input to mkeyes.c
|
|
- remove @SET_MAKE@ from Makefile.am.
|
|
- remove config.guess en config.sub from distribution
|
|
- revision of coloring part of configure.in
|
|
- play_ascii correctly marks the last stone played while GNU Go thinks
|
|
- doc revision
|
|
- new test nikki.tst
|
|
|
|
2.7.243 released June 22, 2001
|
|
|
|
- dragon.owl_status_certain split to owl_attack_certain, owl_defend_certain
|
|
- new_estimate_score is run every move if level >= 8
|
|
- if safely ahead, uncertain defensive moves are added
|
|
- revision of certain connection values
|
|
- WEAK safety value reduced
|
|
- doc/gtp.texi revised
|
|
- aftermath code revised
|
|
- warnings eliminated in clock.c
|
|
- on board assertions in same_dragon()
|
|
- liberty filling code revised
|
|
- value of empty corners reduced in fuseki.c
|
|
- tweek in influence_callback()
|
|
- more careful valuation of ko threats in value_move_reasons()
|
|
- confirm_safety() call in review_move_reasons() avoids bad ko threats
|
|
- more careful detection of disturbing moves in the persistent owl cache
|
|
- new function owl_confirm_safety()
|
|
- new function atari_atari_confirm_safety()
|
|
- confirm_safety() and double_atari() revised
|
|
- gtp_final_score() revised
|
|
- new gtp commands fixed_handicap, level, name, and version
|
|
- code cleanup
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning
|
|
- new helper backfill_helper() and autohelper function with same name
|
|
- new function interface/twogtp
|
|
|
|
2.7.242 released June 19, 2001
|
|
|
|
- bonus for uncertain defense/attacks reduced
|
|
- bugfix: defense threat move reasons not generated for illegal moves
|
|
- tuning
|
|
- owl tuning
|
|
- more careful to get dragon.owl_status_certain right
|
|
- dragon.owl_status_certain can affect dragon.safety
|
|
- corrections to -m option
|
|
- bugfix: OWL_DEFENSE_THREAT was reported incorrectly
|
|
- adjective ``reliable'' disassociated from semeai()
|
|
- bugfix in decidedragon: report uncertainty correctly
|
|
- revision of gtp_report_uncertainty
|
|
- ignore trailing whitespace in patterns
|
|
- add prototype in dfa.h for print_c_dfa
|
|
- some sgf files standardized
|
|
|
|
2.7.241 released June 12, 2001
|
|
|
|
- owl_attack and owl_defend return a certainty value
|
|
- new field dragon.owl_status certain
|
|
- new UNCERTAIN_OWL_ATTACK and UNCERTAIN_OWL_DEFEND move reasons
|
|
- revisions and corrections to some gtp functions
|
|
- tuning
|
|
- owl tuning
|
|
- reduced value of j patterns by one point
|
|
- merged new_matchpat.c into matchpat.c
|
|
- when no dfa file is found, use standard do_matchpat()
|
|
- fixed a reference to nonexistent merged_board[][].
|
|
- updated dfa matcher to merged_val optimization.
|
|
- removed check_pattern() function.
|
|
- dfa board preparation moved to dfa_match_init()
|
|
- new constant DFA_MAX_MATCHED
|
|
- assertion to check possible DFA_MAX_MATCHED overflows.
|
|
- added --clock,--byo_time and --byo_period in --help listing.
|
|
- new function print_c_dfa() in dfa.c
|
|
- new option -D <memory> in mkpat.c puts the dfa into the binary
|
|
- doc revision
|
|
- new tests and regressions
|
|
- corrections to old tests and regressions
|
|
|
|
2.7.240 released June 12, 2001
|
|
|
|
- new autohelper function macro owl_threatens
|
|
- CAN_THREATEN_ATTACK and CAN_THREATEN_DEFENSE renumbered
|
|
- status_to_string revised
|
|
- gtp declarations sorted alphabetically
|
|
- new gtp command "help" lists gtp commands
|
|
- gtp command dragon_data revised
|
|
- show_dragon revised
|
|
- new function safety_to_string
|
|
- tuning
|
|
- owl tuning
|
|
- game regression/games/pending ssstator.sgf added
|
|
- last two moves cached in global last_moves_i, last_moves_j array
|
|
- bugfix: sometimes owl_threat_status was wrongly UNCHECKED
|
|
- when reading a file even passes are given to gnugo_play_move
|
|
- OWL_PREVENT_THREAT reason valued more if opponent adds to a dead dragon
|
|
- new vital owl attack pattern VA17
|
|
- change ko_i and ko_j to board_ko_i and board_ko_j in new_matchpat.c
|
|
- bugfixes in captured_territory() from score.c
|
|
- new game records and regression tests
|
|
- aftermath code revised
|
|
- pure_threat_value increased from 0.0 to 0.4 in genmove()
|
|
- new flag worthwhile_threat in the move[][] array used in move_reasons.c
|
|
- new function add_worthwhile_threat_move() in move_reasons.c
|
|
- new pattern classification W for worthwhile threats
|
|
- bugfix in owl_does_defend()
|
|
- active area computation in store_persistent_owl_cache() revised
|
|
- bugfix in atari_atari code
|
|
- print_regions() in score.c reimplemented
|
|
- new game records and regression tests
|
|
- doc revision
|
|
|
|
2.7.239 released June 8, 2001
|
|
|
|
- use gg_gettimeofday routines in stead of gettimeofday
|
|
- make autoconf 2.50 script detect mingw32
|
|
- include config.h in gnugo.h
|
|
- new file score.c
|
|
- new function new_estimate_score()
|
|
- new gtp function gtp_new_score
|
|
- fixed --score last and --score [movenum]
|
|
- aftermath code revisions
|
|
- new function same_string() in board.c
|
|
- global variable threats_enabled renamed disable_threat_computation
|
|
- new global variable disable_endgame_patterns
|
|
- new function owl_hotspots() and reading_hotspots()
|
|
- revision of induce_secondary_move_reasons()
|
|
- connect_strings bonus revised
|
|
- new functions edge_clamp() and edge_block() in reading.c
|
|
- performance improvement in atari_atari() and do_atari_atari()
|
|
- improved traces from the atari_atari functions
|
|
- minor tweaking of move ordering parameters
|
|
- performance improvement in superstring_add_string() in utils.c
|
|
- tuning
|
|
- owl tuning
|
|
- new regression suites blunder.tst and newscore.tst
|
|
- new and revised regression tests
|
|
- new and revised game records
|
|
- missing parameters supplied to is_illegal_ko_capture in value_moves
|
|
- bugfix in fuseki
|
|
- incorrectly dimensioned arrays fixed in gtp_all_legal
|
|
- is_pass() moved to board.c
|
|
- A number of FIXMEs addressed
|
|
- minor cleanup
|
|
|
|
2.7.238 released May 28, 2001
|
|
|
|
- aftermath_genmove() revised
|
|
- new global threats_enabled to disable computing worm and dragon threats
|
|
- definition of WIN, KO_A, KO_B, LOSE, and CUT only in gnugo.h
|
|
- minor optimizations in filllib.c and owl.c
|
|
- better debug support for persistent owl cache
|
|
- move order tuning in reading.c
|
|
- neighbors of invincible worms excluded from active area in persistent cache
|
|
- owl tuning
|
|
- new game records and regression tests
|
|
- new option --autolevel (not activated by default).
|
|
- revision of clock.c and clock.h
|
|
- broken return codes corrected
|
|
- new gtp command worm_cutstone
|
|
- doc revision
|
|
|
|
2.7.237 released May 27, 2001
|
|
|
|
- revised reading and owl return codes
|
|
- incremental_board.c removed from engine/Makefile.am
|
|
- parameters to chainlinks() and chainlinks2() revised
|
|
- incremental_order_moves() counts stones in atari more accurately
|
|
- superstring functions reimplemented
|
|
- new function find_superstring_stones_and_liberties
|
|
- optimization in owl_does_defend()
|
|
- detection of insubstantial strings in owl_determine_life made more efficient
|
|
- persistent reading cache size doubled from 50 to 100 entries
|
|
- revisions in defend2() and defend3()
|
|
- order_moves() revised
|
|
- bugfix in break_through_helper
|
|
- order_moves doesn't sort singleton lists
|
|
- pure threat value in do_genmove set to zero
|
|
- more stats with -b option
|
|
- globals your_last_move_*, my_last_move_*, no_old_data_exists removed
|
|
- superceded dragon data caching scheme taken down
|
|
- new tests and regressions
|
|
- new gtp command worm_cutstone
|
|
- new testsuite cutstone.tst
|
|
- new game record wormflaw.sgf
|
|
- minor tuning
|
|
- doc revisions
|
|
- some FIXMEs addressed
|
|
- debugboard now shows all worm and most dragon data
|
|
- upgrade configure.in to work with autoconf version >= 2.50
|
|
- new files config.guess and config.sub
|
|
|
|
2.7.236 released May 17, 2001
|
|
|
|
- shadowing and persistent caching of reading functions implemented
|
|
- new function get_move_from_stack()
|
|
- new functions draw_reading_shadow() and purge_persistent_reading_cache()
|
|
- new function attack_and_defend()
|
|
- new tests and regressions
|
|
- fill_liberty() looks for ko back captures
|
|
- minor tuning
|
|
- bugfix in double_atari
|
|
- bugfix in komaster_trymove: i - j confusion
|
|
- new functions: gnugo_play_sgfnode and gnugo_play_sgftree
|
|
- new functions: gameinfo_load_sgfheader and gameinfo_play_sgftree
|
|
- renamed load_sgf_header, play_sgf_tree, sgfPlayNode and sgfPlayTree
|
|
- sgfutils.c removed
|
|
- removed incremental_board.c and sgfutils.c from engine/Makefile.am
|
|
- renamed neighbor_of to neighbor_of_string
|
|
- renamed liberty_of to liberty_of_string
|
|
- minor cleanup of gnugo.h
|
|
- doc revision
|
|
- print more debugging info in worm.c
|
|
- rewrite loop in worm.c with deltai and deltaj arrays
|
|
- revision of play_test
|
|
|
|
2.7.235 released May 5, 2001
|
|
|
|
- aftermath code revised
|
|
- owl reuse is off by default
|
|
- function komaster_trymove() replaces move_allowed()
|
|
- optimization in is_self_atari()
|
|
- new function owl_big_eyespace() and corresponding autohelper function
|
|
- new field unconditional_status in struct worm_data
|
|
- new static function edge_closing backfill in reading.c
|
|
- move ordering scores available outside order_moves()
|
|
- attack4() rewritten
|
|
- propose_edge_moves() revised
|
|
- relative_break_chain() obsoleted and removed
|
|
- move ordering scores written in sgf output file with variations
|
|
- sgf output file records komaster
|
|
- changed parameters to unconditional_life()
|
|
- unconditional_life() now finds unconditional dead stones and territory
|
|
- reinforce_helper() revised
|
|
- tuning, owl tuning
|
|
- tune_move_ordering() can write c code for inclusion
|
|
- new and revised regression tests and game records
|
|
- new global variable shadow[][]
|
|
|
|
2.7.234 released May 4, 2001
|
|
|
|
- komaster implementation corrected in owl.c
|
|
- sgf traces now show komaster in -o output
|
|
- bugfix: --no_owl_reuse was broke
|
|
- bugfix in sgfutils.c which could crash on some files with IL property
|
|
- IL property moved to the end of files reading16.sgf and reading20.sgf
|
|
- variable length value for SGFproperty
|
|
- numeric keypad can be used for cursor movement in debugboard
|
|
- debugboard needs slightly smaller screen
|
|
- debugboard shows data for both black and white eyes
|
|
- new movement buttons for debugboard: ctrl-a and ctrl-e
|
|
|
|
2.7.233 released April 29, 2001
|
|
|
|
- revision of the komaster scheme
|
|
- persistent owl caching
|
|
- owl_attack is more cautious if an attack can produce a ko
|
|
- parameters in acconfig.h sorted in order recommended by comments in file
|
|
- config.vcin is once again brought in sync with the current config.h
|
|
- bugfix in eyes.db
|
|
- SGF IL property can set (board_ko_i, board_ko_j)
|
|
- owl test 27 corrected
|
|
- new tests manyfaces.tst
|
|
- new directory regression/games/seki_exotics
|
|
- doc revision
|
|
|
|
2.7.232 released April 25, 2001
|
|
|
|
- break_chain2_efficient_moves() revised
|
|
- bugfixes in order_moves()
|
|
- new tuning parameter safe_atari_score in order_moves()
|
|
- bugfix in configure.in
|
|
- spelling correction in gnugo.texi
|
|
- same_dragon(), report_dragon() and ascii_report_dragon() moved to dragon.c
|
|
- speed improvements in filllib.c
|
|
- corrected size of defend_not_adjacent_lib_score[] array in reading.c
|
|
- bugfix and minor reorganization in review_move_reasons()
|
|
- remove incremental_board.[ch] from engine/Makefile.am
|
|
- hashtable_unlink_closed_results() can now remove read results selectively
|
|
- remove incremental_board.[ch] from engine/Makefile.am
|
|
- hashtable_unlink_closed_results() can now remove read results selectively
|
|
- attack tuning
|
|
- new GTP command: echo
|
|
- attack tuning
|
|
- tuning
|
|
- endgame performance tuning
|
|
- minor cleanup
|
|
- commented some tests in NICKLAS test suite
|
|
- bugfix in nicklas2.tst
|
|
- SGF PL property handling in play_ascii.c corrected
|
|
- revised order of inclusion of header files in interface/main.c
|
|
- Chinese and Japanese rules were switched
|
|
- new files "clock.h" and "clock.c"
|
|
- new global struct "clk" handeling the timers.
|
|
- new global variable "clock_enabled" (set to 1 by --clock XXX).
|
|
- new functions clock_isOver(), clock_isByoYomi(), clock_getTimeLeft()
|
|
- new options --clock, --byo_time and --byo_period
|
|
- compute the clock delta error
|
|
- cleanup clock initialisation in main.c
|
|
- new games and regressions in arb.tst
|
|
- new games mfgg*.sgf and nightmare.sgf in regression/games/pending
|
|
- macros abs, max and min renamed gg_abs, gg_max and gg_min
|
|
|
|
2.7.231 released April 20, 2001
|
|
|
|
- we do not reuse data unless 2 last moves are on the board
|
|
- last moves are set by play_solo
|
|
- extra level inserted between levels 6 and 7
|
|
- nominal depth variables by mandated depth variables
|
|
- revised handling of depth variables set at command line
|
|
- new function set_depth_values()
|
|
- get_location renamed string_to_location and moved
|
|
- review_move_reasons tries harder not to return illegal moves
|
|
- same_dragon() moved to board.c
|
|
- redundant lunch timing removed from dragon.c
|
|
- average move time computed by --showtime
|
|
- atari_atari uses restricted_defend1 to find second move
|
|
- tuning
|
|
- aftermath code revised
|
|
- new function aftermath_compute_score()
|
|
- new debug flag DEBUG_AFTERMATH
|
|
- new functions store_position(), restore_position() in engine/interface.c
|
|
- who_wins() moved from moyo.c to utils.c and revised
|
|
- superstring_breakchain() now considers ko
|
|
- score computations consistently use positive values for white wins
|
|
- gtp_loadsgf sets no_old_data_exists=1
|
|
- new gtp command final_score()
|
|
- scoring option --score aftermath now works properly
|
|
- new regression file score.tst
|
|
- add configure test for variadic #define
|
|
- fix bug in configure test for __FUNCTION__
|
|
- remove __ prefix from function prototypes in gg-getopt.h
|
|
- new option --chinese_rules
|
|
- new configure option --enable-chinese-rules
|
|
- new functions ascii_report_dragon and report_dragon for use in gdb
|
|
- new game records and test cases
|
|
- minor doc revision
|
|
|
|
2.7.230 released April 13, 2001
|
|
|
|
- default default level is 8
|
|
- default level can be set at configure or run time
|
|
- default cache can be set to arbitrary value at configure time
|
|
- revised ko handling
|
|
- kothreat_needed no longer needed
|
|
- aftermath uses genmove_conservative
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- systematic use of faster ON_BOARD macro
|
|
- new function is_illegal_ko_capture()
|
|
- does_capture_something() made public
|
|
- new function genmove_conservative
|
|
- improved --showtime information
|
|
- minor revision of confirm_safety
|
|
- print_top_moves() split out from review_move_reasons()
|
|
- configure tests for keypad
|
|
- malloc.h inclusions taken down
|
|
- help string revised
|
|
- new tests and regressions
|
|
|
|
2.7.229 released April 9, 2001
|
|
|
|
- caching of owl data implemented and reuse on later moves
|
|
- showtime option shows information about owl reading time
|
|
- new global variables my_last_move_i, my_last_move_j, no_old_data_exists
|
|
- last_move_i, last_move_j renamed your_last_move_i, your_last_move_j
|
|
- incremental_order_moves() revised
|
|
- order_moves() revised
|
|
- attack2() revised
|
|
- bugfix in linear_eyes()
|
|
- do_owl_attack() and do_owl_defend() revised and simplified
|
|
- more robust topological eye analysis in owl_determine_life()
|
|
- vital moves for multiple eyespaces recognized in owl_determine_life()
|
|
- sniff_lunch() revised
|
|
- owl_eyespace() ignores eyespaces which do not yield a single eye
|
|
- joseki.c revised
|
|
- tuning, owl tuning, eye tuning
|
|
- new takamoku joseki
|
|
- new game record and test cases
|
|
- test results updated
|
|
|
|
2.7.228 released March 30, 2001
|
|
|
|
- parameters kom_i and kom_j complement komaster field in many functions
|
|
- routine_i_j_stackp renamed compressed_data
|
|
- komaster added to cached compressed_data field
|
|
- parameters ko_i and ko_j renamed board_ko_i and board_ko_j
|
|
- GRAY is a synonym for GRAY_BORDER
|
|
- incremental_board.* removed
|
|
- incremental board functionality merged into board.c
|
|
- revised komaster scheme in reading.c and owl.c
|
|
- trick to avoid sorting corners in matchpat.c
|
|
- mkpat -m now works in both dfa and non-dfa mode
|
|
- compile_for_match() no longer calculates merged values
|
|
- revised debug messages in influence.c and sgfnode.c
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- new game records and regression tests
|
|
- test results updated
|
|
|
|
2.7.227 released March 23, 2001
|
|
|
|
- new file engine/aftermath.c
|
|
- temporary option "--score aftermath"
|
|
- "connect strings" bonus in move_reasons.c revised
|
|
- bugfix in value_move_reasons
|
|
- all vital owl attack pattern matches counted
|
|
- bugfix in owl_determine_life(), a no longer valid shortcut disabled
|
|
- dead code removed from owl_reasons()
|
|
- break_chain2() revised
|
|
- various FIXMEs addressed
|
|
- try kos in play_break_through_n(), play_attack_defend_n(),
|
|
and play_attack_defend2_n()
|
|
- bugfix in atari_atari
|
|
- worm threats on second order liberties.
|
|
- new transform.c
|
|
- endgame tuning
|
|
- tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
- new regression test cases and game records
|
|
- more copyright messages updated
|
|
- minor doc revision
|
|
|
|
2.7.226 released March 21, 2001
|
|
|
|
- bugfix in atari_atari
|
|
- minor speedups in matchpat.c
|
|
- looks for tactical ko theats
|
|
- long USAGE string split in interface/main.c
|
|
- removed main.c.zheng and interface.dsp from distribution
|
|
- tuning
|
|
- owl tuning
|
|
- updated copyright messages
|
|
|
|
2.7.225 released March 15, 2001
|
|
|
|
- new move reasons: ATTACK_THREAT_MOVE and DEFEND_THREAT_MOVE
|
|
- new functions compute_effective_worm_sizes() and
|
|
find_worm_attacks_and_defenses() split off from make_worms()
|
|
- new function find_worm_threats(), called from make_worms()
|
|
- redundant NULLs removed from attack.db, barriers.db, conn.db,
|
|
defense.db, endgame.db, fuseki19.db, fuseki9.db, and patterns2.db
|
|
- extract_fuseki.c revised not to generate unnecessary NULL string
|
|
- owl tuning
|
|
- new and revised regression tests and game records
|
|
|
|
2.7.224 released March 8, 2001
|
|
|
|
- komaster status stored in reading cache
|
|
- several functions in cache.c made static
|
|
- new function incremental_order_moves() to support order_moves()
|
|
- cleanup in topological_eye() and evaluate_diagonal_intersection()
|
|
- improved traces in owl.c
|
|
- semeai detecting code in owl_reasons() taken down
|
|
- tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
- endgame tuning
|
|
- new game record
|
|
- new and revised regression test cases
|
|
- endgame fix in move_reason.c
|
|
- cleanup in helpers.c
|
|
- tests for both sides in endgame.tst
|
|
- estimate_score only if DEBUG_SCORING
|
|
- revision of rotated tests and arb.tst
|
|
- vc project files revised
|
|
- Yin Zheng and Don Wagner added to acknowledgements
|
|
|
|
2.7.223 released February 28, 2001
|
|
|
|
- bugfix in play_move()
|
|
- make_domains() distinguishes strictly between owl calls and others
|
|
- bugfix in examine_position()
|
|
- inessential worms excluded in one time in estimate_strategical value
|
|
- false_margin() revised
|
|
- inessential strings added in the owl code
|
|
- MAXPATNO incresead in mkeyes.c
|
|
- tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
- name collisions resolved in pattern databases
|
|
- regression/READING revised
|
|
- new and revised regression test cases
|
|
- bugfix in regressions/Makefile*
|
|
- revised nicklas* regressions
|
|
|
|
2.7.222 released February 26, 2001
|
|
|
|
- dead code removed from dfa.c, dfa.h, mkpat.c
|
|
- o_somewhere and x_somewhere only check matcher_status if stackp==0
|
|
- bugfix in atari_atari
|
|
- bugfix in analyze_semeai
|
|
- dragon.owl_status, status and matcher status initialized
|
|
- tactically critical nakade stones reclassified as inessential
|
|
- influence code revised
|
|
- no strategical attack value for strongly alive dragons
|
|
- hardwired values for J, j, and t patterns scaled with the board size
|
|
- maximum values for j and t patterns disabled for boards < 17x17
|
|
- tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- endgame tuning
|
|
- bugfix in mkpat.c, patterns of class c were unintentionally disabled
|
|
- new game records
|
|
- new and revised regression test cases
|
|
- nonstandard SGF records and missing handicap stones fixed
|
|
- Mathias Wagner thanked
|
|
|
|
2.7.221 released February 19, 2001
|
|
|
|
- restricted_attack2 and restricted_defend1 remember to set komaster
|
|
- matcher_status only initialized to CRITICAL if owl code says so
|
|
- bugfix in matchpat(), static variable properly reset
|
|
- new debug messages in semeai.c
|
|
- tuning
|
|
- rotated tests updated
|
|
- test results updated
|
|
- new test reading 141
|
|
|
|
2.7.220 released February 17, 2001
|
|
|
|
- TODO revised
|
|
- experimental influence based score estimation
|
|
- scoring option in ascii interface uses the influence score estimate
|
|
- test for tactically critical O worms restored from 2.7.218
|
|
- atari_atari tries harder to find refutations
|
|
- influence B patterns do not accept dead stones
|
|
- revised connection values
|
|
- bonus for moves which both owl defend/attack and connect/cut something
|
|
- new autohelper for owl patterns; owl_eyespace()
|
|
- defend_both() tries harder to find attackable splitting strings
|
|
- class_mask[CRITICAL][color]=CLASS_O in new_matchpat
|
|
- open dfa files in binary mode on MS-DOS and Windows
|
|
- fix dfa error messages.
|
|
- sgf code now understands PL[1] and PL[2]
|
|
- new pattern class c, weak connections
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- eye tuning
|
|
- new game records
|
|
- new and revised regression tests
|
|
- test results updated
|
|
|
|
2.7.219 released February 13, 2001
|
|
|
|
- redundant test for tactically critical O worms taken down in shapes_callback
|
|
- fix bug in glib configuring
|
|
- link dfa.c instead of include it.
|
|
- extra parens in influence
|
|
- add extra brackets to code1 macro in accumulate_influence
|
|
- tuning
|
|
- bugfix in mkpat.c: autohelper function halfeye() now works
|
|
- gnits automake option removed
|
|
- new test ego.sgf
|
|
|
|
2.7.218 released February 7, 2001
|
|
|
|
- O patterns reject CRITICAL friendly dragons
|
|
- in make_worms() if worm.defend==PASS move not tried
|
|
- in attack_callback() ignore strings with 5 liberties
|
|
- default memory increased to 32Mb
|
|
- configure supports 48MB and 64MB models
|
|
- minor tuning
|
|
- doc revision
|
|
- vsnprintf error gives warning, not fatal error
|
|
- duplicate owl test 186 renumbered
|
|
|
|
2.7.217 released February 1, 2001
|
|
|
|
- worm.c: only add defense move if worm.defend != PASS
|
|
- find_defense returns PASS if string is alive as stands
|
|
- defend1 pattern gets constraint
|
|
- caching scheme revised so that the cache can be cleared on the fly
|
|
- new debug flag DEBUG_READING_PERFORMANCE
|
|
- only make requested dfa files (currently owl*dfa)
|
|
- tuning
|
|
- owl tuning
|
|
- new game record dniwog.sgf
|
|
|
|
2.7.216 released January 29, 2001
|
|
|
|
- missing files generate_owl_dfa.sh and matchtest.sh in minipat2 restored
|
|
- local_owl_node_counter initialized in owl_substantial
|
|
|
|
2.7.215 released January 28, 2001
|
|
|
|
- bugfix in analyze_semeai()
|
|
- bugfix in find_attack_patterns()
|
|
- new gtp command combination_attack
|
|
- defend_against_atari_helper() revised
|
|
- new regression test suite atari_atari.tst
|
|
- STRATEGY revised
|
|
- new regression tests and game records
|
|
- reenable board printing on core dumps
|
|
- bugfix in attack_callback: attack patterns are matched again
|
|
- integrate rolled and unrolled versions of accumulate_influence
|
|
- move invariant code out of loop in accumulate_influence
|
|
- put patterns/minipat2 under automake control
|
|
- include unistd.h in patterns/dfa.c for sleep function prototype
|
|
- add pkgdata_DATA macro to patterns/Makefile.am
|
|
- add macro DFAFLAGS
|
|
- bugfix in dfa generation: borders constraints now always checked.
|
|
- modification in patterns.h to avoid a warning: struct dfa *pdfa
|
|
- add experimental check_pattern_light() function only checking
|
|
- DEBUG_OWL_PERFORMANCE reports CPU times
|
|
- vgprintf uses %.2f for %f
|
|
- tuning
|
|
- influence tuning
|
|
- owl tuning
|
|
- attack tuning
|
|
- minor cleaning
|
|
|
|
2.7.214 released January 21, 2001
|
|
|
|
- combo attack and defend_both/attack_either can't both add to move value
|
|
- bugfix in atari_atari()
|
|
- eye tuning
|
|
- owl tuning
|
|
- READING revised
|
|
- new and revised regression tests
|
|
- test results updated (except nicklas*.tst)
|
|
- doc revision
|
|
|
|
2.7.213 released January 20, 2001
|
|
|
|
- bigger moyo measure allowed for big dragons before owl code is disabled
|
|
- compute_eyes_pessimistic() no longer consults the life code
|
|
- cleanup of mkeyes.c
|
|
- now possible to specify edge and corner vertices in eyes.db
|
|
- mkeyes.c and recognize_eye()
|
|
- owl_substantial() revised
|
|
- bugfix in special_rescue3()
|
|
- loop unrolled in order_moves
|
|
- revision of is_hoshi_point
|
|
- bugfix in analyze_semeai(): don't try PASS moves
|
|
- shape value in j or t pattern now modifies hard-wired value
|
|
- atari_atari makes atari even if a chain is already in atari
|
|
- environment variable $GNUGO_PATH used to load dfa files
|
|
- fixup a Sun portability bug with enable-dfa
|
|
- fixup for owl_vital_apats.db with enable-dfa
|
|
- tuning
|
|
- connection tuning
|
|
- eye tuning
|
|
- owl tuning
|
|
- READING revised
|
|
- new regression tests and game records
|
|
|
|
2.7.212 released January 18, 2001
|
|
|
|
- assertion added in is_ko()
|
|
- revision of compute_eyes_pessimistic()
|
|
- vital_apats consulted also by do_owl_defend
|
|
- vital_apats only consulted if level >= 9
|
|
- followup values reduced in two helpers
|
|
- eye tuning
|
|
- owl tuning
|
|
- two new helpers finish_ko_helper() and squeeze_ko_helper()
|
|
- portability patch for dfa in patterns.h
|
|
- portability patch for cygwin in mkpat.c
|
|
- test revisions
|
|
|
|
2.7.211 released January 16, 2001
|
|
|
|
- new file owl_vital_apats.db
|
|
- vital_apats are consulted by do_owl_attack regardless of genus
|
|
- new static variable match_found in owl.c
|
|
- estimate_territorial_value() limits overvaluation of half point kos
|
|
- changed order of min and max constraints in value_move_reasons()
|
|
- analyze_semeai() revised
|
|
- generic_walk made static in utils.c
|
|
- tuning
|
|
- owl tuning
|
|
- eye tuning
|
|
- READING and STRATEGY revised
|
|
- new and revised regression test cases
|
|
- new game records
|
|
- rotated tests corrected
|
|
|
|
2.7.210 released January 14, 2001
|
|
|
|
- bugfix in reading.c: superstring liberty arrays needed more space
|
|
- bugfix in owl_reasons which could cause a crash
|
|
- bugfix in owl_threaten_attack(): return value was always 0
|
|
- owl threatened groups are WEAKLY_ALIVE
|
|
- value of connecting WEAK and WEAKLY_ALIVE groups increased
|
|
- owl_threats not evaluated if level <= 7
|
|
- tactical reading move order tuned
|
|
- tuning
|
|
- owl tuning
|
|
- tuning of hoshi.sgf and sansan.sgf
|
|
- new regression suites endgame.tst, viking.tst and strategy28.sgf
|
|
- new tests in owl.tst and strategy2.tst
|
|
- new regression game records
|
|
- revision of rotated test suites
|
|
|
|
2.7.209 released January 10, 2001
|
|
|
|
- new parameter superstring_depth (default 7)
|
|
- minor tuning of hoshi.sgf
|
|
- tuning
|
|
- owl tuning
|
|
- connection tuning
|
|
- renumbering of owl patterns
|
|
- AB property added to handicap games in regression/games
|
|
- one new owl test
|
|
- doc revision
|
|
|
|
2.7.208 released January 7, 2001
|
|
|
|
- new reading function special_rescue3
|
|
- break_chain2 and break_chain3 calls removed from defend2 and defend3
|
|
- call edge reading function from attack2 and attack3
|
|
- superstring_breakchain depth in defend2 changed to backfill2_depth
|
|
- defend2 and defend3 try playing a liberty of the superstring
|
|
- special_rescue3 called from defend3
|
|
- break_chain2_moves tests for self atari
|
|
- move ordering adds bonus for saved moves
|
|
- doc revision
|
|
- basic worm building extracted from make_worms.
|
|
- new function: build_worms
|
|
- estimate_territorial_value requires owl reasons with VITAL_EYE_MOVE
|
|
- better reading at the edge
|
|
- some fixes in debugboard
|
|
- use same reading depths in debugboard as in gnugo
|
|
- minor tuning
|
|
|
|
2.7.207 released January 4, 2001
|
|
|
|
- new function break_chain2_efficient_moves
|
|
- revision of special_rescue()
|
|
- revision of attack2(), attack3(), superstring_breakchain()
|
|
- look harder for neighbors of attack moves in examine_move_safety()
|
|
- compute_eyes_pessimistic tracks margins adjacent to margins
|
|
- owl_find_lunches considers ko captures
|
|
- owl_escape_value checks empty before returning -10
|
|
- decision to handle tactically moved to semeai_analyzer
|
|
- semeai analyzer adds move reasons instead of moving defense
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- revision of rotated tests
|
|
|
|
2.7.206 released January 3, 2001
|
|
|
|
- revision of print_influence and print_numeric_influence
|
|
- value_move_reasons considers moves with min_territory>0
|
|
- reversed level inequality fixed in review_move_reasons
|
|
- is_legal replaced by safe_move call in semeai_analyzer
|
|
- revision of proper_superstring_chainlinks() and superstring_recurse()
|
|
- new patterns in barriers.db
|
|
- general cleanup
|
|
- tuning of seki patterns
|
|
- comments about regression tests
|
|
- doc revision
|
|
- manpage revision
|
|
- new file gnugo.pod
|
|
|
|
2.7.205 released January 1, 2001
|
|
|
|
- semeai analyzer looks for owl solution first
|
|
- semeai analyzer not invoked for inessential dragons
|
|
- owl patterns classified
|
|
- bugfix in superstring_breakchain
|
|
- minor tuning
|
|
- new regessions arion.tst
|
|
- revision of rotated tests
|
|
- minor doc revision
|
|
|
|
2.7.204 released December 26, 2000
|
|
|
|
- superstring technology used in attack2, defend2
|
|
- new static functions restricted_attack2, in_list in reading.c
|
|
- libi, libj arrays sized 2 (formerly 3) in attack2
|
|
- minimum standard joseki value raised to 27
|
|
- hurry replaced by level
|
|
- print_influence takes dragons_known parameter
|
|
- obsolete code removed from optics.c
|
|
- minor tuning
|
|
- doc revision
|
|
- doc/indigo2.sgf removed from distribution
|
|
|
|
|
|
2.7.203 released December 21, 2000
|
|
|
|
- owl status is checked also for dragons with high escape potential
|
|
- new safety value WEAKLY_ALIVE for dragons which are owl alive by escape
|
|
- fill_liberty() code revised
|
|
- new function filllib_confirm_safety()
|
|
- new debug flag DEBUG_FILLLIB and new debug traces in filllib.c
|
|
- move valuation slightly revised
|
|
- influence code revisions
|
|
- maximum move values for standard joseki removed in shapes_callback()
|
|
- tuning
|
|
- owl tuning
|
|
- influence tuning
|
|
- new regression test suite filllib.tst
|
|
- new tests and game records
|
|
- doc revision
|
|
- new superstring functions in utils.c
|
|
- find_superstring_recurse() renamed superstring_recurse() and generalized
|
|
- new superstring_breakchain() and restricted_defend1()
|
|
- Separated the SGF library totally from the engine
|
|
- integrated sgf_utils.h into sgftree.h
|
|
- The Gameinfo struct expanded
|
|
- movenum moved to the internals (from gnugo.h to liberty.h)
|
|
- Some FIXMEs addressed
|
|
- General minor cleanup
|
|
|
|
2.7.202 released December 17, 2000
|
|
|
|
- anisotropic attenuation removed from the influence function
|
|
- attenuation and strength split into black and white in influence.c
|
|
- new semantics for E class patterns in influence_callback()
|
|
- new macro ASSERT_ON_BOARD defined in liberty.h
|
|
- assertions added in optics.c, move_reasons.c, owl.c, and reading.c
|
|
- minor revisions of valuation of defense and connect moves
|
|
- bugfix in linear_eye_space()
|
|
- bugfix in attack1()
|
|
- warnings eliminated in main.c
|
|
- workaround in influence.c for bug in main.c
|
|
- bugfix in patterns/patterns.h
|
|
- bugfix in mkpat for dfa
|
|
- tuning
|
|
- owl tuning
|
|
- default owl_node_limit increased to 600
|
|
- revisions of golife.tst, ld_owl.tst, and ld_owl_rot.tst
|
|
- doc revisions
|
|
|
|
2.7.201 released December 8, 2000
|
|
|
|
- interface/interface.c removed from the distribution
|
|
- legal(), suicide() and self_atari() renamed is_legal() etc.
|
|
- New API function: gnugo_is_suicide.
|
|
- interface/interface.c removed
|
|
- playing options quiet is now a global variable
|
|
- A number of FIXMEs addressed
|
|
- bugfix in linear_eye_space
|
|
- minor revision of komoku.sgf and hoshi.sgf
|
|
- minor tuning
|
|
- unnecessary NULLs removed in patterns.db
|
|
- doc revision
|
|
|
|
2.7.200 released November 30, 2000
|
|
|
|
- serious bugfix in semeai()
|
|
- bugfix in owl.c
|
|
- bugfix in pattern ED58
|
|
- bugfix in fill_liberty()
|
|
- revision of rotated tests
|
|
- new file regression/games/me.tst and 3 new strategy2 tests
|
|
- test results updated
|
|
|
|
2.7.199 released November 29, 2000
|
|
|
|
- color support test restored to 2.7.193 condition in configure.in
|
|
- missing doc/api.texi replaced
|
|
- analyze_semeai is not called if an owl_substantial worm is en prise
|
|
- minor tuning
|
|
|
|
2.7.198 released November 28, 2000
|
|
|
|
- bugfixes in owl.c
|
|
- new patterns in eyes.db
|
|
- tuning
|
|
- owl tuning
|
|
- minor revisions in analyze_semeai
|
|
- revised and new regression tests
|
|
- bugfix in dfa.c: gpout was not cleanly reset before synchronization
|
|
- if DFA_SORT is set in new_matchpat then sort patterns before check_pattern
|
|
- new stat functions update_pattern_stats(), display_pattern_stats(),
|
|
reset_pattern_stat()
|
|
- dfa_add_pattern is now able to add all transformations into the dfa
|
|
- new functions for dfa_add_pattern: permut() and show_pattern_instance()
|
|
- fixed some bugs in matcher.c, and matchtest.sh
|
|
- removed some unused files.
|
|
- option -tm forces the anchor to be in the center and adds all transformations
|
|
- added little_owl.tst
|
|
- test results updated
|
|
|
|
2.7.197 released November 27, 2000
|
|
|
|
- old code removed from moyo.c
|
|
- sgffile_decidestring() renamed decidestring() etc.
|
|
- owl data structs in owl_attack, etc. made static
|
|
- assertion changed in join_dragons
|
|
- config.h included in interface.c and main.c
|
|
- revisions to owl_analyze_semeai
|
|
- show_dragons() lists worm lunches
|
|
- assertion corrected in join_dragons()
|
|
- new function find_more_owl_attack_and_defense_moves() in move_reasons.c
|
|
- strategically_sound_defense() reimplemented
|
|
- tuning
|
|
- owl tuning
|
|
- new file regression/READING reviewing failed reading tests
|
|
- new tests in reading.tst and ld_owl.tst
|
|
- new game records
|
|
- test results updated
|
|
|
|
2.7.196 released November 23, 2000
|
|
|
|
- old definition of inessential worms restored
|
|
- minor revision of owl_analyze_semeai
|
|
- Small rearrangements in board.c
|
|
- init_board() renamed to clear_board()
|
|
- Some comments and rearrangements in gnugo.h
|
|
- major cleanup in hash.h and hash.c
|
|
- old definition of inessential worms restored
|
|
- #include <config.h> restored in play_ascii.c, play_gtp.c and hash.c
|
|
- new function owl_update_goal()
|
|
- revisions of owl_does_defend(), owl_does_attack(),
|
|
owl_connection_defends(), and owl_threaten_defense()
|
|
- bugfix in owl_threaten_attack()
|
|
- doc revision
|
|
|
|
2.7.195 released November 19, 2000
|
|
|
|
- owl_analyze_semeai() complete (though still very buggy)
|
|
- struct local_owl_data now has a color field
|
|
- owl_find_lunches no longer has color parameter
|
|
- two missing sgf files restored
|
|
- config.h included again in matchpat.c and analyze.c
|
|
|
|
2.7.194 released November 18, 2000
|
|
|
|
- continued localization of owl
|
|
- new struct local_owl_data for passing goal, boundary and lunches
|
|
- new functions owl_update_boundary_marks() and owl_make_domains()
|
|
- new function owl_topological_eye()
|
|
- name restored in autohelper macro owl_topological_eye
|
|
- get_coordinate globalized and moved to printutils.c
|
|
- new --decidesemeai option
|
|
- new function owl_analyze_semeai()
|
|
- Removed all unnecessary inclusion of config.h
|
|
- cleanup of worm.c
|
|
- Error handing in main.c: get_coordinate()
|
|
- shuffling of main.c
|
|
- inclusion of cache.h removed from board.c
|
|
- definition of inessential worms changed
|
|
- dragons classified CRITICAL when owl_attack() and owl_defend() disagree
|
|
- join_dragons() revised to choose origin consistently within dragons
|
|
- dragon_ring() and dragon_eye() cleaned up and revised
|
|
- clear_move_reasons() moved from genmove() to reset_engine()
|
|
- revised and extended debug output from influence.c
|
|
- strategically_sound_defense() revised
|
|
- valuation of inessential dragons corrected
|
|
- the owl code doesn't consider escape on the first move
|
|
- filter out vital defense moves which are self ataris in owl_determine_eye()
|
|
- bugfix in owl_shapes
|
|
- bugfixes in owl_substantial()
|
|
- attack2() revised
|
|
- new function special_attack4() in reading.c
|
|
- move ordering retuned
|
|
- safe_move() again changed to return 3 for illegal ko captures
|
|
- bugfix in shapes_callback()
|
|
- gtp_loadsgf() now also calls reset_engine()
|
|
- cut_connect_callback revised to deal with join_dragons() changes
|
|
- tuning of barriers.db, influence.db, conn.db, and eyes.db
|
|
- tuning
|
|
- owl tuning
|
|
- revision of joseki values
|
|
- new game records and test cases
|
|
- regression/STRATEGY revised
|
|
- mkpat and mkeyes tolerate "\r" for Windows compatibility
|
|
- Mingw32 and VC++ compatibility changes in configure.in and debugboard
|
|
|
|
2.7.193 released November 14, 2000
|
|
|
|
- owl_topological_eye autohelper macro replaced by topological_eye
|
|
- owl goals and boundaries systematically localized
|
|
- global owl_goal_color removed
|
|
- now O patterns accept critical friendlies if * rescues tactically
|
|
- matcher_status used in print_ascii_area (moyo.c)
|
|
- new function matcher_status()
|
|
- ascii mode save command fixed
|
|
- fixme's addressed in play_ascii.c
|
|
- tuning
|
|
- two ld*sgf files had gotten overwritten by rotated versions--fixed
|
|
- revision of test results
|
|
|
|
2.7.192 released November 12, 2000
|
|
|
|
- new on board assertions in move_reasons.c
|
|
- increased safety value for strongly alive dragons
|
|
- territory changes are counted for owl attacks and defenses
|
|
- influence changes are counted for semeai moves
|
|
- reverse followup values can never more than double the move value
|
|
- bugfix in liberty_of_dragon(), check that vertex is empty
|
|
- somewhere() function and corresponding autohelpers require that
|
|
found stone does not have status dead
|
|
- play_attack and play_defend autohelpers return ko results
|
|
- tuning of barriers.db, conn.db, endgame.db
|
|
- owl tuning
|
|
- tuning of patterns.db and patterns2.db
|
|
- double_does_break_helper and wide_break_helper replaced by constraints
|
|
- new helpers edge_double_sente_helper and defend_against_atari_helper
|
|
- new autohelper defend_against_atari
|
|
- new target all_batches in regression/Makefile.am
|
|
- revision of rotated testsuite
|
|
- updating of test results
|
|
|
|
2.7.191 released November 10, 2000
|
|
|
|
- bug fix in update_liberties: k<MAX_LIBERTIES
|
|
- bug fix in owl_mark_boundary: don't look for neighbors if dragon.id == -1
|
|
- bug fix in owl_does_attack: omit marking goal string
|
|
- bug fix in semeai.c: several bj's should have been bi's
|
|
- pattern ED70 taken down
|
|
- bugfix in sgfgen
|
|
- suppress owl traces during estimate_territorial_value()
|
|
|
|
2.7.190 released November 7, 2000
|
|
|
|
- effective_size reduced
|
|
- minor revision of connection value
|
|
- bug fixes in obvious_false_eye, do_owl_attack and do_owl_defend.
|
|
- bug fixes in find_superstring_recurse and find_superstring_recurse
|
|
- attack4 is more careful about ko
|
|
- removed the copy of dfa.c from new_matchpat.c
|
|
- new function dfa_add_pattern
|
|
- 2 new helpers for dfa_add_pattern: range_check_ok & show_pattern_instance
|
|
- removed dead code from mkpat.c
|
|
- testsuite revisions
|
|
- tuning
|
|
|
|
2.7.189 released November 4, 2000
|
|
|
|
- atari_atari tries to find irreducible combinations
|
|
- loop ununrolled in do_atari_atari()
|
|
- depths increased during atari_atari to avoid horizon effect
|
|
- improved traces during atari_atari
|
|
- joseki patterns do not have strategic attack bonus
|
|
- joseki patterns have cap on valuation
|
|
- dead code in influence.c removed
|
|
- backfill2_depth in modify_depth_values(), etc.
|
|
- autohelper functions revised to use matcher_status instead of status
|
|
- owl reasons consults matcher status, taking semeai() into account
|
|
- subtract one point from move value for a sacrifice play
|
|
- tuning
|
|
- owl tuning
|
|
- 'A' comment field in joseki db no longer case sensitive
|
|
- new tests and game records
|
|
|
|
2.7.188 released November 1, 2000
|
|
|
|
- doc revisions
|
|
- include gg_utils.h rather than gg_utils.c in analyze.c
|
|
- new parameter stop_before_owl for make_dragons()
|
|
- new target EXAMINE_DRAGONS_WITHOUT_OWL for examine_position()
|
|
- matcher_status printed by show_dragons()
|
|
- dragon_escape() revised
|
|
- safe_move() calls in filllib.c reviewed
|
|
- unnecessary line removed from incremental_remove_string()
|
|
- temporary reduction of depth values during influence computation
|
|
disabled
|
|
- obvious_false_eye() made public
|
|
- semeai threat move reasons listed by list_move_reasons()
|
|
- more move valuation details when using DEBUG_MOVE_REASONS debug bit
|
|
- bug fixes in move valuation to avoid points being counted multiple
|
|
times for the same stones when they are defended or attacked
|
|
according to multiple sources (tactical reading, owl, semeai)
|
|
- new function move_connects_strings() in move_reasons.c
|
|
- shape bonus added for moves which connect multiple strings
|
|
- revised set of function calls disabled by 'urgent' variable
|
|
- do_owl_attack and do_owl_defend also try tactical attack/defense
|
|
moves
|
|
- code simplification in do_owl_attack
|
|
- DEBUG_OWL_PERFORMANCE traces added in owl_threaten_attack() and
|
|
owl_threaten_defense()
|
|
- goal propagation in do_owl_defend() revised
|
|
- owl_determine_life() revised
|
|
- avoid unnecessary reading in owl_shapes_callback()
|
|
- owl_mark_boundary() revised
|
|
- FIXME added in owl_does_attack()
|
|
- new static function one_two_point() in owl.c
|
|
- sniff_lunch() revised
|
|
- bugfixes in owl_escape_value()
|
|
- atari_atari() revised
|
|
- new function find_superstring() in utils.c
|
|
- bugfix in examine_cavity() and examine_cavity_recurse()
|
|
- a number of stackp==0 assertions added in worm.c and semeai.c
|
|
- semantics of GTP command eval_eye changed
|
|
- three new patterns in conn.db
|
|
- new helper threaten_to_capture_helper()
|
|
- new autohelper functions threaten_to_capture, obvious_false_oeye,
|
|
and obvious_false_xeye
|
|
- komoku joseki revisions
|
|
- tuning and owl tuning
|
|
- comment added in regressions/STRATEGY
|
|
- owl, ld_owl, strategy, and reading test suites revised and/or extended
|
|
|
|
2.7.187 released October 31, 2000
|
|
|
|
- bugfix in owl_reasons: do not pass PASS as a move reason
|
|
- bugfix in small_semeai: missing popgo()
|
|
- bugfix in pattern ED62: move could be off board
|
|
- bugfix in make_dragons: typo for second_defendj
|
|
- sethand.c removed
|
|
- recordhand() renamed to sgffile_recordboard
|
|
- sethand() removed.
|
|
- placehand() moved to genmove.c
|
|
- ON_BOARD assertions added in move_reasons.c
|
|
- FIXME in analyze.c removed
|
|
- initialize_engine() renamed reset_engine()
|
|
- Reset verbose to correct value in examine_position()
|
|
- description of change_dragon_status fixed.
|
|
- doc revision
|
|
- regress.awk tries to spot core dumps
|
|
|
|
2.7.186 released October 28, 2000
|
|
|
|
- tuning
|
|
- we try to add only legal owl threat move reasons
|
|
- bugfix: pattern 't' attribute was incompletely implemented
|
|
- doc revision
|
|
- fixed a compilation warning in new_matchpat.c
|
|
- added an option -t to mkpat
|
|
|
|
2.7.185 released October 28, 2000
|
|
|
|
- white/black_points parameters split in evaluate_territory()
|
|
- tuning
|
|
- owl tuning
|
|
- implementation supplied for owl_does_attack
|
|
- trace level reduced when atari_atari runs
|
|
- allpats overrides normal shortcuts when an urgent move is on the board
|
|
- missing files restored in minipat2/
|
|
- material added to and joice respelled in minipat2/README
|
|
- revision of rotated tests
|
|
|
|
2.7.184 released October 25, 2000
|
|
|
|
- bugfix in owl_substantial: remember that owl_goal_color is global
|
|
- but patterns/dfa.c is in EXTRADIST
|
|
- configure works with or without --enable-dfa to create alternative versions
|
|
- rotated patterns included for tests *
|
|
- updated test results
|
|
|
|
2.7.183 released October 24, 2000
|
|
|
|
- new module atari_atari with global variable aa_depth
|
|
- new atari_atari move reasons
|
|
- new autohelper function has_aji()
|
|
- value of move in empty corner reduced from 40 to 27
|
|
- new owl function owl_substantial
|
|
- owl_mark_boundary() split off from owl_mark_goal()
|
|
- new function neighbor_of(), a frontend for incremental_neighbor_of()
|
|
- tuning
|
|
- minor owl tuning
|
|
- safe_move() returns 0 in case of an illegal ko capture (as before 2.7.180)
|
|
- use AC_SEARCH_LIBS to add -lm only when needed
|
|
- curses test is moved outside the enable_color to accomodate debugboard
|
|
- adds test for KEY_UP to the curses configuration
|
|
- adjust interface/debugboard/main.c if KEY_UP unavailable
|
|
- use AC_SEARCH_LIBS for detection of curses and termcap library
|
|
- use AC_CACHE_CHECK macro for __function__ and KEY_UP detection
|
|
- dfa.c and dfa.h are now in patterns/ not patterns/minipat2/
|
|
- new_mkpat adds a dfa_t pointer when DFA_ENABLE is set to 1.
|
|
- load_dfa(file_name, NULL) can return pointers to dfa_t struct
|
|
- dfa compiles with less errors when -Wall
|
|
- made more dfa functions static
|
|
- new tests and game records
|
|
|
|
2.7.182 released October 19, 2000
|
|
|
|
- new move reason OWL_PREVENT_THREAT
|
|
- attacking a dragon that can threaten life gets a small value
|
|
- bugfix in recognize_eye
|
|
- bugfix in "threat" move valuations: max should be min
|
|
- init_gnugo() moved from board.c to interface.c
|
|
- new tests and game files
|
|
|
|
2.7.181 released October 18, 2000
|
|
|
|
- bugfix in owl_attack: ko dealt with if original goal stone captured
|
|
- matcher_status replaces dragon.status in examine_move_safety DEFEND case
|
|
- extra newlines eliminated in traces in find_more_attack_and_defense_moves()
|
|
- new tests
|
|
|
|
2.7.180 released October 16, 2000
|
|
|
|
- semeai_analyzer no longer called with tactically dead dragons
|
|
- semeai_analyzer now called with owl critical dragons
|
|
- new global variabls owl_distrust_depth and backfill2_depth
|
|
- new static owl functions owl_add_move() and obvious_false_eye()
|
|
- revision of sniff_lunch
|
|
- vital_chain() moved to owl.c
|
|
- separate move reasons for both dragons in semeai
|
|
- new function add_semeai_threat()
|
|
- semeais no longer enumerated for move reasons
|
|
- owl tuning
|
|
- eye tuning and revision of eyes.db
|
|
- bugfix in owl_defendpat D51
|
|
- revisions of most reading functions
|
|
- break_chain_new() renamed break_chain_moves()
|
|
- edge_attack() and edge_defend() unified in edge_attack_defend()
|
|
- break_chain() removed
|
|
- new function compute_eyes_pessimistic
|
|
- looks for positions where eye code
|
|
- evaluate_diagonal_intersections() takes new parameters (i,j)
|
|
- MAX_LUNCHES increased to 10
|
|
- option --enable-dfa sets DFA_ENABLED equal to 1
|
|
- minor tuning
|
|
- calls to TRACE made DEBUG in life.c
|
|
- revision of STRATEGY
|
|
- revision of minipat2/ (has own ChangeLog)
|
|
- changes to config.vcin
|
|
- changes to configure.in and gg_utils.in to make clean mingw build
|
|
|
|
2.7.179 released October 12, 2000
|
|
|
|
- node limits revised in initialize_engine()
|
|
- traces corrected for owl threat reasons
|
|
- bonus for owl threat move (not ko threat) reduced to 3 points
|
|
- revision of patterns/minipat2/ (has own ChangeLog)
|
|
- minor tuning
|
|
- regression/REVIEW renamed STRATEGY and completed
|
|
- new owl tests
|
|
- test results updated
|
|
|
|
2.7.178 released October 10, 2000
|
|
|
|
- new global variables urgent and kothreat_needed
|
|
- if a ko threat seems needed, GNU Go tries to make one
|
|
- moves that threatens to kill or live are tried near end of game
|
|
- if an urgent joseki move is found, some code is not executed
|
|
- new dragon fields owl_threat_status, owl_second_attack, owl_second_defend
|
|
- new functions owl_threaten_defense() and owl_threaten_attack()
|
|
- new function look_for_kos()
|
|
- tuning
|
|
- new file regression/REVIEW
|
|
|
|
2.7.177 released October 7, 2000
|
|
|
|
- experimental directory patterns/minipat2
|
|
- bugfixes and indentation fixups in owl.c
|
|
- one new eye pattern
|
|
- owl tuning
|
|
- cleaning of some regression game records
|
|
- new and revised regression tests
|
|
- release date for 2.7.172 corrected in ChangeLog
|
|
- Makefile.bump removed from distribution
|
|
|
|
2.7.176 released October 6, 2000
|
|
|
|
- modify_eye_spaces() replaces modify_eye_spaces1() and 2()
|
|
- minor cleanup in optics.c
|
|
- new eye pattern and cleanup in eyes.db
|
|
- tuning
|
|
- owl tuning
|
|
|
|
2.7.175 released October 6, 2000
|
|
|
|
- if configure --enable-dfa then new_matchpat.c replaces matchpat.c
|
|
- tuning
|
|
- owl tuning
|
|
- only count trymove when we do create a new position
|
|
- liberty_of() made incremental
|
|
- singleton() replaced by countstone() calls
|
|
- matchpat.c and new_matchpat.c: CRITICAL added to class masks
|
|
- reformatting in new_patchpat.c and semeai.c
|
|
- two new eye patterns
|
|
- preliminary garbage taken out of .sgf files
|
|
- ad hoc code in worm.c replaced by call to liberty_of()
|
|
- gtp can set komi
|
|
- new tests, including rotated versions of some old ones
|
|
|
|
2.7.174 released October 3, 2000
|
|
|
|
- tuning
|
|
- owl tuning
|
|
- new patterns and regressions
|
|
- in somewhere() move_num replaced by move_num-1
|
|
- bugfix in o_somewhere autohelper
|
|
- revised handling of labels in joseki.c
|
|
- strategy.tst split in two
|
|
- proposed replacement engine/new_matchpat.c for matchpat.c
|
|
- in new_matchpat new function check_pattern() split from do_matchpat()
|
|
- in new_matchpat arrays and_mask,val_mask and class_mask moved
|
|
- new tests and game records
|
|
- doc revision
|
|
- fixme's updated and classified
|
|
- THANKS revised
|
|
|
|
2.7.173 released September 30, 2000
|
|
|
|
- bugfix in attack1()
|
|
- bugfix in semeai.c: dragon data updated correctly
|
|
- revision of whose_moyo_restricted()
|
|
- backfill depth increased to 12
|
|
- value_moves() visits moves in standard lexicographical order
|
|
- tuning
|
|
- owl tuning
|
|
- new game records and tests
|
|
|
|
2.7.172 released September 27, 2000
|
|
|
|
- new joseki classification t, some patterns downgraded
|
|
- new chainlinks2(), draw_back(), special_attack3() break_chain_new()
|
|
- calling convention for find_cap2() changed
|
|
- edge_defend() returns untested candidate moves
|
|
- break_chain() no longer returns which link was captured
|
|
- edge_attack() now takes ko results into account
|
|
- find_cap3() generalized
|
|
- chain breaking moves and liberties are ordered in defensive functions
|
|
- chain breaking moves, liberties and backfills ordered in attack2()
|
|
- defense functions made more uniform
|
|
- backfills tested in defend2()
|
|
- code reshuffled in attack3()
|
|
- order_moves() revised
|
|
- backfill_depth increased to 10
|
|
- reading_node_counter not incremented by break_chain() and relatives
|
|
- new GTP command tune_move_ordering can set order_moves() parameters
|
|
- new tests and game records
|
|
- doc revision
|
|
- typedef of row_of_eye_data moved to liberty.h
|
|
|
|
2.7.171 [NOT RELEASED]
|
|
|
|
2.7.170 released September 24, 2000
|
|
|
|
- minor doc revision
|
|
- bugfix in estimate_strategical_value()
|
|
- reading code revisions for improved performance
|
|
- do_find_defense() added to hash defaults
|
|
- a few double kakari variations added to hoshi.sgf
|
|
- tuning
|
|
- joseki values promoted somewhat
|
|
- new game record regression/games/reading10.sgf
|
|
- one new test case in reading.tst
|
|
- owl tests 122 and 123 include move number
|
|
- neurogo.tst extended
|
|
|
|
2.7.169 released September 22, 2000
|
|
|
|
- modification to whose_moyo_restricted made default (still overrideable)
|
|
- owl_attack tries defending lunch
|
|
- owl node limit cut from 1000 to 500
|
|
- new autohelper functions x_somewhere and o_somewhere
|
|
- new function somewhere()
|
|
- tuning
|
|
- owl tuning
|
|
- new test regression/neurogo.tst
|
|
- dragon_invincible modified for portability
|
|
- vgprintf calls replaced by fgprintf in printutils.c
|
|
- on board assertion in owl_lively
|
|
- colored dragon and owl display revamped
|
|
- option --statistics works again.
|
|
- cleanup of globals.c
|
|
- gnugo.h checked for unused declarations
|
|
- renumbering of hash bits
|
|
- doc revision
|
|
|
|
2.7.168 released September 20, 2000
|
|
|
|
- if file "hurry" found on disk, hurry is read from it each move
|
|
- new function get_hurry()
|
|
- bugfix in examine_move_safety()
|
|
- bugfix in compute_primary_domains()
|
|
- minor tuning
|
|
- new file regression/games/FSF-neurogo.sgf
|
|
|
|
2.7.167 released September 19, 2000
|
|
|
|
- reading code speedup
|
|
- modification to whose_moyo_restricted contingent on --inhibit option
|
|
- minor joseki variations (j classification) promoted to value 20
|
|
- reviewing move reasons contingent on -w
|
|
- trace format slightly more compact
|
|
- minor change in hoshi.sgf
|
|
- tuning
|
|
- revision of test strategy 51 and new strategy test 79
|
|
- UNUSED defined in utils/gg_utils.c
|
|
|
|
2.7.166 released September 18, 2000
|
|
|
|
- revised computation of size of moyo surrounding a dragon
|
|
- improved workaround in induce_secondary_move_reasons()
|
|
- examine_move_safety() made more accurate
|
|
- move valuation improvements
|
|
- owl_reasons() avoids adding owl attack reasons against nakade stones
|
|
- owl_reasons() defends before attacking when there's a semeai
|
|
- improved handling of ko attack codes in worm.c
|
|
- new anchoring option in mkpat.c
|
|
- bugfix in pattern matching of attack and defense patterns
|
|
- tuning
|
|
- new game record and regression tests
|
|
- doc revision
|
|
|
|
2.7.165 released September 14, 2000
|
|
|
|
- semeai() updates matcher_status for unfriendly dragons alive by semeai
|
|
- revised computation of size of moyo surrounding a dragon
|
|
- tuning
|
|
- owl tuning
|
|
- new files in regression/games (strategy18, 19, 20 and owl11)
|
|
- new and revised test cases in owl.tst and strategy.tst
|
|
- configure test for availability of usleep()
|
|
- select() replaces missing ment for usleep() in debugboard/main.c
|
|
- embedded newlines in patterns/transpat.c replaced by explicit \n
|
|
- explicit (int) casts to arguments of toupper and tolower
|
|
|
|
2.7.164 released September 11, 2000
|
|
|
|
- edge patterns in patterns.db and patterns2.db rotated to standard position
|
|
- bugfix in move_reasons.c: too many dragon connections
|
|
- dead code removed from dragon.c
|
|
- PL[W] added to regression/games/owl10.sgf
|
|
- location_set.* removed from engine/
|
|
- target transpat is now EXTRA
|
|
- doc revision
|
|
|
|
2.7.163 released September 6, 2000
|
|
|
|
- mouse code is renamed owl
|
|
- new target transpat in patterns/
|
|
- new files patlib.c, patlib.h and transpat.c
|
|
- default cache size reduced to 16 M
|
|
- owl_node_limit reduced from 10000 to 1000
|
|
- new configure options --enable-large-model and --enable-small-model
|
|
- Changelog entry for 2.7.162 added
|
|
- ko result macros moved from reading.c to cache.c
|
|
- ko handling in mouse.c simplified and made more strict
|
|
- portability fix in hash.c, ULL suffix removed from small constants
|
|
- doc revision
|
|
- THANKS revised
|
|
|
|
2.7.162 released September 5, 2000
|
|
|
|
- minor change to hoshi.sgf
|
|
- mouse code is somewhat ko aware
|
|
- tuning
|
|
- mouse tuning
|
|
- new tests
|
|
- new autohelper functions legal_xmove and legal_omove
|
|
- AUTHORS and THANKS revised
|
|
|
|
2.7.161 released September 1, 2000
|
|
|
|
- mouse tuning
|
|
|
|
2.7.160 released August 31, 2000
|
|
|
|
- one new pattern in mouse_defendpats.db
|
|
- hoshi.sgf revised
|
|
- improved ko awareness in reading.c
|
|
- loop ununrolled in attack2()
|
|
- SGFTRACE calls added to break_chain(), break_chain2(), break_chain3(),
|
|
and relative_break_chain()
|
|
- reading functions consistently return an illegal ko capture rather than
|
|
pass if it is the best way to win
|
|
- bugfix in gtp_genmove_black() and gtp_genmove_white()
|
|
- new files reading08.sgf and reading09.sgf in regression/games/
|
|
- new reading tests
|
|
|
|
2.7.159 released August 30, 2000
|
|
|
|
- mouse tuning
|
|
- tuning
|
|
- new files jahy.sgf and reading07.sgf in regression/games/
|
|
- new tests
|
|
- Wolfgang Manner's hoshi.sgf
|
|
- missing include added to cache.c
|
|
- fuseki database turned on by default; option --fusekidb replaced by
|
|
option --nofusekidb
|
|
- new option --nojosekidb to turn off joseki database
|
|
- simplified code in defend1() and defend2()
|
|
- new macros UPDATE_SAVED_KO_RESULT() and
|
|
UPDATE_SAVED_KO_RESULT_UNREVERSED() in reading.c to simplify keeping
|
|
track of moves leading to ko
|
|
- better handling of ko results in various reading.c functions
|
|
|
|
2.7.158 released August 27, 2000
|
|
|
|
- tuning
|
|
- cleanup of patterns.db and patterns2.db
|
|
- mouse tuning
|
|
- new files regression/games/mouse08.sgf and mouse09.sgf
|
|
- new mouse tests
|
|
|
|
2.7.157 released August 25, 2000
|
|
|
|
- tuning
|
|
- minor mouse tuning
|
|
- revised awards for J and j patterns
|
|
- new files reading06.sgf, mouse07.sgf, strategy14.sgf, strategy15.sgf,
|
|
and strategy16.sgf in regression/games/
|
|
- new test cases
|
|
- removed vitality report from debugboard gui
|
|
- minor doc revision
|
|
- keep track of lively dragons in dragon.c
|
|
- bugfix in influence_callback()
|
|
- bugfix in analyze_semeai()
|
|
- dead code removed from helpers.c
|
|
- new helper: reinforce_helper
|
|
|
|
2.7.156 released August 23, 2000
|
|
|
|
- bugfix in compute_primary_domains
|
|
- revision of corner handling in compute_primary_domains
|
|
- minor deviation from documented algorithm fixed in compute_primary_domains
|
|
- attack1 returns 2 in case of a legal ko capture
|
|
- cut_connect_callback accepts X stones safe by ko
|
|
- basic_cut_helper accepts X stone safe by ko
|
|
- followup_value and reverse_followup_value are no longer additive
|
|
- unused symbols removed from move_reasons.c
|
|
- tuning
|
|
- new files strategy13.sgf and semeai1.sgf in regression/games/
|
|
- new tests
|
|
- semeai() rewritten for new move valuation scheme
|
|
- semeai() called from make_dragons() rather than from genmove()
|
|
- unused vitality field removed from struct dragon_data
|
|
- attempt to identify inessential dragons
|
|
- gtp commands debug_influence and debug_move_influence give more information
|
|
- function liberty_of_dragon() made static to semeai.c
|
|
- bugfix in mouse_determine_life()
|
|
- strategically_sound_defense() revised
|
|
- bugfix in estimate_strategical_value()
|
|
- more careful handling of ko return codes in do_find_defense() and defend3()
|
|
- defend2() no longer insists in finding best defense
|
|
- regression/regress.awk revised
|
|
|
|
2.7.155 released August 21, 2000
|
|
|
|
- bugfix in init_influence()
|
|
- semicolon added after action lines in pattern database files
|
|
- mkpat no longer adds semicolon after antisuji
|
|
- induce_secondary_move_reasons() revised
|
|
- dragon_safety() rewritten
|
|
- review_move_reasons() lists top ten moves in trace outputs
|
|
- new format %M in vgprintf
|
|
- SGFTRACE calls added after edge_defend() and edge_attack() calls
|
|
|
|
2.7.154 released August 21, 2000
|
|
|
|
- new reading functions edge_defend and edge_attack
|
|
- reading code smarter about moves on the first line
|
|
- liberty_of renamed liberty_of_dragon
|
|
- new function liberty_of
|
|
- break_chain2 does not try filling liberties of attacked string
|
|
- revision of order_moves
|
|
- Joseki database turned back on
|
|
- mkpat adds semicolon and newline after antisuji
|
|
- substantial tuning of patterns.db
|
|
- mouse tuning
|
|
- new game regression/games/strategy12.sgf (no tests yet)
|
|
|
|
2.7.153 released August 13, 2000
|
|
|
|
- autohelper vitality() removed
|
|
- autohelper weak() revised
|
|
- struct dragon_data field safety renamed old_safety
|
|
- new field invincible in struct worm_data
|
|
- dragon_invincible() in dragon.c implemented
|
|
- worm invincibility and dragon safety printed in show_dragons()
|
|
- dragon safety values revised
|
|
- init_influence() revised
|
|
- connection_value2() in move_reasons.c reimplemented and renamed
|
|
connection_value()
|
|
- dragon status used instead of dragon safety in showbord.c
|
|
|
|
2.7.152 released August 10, 2000
|
|
|
|
- bugfix in defend2()
|
|
- bugfix in tryko()
|
|
- new function sgf_trace() in cache.c and macro SGFTRACE() in cache.h
|
|
- all --decide* options now save sgf trees in memory
|
|
- SGFTRACE() calls in the reading and mouse code
|
|
- bugfix in mouse_determine_life()
|
|
- bugfix in interface/debugboard/main.c
|
|
- bugfix in main.c
|
|
- GTP command loadsgf now returns the color to play
|
|
- new GTP command same_dragon
|
|
- new test suite regression/connection.tst
|
|
- new test cases in reading.tst, mouse.tst, strategy.tst, and nicklas.tst
|
|
- five new game records in regression/games and regression/games/nicklas
|
|
|
|
2.7.151 released August 9, 2000
|
|
|
|
- regression framework revised, temporary .gtp and .res files no longer
|
|
needed
|
|
- cleanup of patterns/patterns.db
|
|
- experimental code for doing sgf dumps of reading variations in memory
|
|
- cleanup of files in sgf/ directory
|
|
- bugfixes in writing of sgf trees to file
|
|
- global variable mouse removed, together with option --nomouse
|
|
- patterns/patterns.c split into patterns/patterns.c and
|
|
patterns/josekidb.c so that the latter file contains the joseki database
|
|
files derived from the joseki sgf files
|
|
- bugfix in mouse_defendpats.db
|
|
- one new game record regression/games/reading04.sgf
|
|
- one new test case in reading.tst
|
|
|
|
2.7.150 released August 7, 2000
|
|
|
|
- old escape route measure removed, together with option --old_escape
|
|
- new field safety in struct dragon_data2
|
|
- bugfix in influence code, tactically saved stones block influence
|
|
- more restrictive definitions of moyo and area in the influence code
|
|
- new function find_stones_saved_by_move() in move_reasons.c
|
|
- bugfix in make_dragons(), status propagated to all intersections before
|
|
calling the mouse code
|
|
- tuning
|
|
- mouse tuning
|
|
- several new game records
|
|
- several new test cases in mouse.tst, strategy.tst, and nicklas.tst
|
|
|
|
2.7.149 released August 3, 2000
|
|
|
|
- revised handling of shape in move_reasons.c
|
|
- tuning of patterns.db, patterns2.db, barriers.db, conn.db,
|
|
mouse_defendpats.db, komoku.sgf, mokuhazushi.sgf, and sansan.sgf
|
|
- doc revision
|
|
- goal dragon expanded with the whole string containing a new stone in
|
|
do_mouse_defend()
|
|
- new autohelper function mouse_goal_dragon and supporting code in mouse.c
|
|
and mkpat.c
|
|
|
|
2.7.148 released August 2, 2000
|
|
|
|
- tuning
|
|
- influence values reduced
|
|
- friendly influence is valued greater than unfriendly in moyo
|
|
- bugfix in examine_move_safety() in move_reasons.c
|
|
- bugfix in estimate_territorial_value() in move_reasons.c
|
|
- unused sigterm_handler commented out from interface/main.c
|
|
- stricter matching of certain commands in the ascii interface
|
|
- new game records and tests
|
|
|
|
2.7.147 released July 31, 2000
|
|
|
|
- domains can no longer leak past a nikken tobi (2 space extension)
|
|
- value used for fuseki database moves increased
|
|
- new option --mouse_node_limit
|
|
- nominal values for mouse reading parameters introduced
|
|
- effects of --hurry option revised
|
|
- the mouse reading is now interrupted when too many nodes have been
|
|
visited
|
|
- bugfix in territorial valuation of vital eye points
|
|
- bugfix in estimate_strategical_value(), avoid counting the same stones
|
|
twice
|
|
|
|
2.7.146 released July 30, 2000
|
|
|
|
- new move reason: reverse_followup, intended for reverse sente
|
|
- reverse followup value added to a few patterns
|
|
- interface/main.h removed
|
|
- signal handlers made static
|
|
- new tests
|
|
- revised handling of -a option
|
|
- revision of pattern CB207
|
|
- parts of make_dragon() restructured
|
|
- dragon_status() revised
|
|
- escape influence computation revised
|
|
- new field in dragon[][] array, matcher_status
|
|
- matchpat() uses matcher_status
|
|
- revise_semeai() revised to modify matcher_status
|
|
- patterns/influence.db revised
|
|
- new mouse defense patterns
|
|
- tuning of patterns/patterns.db
|
|
|
|
2.7.145 released July 29, 2000
|
|
|
|
- TODO revised
|
|
- one pattern revised in patterns/conn.db
|
|
- one pattern revised in patterns/patterns.db
|
|
- 7 new game records in regression/games/
|
|
- 3 new mouse test cases
|
|
- 20 new strategy test cases
|
|
|
|
2.7.144 released July 28, 2000
|
|
|
|
- new counter for number of trymoves/trykos similar to
|
|
reading_node_counter et al
|
|
- new GTP commands clear_trymove_counter and get_trymove_counter
|
|
- Tests for life and strategy enhanced with trymove_counter
|
|
- goal functions attack(), find_defense(), attack_either(), defend_both(),
|
|
and break_through() collected together in reading.c
|
|
- reading_node_counter incremented also in the break chain functions
|
|
- doc/patterns.texi, doc/reading.texi, and doc/using.texi revised
|
|
- territorial valuation of vital moves revised
|
|
- bugfix in mkpat.c
|
|
|
|
2.7.143 released July 27, 2000
|
|
|
|
- regression/regress.awk and regression/eval.sh revised
|
|
- reordering of some code in attack2 and attack3
|
|
- fixmes addressed in reading.c
|
|
- new reading functions find_cap3 and break_chain3
|
|
- sgf variation count shifted in trymove
|
|
- new file regression/games/net3
|
|
- net3 regressions
|
|
- N1 accepted for reading test 29
|
|
- printing functions split off from utils.c to new file printutils.c
|
|
- sgffile_decide* functions split off from sgffile.c to new file sgfdecide.c
|
|
- new library libboard.a built in engine/
|
|
- patterns/joseki.c rewritten from scratch
|
|
- joseki database file patterns/*.sgf revised for new joseki compiler
|
|
- show_dragons() revised to also show moyo and neighbor info
|
|
- order_moves() revised
|
|
- new joseki pattern classes added in patterns/patterns.h
|
|
- shapes_callback() revised to deal with new joseki pattern classes
|
|
|
|
2.7.142 released July 26, 2000
|
|
|
|
- linker option -lm moved from various Makefile.am to configure.in
|
|
- new variable branch_depth, defaulting to 13
|
|
- default depth value increased from 14 to 16
|
|
- defend3(), defend4(), attack3(), and attack4() revised to use
|
|
branch_depth
|
|
- new option --branch_depth
|
|
- one new pattern in patterns2.db
|
|
- new file regression/games/strategy3.sgf
|
|
- one new test case in regression/strategy.tst
|
|
- new test suite regression/nicklas.tst
|
|
- 7 new files regression/games/nicklas/nicklas*.sgf
|
|
- new GTP command gg_genmove
|
|
- contribution of randomness in move_reasons.c revised
|
|
- one new pattern in conn.db
|
|
|
|
2.7.141 released July 26, 2000
|
|
|
|
- hash.h and hash.c split into hash.h/cache.h and hash.c/cache.c
|
|
- common reading cache code in reading.c and mouse.c moved to
|
|
cache.c/cache.h
|
|
- new functions reading_cache_init() and reading_cache_cleared() in
|
|
cache.c
|
|
- movehash variable no longer global
|
|
- configure option --disable-hashing removed together with HASHING
|
|
preprocessor constant
|
|
- double_atari_chain2() made static to reading.c
|
|
- ATTACK() and DEFEND() macros in patterns/patterns.h renamed to avoid
|
|
name collision
|
|
- pow() used to compute effect of shape value in move_reasons.c
|
|
- optics.c now includes eyes.h rather than eyes.c
|
|
- mkeyes.c revised to finish the graphs array with an all-zero entry
|
|
- changed order in top level Makefile.am; engine is now compiled before
|
|
patterns
|
|
- extract_fuseki program bugfixed and once more compiled by default
|
|
- regress.awk and eval.sh in regression/ revised to deal with negated
|
|
tests
|
|
- new file regression/games/strategy2.sgf
|
|
- three new tests in regression/strategy.tst
|
|
|
|
2.7.140 released July 25, 2000
|
|
|
|
- sniff_lunch() made static to mouse.c
|
|
- private half_eye array for the mouse code
|
|
- several functions take half_eye data as a parameter
|
|
- regression/strategy.tst included for real
|
|
|
|
2.7.139 released July 25, 2000
|
|
|
|
- cleanup of reading.c
|
|
- minor tuning
|
|
- effective_size only looks to distance <= 3
|
|
- debugboard displays dragon.safety as a string
|
|
- new files regression/strategy.tst and regression/games/strategy1.sgf
|
|
- doc revision
|
|
- mouse code enabled by default
|
|
- --mouse option replaced by --nomouse option
|
|
- alternative escape route algorithm enabled by default
|
|
- --alternative_escape option replaced by --old_escape option
|
|
- obsolete option --style removed
|
|
- new field moyo in struct dragon_data2
|
|
- new function influence_get_moyo_size() in influence.c
|
|
|
|
2.7.138 released July 21, 2000
|
|
|
|
- bugfix in regression/regress.sh, VPATH build was broken
|
|
- new function special_attack2() containing code broken out of attack2()
|
|
- new function special_rescue2() containing code broken out of defend2()
|
|
- more functions use order_moves()
|
|
- all reading functions use the same parameter names (attacked/defended
|
|
string is (si, sj)).
|
|
- new debug bit DEBUG_MOUSE_PERFORMANCE
|
|
- new debug outputs in mouse.c
|
|
- bugfix in mouse_does_defend() and mouse_connection_defends()
|
|
- new struct dragon_data2 in liberty.h
|
|
- new static function compute_supplementary_dragon_data() in dragon.c
|
|
|
|
2.7.137 released July 19, 2000
|
|
|
|
- new file regression/regress.awk
|
|
- regression/regress.sh revised
|
|
- wrapper functions gg_vwprintw() and gg_wprintw() introduced in
|
|
interface/debugboard/ files
|
|
- order_moves() in reading.c partially reimplemented
|
|
- new function gtp_decode_color() in interface/gtp.c
|
|
- new GTP commands boardsize, is_legal, all_legal, prisoners
|
|
- new function position_force_to_globals() in engine/interface.c
|
|
- gameinfo no longer used by the GTP functions
|
|
- movenum updated by board functions
|
|
|
|
2.7.136 released July 17, 2000
|
|
|
|
- enhancement in ladder reading in attack2()
|
|
- cleanup of half of reading.c
|
|
- do_find_defense() and do_attack() now static
|
|
- more logical numbering of the reading functions for hashing
|
|
- new function order_moves() in reading.c
|
|
- function order3() removed from reading.c
|
|
- dead code (old versions of special_rescue()) removed from reading.c
|
|
- defend2(), defend3(), and defend4() track break_chain save_codes
|
|
- mouse pattern D13 devalued
|
|
|
|
2.7.135 released July 17, 2000
|
|
|
|
- statistics functions reset_reading_node_counter() and
|
|
get_reading_node_counter() in reading.c
|
|
- corresponding new GTP commands reset_reading_node_counter and
|
|
get_reading_node_counter
|
|
- all regression test files report the total number of nodes visited by
|
|
the tactical reading
|
|
- corrected answers to two test cases in regression/mouse.tst
|
|
|
|
2.7.134 released July 17, 2000
|
|
|
|
- debug bits renumbered
|
|
- doc/using.texi updated
|
|
- tweaking of influence function for escape value computation
|
|
- debug and trace outputs in mouse.c revised
|
|
- debug outputs revised in reading.c
|
|
- new pattern classification e in influence.db for patterns which get an
|
|
increased value during computation of escape influence
|
|
- mouse tuning
|
|
- tuning of patterns2.db
|
|
- new files incident267.sgf, incident269.sgf, incident272.sgf,
|
|
incident278.sgf, and incident287.sgf in regression/games/
|
|
- two new tests in regression/mouse.tst
|
|
- three new tests in regression/reading.tst
|
|
- bugfix in regression/eval.sh and regression/regress.sh
|
|
|
|
2.7.133 released July 13, 2000
|
|
|
|
- mouse tuning
|
|
- improved trace messages in do_mouse_attack() and do_mouse_defend()
|
|
- mouse_find_lunches() simplified
|
|
- -lm added to LDADD in interface/Makefile.am
|
|
- tuning of patterns.db
|
|
- new file regression/games/incident263.sgf
|
|
- five new test in regression/mouse.tst
|
|
|
|
2.7.132 released July 12, 2000
|
|
|
|
- interface/loadsgffile.c removed
|
|
- library interface/libinterface.a removed
|
|
- sgf/sgfkey.c and sgf/sgfkey.h removed
|
|
- globals sgf_root and lastnode removed
|
|
- new datatype: SGFTree
|
|
- many sgfXXX functions now have their sgftreeXXX counterpart
|
|
- sgf/ttsgf.h renamed to sgf/sgftree.h
|
|
- sgf/ttsgf.c renamed to sgf/sgfnode.c
|
|
- sgf/sgfana.h moved to engine/analyze.h
|
|
- sgf/sgfana.c moved to engine/analyze.c
|
|
- new file: sgf/sgftree.c
|
|
- new file: engine/sgfutils.c
|
|
|
|
2.7.131 released July 12, 2000
|
|
|
|
- references to the escape2 field of struct dragon_data removed from
|
|
interface/debugboard/gui.c
|
|
- new variables mouse_branch_depth and mouse_reading_depth
|
|
- new options --mouse_branch and --mouse_reading
|
|
- mouse reads only one node when stackp>mouse_branch_depth
|
|
- reading terminates when stackp>mouse_reading_depth
|
|
- doc revision
|
|
- revised dragon_escape() to allow kosumi directly from dragon
|
|
- revised effect of I class influence patterns when computing escape
|
|
influence
|
|
- find_influence_patterns() add influence barriers "manually" when
|
|
computing escape influence
|
|
- dragon under consideration is now allowed to contribute influence during
|
|
computation of escape influence
|
|
- mouse_find_lunches() made static to mouse.c
|
|
- new autohelper function mouse_escape_value
|
|
- 7 new patterns in mouse_defendpats.db, aiming at escape
|
|
- new function mouse_connection_defends() in mouse.c
|
|
- code revised in do_mouse_attack(), do_mouse_defend(), and
|
|
mouse_mark_dragon()
|
|
- mouse_mark_dragon now can take either one or two dragons
|
|
- bugfix in do_mouse_attack(), two loop end conditions were off by one
|
|
- bugfix in do_mouse_attack() and do_mouse_defend(), the second most
|
|
important move was removed when pattern of value 99 found, but not third
|
|
most important one
|
|
- move_safety field of move_data struct initialized correctly in
|
|
move_reasons.c
|
|
- examine_move_safety() revised
|
|
- order of examine_move_safety() and induce_secondary_move_reasons() calls
|
|
reversed in review_move_reasons()
|
|
- same_dragon() in utils.c revised to be able to deal with the "no dragon"
|
|
case, i.e. (-1, -1) coordinates
|
|
- effective_move measure revised to never include intersections further
|
|
away than distance 4
|
|
|
|
2.7.130 released July 11, 2000
|
|
|
|
- escape2 field removed from dragon_data struct together with code to
|
|
compute it
|
|
- patterns/escape.db removed
|
|
- mouse status and if applicable attack and defense points printed by
|
|
show_dragons()
|
|
- bugfix in compute_escape_influence() in influence.c
|
|
- revised debug and trace messages in mouse.c
|
|
- new function examine_move_safety() in move_reasons.c
|
|
- strategically_sound_defense() revised
|
|
- more restrictions on which move reasons induce a block/expand move reason
|
|
|
|
2.7.129 released July 9, 2000
|
|
|
|
- redundant assignments removed from mouse.c
|
|
- reading cache cleared after examine_position() call in
|
|
sgffile_decidedragon() and sgffile_decideposition()
|
|
- new file regression/games/incident262.sgf
|
|
|
|
2.7.128 released July 8, 2000
|
|
|
|
- obsolete declarations of black_domain and white_domain removed from
|
|
liberty.h
|
|
- dragon_escape() and compute_alternative_escape() in dragon.c revised
|
|
- new function compute_escape_influence() in influence.c
|
|
- new static functions compute_mouse_escape_values() and
|
|
mouse_escape_route() in mouse.c
|
|
- if --alternative_escape option enabled, do_mouse_attack() and
|
|
do_mouse_defend() cut off reading if mouse_escape_route() report a
|
|
sufficiently high escape potential
|
|
- redundant file interface/debugboard/loadsgffile.c really removed
|
|
- removed remaining occurences of return code 2 in do_mouse_attack() and
|
|
do_mouse_defend()
|
|
- new lunch pattern in patterns/conn.db
|
|
|
|
2.7.127 released July 6, 2000
|
|
|
|
- redundant file interface/debugboard/loadsgffile.c removed
|
|
- parts of interface/play_solo.c moved into new file
|
|
interface/loadsgffile.c
|
|
- new library interface/libinterface.a for use by interface/debugboard
|
|
- new files sgf/sgfkey.c and sgf/sgfkey.h to handle new abstract type
|
|
sgfkey
|
|
- find_border() renamed to examine_cavity() in worm.c
|
|
- static functions propagate_worm_recursive() and libertiesrec() removed
|
|
from worm.c
|
|
- code in worm.c simplified and cleaned up
|
|
- dragon genus initialized in make_dragons() instead of in make_worms()
|
|
- new static functions dragon_escape() and compute_alternative_escape()
|
|
in dragon.c
|
|
- new option --alternative_escape to enable new escape route measure
|
|
- new file /regression/games/incident261.sgf
|
|
- one new test in regression/mouse.tst
|
|
|
|
2.7.126 released July 5, 2000
|
|
|
|
- change in definition to higher order liberties
|
|
|
|
2.7.125 released July 4, 2000
|
|
|
|
- statistics functions reset_mouse_node_counter() and
|
|
get_mouse_node_counter() in mouse.c
|
|
- corresponding new GTP commands reset_mouse_node_counter and
|
|
get_mouse_node_counter
|
|
- mouse.tst, ld_mouse.tst, and ld_mouse_life.tst reports the total number of
|
|
nodes visited by the mouse reading
|
|
- bugfix in mouse_determine_life(), attack and defense points for lunches
|
|
were switched
|
|
- constraints in some mouse patterns reordered for better performance
|
|
- new files incident256.sgf and incident 258.sgf in regression/games
|
|
- four new tests in regression/mouse.tst
|
|
|
|
2.7.124 released July 1, 2000
|
|
|
|
- tuning of mouse_defendpats.db
|
|
- new files incident253.sgf and incident254.sgf in regression/games/
|
|
- two new tests in regression/mouse.tst
|
|
- restructured and corrected coordinate conversion code in play_ascii.c
|
|
|
|
2.7.123 released June 27, 2000
|
|
|
|
- one new pattern in mouse_attackpats.db
|
|
- new file regression/games/life_and_death/ld18.sgf
|
|
- two new test cases in regression/ld*.tst
|
|
- bugfixes in life.c
|
|
- new GTP commands debug_move_influence, influence, move_influence,
|
|
worm_data, and dragon_data
|
|
- new function gtp_mprintf() in interface/gtp.c
|
|
- new functions in influence.c to export influence data
|
|
|
|
2.7.122 released June 22, 2000
|
|
|
|
- partial implementation of debugboard eyes tab
|
|
- black_domain[][] and white_domain[][] now static in optics.c
|
|
- make_domains() restructured
|
|
- xor() and unique_color() macros removed from showbord.c
|
|
- support for boards smaller than 19x19 in debugboard
|
|
- worm[][].attacki comparisons with -1 replaced everywhere with
|
|
comparisons of worm[][].attack_code with 0
|
|
- likewise for worm[][].defendi and worm[][].defend_code
|
|
- doc/dragon.texi revised
|
|
- new GTP command debug_influence
|
|
- code for debug printing restructured in influence.c
|
|
|
|
2.7.121 released June 20, 2000
|
|
|
|
- mouse option automatically enabled with decidedragon and decideposition
|
|
options
|
|
- matchpat() uses mouse status if available
|
|
- new file regression/games/incident252.sgf
|
|
- one new reading test
|
|
|
|
2.7.120 released June 17, 2000
|
|
|
|
- mouse lunches must have attack code 1
|
|
- bugfix in tryko sgf output
|
|
- many reading functions take komaster argument
|
|
- many reading functions made static
|
|
- new functions do_attack and do_find_defense (with komaster)
|
|
- cleanup in reading.c
|
|
- doc revision
|
|
- pattern Eye1 in conn.db taken out
|
|
|
|
2.7.119 released June 16, 2000
|
|
|
|
- new function gg_vsnprintf in gg_utils.c
|
|
- check in configure.in for vwprintf
|
|
- gg_vsnprintf used as workaround if vwprintf unavailable
|
|
- fcntl/read stuff removed from debugboard
|
|
- display_board_cursor() call added at the end of display_refresh()
|
|
- leaveok() call removed from display_init()
|
|
- debugboard cursor can be controlled by arrow keys
|
|
- COLOR_* renamed to GG_COLOR_* to avoid name collision when using
|
|
pdcurses
|
|
- new file regression/games/life_and_death/ld17.sgf and new ld* test cases
|
|
- non-options treated as filenames
|
|
- new format strings %H and %C to vgprintf() and relatives
|
|
- trymove() and tryko() write hash value together with node number to
|
|
output sgf file
|
|
- new files incident248.sgf and incident251.sgf in regression/games
|
|
- decideeye() moved from utils.c to sgffile.c and renamed
|
|
sgffile_decideeye()
|
|
- decideeye option now can write variations to an sgf file
|
|
- life code revisions
|
|
- utils.texi revised
|
|
- bugfix in attack_callback() in worm.c
|
|
|
|
2.7.118 released June 13, 2000
|
|
|
|
- minor sniff_lunch revision
|
|
- new mouse_attack pattern
|
|
- new file regression/games/reading03.tst.
|
|
- one new reading test
|
|
- check for curses also in -lpdcurses
|
|
- check for term.h and curses.h in AC_CHECK_HEADERS
|
|
instead of separate AC_CHECK_HEADER
|
|
- new #define TERMINFO in config.h for the color
|
|
code in gg_utils.c, debugboard builds with pdcurses
|
|
on DJGPP despite the absence of term.h
|
|
- workaround for the case when vwprintw is not available (as in pdcurses)
|
|
in display_message() in interface/debugboard/display.c
|
|
- print the error message about too small screen after the screen has been
|
|
cleared in display_message()
|
|
- use O_NONBLOCK as mask instead of FNDELAY since O_NONBLOCK
|
|
is more widely available
|
|
- remove HAVE_STRING_H use
|
|
- include <winsock.h> instead of <windows32/sockets.h> for mingw
|
|
included with new cygwin-1.1.1 release
|
|
- cleanup of regression/Makefile.am
|
|
- load_and_score_sgf_file() revised
|
|
- life code revisions
|
|
- default life eyesize increased from 8 to 10
|
|
- bugfix in mouse_attack() and mouse_defend()
|
|
- decideeye() in utils.c revised
|
|
- terse option removed
|
|
- function remove_string_and_mark() removed from board.c
|
|
- distance and strategic_distance code removed
|
|
|
|
2.7.117 released June 11, 2000
|
|
|
|
- bugfix in regression/Makefile.am
|
|
- countsize() renamed to countstones()
|
|
- new function findstones()
|
|
- life.c completely rewritten
|
|
- regression/games/marginal.sgf extended
|
|
- new life and optics tests
|
|
- depth values no longer reduced while running make_domains()
|
|
- revision of topological_eye()-calling code in dragon.c and mouse.c
|
|
- doc/utils.texi revised
|
|
|
|
2.7.116 released June 9, 2000
|
|
|
|
- goal now static to mouse.c
|
|
- mouse_attack() and mouse_defend() usage simplified
|
|
- mouse_effective_defense replaced by mouse_does_defend
|
|
- doc revision
|
|
- debugboard: strings renamed to worms
|
|
- debugboard now gives info about dragons
|
|
- debugboard now has a help screen
|
|
- color_to_string enhanced with eye colors also
|
|
- new function status_to_string in utils.c
|
|
- regression/Makefile.am revised so that make check also works with a
|
|
VPATH build
|
|
- STACK_SIZE revised and assertion added in incremental_board.c
|
|
- recognize_eyes2() now returns 0 if the eyespace is too large to evaluate
|
|
- assertion added in eyehash_index() in life.c
|
|
- size of hash table in life.c corrected
|
|
- new function location_set_get_size()
|
|
- bugfix in hadj() macro in optics.c
|
|
- gtp.c keeps track of the board size in a static variable
|
|
- one new reading test
|
|
|
|
2.7.115 released June 7, 2000
|
|
|
|
- regression/Makefile.am prepared for VPATH build
|
|
- compiling without curses works again, debugboard disabled in that case
|
|
- assert that color is BLACK or WHITE in do_trymove()
|
|
- pass move in minimize_eyes() scored and tested together with the other
|
|
legal moves
|
|
- bugfix in maximize_eyes()
|
|
- new GTP commands genmove_black and genmove_white
|
|
- eyes1.sgf, eyes2.sgf, and eyes3.sgf in regression/games/ extended
|
|
- new tests in optics.tst and life.tst
|
|
|
|
2.7.114 released June 6, 2000
|
|
|
|
- sniff_lunch revised and moved to mouse.c
|
|
- mouse code classifies boundary strings
|
|
- bugfix: mouse code was unsafe when stackp>0
|
|
- new functions do_mouse_attack() and do_mouse_defend
|
|
- more careful includes in interface/debugboard/display.c
|
|
- bugfix in incremental_sloppy_self_atari()
|
|
- regression shell scripts revised
|
|
- global variable color_has_played eliminated
|
|
- new function stones_on_board() in board.c
|
|
- movenum no longer used in fuseki.c
|
|
- examine_position() avoids recomputing data that are up to date
|
|
- caching of mouse reading results is no longer using code 2 to indicate a
|
|
successful result for pass
|
|
- new workaround for mangling of cached negative move coordinates
|
|
- statistics functions reset_life_node_counter() and
|
|
get_life_node_counter() in life.c
|
|
- corresponding new GTP commands reset_life_node_counter and
|
|
get_life_node_counter
|
|
- life.tst, ld_life.tst, and ld_mouse_life.tst reports the total number of
|
|
nodes visited by the life code
|
|
- make_worms no longer returns anything
|
|
- correct answer for mouse test 37 revised
|
|
- temporary workaround in recognize_eye2(), chimeras are reported as one
|
|
and a half eye
|
|
- maximize_eyes() and minimize_eyes() score and sort the moves to test
|
|
- performance optimizations in maximize_eyes() and minimize_eyes(),
|
|
shortcut loops where possible unless all attack or defense moves are
|
|
asked for
|
|
- bugfix in maximize_eyes(), check for marginality when counting eyes
|
|
|
|
2.7.113 released June 5, 2000
|
|
|
|
- mouse lunches are sniffed
|
|
- sniff_lunch revised
|
|
- bugfix in mouse_find_lunches
|
|
- new global mouse_goal_color
|
|
- bugfix in mouse_topological_eye autohelper
|
|
- decidedragon messages corrected when tenuki wins
|
|
- mouse tuning
|
|
- new function location_to_string() in utils.c
|
|
- new function position_examine_position() in engine/interface.c
|
|
- new program debugboard located in interface/debugboard/
|
|
- warning fixed in utils/gg_utils.c
|
|
- comments about mapping of colors for linux console moved from showbord.c
|
|
to utils/gg_utils.c
|
|
- unused define -DBUILDING_GNUGO_ENGINE removed from engine/Makefile.am
|
|
- config.h no longer included by moyo.c or showbord.c
|
|
- new functions suicide() and self_atari() in board.c
|
|
- a few approxlib() calls in reading.c replaced by suicide() and
|
|
self_atari()
|
|
- new files incident59.sgf, incident74.sgf, and reading02.sgf in
|
|
regression/games
|
|
- new mouse and reading test cases
|
|
|
|
2.7.112 released June 5, 2000
|
|
|
|
- optimizations of false_margin()
|
|
- safe_move() no longer called from make_domains() if mouse code enabled
|
|
- call to modify_eye_spaces1() from make_domains() disabled if mouse code
|
|
enabled
|
|
- bugfix in attack2()
|
|
- bugfix in break_chain2()
|
|
- duplicate comment block removed from reading.c
|
|
- new files incident169.sgf, incident246.sgf, incident91.sgf, and
|
|
reading01.sgf in regression/games
|
|
- regression/games/life_and_death/ld11.sgf slightly revised
|
|
- new mouse and reading test cases
|
|
|
|
2.7.111 released June 4, 2000
|
|
|
|
- comment added in attack4
|
|
- mouse_attack and mouse_defend call make_domains when stackp==0
|
|
- new files mouse04.sgf, incident185.sgf, incident186.sgf,
|
|
incident199.sgf, and incident225.sgf in regression/games/
|
|
- new mouse and reading tests
|
|
|
|
2.7.110 released June 3, 2000
|
|
|
|
- init_color() in utils/gg_utils.c renamed to gg_init_color() to avoid
|
|
name collision with curses library function
|
|
|
|
2.7.109 released June 3, 2000
|
|
|
|
- HASH64 removed from configure.in and acconfig.h
|
|
- config.vcin brought in sync with config.h.in
|
|
- macro UCHAR_ALIAS replaced by char
|
|
- curses initialization and drawing code moved from moyo.c and showbord.c
|
|
to utils/gg_utils.c
|
|
- argument source_root removed from sgf_write_header
|
|
- new files games/mouse02.sgf and games/mouse03.sgf
|
|
- new tests, revised results
|
|
- MAX_MOVES increased to 3 in mouse.c
|
|
- attack4 tries a little harder
|
|
- tuning of mouse patterns
|
|
- life and death test cases 52-64 completed
|
|
|
|
2.7.108 released June 1, 2000
|
|
|
|
- mouse functions use a return code of 2 if tenuki works
|
|
- Zobrist hashing extended to mouse_attack and mouse_defend
|
|
- new function new_position() in board.c
|
|
- warning fixed in life.c
|
|
|
|
2.7.107 released May 31, 2000
|
|
|
|
- random.c and random.h moved from engine/ to utils/
|
|
- gg_snprintf() and gg_gettimeofday() moved to new file utils/gg_utils.c
|
|
and corresponding header file utils/gg_utils.h
|
|
- new function gg_version() in utils/gg_utils.c
|
|
- safe move cache implemented for mouse_shapes_callback
|
|
- topological_eye autohelper function (taken down in 2.7.104) is back for mice
|
|
- topological eye takes both eyespaces as parameters
|
|
- 32 new life and death test cases, 1 new mouse test
|
|
|
|
2.7.106 released May 30, 2000
|
|
|
|
- tuning of mouse patterns
|
|
- fuseki9.db rebuilt from a larger set of games
|
|
- new game records and test cases
|
|
|
|
2.7.105 released May 29, 2000
|
|
|
|
- config.h only included by files which need it
|
|
- one new mouse pattern
|
|
- new test suite ld.tst with variations for --mouse and --life options;
|
|
added for real this time
|
|
- new dedicated fullboard pattern matcher for use with the fuseki
|
|
databases
|
|
- first move patterns in fuseki9.db and fuseki19.db no longer commented
|
|
out
|
|
- missing borders added in fuseki9.db and fuseki19.db
|
|
- number of preambles in mkpat.c reduced from three to one
|
|
- mkpat.c revised to also handle patterns for fullboard matcher
|
|
- bugfix in make_dragons(), lunches weren't propagated to the whole dragon
|
|
- one new pattern in eyes.db
|
|
- pattern Lunch2 in conn.db revised
|
|
- regression/games/marginal.sgf revised
|
|
- new optics and life regression test cases
|
|
|
|
2.7.104 released May 28, 2000
|
|
|
|
- topological_eye takes the eye_data as a parameter
|
|
- newgoal removed from mouse_attack
|
|
- mouse_attack wins if ALL strings of original dragon are taken
|
|
- topological_eye autohelper function temporarily taken down
|
|
- mouse apat A39 revised
|
|
- make_dragons does not add_lunch if lunch already eaten
|
|
- doc revision
|
|
- new function false_marginal_eye in life.c
|
|
- new eye pattern for 4 point linear eye with a false margin
|
|
- Tests for life and optics restructured
|
|
- New tests for false margins
|
|
- config.h only included by files which need it, plus still liberty.h
|
|
- new GTP command dragon_status
|
|
- new test suite ld.tst with variations for --mouse and --life options
|
|
- shell scripts in regression/ revised
|
|
- new game records ld1.sgf -- ld8.sgf in regression/games/life_and_death
|
|
|
|
2.7.103 released May 27, 2000
|
|
|
|
- new fields height and width added to the pattern struct
|
|
- bugfix in fixup_patterns_for_board_size() in matchpat.c; matching now
|
|
works correctly also when the board size changes between calls to
|
|
matchpat
|
|
- bugfixes in does_attack() and does_defend() in utils.c
|
|
- bugfix in false_margin() in optics.c
|
|
|
|
2.7.102 released May 26, 2000
|
|
|
|
- better documentation of life code in the source
|
|
- life.c handles false marginals
|
|
- new function: location_set_isempty() in location_set.c
|
|
- regression/games/marginal.sgf revised
|
|
- new optics and life tests
|
|
|
|
2.7.101 released May 25, 2000
|
|
|
|
- revised doc/gnugo-logo.jpg and doc/gnugo-logo.jpg
|
|
- new tests in reading.tst and mouse.tst
|
|
- bugfixes in test files
|
|
|
|
2.7.100 released May 24, 2000
|
|
|
|
- minimize_eyes and maximize_eyes simplified and bugfixed
|
|
- better documentation of the hash table in life.c
|
|
- some cleanup in life.c, optics.c
|
|
- new format character 'x' in vgprintf (utils.c)
|
|
- improved printing of pass moves when %m is used in vgprintf
|
|
- default life_eyesize increased to 8
|
|
- new eye tests
|
|
|
|
2.7.99 released May 23, 2000
|
|
|
|
- suffix rules for .gtp and .res in regression/Makefile
|
|
- new regression files regression/*.tst
|
|
- regression shell scripts revised
|
|
- regression/expected removed
|
|
- several new files in regression/games
|
|
- several new regression tests
|
|
- regression/ directory now under control of automake
|
|
|
|
2.7.98 released May 22, 2000
|
|
|
|
- false marginals are renamed false margins
|
|
- eyespace search revised in mouse_determine_life
|
|
- new file regression/expected
|
|
- new targets in regression/Makefile
|
|
- regression/games/false_marginal.sgf renamed regression/games/marginal.sgf
|
|
- mouse tuning
|
|
- several new files in regression/games
|
|
- several new tests in regression/mouse.gtp, regression/eyes.gtp, and
|
|
regression/reading.gtp
|
|
- new GTP commands trymove, popgo, dump_stack, increase_depths, and
|
|
decrease_depths
|
|
- new function gtp_decode_move() in interface/gtp.c
|
|
- ko eyes assigned to a dragon so halfeye analysis is performed
|
|
- old regression files in regression/obsolete/ removed
|
|
|
|
2.7.97 released May 21, 2000
|
|
|
|
- false marginals are detected during make_domains
|
|
- new function false_marginal
|
|
- new file regression/games/false_marginal.sgf
|
|
- regression tests in regression/eyes reimplemented to use GTP
|
|
- regression shell scripts revised
|
|
- new targets in regression/Makefile to test optics and life code
|
|
- new global variable position_number which is increased any time a real
|
|
move (not a trymove) is made or the board is permanently changed by some
|
|
other means
|
|
- safe_move cache modified to use position_number instead of movenum
|
|
- caches in moyo.c modified likewise
|
|
- new function setup_board() in board.c
|
|
- the functions in engine/interface.c no longer modifies the global board
|
|
on their own
|
|
- new function gtp_finish_response in interface/gtp.c
|
|
- new gtp command eval_eye
|
|
|
|
2.7.96 released May 20, 2000
|
|
|
|
- GTP documented
|
|
- new file doc/gtp.texi
|
|
- reading test suite extended
|
|
- regression shell scripts revised
|
|
- bugfix in gtp_loadsgf()
|
|
- output from gtp_attack(), gtp_defend(), gtp_mouse_attack(), and
|
|
gtp_mouse_defend() revised
|
|
|
|
2.7.95 released May 19, 2000
|
|
|
|
- new interface: GTP, Go Text Protocol
|
|
- new files in interface/: gtp.c, gtp.h, and play_gtp.c
|
|
- old contents of regression/ moved to regression/obsolete/
|
|
- new regression scripts and suits in regression/
|
|
- doc/regression.texi revised
|
|
|
|
2.7.94 released May 18, 2000
|
|
|
|
- bugfixes in mouse.c
|
|
|
|
2.7.93 released May 16, 2000
|
|
|
|
- writesgf() split into sgf_write_header() and writesgf()
|
|
|
|
2.7.92 released May 14, 2000
|
|
|
|
- bugfix in utils.c, config.h included before using information from
|
|
configure tests
|
|
|
|
2.7.91 released May 14, 2000
|
|
|
|
- all functions in sgffile.c are now prefixed with sgffile_ instead of
|
|
sgf_ to separate them from functions which handle SGF trees
|
|
- some minor cleanup in dragon.c
|
|
- globals last_move_i, last_move_j made local to interface/play_ascii.c
|
|
- functions save_state() and restore_state() removed together with
|
|
variables white_captured_backup and black_captured_backup.
|
|
- move reasons are now sorted
|
|
- inclusion of sys/time.h made contingent on HAVE_SYS_TIME_H in utils.c
|
|
- inclusion of time.h and/or sys/time.h removed from hash.c and
|
|
interface/play_solo.c
|
|
- one new pattern in eyes.db
|
|
|
|
2.7.90 released May 12, 2000
|
|
|
|
- bugfixes in play_gmp.c, play_solo.c, and play_test.c; gameinfo correctly
|
|
initialized
|
|
- cleanup of play_gmp.c
|
|
|
|
2.7.89 released May 10, 2000
|
|
|
|
- bugfixes in main.c; decidestring, decidedragon, and decideeye options
|
|
work correctly again
|
|
- new function color_to_string() in utils.c
|
|
|
|
2.7.88 released May 9, 2000
|
|
|
|
- minor tuning of mouse_attackpats.db
|
|
- extended documentation of influence function
|
|
- new function unconditional_life() in utils.c
|
|
- MAX_STRINGS macro moved from incremental_board.h to liberty.h
|
|
- unused variable removed from do_pass() in play_ascii.c
|
|
|
|
2.7.87 released May 8, 2000
|
|
|
|
- guess_mode_from_sgf_comment() removed
|
|
- coordinates (-1, -1) are now always used for pass moves (rather than
|
|
(board_size, board_size))
|
|
- obsolete and unused debug flags marked in gnugo.h
|
|
- inclusion of sys/types.h removed from gmp.c
|
|
- unused function str2short() removed from sgf_utils.c
|
|
- cleanup of play_solo.c, play_test.c, and sgf_utils.c
|
|
- bugfix: move number again passed from the interfaces to the engine
|
|
|
|
2.7.86 released May 7, 2000
|
|
|
|
- doc revision
|
|
- more comments in the code for multiple diagonals of a halfeye
|
|
- extended debug outputs in optics.c
|
|
- bugfix in hash.c
|
|
- new datataype Gameinfo
|
|
- Gameinfo used everywhere in interface/*.c
|
|
- Gameinfo used instead of Position in a few places otherwise
|
|
- new function: position_recordhand()
|
|
- board_size no longer public; moved from gnugo.h to liberty.h
|
|
- several small functions removed from interface/interface.c
|
|
- bugfix in regression/Makefile
|
|
- bugfix in mkpat.c
|
|
|
|
2.7.85 released May 5, 2000
|
|
|
|
- bugfix in recognize_eye()
|
|
|
|
2.7.84 released May 3, 2000
|
|
|
|
- multiple vital eye moves in conjunction with topological halfeyes
|
|
supported in both optics and life code
|
|
- compiler warnings fixed in interface/play_ascii.c and engine/interface.c
|
|
- parameter names added to function prototypes in interface/interface.h
|
|
|
|
2.7.83 released May 1, 2000
|
|
|
|
- new functions in engine/interface.c
|
|
- p[][], ko_i, ko_j, black_captured, white_captured moved from gnugo.h
|
|
to liberty.h, i.e. made local to the engine
|
|
- attack() and find_defense() also made local to the engine
|
|
- board handling functions removed from interface/interface.c
|
|
- all interface functions in interface/interface.c now use the Position
|
|
datatype
|
|
- sgfAddMoveFromTree() and sgfPlayTree() moved from sgfana.c to ttsgf.c
|
|
- minor tuning of mouse_defendpats.db
|
|
|
|
2.7.82 released April 30, 2000
|
|
|
|
- new file engine/interface.c included for real this time
|
|
- removed types SGFNodeP and SGFPropertyP
|
|
- play_solo() and play_gmp() now plays on a Position.
|
|
- get_moveXY moved from play_solo.c to sgf_utils.c
|
|
- minor cleanup in a number of places
|
|
- main.h moved from engine/ to interface/
|
|
|
|
2.7.81 released April 28, 2000
|
|
|
|
- new function sniff_lunch (unused and untested)
|
|
- new function remove_string_and_mark
|
|
- originate_eye now public
|
|
- add_half_eye now takes half_eye array as an argument
|
|
- doc revision
|
|
- jump_out_helper() rewritten to use influence function rather than
|
|
strategic distance
|
|
- matchpat_db() renamed to matchpat()
|
|
- redundant autohelper function singleton() removed
|
|
|
|
2.7.80 released April 27, 2000
|
|
|
|
- bugfix in hash_rand()
|
|
- obsolete -DBUILDING_GNUGO_ENGINE removed from patterns/Makefile.am
|
|
- countlib2(), findlib2(), and approxlib2() renamed to countlib(),
|
|
findlib(), and approxlib() respectively
|
|
- minor tuning of influence.db
|
|
|
|
2.7.79 released April 26, 2000
|
|
|
|
- count of hash collisions added to the --statistics option
|
|
- new files random.c and random.h with an implementation of a twisted
|
|
GFSR random number generator
|
|
- all calls to rand() or random() replaced by calls to the local random
|
|
number generator
|
|
- test for random() removed from configure.in
|
|
|
|
2.7.78 released April 25, 2000
|
|
|
|
- sgf/sgf.c moved to the engine and renamed to sgffile.c
|
|
- sgf/sgf.h removed; declarations moved to gnugo.h and liberty.h
|
|
- removed a few declarations for non-existent functions from sgf_utils.h
|
|
- analyzerflag moved to globals.c
|
|
- new file: engine/interface.c
|
|
- some functions for handling positions.
|
|
- ttsgf_read.c and ttsgf_write.c integrated into ttsgf.c
|
|
- bugfix in sgfPlayTree()
|
|
- old approxlib() removed
|
|
- bugfix in life.c
|
|
- local random generator removed from hash.c
|
|
- cleanup of hash.c
|
|
- simplified typedefs in hash.h
|
|
|
|
2.7.77 released April 24, 2000
|
|
|
|
- doc of the colored influence displays added
|
|
- new function hashdata_diff_dump() for use in assertions
|
|
- local random generator in hash.c
|
|
- revised types in hashing code
|
|
- bugfix in semeai_analyzer()
|
|
- order of engine/ and pattern/ builds changed back
|
|
- extract_fuseki no longer built by default
|
|
- bugfixes in extract_fuseki.c
|
|
- tuning of influence.db
|
|
- bugfixes in patterns.db
|
|
|
|
2.7.76 released April 23, 2000
|
|
|
|
- revised assertions in add_stone() and remove_stone()
|
|
- declaration and initialization of color_has_played moved from interface/
|
|
to engine/
|
|
- hashtable_clear no longer crashes if passed a NULL pointer
|
|
- warning if hashtable allocation fails
|
|
- new database matching step in the fuseki module
|
|
- new experimental option --fusekidb to enable fuseki database matching
|
|
- new program patterns/extract_fuseki.c which compiles a fuseki database
|
|
in patterns.db format from a collection of game records
|
|
- new pattern databases fuseki9.db and fuseki19.db containing 9x9 and
|
|
19x19 fuseki databases respectively
|
|
- bugfix in influence.c to stop a single stone from claiming the whole board
|
|
- libengine is now built before the patterns/ subdirectory is compiled
|
|
|
|
2.7.75 released April 20, 2000
|
|
|
|
- recognize_eye() and recognize_eye2() looks for all vital eye points and
|
|
passes them to the move generation
|
|
- eyes.db format extended for multiple vital moves and database revised
|
|
- liberty counting functions in incremental_board.c restructured to agree
|
|
with the new corresponding functions in board.c
|
|
- approxlib() and countlib() calls converted to countlib2(), findlib2(),
|
|
and approxlib2() calls
|
|
- countlib() macro removed
|
|
- accurate_approxlib() revised and accurate_countlib() macro removed
|
|
- autohelper lib() can now be used for stackp>0
|
|
- TODO revised
|
|
|
|
2.7.74 released April 19, 2000
|
|
|
|
- obsolete code removed from genmove()
|
|
- board_t renamed to Intersection
|
|
- new Position struct added in gnugo.h
|
|
- print_influence() now prints everything to stderr
|
|
|
|
2.7.73 released April 18, 2000
|
|
|
|
- revised TODO
|
|
- renamed static function compile_for_match_new() back to
|
|
compile_for_match()
|
|
- removed all external calls to compile_for_match()
|
|
- minor cleanup in globals.c
|
|
- don't regard marginal eye points as real eyes in the life code
|
|
- neighbors to marginal eye points may be captured in the life code
|
|
|
|
2.7.72 released April 13, 2000
|
|
|
|
- old board code removed from board.c
|
|
- new functions countlib2(), findlib2(), and approxlib2(), intended to
|
|
replace approxlib()
|
|
|
|
2.7.71 released April 12, 2000
|
|
|
|
- bugfixes in the hashing code, now CHECK_HASHING works again
|
|
- pattern database code restructured, explicit calls to compile_for_match()
|
|
no longer needed
|
|
- apats.db renamed to mouse_attackpats.db and dpats.db renamed to
|
|
mouse_defendpats.db
|
|
- minor cleanup of dragon.c, life.c, optics.c, and patterns/patterns.h
|
|
- documentation of hashing added to doc/reading.texi
|
|
- cleanup of filllib.c
|
|
|
|
2.7.70 released April 10, 2000
|
|
|
|
- doc revision
|
|
- bug fix in fill_liberty
|
|
- compiler warning fix
|
|
- simplified implementation of double_threat()
|
|
- improved trace messages in confirm_safety()
|
|
- depth values increased during reading in confirm_safety()
|
|
|
|
2.7.69 released April 9, 2000
|
|
|
|
- bugfix in regression/eyes/test.sh
|
|
- revision of confirm_safety
|
|
- revision of review_move_reasons
|
|
- new function double_atari
|
|
- new function accurate_approxlib
|
|
- accurate_countlib takes *libi, *libj as parameters
|
|
- fill_liberty tries to avoid setting up double ataris
|
|
- doc revision
|
|
- load_and_analyze_sgf_file assumes color_has_played
|
|
- bugfix in mouse_determine_life
|
|
|
|
2.7.68 released April 7, 2000
|
|
|
|
- New switch --terse for test output
|
|
- Various minor cleanups
|
|
- life.c much commented
|
|
- regression tests for life code using --decideeye in regression/eyes
|
|
|
|
2.7.67 released April 5, 2000
|
|
|
|
- check for size of int and long in configure
|
|
- configure option --enable-hash64
|
|
- separate options --life and --life_eyesize <n>
|
|
- reformatting of help string to fit 80 columns
|
|
- bugfix in play_ascii.c
|
|
- minor tuning of patterns.db
|
|
|
|
2.7.66 released April 4, 2000
|
|
|
|
- point of attack and point of defense considered separately by
|
|
compute_eyes(), recognize_eye(), topological_eye(), and half_eye_data
|
|
- make_dragons() now take color to play as parameter
|
|
- (defensei, defensej) renamed (defendi, defendj) in a number of places
|
|
- minor tuning of patterns2.db
|
|
|
|
2.7.65 released April 3, 2000
|
|
|
|
- removed trailing ',' symbols in enums in main.c and gmp.c
|
|
- extraneous declaration of deltai[] and deltaj[] removed from influence.c
|
|
- bugfixes in the CHECK_HASHING code
|
|
- bugfix in play_ascii.c, repeated save and load now works
|
|
- compile_for_match() added in two places
|
|
- keep track of attack and defense points of mouse_lunches
|
|
- revision of mouse_find_lunches() and mouse_lively()
|
|
- minor doc revision
|
|
- aesthetic reformatting in eyes.db
|
|
- declaration of incremental board functions moved from liberty.h to
|
|
incremental_board.h
|
|
- new function incremental_mark_string() in incremental_board.c
|
|
- replaced mouse_mark_strings() with a generic mark_string() in board.c
|
|
|
|
2.7.64 released April 2, 2000
|
|
|
|
- updated DJGPP info
|
|
- removed leading white space in windows.texi for more nicely formatted
|
|
info files
|
|
- removed obsolete workaround for a texi2html missing feature.
|
|
- added members defendi and defendj to struct eye_data
|
|
- recognize_eye2 now returns point of defense as well as point
|
|
of attack for an eye
|
|
- compute_eye now reports defense point as well as attack point
|
|
- recognize_eye2 now considers if the boundary of the eye is
|
|
captured during eye reading
|
|
- speed optimizations in recognize_eye2
|
|
- 5 new functions in location_set.c
|
|
- small bugfix in showbord.c
|
|
- small bugfix(?) in main.c
|
|
- small cleanup in dragon.c
|
|
- new function mouse_effective_defense()
|
|
- if the mouse code is enabled, strategically_sound_defense() invokes
|
|
mouse_effective_defense()
|
|
|
|
2.7.63 released April 2, 2000
|
|
|
|
- new function attack1() to determine whether a string in atari can be
|
|
captured
|
|
- snapback() made obsolete and removed
|
|
|
|
2.7.62 released April 1, 2000
|
|
|
|
- bugfix in evaluate_diagonal_intersection()
|
|
- evaluate_diagonal_intersection moved to optics.c and made static
|
|
- new function topological_eye
|
|
- new autohelper option topological_eye
|
|
- doc revision
|
|
- mouse tuning
|
|
- hashvalue test whether matchpat is properly prepared for the board
|
|
position being matched
|
|
- compile_for_match() added in a few places
|
|
- modify_eye_spaces1() and find_cuts() not used when make_domains() is
|
|
called from the mouse code
|
|
- minor bugfixes in life.c and board.c
|
|
- minor tuning of patterns2.db
|
|
|
|
2.7.61 released March 31, 2000
|
|
|
|
- bugfix in recognize_eyes2() so it can be used for stackp>0
|
|
- reloading of files in ascii mode is documented
|
|
- mouse code tries tenuki if no move of value >40 found
|
|
- dpat revision
|
|
- eye pattern 524 removed
|
|
- obsolete fixme removed from patterns2.db
|
|
- new function move_in_stack() in board.c
|
|
- improved debug output in life.c
|
|
- decideeye() disables trace outputs during make_worms() and make_dragons()
|
|
|
|
2.7.60 released March 30, 2000
|
|
|
|
- doc revision
|
|
- new option --life to enable the life code
|
|
- new function initialize_engine() in genmove.c
|
|
- bugfixes in sgf_decidedragon(), sgf_decideposition(), and decideeye()
|
|
- modify_eye_spaces1() only called from make_domains() if stackp==0
|
|
- loop unrolling in accumulate_influence enabled
|
|
|
|
2.7.59 released March 29, 2000
|
|
|
|
- new file life.c with eye reading code
|
|
- new file location_set.c with a utility class that contains a set of
|
|
locations on the go board
|
|
- bew file location_set.h with headers for location_set.c
|
|
- bugfix in board.c which makes the allocation of hash nodes correct
|
|
- separation of the examination step of genmove() into it's own
|
|
function, examine_position(), and calls to this function in a number of
|
|
places
|
|
- some comments added in mouse.c plus some cleanup
|
|
- new option --decideeye which tells the status of an eye
|
|
- new function get_coordinate() in main.c
|
|
- black_eye and white_eye passed as arguments to make_domains
|
|
- private black_eye and white_eye arrays for mouse.c
|
|
- eye pattern added to eyes.db
|
|
- bugfix in unrolled accumulate_influence()
|
|
- bugfix in move_reasons.c
|
|
|
|
2.7.58 released March 28, 2000
|
|
|
|
- loop unrolling in accumulate_influence(), initially disabled by default
|
|
|
|
2.7.57 released March 27, 2000
|
|
|
|
- doc revision
|
|
- compile_for_match() called again after running mouse code from genmove()
|
|
- mouse_genmove() removed from utils.c (was unused)
|
|
- doc/MOUSE and doc/INFLUENCE removed from distribution, all material is
|
|
included in the Texinfo documentation
|
|
- matchpat aborts if color==EMPTY
|
|
- mouse_attack returns true if trymove captures
|
|
- unnecessary test eschewed in mouse_find_lunches
|
|
- corrected: debug flag set wrong in main.c with --mouse
|
|
|
|
2.7.56 released March 25, 2000
|
|
|
|
- optics.c: redefinition of lively for mousing
|
|
- new functions mouse_find_lunches and mouse_lively
|
|
- new DEBUG_MOUSE debug option
|
|
- does_attack and does_defend no longer require stackp==0
|
|
- new apats and dpats
|
|
- doc revision
|
|
- sethand.c: bugfix in placehand(), use add_stone() instead of
|
|
manipulating p[][] directly
|
|
|
|
2.7.55 released March 25, 2000
|
|
|
|
- initialize dragon.mouse_attack and dragon.mouse_defend
|
|
- revaluation of joseki database
|
|
- hashing code revised for 64 bit architectures
|
|
- Makefile added to regression subdirectory and regress.sh revised
|
|
- minor tuning of patterns.db
|
|
- AUTHORS and doc/introduction.texi revised
|
|
|
|
2.7.54 released March 23, 2000
|
|
|
|
- revised eye patterns, prefer to play on marginal vital points
|
|
- doc revision
|
|
- introduction moved from incremental.c to texinfo
|
|
- special value 99 implemented for apats and dpats
|
|
- new apats and dpats
|
|
- AUTHORS and doc/introduction.texi revised
|
|
- accurate_countlib revised
|
|
- slow_findlib() added in incremental_board.c so that
|
|
incremental_findlib() and incremental_countlib() can handle all cases
|
|
|
|
2.7.53 released March 21, 2000
|
|
|
|
- bugfixes and other revisions of the incremental board code
|
|
- incremental board code enabled by default
|
|
- new function accurate_countlib() in utils.c
|
|
- a few countlib() calls replaced by accurate_countlib()
|
|
- minor bugfix in connection_value2
|
|
|
|
2.7.52 released March 19, 2000
|
|
|
|
- bugfix: decidestring and decidedragons were getting depth 0
|
|
- new apats and dpats
|
|
- minor cleanup of join_dragon invocations
|
|
- mouse code reports findings (temporary measure)
|
|
- doc revision
|
|
|
|
2.7.51 released March 18, 2000
|
|
|
|
- doc revision
|
|
- hurry >= 3 turns off some features
|
|
- adjust configure.in, config.vc and sgf/ttsgf.c
|
|
to test for vsnprintf instead of snprintf
|
|
- replace an embedded newline in a #defined
|
|
string in main.c with an explicit \n
|
|
- remove trailing ',' characters in enum
|
|
declarations
|
|
- include interface.h in sgf_utils.h so
|
|
that enum testmode is defined when declaring
|
|
guess_mode_from_sgf_comment.
|
|
- bugfix in break_through_helper()
|
|
|
|
2.7.50 released March 17, 2000
|
|
|
|
- new option --showtime makes genmove report its time
|
|
- new option --hurry decrements depth parameters
|
|
- hurry can be set during ascii play
|
|
- new global variables hurry and showtime
|
|
- gg_gettimeofday made global
|
|
- new global variables nominal_depth, nominal_backfill_depth,
|
|
nominal_fourlib_depth, and nominal_ko_depth
|
|
|
|
2.7.49 released March 15, 2000
|
|
|
|
- bugfix in make_dragons (--mouse could cause crash)
|
|
- bugfix in mouse_determine_life
|
|
- bugfix in vgprintf
|
|
- new function vital_chain
|
|
- new autohelper functions singleton and vital_chain
|
|
- mouse tuning
|
|
- new eye pattern
|
|
- mouse code documented
|
|
- string.h included in incremental_board.c to stop warning
|
|
- sgf functions cleaned up by passing around a file handle instead of
|
|
sharing a global one
|
|
- minor optimizations in break_chain() and relative_break_chain()
|
|
- minor changes and more comments in incremental_board.c
|
|
- stack implementation revised in incremental_board.h
|
|
|
|
2.7.48 released March 14, 2000
|
|
|
|
- new global variable mouse
|
|
- new functions mouse_reasons, add_mouse_attack_move, add_mouse_defend_move
|
|
- new option --mouse
|
|
- support for loading a position from file and continue playing with the
|
|
ascii interface
|
|
|
|
2.7.47 released March 13, 2000
|
|
|
|
- singleton() moved from utils.c to board.c
|
|
- new files incremental_board.c and incremental_board.h, supplying an
|
|
implementation of incremental board updates
|
|
- support for incremental board updates added to board.c but still disabled
|
|
- updateboard() made static to board.c
|
|
- return type of pushgo() and popgo() changed to void
|
|
- new function play_move() replaces updateboard() for use from interfaces
|
|
|
|
2.7.46 released March 10, 2000
|
|
|
|
- chainlinks() and chain() moved from reading.c to board.c
|
|
- find_origin() moved from utils.c to board.c
|
|
- count() made static to board.c
|
|
|
|
2.7.45 released March 9, 2000
|
|
|
|
- globals global_size, global_lib, global_libi, and global_libj eliminated
|
|
- new function countsize() in board.c
|
|
- tenuki (?) implemented for autohelpers
|
|
- two autohelpers in patterns.db and one in dpats.db use tenuki
|
|
- type omitted from findex entries
|
|
- decideposition takes a color option
|
|
- if (MOUSE) then showboard prints two diagrams
|
|
- new apats and dpats
|
|
- error messages in mkpat slightly revised
|
|
- Martijn van der Kooij and NNGS are thanked
|
|
- minor spelling corrections in Texinfo documentation
|
|
- windows.texi revised
|
|
|
|
2.7.44 released March 8, 2000
|
|
|
|
- globals size, lib, libi, libj renamed global_size, global_lib,
|
|
global_libi, global_libj
|
|
- new parameters to count(), approxlib(), and countlib() for passing
|
|
liberty locations
|
|
- bug fixed in mouse_determine_life which could cause crash
|
|
- new option --decideposition
|
|
- showboard can display mouse_status
|
|
- mouse_status computed in dragon.c
|
|
- a few new apats and dpats
|
|
- findex entries omit parameters
|
|
- windows installation instructions added to Texinfo documentation
|
|
|
|
2.7.43 released March 7, 2000
|
|
|
|
- connection_value2() revised
|
|
- type of potential_move array changed to int
|
|
- updated VC project files
|
|
|
|
2.7.42 released March 6, 2000
|
|
|
|
- mouse goal array changed from int to char
|
|
- C patterns implemented for mouse patterns
|
|
- bugfix in mouse_defense: misplaced popgo() popped
|
|
- new function goaldump for debugging
|
|
- new function mouse_mark (like count but does not mark liberties)
|
|
- new mouse patterns
|
|
- cleanup of interface.c
|
|
- pushgo() made static
|
|
- pattern profiling output now computes the total number of hits and
|
|
reading nodes
|
|
- O symmetry introduced in barriers.db
|
|
|
|
2.7.41 released March 5, 2000
|
|
|
|
- documentation revision
|
|
- new file doc/influence.texi
|
|
- move generation functions are documented in Texinfo
|
|
- influence.c functions are documented in Texinfo
|
|
- short section on Migration removed from move_generation.texi
|
|
- new pattern profiling option --profile_patterns
|
|
- minor tuning
|
|
- new symmetry class 'O'
|
|
- joseki pattern values reduced to a third
|
|
|
|
2.7.40 released March 4, 2000
|
|
|
|
- doc revision
|
|
- tryko returns 0 if suicide is attempted
|
|
- now --printsgf works with -L
|
|
- implementation of trymove() and tryko() unified
|
|
- minor optimization in attack_either()
|
|
- cleanup of utils.c
|
|
- experimental pattern CB327 in patterns.db
|
|
|
|
2.7.39 released March 1, 2000
|
|
|
|
- revision of patterns/apats.db and patterns.dpats.db
|
|
- default depth values restored to 2.6 level
|
|
- new functions set_temporary_depth_values() and restore_depth_values()
|
|
in utils.c
|
|
- depth values temporarily decreased while computing influence
|
|
- bugfix in tryko()
|
|
|
|
2.7.38 released February 29, 2000
|
|
|
|
- handle handicap stones in sgf files correctly
|
|
- bugfix in mouse.c
|
|
- trymove() replaced by tryko() in compute_move_influence
|
|
|
|
2.7.37 released February 28, 2000
|
|
|
|
- point to strings instead of copying them in mouse.c
|
|
- more than two moves per position can now be handled by the mouse code by
|
|
increasing the value of MAX_MOVES
|
|
- B class patterns in dpats.db inhibit addition of the stone to the dragon
|
|
- AUTHORS, THANKS, and doc/introduction.texi revised
|
|
- two eye patterns revised
|
|
- bugfix in sgfOverwritePropertyInt() in ttsgf.c
|
|
- sethand() split into two halves to make it more flexible
|
|
- play_ascii.c revised to deal correctly with handicap stones
|
|
|
|
2.7.36 released February 27, 2000
|
|
|
|
- dragon.c: serious bug fixed in topological eye evaluation
|
|
- substantial revision of mouse.c
|
|
- new patterns in apats.db and dpats.db
|
|
- sgf.c: revision of decidedragon
|
|
- doc expanded of certain autohelper functions
|
|
- Jamal Hannah's typing Gnu acknowledged as logo source
|
|
- documentation of influence function begun in doc/INFLUENCE
|
|
|
|
2.7.35 released February 26, 2000
|
|
|
|
- mouse_attack and mouse_defend avoid some duplicate eyespace evaluations
|
|
- missing eye pattern in eyes.db
|
|
- sgf_decidedragon correctly invoked from main.c
|
|
- close sgf file before reopening it
|
|
- do not close stdout in sgf_close_file
|
|
- print_eye revised to give nice output also when stackp>0
|
|
|
|
2.7.34 released February 25, 2000
|
|
|
|
- experimental mouse code
|
|
- gnugo.eps and gnugo.jpg renamed gnugo-logo.eps and gnugo-logo.jpg
|
|
|
|
2.7.33 released February 23, 2000
|
|
|
|
- VC project files and WINDOWS revised
|
|
|
|
2.7.32 released February 22, 2000
|
|
|
|
- reading cache cleared once it becomes full
|
|
- -M option now takes float argument
|
|
- -M 0 no longer causes a floating exception
|
|
|
|
2.7.31 released February 21, 2000
|
|
|
|
- VC project files adapted from 2.6
|
|
- win/ directory with makefile brought over from 2.6
|
|
- bugfix in main.c, optind replaced by gg_optind
|
|
- WINDOWS revised
|
|
- minor assorted cleanups
|
|
|
|
2.7.30 released February 19, 2000
|
|
|
|
- cleaned up code for debuginfluence option
|
|
- general cleanup of main.c
|
|
- minor tuning of patterns2.db
|
|
- AUTHORS, THANKS, and README brought up to date with 2.6
|
|
- TODO revised
|
|
- Added news for 2.6 in NEWS
|
|
- WINDOWS brought over from 2.6
|
|
- year 2000 added in copyright notices everywhere
|
|
- emacs interface added from 2.6
|
|
- gnugo.jpg added from 2.6
|
|
- gnugo.eps built by encapsulating gnugo.jpg into postscript level 2 using
|
|
jpeg2ps
|
|
- Texinfo documentation merged with late changes from 2.6
|
|
- various other late changes from 2.6 merged
|
|
|
|
2.7.29 released February 11, 2000
|
|
|
|
- tuning of barriers.db, endgame.db, and patterns.db
|
|
- sprintf replaced by vsprintf in gg_snprintf
|
|
- spelling corrections
|
|
- TODO revised
|
|
- unreachable code in hashdata_init() commented out
|
|
- UNUSED and ON_BOARD macros moved to liberty.h
|
|
- special_rescue() made more general
|
|
- calls to special_rescue() also in defend3()
|
|
|
|
2.7.28 released February 8, 2000
|
|
|
|
- bugfix in break_through()
|
|
- tuning of conn.db, influence.db, patterns.db, and patterns2.db
|
|
- various minor fixes to eliminate warnings on certain platforms
|
|
- opterr, optind, and optopt prefixed with gg_ to allow building with
|
|
profiling
|
|
|
|
2.7.27 released February 6, 2000
|
|
|
|
- copying.texi added for real this time
|
|
- minor revision of patterns.texi
|
|
- various code revisions in influence.c
|
|
- new functions for segmenting connected regions of territory, moyo, and
|
|
area added to influence.c
|
|
- -m option can take hexadecimal values
|
|
- tuning of barriers.db, influence.db, conn.db, patterns.db, and
|
|
patterns2.db
|
|
- conn.db reorganized
|
|
- retuning of joseki patterns
|
|
- corner moves in fuseki.c retuned
|
|
- minor revisions of move_reasons.c
|
|
- workaround to avoid black characters on black background in showbord.c
|
|
- we no longer add half eyes when eye.dragoni == -1
|
|
|
|
2.7.26 released January 31, 2000
|
|
|
|
- endgame patterns split off from patterns.db to endgame.db and matched
|
|
separately
|
|
- influence_delta_territory results cached
|
|
- tuning of barriers.db, conn.db, patterns.db, and patterns2.db
|
|
- new eye pattern from 2.5.63
|
|
- new option --debuginfluence to help tuning influence function
|
|
- listing of worms includes origins of corresponding dragons
|
|
- bugfix in move_reasons.c; don't accept cuts or connections of one dragon
|
|
and itself
|
|
|
|
2.7.25 released January 29, 2000
|
|
|
|
- AUTHORS, INSTALL, and THANKS revised
|
|
- GPL added to texinfo documentation
|
|
- small_semeai() documented in texinfo documentation
|
|
- autohelper call moved from matchpat() to callback
|
|
- possible to pass auxiliary data through matchpat() to callback
|
|
- DEPTH decreased from 14 to 12, BACKFILL_DEPTH from 8 to 6, and KO_DEPTH
|
|
from 8 to 6
|
|
- new functions for drawing boards for debug output
|
|
- symbolic names for colors
|
|
- influence function implemented in influence.c and influence.h
|
|
- new patterns to assist influence function in patterns/barriers.db and
|
|
patterns/influence.db
|
|
- terri renamed to territory in a number of places
|
|
- revised heuristics to decide when a tactical defense is strategically
|
|
sound, using influence values
|
|
- territorial value estimated with influence_delta_territory() instead of
|
|
delta_terri() from moyo module
|
|
- influence value estimated with influence module functions instead of
|
|
delta_moyo() from moyo module
|
|
- secondary_value weighted down substantially in computation of total move
|
|
value
|
|
- symbolic names for printmoyo values
|
|
- local optimizations in shapes_callback() to avoid unnecessary reading
|
|
- increased depth values when evaluating reading constraints disabled to
|
|
improve speed
|
|
- new patterns in conn.db
|
|
- local optimization in connections.c, don't evaluate autohelper if there
|
|
is nothing to amalgamate
|
|
- autohelper functions xarea, oarea, xmoyo, omoyo, xterri, and oterri
|
|
changed to use functions from influence module
|
|
- separate flag to mkpat to decide anchoring policy
|
|
- tuning of patterns.db and patterns2.db
|
|
|
|
2.7.24 released January 27, 2000
|
|
|
|
- cleanup of the interface/ files
|
|
- minor revision to doc/using.texi
|
|
- doc/reading.texi updated from 2.5.62
|
|
|
|
2.7.23 released January 26, 2000
|
|
|
|
- removed inclusion of unistd.h where unnecessary
|
|
- include io.h on platforms where unistd.h not available
|
|
- remove unused files utils/long-options.[ch] utils/closeout.[ch], and
|
|
utils/error.h
|
|
- fixed getopt warnings by renaming the getopt in utils/ to gg-getopt
|
|
- TODO revised
|
|
- -M option repaired
|
|
- bugfix in init_gnugo() in board.c; don't do everything twice
|
|
- default size of reading cache increased from 8 MB to 32 MB
|
|
- docs/ directory replaced by doc/ with texinfo documentation from 2.5.60
|
|
- gnugo.6 man page moved from top directory to doc/
|
|
- /docs/WINDOWS updated from 2.5.60 and moved to top directory
|
|
|
|
2.7.22 released January 20, 2000
|
|
|
|
- always use strtok in play_ascii.c and skip strsep
|
|
- cleanup in configure.in
|
|
- bugfix in play_solo.c
|
|
- configure test for gettimeofday in interface/
|
|
- HAVE___FUNCTION__ moved to the right position in acconfig.h
|
|
- in configure.in, add -lwsock32 to $LIBS for the mingw32 environment
|
|
for the select call in gmp.c
|
|
- include windows.h and windows32/sockets.h to get definitions for fd_set,
|
|
select and FD_* macros in gmp.c
|
|
- incorrect "abort;" changed to "abort();" in several places
|
|
- TODO item about converting documentation into texinfo marked as done
|
|
|
|
2.7.21 released January 17, 2000
|
|
|
|
- confirm_safety() called from review_move_reasons() in order to avoid
|
|
certain blunders
|
|
- the search for lunches moved to the end of make_worms()
|
|
|
|
2.7.20 released January 16, 2000
|
|
|
|
- removed unused file utils/getdate.c from distribution
|
|
- pattern Eye2 taken out from conn.db as workaround to a bug
|
|
- only victims with attack code 1 or 2 are considered lunch
|
|
- separation of interface into a public and a private part; liberty.h
|
|
split into gnugo.h for external interface and liberty.h for internal
|
|
interface
|
|
- dragon_status() renamed to compute_dragon_status()
|
|
- new function dragon_status() hiding dragon_data struct
|
|
- default cached function is only attack()
|
|
- new function is_worm_origin()
|
|
- new function confirm_safety()
|
|
- update the files getopt.c getopt1.c and getopt.h in utils/ to glibc-2.1.2
|
|
- add a file README in the utils directory explaining where the getopt
|
|
files come from.
|
|
- make utils the first subdirectory to compile
|
|
- link in utils/libutils.a when linking mkpat.c
|
|
|
|
2.7.19 released January 13, 2000
|
|
|
|
- unsigned char changed into signed char in sgfana.c, ttsgf.c, and
|
|
ttsgf_write.c to eliminate DEC-cc warnings.
|
|
|
|
2.7.18 released January 12, 2000
|
|
|
|
- src directory renamed to engine
|
|
|
|
2.7.17 released January 10, 2000
|
|
|
|
- cleanup in moyo.c, eliminating DEC-cc compiler warnings
|
|
- main.c moved from src/ to interface/
|
|
- dragon.weak renamed dragon.safety
|
|
|
|
2.7.16 released January 8, 2000
|
|
|
|
- cleanup in configure.in
|
|
- cleanup in make_proper_eye_space()
|
|
- autohelper functions for modifying eyespace
|
|
- more debug output for DEBUG_EYES
|
|
- tuning
|
|
- one new pattern in eyes.db
|
|
|
|
2.7.15 released January 6, 2000
|
|
|
|
- cleanup in configure.in
|
|
- configure tests for random and alarm
|
|
- embedded newline removed from a string in mkeyes.c
|
|
- extra pair of braces to avoid ambiguous else in optics.c
|
|
- compiler warning about snprintf eliminated from ttsgf.c
|
|
- documentation about dragon.status and dragon.weak revised in docs/DRAGON
|
|
- attack() is more cautious about snapbacks
|
|
- dragon_status() revised to consider a missing case
|
|
- docs/PATTERNS fully revised
|
|
- slight revision of the definition of higher order liberties, in an attempt
|
|
to fix escape_route problem
|
|
- reading depths increased with the number of explicitly placed stones
|
|
in autohelpers
|
|
- minor cleanup in utils.c
|
|
- patterns shuffled around in patterns.db and patterns2.db
|
|
- two extra matching pattern steps to modify eyespaces, patterns temporarily
|
|
hosted in conn.db
|
|
- not_lunch patterns moved to conn.db and matched together with eye space
|
|
modifying patterns
|
|
- autohelpers can now also be used in conn.db patterns with no '*'
|
|
- minor revision of escape.db
|
|
- dont_attack_helper removed since it was no longer in use
|
|
- remaining references to EXPERIMENTAL_MOVEGEN removed
|
|
- bugfix in add_half_eye()
|
|
- new function make_proper_eye_space() in optics.c for use from autohelpers
|
|
- tuning
|
|
|
|
2.7.14 released January 4, 2000
|
|
|
|
- four vgprintf calls in utils.c changed to vprintf calls
|
|
- variable sized arrays changed to fixed size in sgfana.c
|
|
- declaration of board_size in ttsgf.h made consistent with liberty.h
|
|
- removed embedded newlines in strings in mkeyes.c and main.c
|
|
- escape.db patterns revised
|
|
- bugfix in matchpat
|
|
- revised heuristics for non-matched eye shapes
|
|
- tuning
|
|
|
|
2.7.13 released January 3, 2000
|
|
|
|
- help debug prints default hash memory
|
|
- decidestring reports even if verbose=0
|
|
- print_eye() documented, prototype moved
|
|
- documentation in docs/PATTERNS partially updated to reflect changes
|
|
in pattern format
|
|
- bugfix in mkpat.c
|
|
- bugfix in getopt string
|
|
- bugfixes in trace messages in shapes.c
|
|
- new function dragon_status2() using new escape route measure in
|
|
the escape2 field (not yet in actual use)
|
|
- new patterns in escape.db
|
|
- tuning
|
|
|
|
2.7.12 released January 2, 2000
|
|
|
|
- configure option to revert to sprintf if neither snprintf or g_snprintf
|
|
found
|
|
- command line option -M (--memory) to specify hashtable size
|
|
- bugfixes in board.c
|
|
|
|
2.7.11 released January 2, 2000
|
|
|
|
- all remaining patterns in patterns.db adapted to new move generation scheme
|
|
- format of ":" lines in pattern databases changed
|
|
- joseki.c updated to produce new database format
|
|
- patterns in conn.db can have action lines
|
|
- three new autohelpers: dragonsize(), wormsize(), and potential_cutstone()
|
|
- patterns are no longer sorted in mkpat and min weight optimization
|
|
removed from matchpat
|
|
- updated documentation of autohelpers in docs/PATTERNS
|
|
- value field in worm_data and dragon_data obsoleted and removed
|
|
- obsolete section removed from docs/PATTERNS
|
|
- obsolete pattern classes Q and q removed, remaining ones slightly reordered
|
|
- B, C, a, d patterns work on up to five dragons (previously max two or one)
|
|
- improved tunability of patterns, possible to specify min and max
|
|
territorial and total values
|
|
- many helpers converted to constraints and removed
|
|
- join_dragons() no longer need to be called with origins of dragons
|
|
- wind assistance and moyo assistance functions obsoleted and removed
|
|
- connection_value() and compute_score() obsoleted and removed
|
|
- attack_either move reason rejected if one of the strings is defenseless
|
|
- old style move values no longer used in move generation
|
|
- shape value effect changed from additive to multiplicative
|
|
- random contribution to move value decreased
|
|
- tuning
|
|
|
|
2.7.10 released December 28, 1999
|
|
|
|
- changes from 2.5.47--2.5.52 merged into eyes.db
|
|
- tuning
|
|
- unused helpers and patterns removed
|
|
- many patterns in patterns.db adapted to new move generation scheme
|
|
- linear eyes of size 6 with one marginal eye fixed in eyes.db
|
|
|
|
2.7.9 released December 27, 1999
|
|
|
|
- bugfixes and cleanups in configure.in and various Makefile.am
|
|
- bugfix in move valuation
|
|
- bugfix in add_half_eye: remember to adjust marginal_neighbors
|
|
- bugfix in defend1: consider case of 4 liberties after extend
|
|
- breakchain2: try_harder to break chain
|
|
- bugfix in singleton()
|
|
|
|
2.7.8 released December 23, 1999
|
|
|
|
- break_chain2 considers a few extra possibilities
|
|
- stricter syntax checking in mkpat.c
|
|
- bugfixes in pattern databases
|
|
- caching of read results indexed also on stackp
|
|
- warning eliminated in dragon.c
|
|
- implementation of tracing of read results revised
|
|
- one new pattern in escape.db
|
|
- new escape route algorithm documented in docs/DRAGON
|
|
|
|
2.7.7 released December 21, 1999
|
|
|
|
- More verbose autoconf test for __FUNCTION__
|
|
- bugfix and cleanup in patterns/Makefile.am
|
|
- Split utils.c into board.c and utils.c
|
|
- Cleanup of both files.
|
|
- Fix a warning in fuseki.c
|
|
- minor tuning
|
|
- one new pattern in conn.db
|
|
- improved trace messages for read results, contingent on TRACE_READ_RESULTS
|
|
|
|
2.7.6 released December 19, 1999
|
|
|
|
- READ_RETURN0 macro redefined in reading.c
|
|
- makes consistent the inequalities in reading.c
|
|
- misspelling of "propagate" corrected
|
|
- experimental implementation of new escape route algorithm
|
|
- new file: patterns/escape.db
|
|
- DEBUG_HEY (obsolete) replaced by DEBUG_ESCAPE
|
|
- one new pattern in conn.db
|
|
- new autohelpers: same_dragon and same_worm
|
|
- minor tuning
|
|
- bugfix in rr_set_result_ri_rj() macro
|
|
- bugfix in compile_for_match()
|
|
- don't allocate hash table space in find_defense if more than four liberties
|
|
- bugfixes in defend3()
|
|
- two compiler warnings eliminated in semeai.c
|
|
- bugfixes in attack_callback() and defense_callback in worm.c
|
|
|
|
2.7.5 released December 18, 1999
|
|
|
|
- elimination of stackp<depth contingency in break_chain2 call from defend2
|
|
- reordering of the nodes in break_chain2 for minor speedup
|
|
- minor cleanup in reading.c (elimination of unnecessary braces)
|
|
- bugfix in attack2
|
|
- bugfix in moyo.c
|
|
- minor tuning
|
|
- cleanup and revised trace messages in shapes.c
|
|
- old style C and B patterns taken out from patterns.db
|
|
- debug messages converted to trace messages in move_reasons.c
|
|
|
|
2.7.4 released December 17, 1999
|
|
|
|
- caching of read results fully disabled when stackp>=depth
|
|
- dead code cleaned away from reading.c
|
|
|
|
2.7.3 released December 16, 1999
|
|
|
|
- minor tuning
|
|
- cleanup of patterns and helpers
|
|
- cleanup of matchpat()
|
|
- attack and defense patterns moved from patterns.db/patterns2.db to
|
|
new files attack.db and defense.db
|
|
- attack and defense patterns matched during make_worms()
|
|
- error message instead of segmentation fault when using -L without -l
|
|
- testmode output modified
|
|
- cleanup of ttsgf.c, ttsgf_read.c, and ttsgf_write.c
|
|
- improved configure detection of snprintf
|
|
- cleanup in Makefile.am and patterns/Makefile.am
|
|
- configure tests for gcc specific macro __FUNCTION__
|
|
- bugfix in sgf/Makefile.am
|
|
- in break_chain, removed stackp<depth contingency
|
|
- bug fix in break_chain2
|
|
- two calls to naive_ladder removed
|
|
- fixed two uses of DEPTH where depth was intended in reading.c
|
|
- FIXME's in reading.c addressed
|
|
|
|
2.7.2 released December 12, 1999
|
|
|
|
- bugfixes in patterns/Makefile
|
|
- cleanup of sgf.c, sgfgen.c, sgf_utils.c, and sgfana.c
|
|
- bug fixed in small_semeai which could cause crash
|
|
- remember to close file in play_gmp.c
|
|
- Jago mentioned in README
|
|
- All worm_data and dragon_data fields documented in DRAGON
|
|
- code specific to old generation scheme cleaned away
|
|
- file attdef.c removed
|
|
- fuseki.c reverted to version 2.3.47 and slightly modified
|
|
- cleanup of genmove.c
|
|
|
|
2.7.1 released December 10, 1999
|
|
|
|
- minor tuning
|
|
- bugfix in defend4
|
|
- cleanup of Makefile.am
|
|
- minor tweak of move valuation
|
|
|
|
2.5.46 released December 6, 1999
|
|
|
|
- bugfix in autoconf test for glib-config
|
|
- minor tuning
|
|
- defend_both() tries a little harder to find an effective move
|
|
- find_lunch() now also looks diagonally for food
|
|
|
|
2.5.45 released December 2, 1999
|
|
|
|
- minor tuning
|
|
- bugfix in fill_liberty()
|
|
- changed semantics for strategical defense in shapes()
|
|
- reading.c: corrected a few places where the wrong return value was cached
|
|
|
|
2.5.44 released December 1, 1999
|
|
|
|
- minor tuning
|
|
- small tweak in move valuation
|
|
- init_board() in joseki.c renamed to avoid collision
|
|
- added assertion in filllib.c
|
|
- removed assertions in vgprintf()
|
|
- simplified handling of read result cache in reading.c
|
|
- improved configuring for glib
|
|
- AC_EXEEXT macro added for clean install on DOS/Windows
|
|
|
|
2.5.43 released November 27, 1999
|
|
|
|
- one new eye pattern
|
|
- not_lunch_helper converted into an autohelper function
|
|
- minor revision of hoshi.sgf
|
|
- numerous old style patterns no longer considered by new move generation
|
|
- tuning of patterns2.db
|
|
- new reading function: naive_ladder()
|
|
- docs/DRAGON updated with information about worm.cutstone2
|
|
- further cleaning of liberty.h
|
|
|
|
2.5.42 released November 24, 1999
|
|
|
|
Makefile.am
|
|
- added a dist-hook rule (see automake documentation)
|
|
to remove the built source from patterns.c from the
|
|
distribution prior to tar-zipping it.
|
|
NEWS
|
|
- added line containing version number. with the --gnits
|
|
option make dist checks for the presence of the version number
|
|
patterns/Makefile.am
|
|
- activated the BUILT_SOURCES macro for conn.c patterns.c eyes.c
|
|
sgf/Makefile.am
|
|
- removed $(srcdir) from BUILT_SOURCES macro. Otherwise
|
|
automake won't run. This apparently doesn't break VPATH
|
|
building.
|
|
- added sgf_properties.h to noinst_HEADERS. Otherwise it isn't
|
|
added to the distribution.
|
|
src/Makefile.am
|
|
- added a noinst_HEADERS macro. Otherwise the headers don't go
|
|
into the distribution.
|
|
|
|
2.5.41 released November 23, 1999
|
|
|
|
- bugfix in defend2
|
|
- cleanup of liberty.h
|
|
- one new pattern in conn.db
|
|
- move generation considers the strategical value of saving lunches
|
|
- joseki patterns retuned
|
|
- minor revisions of patterns.db
|
|
- tuning of patterns2.db
|
|
- ko stones considered dead
|
|
- tweaks in move generation code
|
|
- bugfix in make_worms()
|
|
|
|
2.5.40 released November 21, 1999
|
|
|
|
- empty SUBDIR macros removed
|
|
- file- and directory names assigned to the EXTRA_DIST macros
|
|
|
|
2.5.39 released November 21, 1999
|
|
|
|
- default backfill_depth reduced to 8
|
|
- bugfix in defend1
|
|
- prioritization of moves in attack3 and defend3
|
|
- bugfix in attack2
|
|
- one new eye pattern
|
|
- several new move reasons
|
|
- several new pattern classes
|
|
- maximum number of patterns increased to 3000 in mkpat.c
|
|
- minor tuning of patterns.db
|
|
- block/expand and fuseki patterns adapted to new move generation scheme
|
|
- bugfixes and tweaking of move generation
|
|
|
|
2.5.38 released November 14, 1999
|
|
|
|
- bugfixes in the move valuation debug output
|
|
- various tweaks to the move valuation
|
|
- new move reasons: attack_either and defend_both (e.g. double atari)
|
|
- minor tuning of patterns.db and patterns2.db
|
|
- revised heuristics for dragon vitality
|
|
- eliminated a compiler warning in reading.c
|
|
- safe_move() now accepts moves that can only be captured with ko
|
|
- patch to automake in docs/automake-1.4.patch
|
|
|
|
2.5.37 released November 13, 1999
|
|
|
|
- move valuation core rewritten
|
|
- missing reasons added to list_move_reasons()
|
|
- two new eye patterns
|
|
- improved debug output in recognize_eye()
|
|
- minor tuning
|
|
- change_attack and change_defense modify worm.attack and worm.defend
|
|
- attack2 and defend2 try a few extra possibilities
|
|
- revised small_semeai
|
|
|
|
2.5.36 released November 11, 1999
|
|
|
|
- minor revision of docs/MOVE_GENERATION
|
|
- "pass" ignored in nngs_endgame()
|
|
- two new patterns in conn.db
|
|
- minor tuning of patterns.db and patterns2.db
|
|
- bugfix in make_worms()
|
|
- minor code restructuring in move_reasons.c
|
|
- some test code in moyo.c disabled
|
|
- bugfixes and changes to --testmode
|
|
|
|
2.5.35 released November 7, 1999
|
|
|
|
- bugfix in break_through()
|
|
- cleanup in moyo.c
|
|
- cleanup in worm.c
|
|
- revisions to docs/READING
|
|
- bugfix in find_defense
|
|
- revision of ko code in attack2 and break_chain2
|
|
- two new find_lunch patterns
|
|
|
|
2.5.34 released November 6, 1999
|
|
|
|
- new function try_ko() based on trymove() takes an illegal ko
|
|
- optimization: defend2 tries the move that gives more liberties first
|
|
- ko modifications to break_chain, break_chain2, defend2 and attack3
|
|
- new field ko_depth and -K (--kodepth) options
|
|
- ko_depth and fourlib_depth set to 0 during make domains
|
|
- numerous minor changes to ko reading
|
|
- bugfix in updateboard
|
|
- break_through() fully implemented
|
|
- tuning of patterns2.db
|
|
- one new connections pattern
|
|
|
|
2.5.33 released November 5, 1999
|
|
|
|
- new pattern class Q for patterns which should not be used with the new
|
|
move generation scheme
|
|
- bugfix in fuseki.c
|
|
- minor tuning of patterns.db and patterns2.db
|
|
- retuning of cutting and connecting moves
|
|
- shape value added also to old style moves
|
|
- list_move_reasons() contingent on verbose rather than debug flag
|
|
|
|
2.5.32 released November 3, 1999
|
|
|
|
- temporary modification of depth values restructured
|
|
- bugfix in fill_liberty()
|
|
- minor tuning
|
|
- one new connections pattern
|
|
- one new eye pattern
|
|
- new auxiliary reading function: break_through()
|
|
- corresponding autohelper functions
|
|
- sigterm_handler set in main() independently of any command line switches
|
|
- command "defend" in ascii mode now works on any node
|
|
|
|
2.5.31 released November 1, 1999
|
|
|
|
- two new eye patterns
|
|
- further revision of TODO
|
|
- new file: docs/MOVE_GENERATION
|
|
- the new move generation scheme has been made the default
|
|
|
|
2.5.30 released October 31, 1999
|
|
|
|
- defend1 and break_chain try harder to make a ko defense the last resort
|
|
- small_semeai_analyzer ignores strings with 2 liberties
|
|
- tweak in breakchain2 may yield a speedup
|
|
- bugfix in is_ko
|
|
- fourlib_depth++ in several places
|
|
- does_defend() slightly rewritten parallel to does_attack
|
|
- change_defense and change_attack adjust worm.codes
|
|
- minor changes to patterns.db (mostly comments)
|
|
- decidestring reports ko result
|
|
- show_dragons() tells about ko status
|
|
- README, TODO, INSTALL, and gnugo.6 revised
|
|
- bugfixes in the makefiles to allow compilation in a separate directory
|
|
- bugfix in conn.db to stop amalgamations over ko
|
|
- debug message removed from induce_secondary_move_reasons()
|
|
- retuned old style moves in the new move generation scheme
|
|
|
|
2.5.29 released October 29, 1999
|
|
|
|
- extended statistics collection
|
|
- revisions of hoshi.sgf, conn.db, patterns.db, and patterns2.db
|
|
- joseki.c changed to generate antisuji patterns for value 0 moves
|
|
- more new move generation code
|
|
- three helpers replaced by constraints
|
|
- bugfix in defend_both()
|
|
|
|
2.5.28 released October 26, 1999
|
|
|
|
- revised eye patterns
|
|
- revised connection patterns
|
|
- more new move generation code
|
|
- revision of patterns2.db continued
|
|
- bugfixes in change_defense() and change_attack()
|
|
|
|
2.5.27 released October 24, 1999
|
|
|
|
- reading code now considers ko relationship
|
|
- new worm fields attack_code and defend_code contain ko data
|
|
- attacker and defender consider ko relationship
|
|
- renaming and reordering of reading functions
|
|
- revised eye patterns
|
|
- bugfix in sgfana.c
|
|
- minor tuning
|
|
- more new move generation code
|
|
|
|
2.5.26 released October 23, 1999
|
|
|
|
- new connection pattern
|
|
- antisuji and shape value patterns in patterns2.db
|
|
- effective size measure implemented for worms and dragons
|
|
- more new move generation code
|
|
- support for %f in vgprintf()
|
|
|
|
2.5.25 released October 21, 1999
|
|
|
|
- basicnet4 attacks by defending a boundary string
|
|
- option -F enabled correctly
|
|
- more new move generation code
|
|
- partial revision of patterns2.db
|
|
- bugfix in recognize_eye()
|
|
- a few new patterns and major cleanup of eyes.db
|
|
- new functions attack_either(), defend_both(), and play_attack_defend2_n()
|
|
- new autohelper functions corresponding to attack_either and defend_both
|
|
- documentation updated accordingly
|
|
- one connection pattern taken out
|
|
- minor tuning
|
|
|
|
2.5.24 released October 18, 1999
|
|
|
|
- bugfix in caching of reading results
|
|
- improvement in small_semeai()
|
|
- minor tuning
|
|
- new file: patterns2.db; intended for new move generation scheme
|
|
- slight changes in shapes.c for new move generation
|
|
|
|
2.5.23 released October 17, 1999
|
|
|
|
- bugfixes in debug output
|
|
- bugfix in sgf territory output
|
|
- enhanced basicnet3()
|
|
- always use worm origin in caching of reading results
|
|
- revised eye patterns
|
|
- trivial bugfix in nngs_endgame()
|
|
|
|
2.5.22 released October 14, 1999
|
|
|
|
- new eye patterns
|
|
|
|
2.5.21 released October 12, 1999
|
|
|
|
- minor tuning
|
|
- cleanup of play_ascii.c
|
|
- NNGS customization option in play_ascii()
|
|
- one new eye pattern
|
|
- small change in 9x9 fuseki play
|
|
- more experimental move generation code
|
|
- instructions for playing from Cgoban moved from INSTALL to README
|
|
|
|
2.5.20 released October 10, 1999
|
|
|
|
- tuning
|
|
- 13 helpers replaced by constraints
|
|
- action lines introduced in the patterns database to complement the
|
|
constraints
|
|
- zero-valued joseki moves now generate antisuji moves (only effective in
|
|
the new move generation scheme)
|
|
- more experimental move generation code
|
|
- new file: src/move_reasons.c
|
|
- bugfix in load_sgf_file()
|
|
- many new eye patterns
|
|
- cleanup in liberty.h and optics.c
|
|
- new diagnostics in compute_eyes()
|
|
- in basicnet4 we only consider safe attacking moves
|
|
- speedup in basicnet4 for isolated stones and probably other strings
|
|
|
|
2.5.19 released October 9, 1999
|
|
|
|
- new cutstone concept in the experimental move generation
|
|
- minor tuning
|
|
- bugfixes in fill_liberty()
|
|
- bugfix in the handling of lunches
|
|
- bugfix in the improvement of attack and defense points
|
|
- stray patterns in eyes.db relocated
|
|
- autoconf test for glib hopefully working properly
|
|
- some remaining references to hey.db removed
|
|
|
|
2.5.18 released October 7, 1999
|
|
|
|
- reduced V_OBA in fuseki.c
|
|
- minor tuning
|
|
- more experimental move generation code
|
|
- new patterns in eyes.db
|
|
- bugfix in fill_liberty()
|
|
- test legality and safety of move much earlier in shapes_callback()
|
|
- autoconf test for glib so snprintf() can be replaced by g_snprintf
|
|
if unavailable
|
|
- minor change in endgame() output to work around bug in NNGS connecting
|
|
program
|
|
|
|
2.5.17 released October 5, 1999
|
|
|
|
- cleanup of hash.h
|
|
- new function in utils.c: find_origin()
|
|
- attack() and find_defense() represent strings with their origins,
|
|
improving the efficiency of the caching strategy.
|
|
- backfill depth decreased from 14 to 10
|
|
- optimization and a little cleanup in make_worms()
|
|
- bugfix in value_move_reasons()
|
|
- three initializing functions tidied away from global view
|
|
|
|
2.5.16 released October 4, 1999
|
|
|
|
- one new eye pattern
|
|
- more experimental move generation code
|
|
- cleanup of main.h, worm.c, and matchpat.c
|
|
- improved diagnostic error messages in moyo.c
|
|
- bugfix in moyo.c
|
|
- new numbering scheme for eyes.db
|
|
- bugfix in small_semeai()
|
|
- '*' can now be used as label in autohelper functions
|
|
- minor tuning
|
|
- backfill depth increased from 8 to 14.
|
|
|
|
2.5.15 released October 3, 1999
|
|
|
|
- new small_semeai() resolves semeais involving worms with 3 or 4 liberties
|
|
- bugfix in only_atari_helper
|
|
- no message in change_attack helper if both ti and worm[ai][aj].attacki==-1
|
|
- minor changes in patterns.db (mostly comments)
|
|
|
|
2.5.14 released October 1, 1999
|
|
|
|
- small changes and cleaning in ttsgf_read.c
|
|
- new experimental attacker/defender code
|
|
- minor revisions of hoshi.sgf and patterns.db
|
|
- removed unused function mark_defenses()
|
|
|
|
2.5.13 released September 29, 1999
|
|
|
|
- reading code tries to attack strings with 4 liberties
|
|
- new function savestone4
|
|
- help string: options --depth etc. are not debug options as they
|
|
affect playing strength so these are in main help string now
|
|
- bugfix in dragon_status: dragons rescued by ko are not DEAD
|
|
- continued cleaning of moyo.c
|
|
- one new pattern in eyes.db
|
|
|
|
2.5.12 released September 28, 1999
|
|
|
|
- tuning
|
|
- bugfix in two_bird_helper
|
|
- the last few helpers updated to use change_attack() and change_defense()
|
|
- copyright messages in joseki sgf files replaced by a patterns/README
|
|
|
|
2.5.11 released September 26, 1999
|
|
|
|
- tuning
|
|
- revised "You stepped on a bug" message
|
|
- new pattern in eyes.db
|
|
- revised joseki in hoshi.db
|
|
- komi initialized in main.c
|
|
|
|
2.5.10 released September 22, 1999
|
|
|
|
- important bugfix in moyo.c, fixing an indexing out of bounds error.
|
|
- tuning
|
|
|
|
2.5.9 released September 21, 1999
|
|
|
|
- cleanup of showbord.c
|
|
- hashitem renamed hashdata
|
|
- tuning
|
|
- more debug info in moyo.c
|
|
|
|
2.5.8 released September 20, 1999
|
|
|
|
- bugfix in fuseki.c to avoid passing if opponent plays on first line
|
|
- tuning
|
|
- error messages in moyo.c redirected to stderr
|
|
|
|
2.5.7 released September 16, 1999
|
|
|
|
- added src/utils to patterns/ Makefile includes
|
|
- tuning
|
|
- remember to add center stone in sgf file in sethand()
|
|
|
|
2.5.6 released September 15, 1999
|
|
|
|
- minor changes for Windows support
|
|
|
|
2.5.5 released September 13, 1999
|
|
|
|
- more informative renaming of variables in moyo.c
|
|
- added #include "getopt.h" to mkpat.c
|
|
- check setlinebuf(), if not available use setbuf() in play_ascii.c
|
|
- check snprintf(), if not available redefine to g_snprintf() (glib)
|
|
- new file docs/WINDOWS
|
|
|
|
2.5.4 released September 12, 1999
|
|
|
|
- bugfix with --analyze --score: analyze the correct move
|
|
- make install now copies gnugo.6 to /usr/local/man/man6
|
|
- we do not install mkpat, joseki, mkeyes or sgfgen
|
|
- gnugo.6 moved to top directory
|
|
- revisions to documentation
|
|
- docs/structure.doc is eliminated
|
|
- docs/BOUZY renamed MOYO
|
|
- patterns/fuseki2.sgf is back in patterns/
|
|
- suppression of many messages when running --quiet
|
|
- bugfix in fuseki.c which could cause illegal moves
|
|
- bugfix in fuseki.c: do not set i,j then return 0
|
|
|
|
2.5.3 released September 10, 1999
|
|
|
|
- bugfix in make_worms: typo in adjacent worm code
|
|
- bugfix in trymove() and legal(): check ko color
|
|
- tuning and cleanup of patterns.db
|
|
- bugfix in filllib preventing rare illegal moves
|
|
- bugfix in hashing code
|
|
- MAX_HANDICAP set to 9
|
|
|
|
2.5.2 released September 7, 1999
|
|
|
|
- revision of --help
|
|
- revision of documentation
|
|
- separation of globals. New file src/globals.c
|
|
- further revision of moyo.c: dilation revised
|
|
- bugfix in filllib preventing rare illegal moves
|
|
- tuning
|
|
|
|
2.5.1 released September 3, 1999
|
|
|
|
- delta_moyo_simple() checks for isolated groups like delta_moyo()
|
|
- new function average_moyo_simple()
|
|
- docs/BOUZY updated
|
|
- reimplementation of erosion
|
|
- patch to sgfana.c using multiple character names
|
|
|
|
2.3.94 released September 3, 1999
|
|
|
|
- Tuning
|
|
- Renumbering and cleanup of patterns.db
|
|
- Bug fix in linear_eye_space().
|
|
- load_sgf_file() gets the right color to move at end of file
|
|
- Various small corrections.
|
|
- backfill_depth is now 8
|
|
|
|
2.3.93 released September 2, 1999
|
|
|
|
- bugfix in recognize_eye
|
|
- bugfix in readlad1: use null pointers in readlad2 call
|
|
- fill_liberty() rewritten recursively with backfilling
|
|
- atari_save_helper replaced by constraint.
|
|
- tuning
|
|
- Previous change to moyo_assistance reimplemented correctly
|
|
- sethand() places fixed handicap stones as traditional
|
|
|
|
2.3.92 released September 1, 1999
|
|
|
|
- Two new eye patterns
|
|
- Bug fix in filllib.c, avoiding a possible assertion failure
|
|
- Use delta_moyo_simple() in moyo assistance function
|
|
- Tuning
|
|
- gnugo complains about wrong boardsizes
|
|
- avoids some warnings in sgfana.c
|
|
- now -o in ascii mode works with handicap stones
|
|
- bugfix in readlad2
|
|
- bugfix in basicnet3
|
|
- docs/OVERVIEW updated
|
|
|
|
2.3.91 released August 27, 1999
|
|
|
|
- warnings when compiling with ncurses are hopefully fixed
|
|
- The connections code no longer amalgamates attackable worms
|
|
- Bug fix in the topological halfeye code.
|
|
- uncovered a problem with halfeyes in the eyes code, documented in a FIXME
|
|
- Minor tuning.
|
|
- Bug fix in the linear eyes code.
|
|
- Random bonus taken into account in the TRACE prints in shapes.
|
|
- fill_liberty() completely rewritten
|
|
- destroyer taken down
|
|
|
|
2.3.90 released August 26, 1999
|
|
|
|
- hey.db removed from distribution
|
|
- we no longer give a point for a pass and compel white to pass last
|
|
- play_solo.c and genmove.c: calls to snprintf changed to sprintf
|
|
- revisions to documentation, and to NEWS, AUTHORS, README, INSTALL
|
|
- partial cleanup of main.c
|
|
- one new eye pattern
|
|
- worm.cut field moved to eye_data structure and initialized properly.
|
|
- Added endgame patterns to fix one non-finish bug
|
|
- Replaced movenum by move_number() in play_solo.c.
|
|
- Removed dead code from dragon.c and liberty.h
|
|
- Minor cleanup in worm.c
|
|
- One new cut pattern in conn.db
|
|
- sente_hane1_helper replaced by constraint
|
|
- Bugfix in computation of max weight in mkpat.c
|
|
- Tuning
|
|
|
|
2.3.89 released August 25, 1999
|
|
|
|
- bugfix in eye_finder
|
|
- one new eye pattern
|
|
- gaminfo.seed is set
|
|
- handicap stones added when not present.
|
|
(Doesn't work with "-l filename --mode ascii")
|
|
- revision to documentation
|
|
- message about unimplemented commands removed from ascii help
|
|
- One new connection pattern in conn.db.
|
|
- Revised connect_under_helper and
|
|
- replaced safe_hane_helper by a constraint
|
|
- Revised some joseki values in hoshi.sgf
|
|
- Tuning of patterns.db.
|
|
|
|
2.3.88 released August 23, 1999
|
|
|
|
- board size bug fix in moyo.c
|
|
- fuseki.c: 3-3 invasion deprecated in 9 stone fuseki
|
|
- New joseki in hoshi.sgf (tsukenobi variation and one 3-3 invasion)
|
|
- tuning
|
|
|
|
2.3.87 released August 22, 1999
|
|
|
|
- eye.esize-eye.msize>7 is alive in recognize_eye
|
|
- several eye patterns added
|
|
- dragon_status: escape_route bound for CRITICAL upped to 6
|
|
- -o and --analyzerfile add handicap stones by AB,AW
|
|
- in nonfile modes the handicap stones are added in sethand()
|
|
- sethand() checks for max handicap values and returns actually set stones
|
|
- reduced MAX_HANDICAP to 19
|
|
- main.c checks for MAX_HANDICAP
|
|
- sgf_close_file is called only once, when ending ascii mode with "quit"
|
|
- GM property added in --analyzerfile
|
|
- HA property added in --analyzerfile (in sethand())
|
|
- defined MIN_BOARD 3 in liberty.h
|
|
- help output shows MIN_BOARD, MAX_BOARD and MAX_HANDICAP
|
|
- cleanup of shapes.c, optics.c and moyo.c
|
|
|
|
2.3.86 released August 21, 1999
|
|
|
|
- resolved: hashed functions shall be readlad2 and basicnet3
|
|
- connection code patch to reconcile amalgamation and cutstone
|
|
classification (needs rewriting)
|
|
- tuning
|
|
- amalgamate over _dead_ ko positions
|
|
- bugfix in not_lunch_helper
|
|
- Changed semantics of play_attack_defend_n()
|
|
- unused color parameter removed from get_read_result
|
|
- no compiler warnings under GNU/Linux
|
|
- man page docs/gnugo.6 added
|
|
- convenient tcsh completion described in docs/MISC
|
|
|
|
2.3.85 released August 20, 1999
|
|
|
|
- configure option --disable-hashing now functional
|
|
- values are not hashed when stackp>depth
|
|
- cleanup of mkpat.c
|
|
- cleanup of eyes.h
|
|
- tuning
|
|
- now prints number of eyes in analyzerfile with --analyze eyeinfo
|
|
|
|
2.3.84 released August 18, 1999
|
|
|
|
- tuning
|
|
- cleanup of dragon.c
|
|
- halfeyes.c removed from the distribution
|
|
- configure option --disable-hashing sets HASHING to 0
|
|
- sgf.c: avoid trying to close output file twice
|
|
- eyes.db: code # has been changed to @ to avoid conflict with comments
|
|
- Revised compute_eyes() and split off linear eyes to an own function.
|
|
- Made return value from recognize_eye() more consistent.
|
|
- New autohelper functions to identify eye space points: eye(),
|
|
proper_eye(), and marginal_eye()
|
|
- Major revisions of endgame patterns, taking eye space into account
|
|
- obsolete functions play_attack_defend2() to play_attack_defend8() removed
|
|
|
|
2.3.83 released August 15, 1999
|
|
|
|
- joseki.c upgraded to generate constraints in .db
|
|
- 3 new autohelpers in mkpat.c: diff_moyo, area_space, area_stone
|
|
- interface/play_test.c: bugfix when --testmode and --analyze are combined
|
|
- CHECK_HASHING turned off
|
|
|
|
2.3.82 released August 14, 1999
|
|
|
|
- hash codes are now computed incrementally
|
|
- bugfix in hash.c
|
|
- reading.c: sacrifice only if stackp<backfill_depth to avoid slow reads
|
|
- sgf.c and main.c: --decidestring works with small boards
|
|
- cleanup of src/attdef.c
|
|
- update: doc/MISC
|
|
- play_ascii: new commands HELPDEBUG, GOTO, DEFEND, SHOWMOYO, SHOWTERRI,
|
|
SHOWAREA, SHOWDRAGONS, SAVE, and LISTDRAGONS
|
|
- play_ascii: command COMMENT now only writes to analyzerfile
|
|
- analyze: new commands AREACOLOR, DEFENSE, MOYOVALUE, TERRICOLOR, TERRITORY, TERRIVALUE
|
|
- abortgo saves abortgo.sgf independent of any -o or --analyzerfile
|
|
|
|
2.3.81 released August 11, 1999
|
|
|
|
- new function number_weak returns the number of weak groups
|
|
- little tuning in hoshi.sgf
|
|
- major update of all fuseki.c
|
|
- change in --playstyle options, new fuseki become the default
|
|
- added stone color NONE in liberty.h for use with set_computer_player()
|
|
- new function capture in ascii mode
|
|
- new function last in ascii mode
|
|
- bugfix: sethand does not set handicap stones to sgf tree any more
|
|
- bugfix: testmode game with --analyze skips variations
|
|
- new sgfana.c with analyze functions and gnugo specific parts of ttsgf.c
|
|
- new function sgfTriangle()
|
|
- new function sgfMarkWorm()
|
|
- bugfix: analyze function recommended switched off as default
|
|
- new analyze function capture
|
|
|
|
2.3.80 released August 10, 1999
|
|
|
|
- Implement hashing for attack() and find_defense()
|
|
- option -H = --hash allows user to specify which functions use hashing
|
|
- cleanup of sethand.c
|
|
- cleanup of semeai.c
|
|
- option --playstyle <style>, replace old --fuseki and --fearless
|
|
|
|
2.3.79 released August 10, 1999
|
|
|
|
- hash.h: bugfix which caused reading errors in rr_set_result_ri_rj
|
|
- reading.c: savestone2 looks for double ataris to chain when stackp>depth
|
|
- updated docs/MISC: analyze functions
|
|
- option --analyze works again (was temporarily off by accident)
|
|
- option --analyze works in --testmode game, no variations tested
|
|
- new analyze functions: moyocolor, recommended, eyeinfo, worminfo
|
|
- bug fix in analyze function eyes
|
|
- option --score last --analzyerfile saves the potential territory with TW,TB
|
|
- option --statistics writes also to analyzerfile
|
|
- abortgo() saves analyzerfile
|
|
- ttsgf.c: ttsgf_move_made() removed
|
|
- play_solo.c: timing added to benchmark mode
|
|
|
|
2.3.78 released August 7, 1999
|
|
|
|
- hashing in basicnet3 and savestone3
|
|
- bugfix in play_gmp.c: undo now seems to work!
|
|
- sgf/sgf_utils.c: bugfixes in get_moveX and get_moveY
|
|
- interface/play_solo.c: bugfix in get_moveXY
|
|
|
|
2.3.77 released August 5, 1999
|
|
|
|
- showbord.c: revised behavior of -E option
|
|
- minor change in moyo.c to have it reinitialized when a game is reloaded
|
|
- change in scoring system for compliancy with chinese & japanese style rules
|
|
- ascii mode: save territory points to analyzerfile
|
|
- gmp mode: log game in sgf tree
|
|
- gmp mode: undo implemented by replaying sgf tree
|
|
- gmp mode: save result and territory points to analyzerfile
|
|
- ttsgf.c: new function sgfOverwritePropertyInt()
|
|
- ttsgf.c: new function sgfAddStone()
|
|
- sethand.c: sets handicap stones to sgf tree
|
|
- hash.diff removed from distribution
|
|
|
|
2.3.76 released August 4, 1999
|
|
|
|
- interface/html directory contains cgi interface
|
|
- bugfix in optics.c: initialization of domains
|
|
- bugfix in reading.c: some variations were being overlooked
|
|
- hashing implemented in savestone2
|
|
|
|
2.3.75 released August 2, 1999
|
|
|
|
- mark illegal moves in --printsgf with IL property
|
|
- Some new macros in hash.h
|
|
- Use hashing in readlad2
|
|
- Some cleanup of worm.c
|
|
- option -f rewritten : opening tuning, including oba moves
|
|
- non fuseki part of old -f option became --fearless option
|
|
|
|
2.3.74 released August 1, 1999
|
|
|
|
- bugfixes in helpers.c. One of these could cause a crash
|
|
- two connection patterns increased substantially
|
|
- moved get_komi() and inc_movenumber() to liberty.h
|
|
- play_ascii(): new commands to navigate the game tree in ascii mode
|
|
- back command (undo) implemented in ascii mode! Newly placed
|
|
stones appear as variations in the sgf
|
|
- play_ascii(): changed the compare length of some commands. Now q works
|
|
for quit, b for back and f for forward.
|
|
- removed bug in play_ascii(): user pass after computer pass did not
|
|
display result.
|
|
- fixed bug in helpanalyzer output
|
|
- utils.c: added function intialize board() and removed remove_stone()
|
|
- fixed the komi bug reported by Douglas in --analzyerfile
|
|
|
|
2.3.73 This version may be released later
|
|
|
|
2.3.72 released July 30, 1999
|
|
|
|
- bugfix in updateboard ko handling
|
|
- Moved obsolete documentation about reading.c to doc about utils.c
|
|
- Expanded documentation about reading with hashing
|
|
- minor tuning
|
|
|
|
2.3.71 released July 29, 1999
|
|
|
|
- bugfix in make_worms: moving point of defense
|
|
- fixes to handling of ko after a pass
|
|
- updatepassmove() removed
|
|
- updateboard now handles pass moves.
|
|
- KO handling by trymove is currently broke
|
|
- play_ascii.c, play_gmp.c, play_solo.c updated accordingly.
|
|
- revisions to ascii interface.
|
|
- legal() now reports a pass move to be legal.
|
|
- revision of one eye pattern
|
|
- tuning to increase attention to connections
|
|
- 2 new helpers
|
|
- mkpat: weak autohelper option needed ==CRITICAL
|
|
- modified worm values
|
|
|
|
2.3.70 released July 28, 1999
|
|
|
|
- Zobrist hashing implemented
|
|
- new files src/hash.h and src/hash.c
|
|
- readlad1 uses hashing
|
|
- readlad2 does consider 2 stone sacrifices if stackp<backfill_depth
|
|
- revised method of ko detection using
|
|
- New file docs/HALFEYES describing the topology of false eyes and half eyes.
|
|
- Halfeye detection rewritten from scratch according to docs/HALFEYES.
|
|
- Revisions to connection code.
|
|
- A small amount of tuning.
|
|
- Dragon values changed when worm values are.
|
|
- Designation of marginal eye spaces revised to consider if enemy has a safe move
|
|
- Bugfix in worm.c
|
|
|
|
2.3.69 released July 27, 1999
|
|
|
|
- bug fix in connections.c
|
|
- two false eye patterns added
|
|
- one pattern added
|
|
- readlad2 sorts liberties before plunging in to the read
|
|
- readlad2 rejects sacrifices of more than one stone
|
|
- bugfix in shapes.c
|
|
- in worm.c we sometimes try point of attack for defense
|
|
- removed the -b bug
|
|
- removed some warnings
|
|
- ascii mode: new command comment writes one line comments to file
|
|
- ascii mode: new command score displays terri_eval
|
|
- ascii mode: new command dead shows dead stones as lower letters
|
|
- ascii mode: at end shows dead dragons, lets user toggle their state
|
|
- ascii mode: REsult propterty is written to analyzerfile
|
|
- new command line option helpanalyze
|
|
- option --score end outputs territory points (TW,TB) to analyzerfile
|
|
- utils.c: new function remove_stone
|
|
- utils.c: new function change_dragon_status
|
|
- main.c: added shortcut for --help to the help message
|
|
- ttsgf.c: reduced the memory consumption of the sgf structure
|
|
- liberty.h: made the dragon structure public
|
|
|
|
2.3.68 released July 26, 1999
|
|
|
|
- Tuning, seki patterns.
|
|
- New connection patterns.
|
|
- Revision of connections code.
|
|
- New helpers.
|
|
- eye_finder() now considers shape's move as defender() and attacker() do
|
|
- Cleaning up and bug fixes in attdef.c.
|
|
- More debug messages for the eyes code.
|
|
- Bug fixes in compute_eyes() and play_attack_defend_n().
|
|
- Bug fix in shapes.c: TRACE was missing an argument
|
|
- fixed testwind compiler warning
|
|
|
|
2.3.67 released July 25, 1999
|
|
|
|
- bugfix in attacker: depth was changing each move
|
|
- A class patterns, analogous to the D class, implemented but not tested
|
|
- B and C classes can now be used in the same pattern.
|
|
- The meta_connect bonus now specified with a new field
|
|
- doc/PATTERNS revised
|
|
- the oplay_attack() and similar autohelper functions documented
|
|
- meta_connect bonus removed from most patterns except block/expand
|
|
- Weakness bonuses are now applied at a later time than they were.
|
|
Thus B and C patterns are treated the same as patterns using helpers
|
|
- A 5,5 weakness bonus added to all cut/connect patterns
|
|
- diag_miai2 helper revised.
|
|
- Some tuning.
|
|
- shapes.c cleaned up.
|
|
- revisions in interface/play_ascii.c
|
|
- substantial revision in sgf/ttsgf.c
|
|
- new option --analyzerfile (see docs/MISC)
|
|
- docs/SCORING is renamed docs/MISC
|
|
|
|
2.3.66 released July 23, 1999
|
|
|
|
- make_worms: bugfix in resetting of worm.attack and worm.defend
|
|
- bugfix in does_defend
|
|
- new autohelper macros
|
|
- play_attack_defend_n can take an arbitrary number of parameters
|
|
- function who_win renamed who_wins for grammatical reasons
|
|
- play_gmp.c: if there is a handicap we assume komi=0.5
|
|
- play_solo.c: captures not added a second time
|
|
- new patterns in eyes.db
|
|
- some tuning
|
|
- sgf.c: pass is [tt] unless board_size>19
|
|
- depth and backfill_depth are augmented in attacker() and defender()
|
|
- bugfix in printsgf mode
|
|
- sgf_printboard prints current board position to sgf file
|
|
- LOAD_AND_PRINT mode: read file, output final position
|
|
|
|
2.3.65 released July 21, 1999
|
|
|
|
- dragon_eye does not amalgamate across an ikken tobi
|
|
- play_ascii.c: change depth on the fly
|
|
- new option --statistics
|
|
- revision of various helpers and 2 new helpers
|
|
- mkpat rewritten so constraints can now be on several lines.
|
|
- New autohelper functions xplay_attack, oplay_attack, xplay_defend,
|
|
and oplay_defend, which take variable number of arguments.
|
|
- New functions in utils.c to support the above.
|
|
- tuning
|
|
- bugfix in sethand.c
|
|
- increased DEPTH to 14 and BACKFILL_DEPTH to 7
|
|
- change_attack can sometimes reclassify dragons as DEAD
|
|
- command line resetting of depth
|
|
|
|
2.3.64 released July 20, 1999
|
|
|
|
- reformatting of reading.c
|
|
- bugfix in break_chain2
|
|
- revised basicnet3: try harder to rescue boundary chains
|
|
- revised basicnet3: remember moves tried to avoid redundant reading
|
|
- bugfix in find_lunch: pick juciest worm
|
|
- sgf property PL implemented in play_solo
|
|
- revisions in play_solo.c and fuseki.c for small boards
|
|
|
|
2.3.63 released July 19, 1999
|
|
|
|
- delta_moyo, delta_terri work with either color
|
|
- 2 new functions diff_terri and diff_moyo,
|
|
- cleanup of moyo.c
|
|
- -f option revised
|
|
- docs/BOUZY revised
|
|
- new docs/SCORING
|
|
- New autohelper functions.
|
|
- New connection patterns and revisions of the connections matching code.
|
|
- Bugfix to an eye pattern.
|
|
- Much tuning.
|
|
- Revised criterion for when to defend or attack a worm.
|
|
- Extended the scope of destroyer().
|
|
- Experimental worm and cut revaluation in light of dragon formations
|
|
- Changed heuristics for eye values of non-matched eye shapes.
|
|
- reordered arguments to does_attack() and does_defend()
|
|
- bugfix in readlad2: backfill was turned off
|
|
- default backfill_depth is now 5
|
|
- -l and -o options can be - for stdin and stdout
|
|
|
|
2.3.62 released July 17, 1999
|
|
|
|
- New autohelper functions, xlib(), olib(), xcut(), and ocut().
|
|
- Revised documentation for autohelper functions.
|
|
- Connections database introduced. New files: connections.c and conn.db.
|
|
- find_dragon_pairs() disabled, replaced by connection patterns.
|
|
- Cutting patterns from the connection database can modify eye spaces.
|
|
- Amalgamation in dragon_eye() no longer done over marginal eyes.
|
|
- mkpat partially rewritten.
|
|
- Minor correction to eyes.db.
|
|
- Nakade helpers cleaned away.
|
|
- Minor tuning,
|
|
- two more nakade like patterns removed, EC63 again C pattern.
|
|
- Bug fix in attacker(): discount bad captures, not good ones
|
|
- New function destroyer() to capture of strings that can't currently
|
|
be defended, but which could be after opponent backfilling
|
|
- Some cleaning in genmove.c.
|
|
- Attack points of non-defendable strings not moved in make_worms
|
|
- defense points added for adjacent non-defendable strings so
|
|
dragon amalgamation won't confuse semeai()
|
|
- new function read_sgf_header used by load_and_analyse_sgf_file
|
|
- new function load_and_score_sgf_file
|
|
- new option --score and new mode LOAD_AND_SCORE
|
|
- new function evaluate_territory
|
|
|
|
2.3.61 released July 15, 1999
|
|
|
|
- nakade patterns are gone
|
|
- only linear patterns are currently hand-coded
|
|
- many new eye patterns
|
|
- not_lunch_helper aids in hane/kill combinations
|
|
- undid a change in 2.3.59: amalgamation on first line
|
|
|
|
2.3.60 released July 15, 1999
|
|
|
|
- TODO revised
|
|
- copyright revised in interface/ files
|
|
- new pattern in eyes.db
|
|
- halfeyes: require O not dead
|
|
- revision of detect_trap_helper
|
|
- revision of one pattern in hey.db
|
|
- new ko patterns
|
|
- other minor changes
|
|
- new functions does_attack and does_defend in utils.c
|
|
- attacker and defender call these functions
|
|
- copyright notice slightly changed in main.c
|
|
- reformatting of worm.c
|
|
- unwanted handicap printf removed from play_gmp.c
|
|
|
|
2.3.59 released July 14, 1999
|
|
|
|
- revision of docs/DRAGON
|
|
- several new eye patterns
|
|
- fair amount of tuning. Particularly, changes to diag_miai patterns
|
|
- dragon.c: we don't amalgamate a dragon if it touches the eyeshape
|
|
only on the first line
|
|
- COLOR_STACK_SIZE increased to 70
|
|
- DEBUG used in optics.c
|
|
|
|
2.3.58 released July 13, 1999
|
|
|
|
- mkpat revised. Autohelper functions now can take multiple parameters.
|
|
First out is defend_against(a,b) which plays our own stone at a and
|
|
then checks whether the opponent can safely play at b.
|
|
- some tuning of patterns.
|
|
- new function defend_against() in utils.c
|
|
- bugfix in compute_eyes(): missing returns
|
|
- two new eye patterns
|
|
- bugfix in add_half_eye
|
|
- more refined testing of att_X case in halfeyes.c
|
|
- halfeye: obsolete test that eye and halfeye are in distinct cavities omitted
|
|
- halfeye: we check that * is a safe move for X
|
|
- restored marginal test in throw_in_atari_helper (removed in 2.3.55)
|
|
- superceded docs/GRAPHS removed from distribution
|
|
- filllib.c reformatted
|
|
|
|
2.3.57 released July 12, 1999
|
|
|
|
- count and chain rewritten for speed
|
|
- more graceful error message if no in file specified in testmode
|
|
- eye pattern 10 needed a vital point
|
|
- find_lunch and make_worms: a ko is not lunch
|
|
|
|
2.3.56 released July 11, 1999
|
|
|
|
- add_half_eye: when a half eye's vital point is in another eyeshape
|
|
the eyeshapes are amalgamated. This is correct and stops some crashes
|
|
- computer tries to compute the score at end of game
|
|
- new function who_win in moyo.c
|
|
- one chimera pattern included in eyes.db
|
|
- bugfix in attdef.c: color in territory test
|
|
- bugfix in showbord.c: display of capture count
|
|
|
|
2.3.55 released July 9, 1999
|
|
|
|
- integration of half eye and eye code
|
|
- separate eye domains for black and white
|
|
- revision of docs/EYES to document the algorithm
|
|
- a couple of changes that will be undone in a later release:
|
|
temporary oversimplification of treatment of att_X in hey_callback
|
|
temporary oversimplification of throw_in_atari_helper
|
|
- removal of one half eye pattern
|
|
- experimental penalty for running inside enemy territory
|
|
- bug fix in semeai.c
|
|
- revision in showboard for -E option
|
|
|
|
2.3.53 released July 8, 1999
|
|
|
|
- reading.c: new function special_rescue finds certain saving moves
|
|
- revisions to savestone2 including use of special_rescue
|
|
- speedup in find_lunch
|
|
- minor revisions to hey.db and eyes.db
|
|
- bugfix in mkpat (this could cause compilation failure)
|
|
- bug fix in make_dragons (ignore eyes when not relevant)
|
|
|
|
2.3.52 released July 7, 1999
|
|
|
|
- bugfix in setup_double_atari_helper (could cause crash)
|
|
- minor tuning
|
|
- revision make_domains: influence can't creep under third line stone
|
|
- revision to find_lunch: if already eaten it's not lunch
|
|
- revision in halfeyes.c vis a vis Pattern 12
|
|
|
|
2.3.51 released July 6, 1999
|
|
|
|
- revision of mkeyes
|
|
- new function recognize_eye() for use by the reading code (unfinished)
|
|
- revision of the -f option (move generator based on territory)
|
|
- cleanup in helpers.c and replacement of helpers by constraints
|
|
|
|
2.3.50 released July 4, 1999
|
|
|
|
- gnugo -f implements search for big moves with delta_moyo>=12
|
|
- and delta_terri >=14. Such a move gets value 80.
|
|
- tuning
|
|
- some work on false eye code
|
|
- some work on the eye code
|
|
- bugfix in double_atari_helper
|
|
|
|
2.3.49 released July 2, 1999
|
|
|
|
- Correction to sgf output from ascii interface.
|
|
- Results of safe_move() are cached if stackp==0.
|
|
- Helpers and some other code rewritten to use safe_move()
|
|
- Bugfixes in block_attack_defend_helper and urgent_connect_helper
|
|
- Reading bug fixed in savestone2().
|
|
- tuning
|
|
- autohelper options safe_xmove,safe_omove,xmoyo,omoyo,xarea,oarea,xterri,oterri
|
|
- new function mkeyes to compile the eye database (unfinished)
|
|
- docs/GRAPHS explains the approach to the eye code
|
|
- revisions to eyes.db and eyes.h
|
|
- in halfeyes.c we make an exception to the rule that X can't be captured
|
|
- revisions to hey.db
|
|
- dragons with one eye and lunch are CRITICAL
|
|
- revisions to eye_finder to find such dragons
|
|
- eyespaces are not connected through adjacent marginal eyes
|
|
- various fields initialized in make_domains()
|
|
- bugfixes in make_domains
|
|
- bugfix in compute_eyes: sometimes found the wrong end of a linear space
|
|
|
|
2.3.48 released June 29, 1999
|
|
|
|
- experimental changes to fuseki.c
|
|
- revisions to helpers and patterns
|
|
- eye_finder() now calls sgf_move_considered()
|
|
- revisions to compute_eyes: eye shapes of size 4
|
|
- DEPTH is now 13, BACKFILL_DEPTH is 9
|
|
- gnugo --help now prints defaults of depth and backfill_depth
|
|
- bugfix in worm.c: some non-kos were incorrectly identified as ko
|
|
|
|
2.3.47 released June 29, 1999
|
|
|
|
- substantial speedup in chainlinks
|
|
- minor tuning
|
|
|
|
2.3.46 release June 28, 1999
|
|
|
|
- tuning, new helpers and patterns
|
|
- some half eye code restored to dragon.c
|
|
- some further linear patterns in compute_eyes()
|
|
- bugfix in savestone3
|
|
- speedup in find_lunch: if stackp==0, we used cached info
|
|
- in break_chain2 don't try certain foolish moves
|
|
- speedup in basicnet3 (avoid unnecessary readlad1)
|
|
|
|
2.3.45 released June 27, 1999
|
|
|
|
- 3 new functions delta_terri_color, delta_moyo_color, delta_area_color
|
|
- new board stack in moyo.c
|
|
- BOUZY updated
|
|
- bug fixes regarding half eyes in dragon.c and eyes.c
|
|
- new code for some linear patterns
|
|
- bugfix: dragons around a ko were getting amalgamated
|
|
|
|
2.3.44 released June 25, 1999
|
|
|
|
- bugfix in atari_save_helper (could cause crash)
|
|
- revision to CD68 (could cause GNU to play out a ladder)
|
|
- bugfix in dragon.c: incrementing msize wrongly
|
|
- minor revisions to make_domains()
|
|
- new functions int moyo_color(int m,int n) and int terri_color(int m,int n)
|
|
returning the color of the intersection as seen by terri & moyo modules
|
|
- new function delta_moyo_simple() without meta_connect bonus, delta_moyo()
|
|
is now a wrapper to this one (should be a transparent modification)
|
|
- diag_miai_helper uses the new moyo_color()
|
|
|
|
2.3.43 released June 24, 1999
|
|
|
|
- revisions to ascii interface
|
|
- gnugo can resume adjourned games
|
|
- gnugo plays through endgame phase of the ascii interface
|
|
- much tuning
|
|
- revisions to helpers and new helpers
|
|
- in this version a weak group has between 0 and 20 points space
|
|
- two half eye patterns are back. Half eyes still not working right
|
|
- (incomplete) revision of eye code to deal with half eyes
|
|
- bug fix in eyes.c regarding opponent stones within eyespace
|
|
- tinkering with hoshi.sgf
|
|
|
|
|
|
2.3.42 released June 23, 1999
|
|
|
|
- weak groups now have between 4 and 20 liberties
|
|
- diag_miai_helper won't recommend a move in opponent's territory
|
|
- revisions to patterns/hoshi.sgf
|
|
- mkpat.c: fields in NULL pattern at end of patterns.c corrected
|
|
- mkpat.c: weak option added to pattern compiler
|
|
- some tuning
|
|
- dragon.c: error eye.msize was preventing us from finding false eyes
|
|
- some code moved from eye.c to dragon.c to help finding false eyes
|
|
- compute_eyes and propogate_eyes are now public functions
|
|
- bugfix in shapes.c: obonus and xbonus should now work correctly
|
|
- revisions to documentation
|
|
|
|
2.3.41 released June 22, 1999
|
|
|
|
- compute_eyes is partially written (without using matchpat)
|
|
- revisions to computation of genus
|
|
- openeyes is expunged
|
|
- half eye database is invoked earlier
|
|
- half eye database used only to find false eyes
|
|
- bonus field split into obonus and xbonus
|
|
- obonus and xbonus are applied to patterns involving weak groups
|
|
- most EB patterns now have bonuses
|
|
- 5 point bonus for patterns involving weak groups (2.3.38) is gone
|
|
- some tuning
|
|
- some bugfixes in eyes.c, dragons.c and semeai.c
|
|
|
|
2.3.40 released June 21, 1999
|
|
|
|
- substantial revisions and new code in dragon.c and eye.c
|
|
- dragons around an eye shape are now amalgamated
|
|
- delta_moyo looks in meta_connect for the tested move
|
|
- Bug fixes for two helpers.
|
|
- Minor tuning.
|
|
- GNU now can read sgf files with missing final ")".
|
|
- defender and the attacker try the move suggested by shapes()
|
|
- The semeai player now prefers to play on mutual liberties if this
|
|
improves the liberty balance.
|
|
|
|
2.3.39 released June 18, 1999
|
|
|
|
- some tuning, new helper block_attack_defend_helper
|
|
- eye code now fills out an array eye[][] with data
|
|
- revision to eye algorithm
|
|
- open eye spaces now have origins
|
|
- bugfix with -E option
|
|
- dead groups are now cyan in showboard (were white)
|
|
|
|
2.3.38 released June 17, 1999
|
|
|
|
- experimental bonus of 5 points to patterns involving a weak dragon
|
|
- revision of patterns/hoshi.sgf: attachment variations deprecated
|
|
- open eye shapes are now computed. Display these with gnugo -E
|
|
- some tuning
|
|
|
|
2.3.37 released June 16, 1999
|
|
|
|
- weak groups no longer classed dragon.status==CRITICAL. Instead ...
|
|
- new field dragon.weak
|
|
- old worm.weak and dragon.weak renamed worm.lunch and dragon.lunch
|
|
- weak groups (found by moyo) classed dragon.weak==CRITICAL
|
|
- dragon.weak field not used by genmove but displayed by showboard
|
|
- new helper wedge2_helper
|
|
- tuning and other revisions to pattern database
|
|
- src/eye.c code is now linked though not used by genmove
|
|
- revisions to showboard to display eye domains if xo=1
|
|
- int make_worms() (was void) returns 1 if board not empty
|
|
- find_weak() renamed find_lunch()
|
|
|
|
2.3.36 released June 15, 1999
|
|
|
|
- weak groups are classed CRITICAL so they scrounge eyes
|
|
- new function test_weak to find weak groups (in moyo.c)
|
|
- revision to print_txt_color
|
|
- bugfix in fill_liberties
|
|
- revised docs/BOUZY
|
|
- bugfix: find_defense no longer checks that strings can be attacked
|
|
which required some modifications, slowing us down a little
|
|
- DEPTH reduced to 12
|
|
|
|
2.3.35 released June 15, 1999
|
|
|
|
- reading code is much faster now and hopefully also more accuracy.
|
|
- new function relative_break_chain() used in revised readlad2()
|
|
- caching of moves eschewed in break_chain(), break_chain2()
|
|
if return pointer is NULL
|
|
- DEPTH increased from 10 to 13
|
|
- new docs/READING explains using --decidestring -o with gdb
|
|
- connect_under_helper() rewritten to use connection_value()
|
|
- housecleaning in patterns.db
|
|
|
|
2.3.34 released June 14, 1999
|
|
|
|
- test for pass in play_solo.c corrected
|
|
- tuning
|
|
- new pattern classification: Edge Expansion
|
|
- GNU tries in two ways to fill liberties (points in Chinese count)
|
|
- before passing, DEAD opponent stones in semeai are reclassed
|
|
unknown, then shapes is rerun
|
|
- if that doesn't work, new function fill_liberty() tries again
|
|
- new field dragon.semeai, new function revise_semeai()
|
|
- static_eval() is gone (superceded by moyo())
|
|
- reading.c: new function savestone3()
|
|
- reading.c: savestone2 no longer tries to find the best move since
|
|
we have ways to improve points of attack and defense
|
|
- some code taken out of find_defense()
|
|
- dump_stack() uses gprintf instead of TRACE and counts variation
|
|
|
|
2.3.33 released June 12, 1999
|
|
|
|
- new function meta_connect to test a move against area ownership
|
|
(returns true when the move connects/disconnects meta groups)
|
|
- area ownership now sees kosumi connections
|
|
- minor changes in moyo.c data structures
|
|
- in shape.c, added some bonus for meta_connect moves
|
|
- in mkpat.c, some bonus added to maxwt for meta_connect moves
|
|
- minor tuning
|
|
- in readlad2() we consider throwins
|
|
- Copyright updated (no longer says 2.0) in src/ and patterns/
|
|
|
|
2.3.32 released June 11, 1999
|
|
|
|
- substantial speedup of reading code
|
|
- in savestone2, we try to find an easy saving move before reading
|
|
- in savestone2, we don't try second move if first works
|
|
- in readlad2, we postpone break_chain2 but not break_chain
|
|
- option --decidestring -o now outputs variation numbers
|
|
- bugfix in extend_to_kill_helper
|
|
- embryonic src/eyes.c included in tar file
|
|
|
|
2.3.31 released June 10, 1999
|
|
|
|
- new globals last_move_i and last_move_j give the last move made.
|
|
This is used to improve(?) ascii output.
|
|
- fixed bug ascii play where the captured stones where added wrong
|
|
- play_ascii and play_test start with move 0 like play_gmp
|
|
- in ascii play the last move is now marked
|
|
- bug fixed in ascii play when a pass is made
|
|
|
|
2.3.30 released June 9, 1999
|
|
|
|
- reimplementation of of handicap in ascii without writing p[][]
|
|
- new functions for saving/restoring game state without using stack
|
|
- use inc_movenum instead of movenum++ in play_gmp and play_solo
|
|
- revision to ko_important_helper: ko values cut in half
|
|
- move_attack() and move_defense() renamed change_attack() and change_defense()
|
|
- new komoku pattern
|
|
- 2 new patterns
|
|
|
|
2.3.29 released June 7, 1999
|
|
|
|
- connection_value moved to src/util.c
|
|
- alive11_helper modified
|
|
- eschewing of kos by attacker() and defender(), dropped in 2.3.28 is back
|
|
- edge_ko_important helper added
|
|
- new sente_extend_helper, straight_connect_helper, block_to_kill_helper
|
|
extend_to_kill_helper, revise_value_helper
|
|
- new half eye pattern
|
|
- several new patterns and changes to patterns.db
|
|
- moved some CC patterns from wrong section
|
|
- now --color should work with ascii interface
|
|
|
|
2.3.28 released June 6, 1999
|
|
|
|
- bugfix (worm.c, shapes.c, helpers.c): propogate_worm not used with stackp>0
|
|
- attacker() and defender() no longer eschew kos
|
|
- unused sgfAddPlay is commented out (fixing a warning)
|
|
- fixes to trace (indent is back, caves which are kos are reported correctly)
|
|
- default backfill_depth is 7 (arrived at by trial and error)
|
|
- option --decidestring no longer requires -o (useful with or without it)
|
|
- in make_worms() code to improve worm.attack, worm.defend we now read
|
|
one step deeper in the stack to avoid horizon effect
|
|
- initialization in propogate_worm() uses memset
|
|
|
|
2.3.27 released June 5, 1999
|
|
|
|
- new option -B [depth] should now work
|
|
- default values of depth and backfill_depth are 10 and 5
|
|
- new function mprintf which is similar to gprintf but writes to stdout
|
|
- changed vgprintf to work with different outputs (i.e. stderr, stdout)
|
|
- the testmode now write its output to stdout only (never stderr)
|
|
- bugfix in backfire_helper
|
|
|
|
2.3.26 released June 4, 1999
|
|
|
|
- Backfill depth can now be set with -B [depth]
|
|
- very minor revisions to patterns.db
|
|
- reading.c: bc was not being initialized when stackp>0 (twice)
|
|
|
|
2.3.25 released June 1, 1999
|
|
|
|
- bug fix in new make_worm() code
|
|
- connection_value gives a bonus if the connecting move makes 2 eyes
|
|
- mystery pattern CB102 removed
|
|
|
|
2.3.24 released May 30, 1999
|
|
|
|
- tuning of joseki and patterns
|
|
- revised definition of inessential worms --- require worm.weak==-1
|
|
- new code in make_worms() to revise points of attack/defense
|
|
- BACKFILL_DEPTH reduced to 4 due to increased slowness
|
|
- basicnet4 included but turned off
|
|
|
|
2.3.23 released May 29, 1999
|
|
|
|
- asymmetry bug in moyo.c fixed: when init_moyo() is launched,
|
|
boardsize is not known
|
|
- area computation and dilat algorithm bug
|
|
- distribution includes reading.c.alt for the experimentally inclined
|
|
- tuning and new helpers
|
|
- dragon.c split into dragon.c and worm.c
|
|
|
|
2.3.22 released May 27, 1999
|
|
|
|
- disabled long jumps into enemy area without a secure connection
|
|
- no center pattern can jump down to or along the second line
|
|
- revision to the endgame patterns according to docs/ENDGAME
|
|
- detect_trap_helper looks for moves attacking two groups at once
|
|
- some other tuning
|
|
- evaluate_game removed from the distribution
|
|
- semeai will not recommend a move which leads to an immediate loss
|
|
- bugfix in semeai: bestlib was not getting updated
|
|
|
|
2.3.21 released May 27, 1999
|
|
|
|
- Empty corner play moved to src/fuseki.c (new) and reimplemented
|
|
- Embryos for 3-4, 3-3, 5-3, and 5-4 joseki databases in patterns/*.sgf
|
|
- option -m [level] for debugging moyos
|
|
- docs/EYES revised
|
|
- bugfix in urgent_connect_helper
|
|
- pattern revisions
|
|
|
|
2.3.20 released May 26, 1999
|
|
|
|
- readlad2 now tries backfilling. readlad2 and attack return 2 if
|
|
a backfill is found but no direct attacking move
|
|
- new patterns
|
|
- use of macros to simplify helpers
|
|
- trymove: sgf --decidestring now gives more information
|
|
- solves errors when MAX_DILAT != MOY_DILAT
|
|
- now the area ownership uses 4 dilation, which seems better.
|
|
- docs/ENDGAME added from Gunnar's email of May 18, 1999
|
|
|
|
2.3.19 released May 24, 1999
|
|
|
|
- edge block/expand patterns reordered
|
|
- tuning
|
|
- a new joseki
|
|
- a new helper
|
|
- Move evaluate_game functionality into play_test.c
|
|
- It is now main.c that loads the sgf file into a tree.
|
|
- If no playmode / testmode is supplied, look for a comment
|
|
of the form C[testmode=...] in the root node. If found,
|
|
this sets the playmode / testmode.
|
|
- Other interface fns take the tree, rather than filename, as param.
|
|
- testmode is now a local variable, passed as param into play_test,
|
|
rather than setting into global state via set_testmode / get_testmode
|
|
- Move the tests for acceptable sgf file (GM[1]FF[3/4]) into the
|
|
sgf reader, rather than in the user of the tree.
|
|
- bugfix in hane_backfill_helper
|
|
- semeai now attacks dragons of low vitality
|
|
- semeai tries a little harder to choose a smart liberty
|
|
|
|
2.3.18 released May 23, 1999
|
|
|
|
- break_chain() and break_chain2() return 2 if saving move can be taken
|
|
- savestone2() and find_defense() try harder not to make self-atari
|
|
- find_defense() now considers tenuki
|
|
- forgot to initialize adjsize and adjlib in chainlinks()
|
|
|
|
2.3.17 released May 23, 1999
|
|
|
|
- Complete reordering and some tuning of the fuseki patterns.
|
|
- A little tuning elsewhere.
|
|
- Documentation of the new features in the patterns.db format.
|
|
- The -m option enhanced with another board with delta_moyo values.
|
|
- chainlinks test now in basicnet3
|
|
- delta_terri(int ti, int tj,int color) : the same as delta_moyo(),
|
|
but against the 5/21 evaluation
|
|
- area ownership evaluation (using 5/0 algo), with wrapper functions :
|
|
area_stone(int m,int n), area_space(int m,int n)
|
|
area_color(int m,int n), area_tag(int m,int n)
|
|
set_area_tag(int m,int n,int tag)
|
|
- the values are computed during make_moyo evaluation, use
|
|
"gnugo -m" to see how area are evaluated.
|
|
- bugfix in play_test.c
|
|
|
|
2.3.16 released May 22, 1999
|
|
|
|
- Wind assistance complemented by moyo assistance.
|
|
- Move dependent randomness replaced by pattern dependent randomness.
|
|
- Format of patterns.db changed to accomodate new features mentioned above.
|
|
- One new joseki line.
|
|
- Jump out patterns retuned. They may still be somewhat out of tune
|
|
but in a new and different way. Or maybe they even work quite well.
|
|
- Some tuning of fuseki patterns.
|
|
- Caching of upower and mypower values from testwind.
|
|
- Some functions moved from matchpat.c to shapes.c.
|
|
|
|
2.3.15 released May 22, 1999
|
|
|
|
- board-setup nodes were being ignored in test-mode
|
|
- fixes a bug where moves annotated as bad (MA[]) were reported as good.
|
|
- took ascii_showboard out of play_test.c.
|
|
- end_sgfdump() tries to pop the stack before closing the file
|
|
- DEPTH ramped all the way up to 10, the new reading code is so fast
|
|
- evaluation of moves is moved to break_chain and break_chain2
|
|
- simplification of readlad1, readlad2, savestone2, find_defense and basicnet3
|
|
- a few annotated games against David Fotland's XGO added to regression/
|
|
|
|
2.3.14 released May 21, 1999
|
|
|
|
- documentational changes to helpers.c
|
|
- minor changes in patterns.db
|
|
- all jump_out_helper patterns changed to weight 60 for moyo heuristics
|
|
- jump_out_helper() modified to use moyo heuristics
|
|
- new function delta_moyo() run quite fastly, using the cache as proposed.
|
|
the result of this function go in global variables :
|
|
moyo_test[WHITE],moyo_test[BLACK] and the difference from precedent
|
|
moyo evaluation is in moyo_test[0]
|
|
delta_moyo returns what is expected : the difference from point of view
|
|
of "color" player, aka moyo_test[0]
|
|
the same for moyo_eval[3] and terri_eval[3]
|
|
so all the results are availables for later use.
|
|
(see sources for details)
|
|
- used #defines for the variables 5/21 and 5/10 (can be 4/10 too), see liberty.h
|
|
|
|
|
|
2.3.13 released May 20, 1999
|
|
|
|
- further revisions to ttsgf_read.c regarding file buffering
|
|
- tuning, new patterns, helpers, half eye patterns
|
|
|
|
2.3.12 released May 20, 1999
|
|
|
|
- tuning
|
|
- ttsgf_read.c: changed
|
|
|
|
2.3.11 released May 19, 1999
|
|
|
|
- reading.c from 2.3.8 is restored
|
|
- MAX_FILE_BUFFER increased to 150000 in ttsgf_read.c
|
|
- tuning and a new joseki
|
|
- hide most of liberty.h from non-src/ code.
|
|
- src/ and patterns/ define BUILDING_GNUGO_ENGINE,
|
|
and are therefore allowed to see all the internal
|
|
symbols. Otherwise, code just sees a few functions,
|
|
and sees 'const' versions of the variables.
|
|
- (liberty.h defines a macro PUBLIC_VARIABLE which expands
|
|
to extern for engine source files, and extern const
|
|
for others)
|
|
- *NOTE* : we get many warnings about const violations,
|
|
where other modules write to these variables. In particular,
|
|
ascii_showboard makes temporary changes to p[][].
|
|
But it still compiles (with gcc at least). These interface
|
|
violations were always there. Now they are visible.
|
|
- Moved remove_string() and count_territory() from play_ascii
|
|
into src/utils : these need to be part of the engine
|
|
since they have intimate access to the state.
|
|
- Did a bit of gratuitous changes with play_test.c
|
|
No functionality changes.
|
|
- lost get_*_a and put_*_a interface functions.
|
|
- make_dragons() is no longer predicated on movenum, but
|
|
on existence of worms.
|
|
- potential_moves[][] is now taken seriously : genmove()
|
|
clears it at the start of the move cycle, rather than
|
|
having sgf_move_made() clear it at some random time
|
|
after genmove has returned.
|
|
- semeai criterion slightly changed: my dragon.vitality<0
|
|
and your dragon.status==DEAD.
|
|
|
|
2.3.10 released May 18, 1999
|
|
|
|
- hane_backfill_helper deprecated
|
|
- semeai module now consults vitality field to initiate fighting
|
|
- test mode did not pass movenum to engine code: fixed.
|
|
did away with the game_info entries for boardsize and move_number,
|
|
made the interface use the engine's global variables instead.
|
|
Better solution is needed (see TODO)
|
|
|
|
2.3.9 released May 17, 1999
|
|
|
|
- play_solo.c: in load_sgf_file() we now use global movenum instead of mv
|
|
- play_solo.c: white stones were loading as black (fixed)
|
|
- new helpers, tuning, revisions to pattern database
|
|
- mkpat.c: maxwt now takes bonus into account
|
|
- reading.c: break_chain2 simplified
|
|
|
|
2.3.8 released May 17, 1999
|
|
|
|
- backfill.sgf added to regression/
|
|
- color added to moyo.c
|
|
- bugfix in moyo.c: captures were counted backwards
|
|
- BOUZY added to docs/
|
|
- bugfix in sente_hane_helper
|
|
- joseki patterns are now type 's'
|
|
- fix the board_size bug in test mode
|
|
- reimplement load_sgf_file() in terms of the sgf parser : gives us
|
|
ability to read multiple AB[][]... for free
|
|
- move load_sgf_file and load_and_analyse_sgf_file from sgf/ into
|
|
interface. (Currently play_solo.c but that's temporary.)
|
|
Justification is that these fns have more to do with the engine
|
|
than with sgf files.
|
|
- put in the emacs variable blocks into some of the files
|
|
- remove some extern refs from .c files - according to David
|
|
this is a bad practise
|
|
- Remove a few remaining // comments, and disable // comments in
|
|
GNUGO_SOME_WARNINGS
|
|
- Reorganise the --help page, and add long options for most of the
|
|
short ones. The --help is modelled after gnu tar.
|
|
- Some files had #define _NO_PROTO to hide getopt() prototype, but
|
|
these files were not doing option parsing, so assume this is redundant.
|
|
- interface game_info structure was used only in interface.c, so
|
|
moved the structure defn out of a public header file
|
|
- The ttsgf_read.c code only offered to parse an sgf file which had
|
|
already been read into a buffer. Moved a code fragment which appeared
|
|
in two places to load the file then parse it into a readsgffile()
|
|
function.
|
|
- Prefixed all the symbols for long option names with OPT_, and mode
|
|
names with MODE_to avoid namespace clashes. (DECIDE_STRING was being
|
|
used as a mode and an option.)
|
|
|
|
2.3.7 released May 15, 1999
|
|
|
|
- Jerome's moyo mode (-m option)
|
|
- new patterns and helpers, including backfill patterns CD47 and CD48
|
|
- reading.c: trysafe in readlad2 has been removed
|
|
- reading.c: in savestone2 if stackp==0 we first try to capture
|
|
- a surrounding string. This would lead to thrashing if we tried
|
|
- it at deeper levels
|
|
- reading.c: bug fix in find_defense (Gunnar)
|
|
- reading.c: in break_chain2 we omit harder attacks if string has
|
|
- 3 liberties since this causes too many errors.
|
|
- reading.c: in basicnet3 we test a little more the attack really works
|
|
|
|
2.3.6 released May 15, 1999
|
|
|
|
- bug fixes in patterns/
|
|
|
|
2.3.5 released May 14, 1999
|
|
|
|
- tuning, new helper
|
|
- initialization in src/evaluate_game.c and interface/play_test.c
|
|
|
|
2.3.4 released May 13, 1999
|
|
|
|
- Nils' changes to main.c and src/Makefile.am
|
|
- tuning, joseki revisions, new helper wedge_helper
|
|
|
|
2.3.3 released May 12, 1999
|
|
|
|
- find_weak eschewed in find_defense
|
|
- change to allow build in a directory other than source
|
|
- braces to joseki.c to avoid a warning about dangling else
|
|
- added --testmode game to analyze games and see if it considered the moves
|
|
- added docs/structure.doc describing program structure and APIs
|
|
|
|
2.3.2 released May 12, 1999
|
|
|
|
- missing library files restored in utils/Makefile.am
|
|
- tuning, invasion under hoshi joseki
|
|
- and a cosmetic bug fix in shapes.c.
|
|
- patterns for endgame ko
|
|
- bugfix in double_attack patterns
|
|
|
|
2.3.1 released May 11, 1999
|
|
|
|
- Joseki compiler and beginnings of a Joseki database
|
|
- some tuning
|
|
- Tweak sgf/Makefile.am to write generated sgf_properties to $(srcdir)/
|
|
note : this generates a warning at automake, but I think it is benign.
|
|
- remove the GCC_OPTS from the Makefile.am's, and replace with either
|
|
@GNUGO_SOME_WARNINGS@ or @GNUGO_ALL_WARNINGS@.
|
|
This means we can centralise the choice of which warnings we enable,
|
|
rather than having to duplicate the list of warnings in each component.
|
|
- Add code to configure.in to generate the above. ALL_WARNINGS switches off use
|
|
of // comments (via -Wp,-lang-c89 which runs preprocesser in ansi mode).
|
|
SOME_WARNINGS will do the same once all components have been cleaned up.
|
|
SOME_WARNINGS is intended for code over which we don't have full control (eg gmp.c)
|
|
and so we have to be more liberal in the diagnostics.
|
|
- Removed from the build some of the stuff in utils/ which we do not (currently) use.
|
|
- fixed clear_board() bug that caused segfaults
|
|
- fixed game parameter handling in main() to use interface API
|
|
- updated other interfaces to partially use interface API (no more
|
|
passing from main!)
|
|
- removed // comments where they were not needed
|
|
They stil are in the tt* code, that needs to be revisited!!
|
|
- patched sgfgen to use stdin and stdout- makes things easier
|
|
|
|
2.1.25 released May 10, 1999
|
|
|
|
- added --decidestring option for sgf debugging reading code
|
|
- added regression directory: contains a few example test files
|
|
- added --quiet option
|
|
- added --testmode option: move, annotation, or both
|
|
This allows some flexibility in handling differently annotated files
|
|
- added --infile and --outfile options
|
|
- wrote play_test to handle regression testing
|
|
- wrote sgfgen, a program to translate SGF definitions into a header file
|
|
- added Tommy Thorn's code for SGF parsing and implemented tree parsing
|
|
- updated ASCII interface to rely on interface routines- it works!
|
|
- updated interfaces to handle new 'pass' based on int returned from genmove
|
|
- made genmove return boardsize, boardsize coordinates for pass
|
|
- added interface specification and code-- we now have engine independence!
|
|
- moved all SGF code into sgf directory
|
|
|
|
2.1.23 released May 7, 1999
|
|
|
|
- sgf debugging of reading code (from gdb only in this release)
|
|
|
|
2.1.22 released May 6, 1999
|
|
|
|
- renum target removed from pattern Makefile.am and Makefile.in
|
|
- strategic_distance was being calculated incorrectly
|
|
- revisions to pattern database
|
|
- chainlinks now tabulates the size of adjacent worms in preparation
|
|
to trying to sorting them when stackp<depth
|
|
- split out play_solo() into play_solo.c
|
|
- moved interface routines (play*, gmp*, sgf*) into interfaces/ directory
|
|
- combined play*.h into interface.h
|
|
- renamed 'lib' directory to 'utils' to be consistent with other dir names
|
|
- moved AUTOMAKE.README into docs
|
|
|
|
2.1.21 released May 5, 1999
|
|
|
|
- minor revisions to pattern database
|
|
- adds tests for term.h and curses.h before defing CURSES
|
|
- fixes a typo in helpers.c
|
|
- fixes some hard-wired 18's in make_worms()
|
|
- fixes what I believe to be a bug in scoping in make_worms
|
|
- gratuitously moves some variable declarations around in make_worms
|
|
- moved pattern files to patterns directory
|
|
- pattern files and functions are now linked in as a library: libpatterns
|
|
|
|
2.1.20 released May 5, 1999
|
|
|
|
- configure options
|
|
- main.c: LOAD_AND_ANALYZE mode
|
|
|
|
2.1.19 released May 4, 1999
|
|
|
|
- removed #include "../lib/getopt.h" from play_ascii.c - not needed
|
|
- added some code to better handle config.h to main.c and play_ascii.c
|
|
- added ascii_showboard() before the counting starts, useful after 'play 999'
|
|
- added --mode option to main.c
|
|
- changed how different play modes are started: now using switch()
|
|
- removed -g option: use --mode instead
|
|
- changed MAX_BOARD to 25 in liberty.h: try some bigger games!
|
|
- changed sgf 'pass' to [tt] if boardsize>19, else [] (by SGF standard)
|
|
- changed 'pass' moves to send board_size, board_size to sgf routines
|
|
|
|
2.1.18 released May 3, 1999
|
|
|
|
- play_ascii: playblack and playwhite are recognized as valid commands.
|
|
- play_ascii: Correct use of strtok on Solaris (missing strsep)
|
|
- ascii display and showboard now work as stated in the help command
|
|
- ascii display doesn't draw the board twice if showboard is enabled.
|
|
- ascii force was broken, is no longer.
|
|
- added check for getopt.h to configure.in
|
|
- fixed PLAY in play_ascii: need to check for two passes!
|
|
- prettyfication in main.c: changed strcmp() usage
|
|
- fixed seed printing in sgf.c
|
|
- play_gmp: handicap was not being passed to sgf_write_game_info
|
|
|
|
2.1.17 released May 2, 1999
|
|
|
|
- added counting to ascii interface
|
|
- Gunnar's reshuffled patterns
|
|
- LDFLAGS = $(COLORLIB) in src/Makefile.am and src/Makefile.in
|
|
|
|
2.1.16 released May 1, 1999
|
|
|
|
- further revisions to ascii interface
|
|
|
|
2.1.15 released May 1, 1999
|
|
|
|
- further revisions to play_ascii and sgf.c
|
|
- Gunnar's pattern classification in patterns.db
|
|
- static evaluation of the board position
|
|
|
|
2.1.13 released April 30, 1999
|
|
|
|
- moved all sgf routines into sgf.c
|
|
- changed pass value: from 19, 19 --> board_size, board_size
|
|
- added sgf_open_file() sgf_close_file() and sgf_flush_file() to sgf.c
|
|
- also added sgf_write_line() and sgf_write_game_info()
|
|
- rewrote play_solo to use new sgf routines
|
|
- absolutely no more build errors! (at least on Linux...)
|
|
- renamed ascii.* play_ascii.*
|
|
- moved play_gmp into play_gmp.c and added header file
|
|
- added komi option (doesn't do anything yet, just parses it)
|
|
|
|
2.1.12 released April 29, 1999
|
|
|
|
- finished adding long options
|
|
- color also works now (--handicap and --boardsize have been working)
|
|
- needs a little cleanup with short options- some should become long
|
|
- finished ASCII interface
|
|
- can display any board size up to 25x25
|
|
- has command line options and help
|
|
- enhanced error messages
|
|
- added 'switch' command to switch colors in the middle of play
|
|
|
|
2.1.11 realeased April 29, 1999
|
|
|
|
- Minor changes to the syntax of patterns.db and hey.db as a preparation
|
|
for restructuring of patterns.db. Documentation in PATTERNS updated.
|
|
- moved ascii play code into ascii.c
|
|
- copied showboard code for ascii play into ascii.c (ascii_showboard)
|
|
- updated Makefile.am's to reflect changes
|
|
- removed posix and error.c files from lib dir- not needed
|
|
- added long option parsing; still need to add this to help menu
|
|
- moved PATTERNS, DRAGON and OVERVIEW to /docs
|
|
|
|
2.1.10 released April 28, 1999
|
|
|
|
- incorporated more reorganizational patches
|
|
|
|
2.1.9 released April 28, 1999
|
|
|
|
- Automake-ized (NL)
|
|
- Made code which moves dragon[m][n].borders contingent on !worm[m][n].ko
|
|
- Set TRUST_GRID back to 1.
|
|
|
|
--------------------------------------------------------------
|
|
|
|
This is GNU Go, a Go program. Contact gnugo@gnu.org, or see
|
|
http://www.gnu.org/software/gnugo/ for more information.
|
|
|
|
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
|
and 2008 by the Free Software Foundation.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation - version 3 or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License in file COPYING for more details.
|
|
|
|
You should have received a copy of the GNU General Public
|
|
License along with this program; if not, write to the Free
|
|
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02111, USA.
|