[armedbear-ticket] [armedbear] #90: resetSpecialBindings efficiency

armedbear armedbear-devel at common-lisp.net
Sat Mar 27 20:53:51 UTC 2010


#90: resetSpecialBindings efficiency
-------------------------+--------------------------------------------------
 Reporter:  ehuelsmann   |       Owner:  ehuelsmann 
     Type:  enhancement  |      Status:  new        
 Priority:  major        |   Milestone:  unscheduled
Component:  compiler     |     Version:             
 Keywords:               |  
-------------------------+--------------------------------------------------
 The code

 {{{
 (PROGN
   (DEFVAR *X*)
   (DEFUN F (*X*)
      (LET (*X*)
        (PRINT "OK"))))
 }}}

 will compile 2 specials-restoring blocks after the PRINT form: one for LET
 and one for the function argument list.

 If the function indicated to the body that it would be clearing the
 specials, the LET form could skip that action (being the last form in the
 body), reducing the number of CATCH/THROWs in case of non-local exits and
 the number of resetSpecialBindings() calls in case of normal exits.

-- 
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/90>
armedbear <http://common-lisp.net/project/armedbear>
armedbear


More information about the armedbear-ticket mailing list