Subject: Re: Performance tuning From: Erik Naggum <erik@naggum.net> Date: 2000/12/07 Newsgroups: comp.lang.lisp Message-ID: <3185215881931249@naggum.net> * Tim Bradshaw <tfb@tfeb.org> | Surely the semantic change is somnething like: | | (defun foo (x) | (declare (type integer x)) | (let ((y x)) | ;; if X is a bignum then Y is a pointer to X, if X is a fixnum then | ;; Y is a copy of X (probably?) | (bar y) | ;; right now this is true. if DPB modifies bignums it will be | ;; true only if y was odd. | (= x y))) | | (defun bar (y) | (declare (type integer y)) | (dpb 1 (byte 1 0) y)) Well, I _had_ hoped to see semething a tad less contrived, as this is bad style on so many counts that I'm likely to believe nobody has done anything like this that would cause a _change_ in observable behavior. To find a change in semantics, you would at least have to find something that people do today with dpb (or setf of ldb). But at worst, we could define a destructive version of dpb, which would be pretty easy to write even today. #:Erik -- "When you are having a bad day and it seems like everybody is trying to piss you off, remember that it takes 42 muscles to produce a frown, but only 4 muscles to work the trigger of a good sniper rifle." -- Unknown