From: o.jasper on
I agree that it is easy to deal with.. Just something to take into
account in the future.. Does the workarounds like (let ((i i))..) and
such optimize out with the current implementations when it doesn't
matter? Seems to me like in many cases it probably (sh)would. The
workaround itself could have sideeffects in some cases too, though:
(defmacro settable-dolist ((el list &optional return) &body)
(with-gensyms (iter)
`(do ((,iter ,list (cdr ,iter))) ((null ,iter) ,return)
(symbol-macrolet ((,el (car ,iter))) ,@body))))
If you build the workaround on el, it wouldn't be settable anymore. It
would if the workaround was applied to iter.
From: o.jasper on
I agree that it is easy to deal with.. Just something to take into
account in the future.. Does the workarounds like (let ((i i))..) and
such optimize out with the current implementations when it doesn't
matter? Seems to me like in many cases it probably (sh)would. The
workaround itself could have sideeffects in some cases too, though:
(defmacro settable-dolist ((el list &optional return) &body)
(with-gensyms (iter)
`(do ((,iter ,list (cdr ,iter))) ((null ,iter) ,return)
(symbol-macrolet ((,el (car ,iter))) ,@body))))
If you build the workaround on el, it wouldn't be settable anymore. It
would if the workaround was applied to iter.
From: o.jasper on
I agree that it is easy to deal with.. Just something to take into
account in the future.. Does the workarounds like (let ((i i))..) and
such optimize out with the current implementations when it doesn't
matter? Seems to me like in many cases it probably (sh)would. The
workaround itself could have sideeffects in some cases too, though:
(defmacro settable-dolist ((el list &optional return) &body)
(with-gensyms (iter)
`(do ((,iter ,list (cdr ,iter))) ((null ,iter) ,return)
(symbol-macrolet ((,el (car ,iter))) ,@body))))
If you build the workaround on el, it wouldn't be settable anymore. It
would if the workaround was applied to iter.
From: o.jasper on
I agree that it is easy to deal with.. Just something to take into
account in the future.. Does the workarounds like (let ((i i))..) and
such optimize out with the current implementations when it doesn't
matter? Seems to me like in many cases it probably (sh)would. The
workaround itself could have sideeffects in some cases too, though:
(defmacro settable-dolist ((el list &optional return) &body)
(with-gensyms (iter)
`(do ((,iter ,list (cdr ,iter))) ((null ,iter) ,return)
(symbol-macrolet ((,el (car ,iter))) ,@body))))
If you build the workaround on el, it wouldn't be settable anymore. It
would if the workaround was applied to iter.
From: o.jasper on
I agree that it is easy to deal with.. Just something to take into
account in the future.. Does the workarounds like (let ((i i))..) and
such optimize out with the current implementations when it doesn't
matter? Seems to me like in many cases it probably (sh)would. The
workaround itself could have sideeffects in some cases too, though:
(defmacro settable-dolist ((el list &optional return) &body)
(with-gensyms (iter)
`(do ((,iter ,list (cdr ,iter))) ((null ,iter) ,return)
(symbol-macrolet ((,el (car ,iter))) ,@body))))
If you build the workaround on el, it wouldn't be settable anymore. It
would if the workaround was applied to iter.
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5
Prev: optimize, inline, oh my (questions)
Next: ITA may be sold