[iterate-devel] small feature request w/ patch

Ryan Davis ryan at acceleration.net
Wed Jan 2 20:50:17 UTC 2013


I'm trying to organize my workplace lisp libraries (from a cobble of
source checkouts and asdf-installed stuff), and we had a small patch to
iterate that I'd like in the mainline so we can consume iterate via
quicklisp.

It adds a new restart in #'ambiguity-check-clause to delete one of the
clauses to resolve the ambiguity. This has been very helpful when
developing and debugging new iterate drivers, and I don't think it has
any other relevant effects.

Attached is a dpatch created with `darcs send -O`, but if that doesn't
work here's the diff:

diff -rN old-iterate/iterate.lisp new-iterate/iterate.lisp
1322c1322,1323
<       (error "Iterate: Inserting clause ~a would create ~
---
>       (restart-case
>             (error "Iterate: Inserting clause ~a would create ~
1324c1325,1328
<              kw1 kw2))))
---
>                    kw1 kw2)
>           (delete-conflict ()
>             :report "Delete the original clause"
>             (remove-clause kw2))))))


Thanks,

-- 
Ryan Davis
Acceleration.net
Director of Programming Services
2831 NW 41st street, suite B
Gainesville, FL 32606

Office: 352-335-6500 x 124
Fax: 352-335-6506

-------------- next part --------------
1 patch for repository http://common-lisp.net/project/iterate/darcs/iterate:

Tue May  8 14:51:07 EDT 2012  Russ Tyndall <russ at acceleration.net>
  * added a restart to remove conflicting clauses

New patches:

[added a restart to remove conflicting clauses
Russ Tyndall <russ at acceleration.net>**20120508185107
 Ignore-this: b7c4c6eec565dd435b8e9e5403fcb0a8
] {
hunk ./iterate.lisp 1322
 	    (kw2 (clause-info-keywords ci2)))
 	(if (= insert-n 2)
 	    (rotatef kw1 kw2))
-	(error "Iterate: Inserting clause ~a would create ~
+	(restart-case
+            (error "Iterate: Inserting clause ~a would create ~
   an ambiguity with clause ~a"
hunk ./iterate.lisp 1325
-	       kw1 kw2))))
+                   kw1 kw2)
+          (delete-conflict ()
+            :report "Delete the original clause"
+            (remove-clause kw2))))))
 
 
 (defun ambiguous-clauses? (ci1 ci2)
}

Context:

[fix package nickname in case sensitive mode
attila.lendvai at gmail.com**20110927152614
 Ignore-this: fb1ba1d418b4a20a0cd4e697d943a0e6
] 
[move list-of-forms? out of the #L eval-when, because it's also used by other parts of iterate
attila.lendvai at gmail.com**20110119161133
 Ignore-this: 97545988c4a3eab02434f222120b1a1
] 
[added bug/walk.2
attila.lendvai at gmail.com**20100603093335
 Ignore-this: faa1bd48d0450e76652552bb47bcff02
] 
[first-time-p bugfix: return-code :body must return list of forms
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070525141533
 if-first-time not declared obsolete
 documentation strings for (iter:display-iterate-clauses) complete
] 
[fix defmacro-driver example in manual
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070525081443] 
[Use @:, @. and two spaces between sentences
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070525080932
 Move section on predicate (first-time-p) outside of gathering clauses
 Various typos and some clarifications
] 
[document *list-end-test* removal in FOR...IN+ON
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070525074338] 
[Renamed back to sharpL-reader
attila.lendvai at gmail.com**20070506100744] 
[Fix sharpL reader, add :execute to the eval-when to make (load "iterate" :compiling t) work on clisp
attila.lendvai at gmail.com**20070506100704] 
[Convert manual to Texinfo.
Luis Oliveira <loliveira at common-lisp.net>**20060713142915] 
[make FOR...IN/ON with dotted lists work like LOOP
hoehle at users.sourceforge.net**20070503130604
 More precisely, FOR ON accepts dotted lists, FOR IN errors out.
 As a result, iterate::*list-end-test* was eliminated.
 Behaviour is now constant and does not depend on some special variable.
 Note: Documentation not yet updated, pending move to Texinfo.
] 
[walk-tagbody: more testcases
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070503095309] 
[walk-tagbody must not macroexpand symbol/tags among its statements
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070404124132] 
[add ELSE test cases, remove GNU Arch tag
Joerg-Cyril Hoehle <hoehle at users.sourceforge.net>**20070503093008] 
[Clean up #L stuff, do not leave #L enabled after loading iterate
attila.lendvai at gmail.com**20070426153431] 
[Set *list-end-test* to 'endp instead of 'atom, so (iter (for foo :in something-non-list)) fails instead of silently exists
attila.lendvai at gmail.com**20070215151652] 
[wrap code in progns, to avoid possiblity of multiple nil tags in tagbody
 Henrik Hjelte <henrik at evahjelte.com>**20061025145324] 
[test to detect bug, more than one nil tag in tagbody
 Henrik Hjelte <henrik at evahjelte.com>**20061025145128] 
[Added release.sh
attila.lendvai at gmail.com**20060506155953] 
[TAG 1.4.3
attila.lendvai at gmail.com**20060505134701] 
Patch bundle hash:
b69e87f03a598d024f7e1693f4fca6ce749db740


More information about the iterate-devel mailing list