[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnugo fda0ca5 130/357: [gnugo int] Move precise fanout
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnugo fda0ca5 130/357: [gnugo int] Move precise fanout computation to "breathe in". |
Date: |
Sun, 29 Nov 2020 14:51:05 -0500 (EST) |
branch: externals/gnugo
commit fda0ca5274fc38b61c58706386b01b90020762b0
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>
[gnugo int] Move precise fanout computation to "breathe in".
* packages/gnugo/gnugo.el (gnugo-frolic-in-the-leaves link):
Use ‘pushnew’; push the node's branch number directly.
(gnugo-frolic-in-the-leaves): Check for continuation node
prior to appending ‘acc’; link it only on non-empty ‘acc’;
in "breathe out", accumulate into ‘forks’ directly.
---
gnugo.el | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
diff --git a/gnugo.el b/gnugo.el
index a953a5c..1ec7b24 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -774,21 +774,23 @@ are dimmed. The buffer is in View minor mode."
(loop
for bx below width
do (loop
- with (bef acc node fork cur)
+ with (acc node fork)
for ls on (aref ends bx)
do (if (setq node (car ls)
fork (on node))
(cl-flet
((link (other)
- (push other (gethash node soil))))
- (let ((move-num (gethash node mnum)))
- ;; ugh, wasteful
- (when (setq bef (copy-sequence (aref eert fork)))
- (setcdr (nthcdr (1- move-num) bef)
- acc))
+ (pushnew other (gethash node soil))))
+ (let* ((move-num (gethash node mnum))
+ (bef (copy-sequence (aref eert fork)))
+ (cur (nthcdr (1- move-num) bef))
+ (cont (cdr cur)))
+ (setcdr cur acc)
(aset eert bx (or bef acc))
(when acc
- (link (car acc)))))
+ (when cont
+ (link fork))
+ (link bx))))
(puthash node bx seen)
(when (gnugo--move-prop node)
(push node acc)))
@@ -823,15 +825,9 @@ are dimmed. The buffer is in View minor mode."
(s (cond ((not node) "")
((not (setq move (gnugo--move-prop node))) "-")
(t (funcall as-pos (cdr move))))))
- ;; todo: move this into "breathe in"
(when (and ok (setq br (gethash node soil)))
- (setq br (delq bx (mapcar #'on br)))
- (when (and br (car (aref eert bx)))
- (push bx br))
- ;; do not point w/ a fist
- (when br
- (push (cons bx (sort br '<))
- forks)))
+ (push (cons bx (sort br '<))
+ forks))
(fsi " %-5s"
(cond ((and (eq at node)
(or ok (= bx bidx)))
- [elpa] externals/gnugo eaaa7c8 102/357: [gnugo int] Invert gametree IR to hang by the leaves., (continued)
- [elpa] externals/gnugo eaaa7c8 102/357: [gnugo int] Invert gametree IR to hang by the leaves., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo ed11a74 101/357: [gnugo int] Embrace (NODE[...] [SUBTREE...]) IR, for now., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo b7843bf 103/357: [gnugo maint] Move hi-lock hint from NEWS to HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo ae888ba 105/357: [gnugo] Add command ‘gnugo-oops’ and keybinding., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 2c5e356 107/357: [gnugo maint] Add some debugging aids to HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a708759 110/357: [gnugo int] Use ‘cl-labels’ less., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a35f657 115/357: [gnugo] Support SGF[4] parsing from string data., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 3d8db48 119/357: [gnugo] Declare dependency on ‘ascii-art-to-unicode’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 4b866c7 127/357: [gnugo int] Avoid lower move-num candidates in déjà-vu search., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 5b51e4f 129/357: [gnugo int] Decruft: Consolidate "breathe in" loops., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo fda0ca5 130/357: [gnugo int] Move precise fanout computation to "breathe in".,
Stefan Monnier <=
- [elpa] externals/gnugo cbf99df 131/357: [gnugo int] Insert frolic xrep starting w/ the leaves., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 5c87b11 141/357: [gnugo frolic int] Use ‘move-to-column’ more., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo d62412f 144/357: [gnugo int] Add abstraction: gnugo--move-to-bcol, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 4680536 143/357: [gnugo int] Fix bug: Unbreak SGF file output., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 806a2f2 133/357: [gnugo] Add some navigation commands for GNUGO Frolic mode., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo c6795aa 140/357: [gnugo frolic int] Assign ‘pop’ rv to avoid byte-compiler warning., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 13c8f82 149/357: [gnugo frolic] Doc fix., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo de40b22 152/357: [gnugo int] Move vectorization into ‘gnugo--set-tree-ends’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo e8833a9 161/357: [gnugo int] Fix syntax error in ‘loop’ destructuring., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 3e3fbea 155/357: [gnugo sgf] Fix bug: Preserve whitespace for ‘text’ values., Stefan Monnier, 2020/11/29