Edi Weitz [edi@agharta.de] wrote:
On Tue, 8 Mar 2005 10:52:47 -0600, Kick Damien-DKICK1 DKICK1@motorola.com wrote:
Personally, I still would like to know of an easy way to change these settings.
Me too. If there's a simple idiom for this I'll be happy to incorporate it into CL-PPCRE.
Well, I suppose that something like the following might be a step in the right direction.
(defun f (x y) (+ x y)) (defun g (x y z) (+ x y z)) (locally (declare (optimize speed (safety 0) (debug 0))) (defun f* (x y) (declare (fixnum x y) (values fixnum)) (+ x y)) (defun g* (x y z) (declare (fixnum x y z) (values fixnum)) (+ x y z)))
One still has to crank up Emacs to recompile with a different setting but at least one can effect many defuns by making a change in one place. I suppose that one would have to do something like the following to allow one to make such a change without having to use Emacs.
;; keywords seem to be the easiest to "parse" (defmacro equivocally ((&whole values) &body forms) ...) (equivocally (:speed *cl-ppcre-speed-declaration-setting* :debug *cl-ppcre-debug-declaration-setting*) (defun frobnicate (frob) (equivocate (optimize speed debug)) (twiddle (this frob))))
EQUIVOCALLY would have to be a macro that would walk the code, looking for EQUIVOCATE forms, substituting an equivalent DECLARE with the values from the forms used in the EQUIVOCALLY form in place of the EQUIVOCATE.
-- Damien Kick
cl-ppcre-devel@common-lisp.net