HACKING gnugo -*- org -*- This file is both a guide for newcomers and a todo list for oldstayers. * next *** newbie support ***** "don't panic" button :-D ***** on gnugo.el load, check [[file:gnugo.el::defvar.gnugo-program][gnugo-program]], set "ready" state ***** rat concessions :-/ ***** (?) ootb ‘gnugo-image-display-mode’ in ‘gnugo-start-game-hook’ * fix bugs *** empty tree from many back/forw ***** intermittent, grr ***** manifests as ‘()’ (empty list) in .sgf (on write) *** {next,previous}-line weirdness in the presence of images *** no error-handling in SGF parsing * performance *** ‘compare-strings’ approach too clever/slow :-/ *** cache frolic fruits * ideas / wishlist *** wrap GTP ‘loadsgf’ completely *** revamp image support ***** DONE zonk ‘require’ ***** define simple API *** talk GTP over the network (?) pending [[wrap GTP ‘loadsgf’ completely]] *** make gnugo (the external program) support query (read-only) thread *** extend GNUGO Board mode to manage another subprocess for analysis only *** command to label a position *** SGF tree traversal ***** DONE monkey mind ***** TODO monkey body *** "undo undo undoing" ***** integrate Emacs undo, GTP undo, subgame branching ***** (?) use [[file:../undo-tree/][../undo-tree/]] *** make buffer name format configurable (but enforce uniqueness) *** more tilde escapes for [[file:gnugo.el::defvar.gnugo-mode-line][gnugo-mode-line]] *** make veneration configurable (see also [[SVG display]]) *** animation finery ***** make more configurable ***** lift same-color-stones-only restriction ***** allow sequencing rather than lock-step ***** include sound *** plunder el-go (grok [[info:eieio.info][EIEIO]] first) ***** SVG display pending [[revamp image support]] ***** (?) SGF support ******* IR compat ******* error handling ***** (?) other "backends" pending [[talk GTP over the network]] *** [your hacking ideas here!] * tested with (newest first) | Emacs | GNU Go | |-----------+--------| | 26.0.50.6 | 3.8 | | 24.3.50.3 | 3.8 | | ? | 3.6 | | ? | 3.4 | | ? | 3.3.15 | | 22.0.50 | ? | | 21.3 | ? | |-----------+--------| | | | * ChangeLog discipline *** based on [[info:standards#Change%20Logs][GNU Coding Standards]] *** commit-message format ***** basic: TITLE LF LF [DISCUSSION...] LF LF CLASSIC ***** short: TITLE-FRAGMENT "; nfc." [LF LF DISCUSSION...] *** don't bother w/ ChangeLog for "short" commit-message format * copyright policy *** update every year, unconditionally *** (if (< 2 (- END BEGIN)) RANGE INDIVIDUAL) * other conventions: see [[file:.dir-locals.el][.dir-locals.el]] * NEWS nostalgia (with-current-buffer (find-file "NEWS") (highlight-phrase "[0-9][.][0-9][.][0-9]+\\|[0-9]+[.][.][0-9]+" 'hi-red-b)) * etc #+odd Copyright (C) 2014-2020 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.