#(#! (lisp::in-package :iterate :use (lisp::quote (:lisp :walker)))#! (lisp::export (lisp::quote (iterate::iterate iterate::iterate* iterate::gathering iterate::gather iterate::with-gathering iterate::interval iterate::elements iterate::list-elements iterate::list-tails iterate::plist-elements iterate::eachtime iterate::while iterate::until iterate::collecting iterate::joining iterate::maximizing iterate::minimizing iterate::summing iterate::*iterate-warnings*))) #(lisp::block lisp::let* lisp::loop lisp::multiple-value-setq lisp::funcall lisp::function lisp::lambda lisp::return-from iterate::*iterate-temp-vars-list* "Variable appears more than once in ITERATE: ~S" "Bad syntax in ITERATE: clause not of form (var iterator): ~S" "Probable parenthesis error in ITERATE clause--more than 2 elements: ~S" iterate::iterate :abort :definition "Could not optimize iterate clause ~S because generator not of form (LET[*] ... (FUNCTION (LAMBDA (finish) ...)))" :user "Iterate operator in clause ~S is not fboundp." lisp::let lisp::declare lisp::progn lisp::type lisp::eql (iterate::generator) (lisp::nil) lisp::nil "Couldn't optimize ~S because expansion of ~S binds specials ~(~S ~)" "Couldn't optimize iterate form because generator ~S does something with its FINISH arg besides FUNCALL it." "Couldn't optimize iterate form because generator ~S is closed over ~S, in conflict with a subsequent iteration variable." "Generator for ~S applied its finish arg to > 0 arguments ~S--ignored." lisp::special lisp::values lisp::setq lisp::prog1 iterate::*iterate-warnings* "Can't use both FROM and DOWNFROM in ~S" "Can't use more than one limit keyword in ~S" iterate::from iterate::to lisp::by (iterate::to) (lisp::by) (iterate::finish) ((lisp::declare (lisp::ignore iterate::finish))) lisp::if lisp::> lisp::< lisp::>= lisp::<= (iterate::from iterate::to) (iterate::from (lisp::funcall iterate::finish)) lisp::- lisp::+ (lisp::function lisp::cdr) iterate::tail (iterate::finish) (lisp::if (lisp::endp iterate::tail) (lisp::funcall iterate::finish) (lisp::first iterate::tail)) (lisp::function lisp::cdr) (iterate::finish) (lisp::if (lisp::endp iterate::tail) (lisp::funcall iterate::finish) iterate::tail) lisp::the lisp::elt lisp::list (iterate::index 0) iterate::s ((iterate::size (lisp::length iterate::s))) (iterate::finish) lisp::cond ((lisp::not (lisp::endp iterate::s)) (lisp::pop iterate::s)) (lisp::< iterate::index iterate::size) (iterate::s iterate::index) (lisp::t (lisp::funcall iterate::finish)) (lisp::prog1 iterate::index (lisp::setq iterate::index (lisp::1+ iterate::index))) (lisp::function (lisp::lambda (iterate::finish) (lisp::values (lisp::if (lisp::endp iterate::tail) (lisp::funcall iterate::finish) (lisp::first iterate::tail)) (lisp::prog1 (lisp::if (lisp::endp (lisp::setq iterate::tail (lisp::cdr iterate::tail))) (lisp::funcall iterate::finish) (lisp::first iterate::tail)) (lisp::setq iterate::tail (lisp::cdr iterate::tail)))))) lisp::aref lisp::svref lisp::char lisp::schar lisp::bit lisp::sbit (iterate::finish) (lisp::declare (lisp::ignore iterate::finish)) (iterate::finish) lisp::unless (lisp::funcall iterate::finish) (iterate::finish) lisp::when (lisp::funcall iterate::finish) lisp::multiple-value-bind iterate::gathering iterate::*anonymous-gathering-site* lisp::multiple-value-call lisp::flet ((iterate::gather (iterate::value lisp::&optional (iterate::accumulator iterate::*anonymous-gathering-site*)) (lisp::funcall iterate::accumulator iterate::value))) "Couldn't optimize GATHERING clause ~S because its expansion carries declarations about more than the bound variables: ~S" "Couldn't optimize GATHERING clause ~S because its expansion is not of the form (VALUES #'(LAMBDA ...) #'(LAMBDA () ...))" lisp::multiple-value-list lisp::cadr iterate::*active-gatherers* iterate::gather "Can't optimize GATHERING because of reference to #'GATHER." "Extra arguments (> 2) in ~S discarded." lisp::car "Can't optimize GATHERING because the expansion closes over the variable ~S, which is rebound around a GATHER for it." "There is no gathering site specified in ~S." "The site ~S in ~S is not defined in an enclosing GATHERING form." iterate::%orphaned-gather "Can't optimize GATHERING because site variable ~S is used outside of a GATHER form." iterate::head (lisp::last iterate::head) (lisp::values (lisp::function (lisp::lambda (iterate::value) (lisp::if (lisp::null iterate::head) (lisp::setq iterate::head (lisp::setq iterate::tail (lisp::list iterate::value))) (lisp::setq iterate::tail (lisp::cdr (lisp::rplacd iterate::tail (lisp::list iterate::value))))))) (lisp::function (lisp::lambda lisp::nil iterate::head))) iterate::result (lisp::values (lisp::function (lisp::lambda (iterate::value) (lisp::setq iterate::result (lisp::nconc iterate::result iterate::value)))) (lisp::function (lisp::lambda lisp::nil iterate::result))) (iterate::value) (lisp::> iterate::value iterate::result) (lisp::or (lisp::null iterate::result) (lisp::> iterate::value iterate::result)) (lisp::setq iterate::result iterate::value) (lisp::function (lisp::lambda lisp::nil iterate::result)) (iterate::value) (lisp::< iterate::value iterate::result) (lisp::or (lisp::null iterate::result) (lisp::< iterate::value iterate::result)) (lisp::setq iterate::result iterate::value) (lisp::function (lisp::lambda lisp::nil iterate::result)) iterate::sum (lisp::values (lisp::function (lisp::lambda (iterate::value) (lisp::setq iterate::sum (lisp::+ iterate::sum iterate::value)))) (lisp::function (lisp::lambda lisp::nil iterate::sum))) iterate::optimize-iterate-form lisp::warn iterate::expand-into-let iterate::function-lambda-p iterate::maybe-warn iterate::rename-let-bindings iterate::parse-declarations iterate::iterate-transform-body iterate::mv-setq lisp::nil lisp::find-if iterate::variables-from-let iterate::extract-special-bindings walker::variable-globally-special-p walker::walk-form lisp::inline lisp::notinline lisp::optimize lisp::intersection lisp::set-difference lisp::remove-if-not lisp::union iterate::rename-variables walker::variable-lexical-p :from :downfrom :to :downto :above :below :by :type lisp::remove iterate::sequence-accessor lisp::array lisp::simple-array lisp::vector lisp::simple-vector lisp::string lisp::simple-string lisp::bit-vector lisp::simple-bit-vector iterate::optimize-gathering-form iterate::simple-expand-gathering-form lisp::second iterate::rename-and-capture-variables iterate::walk-gathering-body :initial-value iterate::variable-same-p walker::variable-special-p (system::%init . #((system::setvv 134 (system::mc lisp::nil 34)) (system::*make-special (lisp::quote iterate::*iterate-warnings*)) (system::putprop (lisp::quote iterate::*iterate-warnings*) "Controls whether warnings are issued for iterate/gather forms that aren't optimized. NIL => never; :USER => those resulting from user code; T => always, even if it's the iteration macro that's suboptimal." #0=(lisp::quote system::variable-documentation)) (lisp::or (lisp::boundp (lisp::quote iterate::*iterate-warnings*)) (lisp::setq iterate::*iterate-warnings* :any)) (system::putprop (lisp::quote iterate::iterate) (lisp::quote 1) #1=(lisp::quote system::pretty-print-format)) (system::mm (lisp::quote iterate::iterate) 0) (system::mfsfun (lisp::quote iterate::simple-expand-iterate-form) 1 2) (system::*make-special (lisp::quote iterate::*iterate-temp-vars-list*)) (system::putprop (lisp::quote iterate::*iterate-temp-vars-list*) "Temp var names used by ITERATE expansions." (lisp::quote system::variable-documentation)) (lisp::setq iterate::*iterate-temp-vars-list* (lisp::quote (iterate::iterate-temp-1 iterate::iterate-temp-2 iterate::iterate-temp-3 iterate::iterate-temp-4 iterate::iterate-temp-5 iterate::iterate-temp-6 iterate::iterate-temp-7 iterate::iterate-temp-8))) (system::mfsfun (lisp::quote iterate::optimize-iterate-form) 2 3) (system::setvv 25 lisp::lambda-list-keywords) (system::mf (lisp::quote iterate::expand-into-let) 3) (system::mfsfun (lisp::quote iterate::variables-from-let) 4 1) (system::mf (lisp::quote iterate::iterate-transform-body) 5) (system::mf (lisp::quote iterate::parse-declarations) 6) (system::mfsfun (lisp::quote iterate::extract-special-bindings) 7 2) (system::mfvfun (lisp::quote iterate::function-lambda-p) 8 513) (system::mf (lisp::quote iterate::rename-let-bindings) 9) (system::mf (lisp::quote iterate::rename-variables) 10) (system::mfsfun (lisp::quote iterate::mv-setq) 11 2) (system::mfsfun (lisp::quote iterate::variable-same-p) 12 3) (system::mfvfun (lisp::quote iterate::maybe-warn) 13 16385) (system::mm (lisp::quote iterate::interval) 14) (system::mm (lisp::quote iterate::list-elements) 15) (system::mm (lisp::quote iterate::list-tails) 16) (system::putprop (lisp::quote iterate::elements) "Generates successive elements of SEQUENCE, with second value being the index. Use (ELEMENTS (THE type arg)) if you care about the type." #2=(lisp::quote system::function-documentation)) (system::mm (lisp::quote iterate::elements) 17) (system::putprop (lisp::quote iterate::plist-elements) "Generates each time 2 items, the indicator and the value." #2#) (system::mm (lisp::quote iterate::plist-elements) 18) (system::mfsfun (lisp::quote iterate::sequence-accessor) 19 1) (system::mm (lisp::quote iterate::eachtime) 20) (system::mm (lisp::quote iterate::while) 21) (system::mm (lisp::quote iterate::until) 22) (system::putprop (lisp::quote iterate::gathering) (lisp::quote 1) #1#) (system::mm (lisp::quote iterate::gathering) 23) (system::putprop (lisp::quote iterate::with-gathering) "Binds the variables specified in CLAUSES to the result of (GATHERING clauses gather-body) and evaluates the forms in USE-BODY inside that contour." #2#) (system::putprop (lisp::quote iterate::with-gathering) (lisp::quote 2) #1#) (system::mm (lisp::quote iterate::with-gathering) 24) (system::mfsfun (lisp::quote iterate::simple-expand-gathering-form) 25 3) (system::*make-special (lisp::quote iterate::*active-gatherers*)) (system::putprop (lisp::quote iterate::*active-gatherers*) "List of GATHERING bindings currently active during macro expansion)" #0#) (lisp::or (lisp::boundp (lisp::quote iterate::*active-gatherers*)) (lisp::setq iterate::*active-gatherers* lisp::nil)) (system::*make-special (lisp::quote iterate::*anonymous-gathering-site*)) (system::putprop (lisp::quote iterate::*anonymous-gathering-site*) "Variable used in formal expansion of an abbreviated GATHERING form (one with anonymous gathering site)." #0#) (lisp::or (lisp::boundp (lisp::quote iterate::*anonymous-gathering-site*)) (lisp::setq iterate::*anonymous-gathering-site* lisp::nil)) (system::mfsfun (lisp::quote iterate::optimize-gathering-form) 26 3) (system::mfsfun (lisp::quote iterate::rename-and-capture-variables) 27 3) (system::mf (lisp::quote iterate::walk-gathering-body) 28) (system::mm (lisp::quote iterate::collecting) 29) (system::mm (lisp::quote iterate::joining) 30) (system::mm (lisp::quote iterate::maximizing) 31) (system::mm (lisp::quote iterate::minimizing) 32) (system::mm (lisp::quote iterate::summing) 33) (system::sputprop (lisp::quote lisp::prog1) (lisp::quote walker::walker-template) (lisp::quote (lisp::nil lisp::return walker::repeat (lisp::eval)))) (system::debug (lisp::quote iterate::simple-expand-iterate-form) (lisp::quote (iterate::block-name iterate::bound-var-lists iterate::generator-vars))) (system::debug (lisp::quote iterate::optimize-iterate-form) (lisp::quote (iterate::temp-vars iterate::block-name iterate::finish-form iterate::bound-vars lisp::nil iterate::clause iterate::vars #:g1876))) (system::debug (lisp::quote iterate::expand-into-let) (lisp::quote (iterate::clause iterate::parent-name iterate::env))) (system::debug (lisp::quote iterate::iterate-transform-body) (lisp::quote (iterate::let-body iterate::iterate-env iterate::renamed-vars iterate::finish-arg iterate::finish-form iterate::bound-vars iterate::clause))) (system::debug (lisp::quote iterate::parse-declarations) (lisp::quote (iterate::tail iterate::locals iterate::vars iterate::l #:g1891))) (system::debug (lisp::quote iterate::extract-special-bindings) (lisp::quote (iterate::d))) (system::debug (lisp::quote iterate::function-lambda-p) (lisp::quote (iterate::form iterate::nargs))) (system::debug (lisp::quote iterate::rename-let-bindings) (lisp::quote (iterate::let-bindings iterate::binding-type iterate::env iterate::leftover-body iterate::tempvarfn lisp::nil lisp::nil #:g1899))) (system::debug (lisp::quote iterate::rename-variables) (lisp::quote (iterate::form iterate::alist iterate::env))) (system::debug (lisp::quote iterate::maybe-warn) (lisp::quote (lisp::type iterate::warn-args))) (system::debug (lisp::quote iterate::optimize-gathering-form) (lisp::quote (#:g1938 iterate::clause iterate::acc-var #:g1941))) (system::debug (lisp::quote iterate::rename-and-capture-variables) (lisp::quote (iterate::env iterate::alist iterate::closed))) (system::debug (lisp::quote iterate::walk-gathering-body) (lisp::quote (iterate::body iterate::gathering-env iterate::acc-info lisp::nil iterate::*active-gatherers*)))))) )