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
1 patch for repository http://common-lisp.net/project/iterate/darcs/iterate: Tue May 8 14:51:07 EDT 2012 Russ Tyndall <r...@acceleration.net> * added a restart to remove conflicting clauses New patches: [added a restart to remove conflicting clauses Russ Tyndall <r...@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.lend...@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.lend...@gmail.com**20110119161133 Ignore-this: 97545988c4a3eab02434f222120b1a1 ] [added bug/walk.2 attila.lend...@gmail.com**20100603093335 Ignore-this: faa1bd48d0450e76652552bb47bcff02 ] [first-time-p bugfix: return-code :body must return list of forms Joerg-Cyril Hoehle <hoe...@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 <hoe...@users.sourceforge.net>**20070525081443] [Use @:, @. and two spaces between sentences Joerg-Cyril Hoehle <hoe...@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 <hoe...@users.sourceforge.net>**20070525074338] [Renamed back to sharpL-reader attila.lend...@gmail.com**20070506100744] [Fix sharpL reader, add :execute to the eval-when to make (load "iterate" :compiling t) work on clisp attila.lend...@gmail.com**20070506100704] [Convert manual to Texinfo. Luis Oliveira <lolive...@common-lisp.net>**20060713142915] [make FOR...IN/ON with dotted lists work like LOOP hoe...@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 <hoe...@users.sourceforge.net>**20070503095309] [walk-tagbody must not macroexpand symbol/tags among its statements Joerg-Cyril Hoehle <hoe...@users.sourceforge.net>**20070404124132] [add ELSE test cases, remove GNU Arch tag Joerg-Cyril Hoehle <hoe...@users.sourceforge.net>**20070503093008] [Clean up #L stuff, do not leave #L enabled after loading iterate attila.lend...@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.lend...@gmail.com**20070215151652] [wrap code in progns, to avoid possiblity of multiple nil tags in tagbody Henrik Hjelte <hen...@evahjelte.com>**20061025145324] [test to detect bug, more than one nil tag in tagbody Henrik Hjelte <hen...@evahjelte.com>**20061025145128] [Added release.sh attila.lend...@gmail.com**20060506155953] [TAG 1.4.3 attila.lend...@gmail.com**20060505134701] Patch bundle hash: b69e87f03a598d024f7e1693f4fca6ce749db740
_______________________________________________ iterate-devel site list iterate-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/iterate-devel