Implementation of LET with special variables

From: Ari Johnson (ari_j_at_hotmail.com)
Date: 05/31/04


Date: Mon, 31 May 2004 11:03:58 -0700

I'm understanding more and more how CL implementations work, but I am
wondering if they handle the following more efficiently than I can come
up with off-hand:

(defvar a)
(setq a 0)
(let ((a 1)) ...)

The best implementation I can come up with makes the LET look like this:
enter: 1. (push (symbol-value 'a))
        2. (setf (symbol-value 'a) 2)
        3. Let block forms
exit: 4. (setf (symbol-value 'a) (pop))

Thanks in advance.