[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