From: o.jasper on 24 Apr 2010 07:42 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 24 Apr 2010 07:42 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 24 Apr 2010 07:42 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 24 Apr 2010 07:43 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 24 Apr 2010 07:43 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 |