Opened 11 years ago

#90 new enhancement

resetSpecialBindings efficiency

Reported by: ehuelsmann Owned by: ehuelsmann
Priority: major Milestone: unscheduled
Component: compiler Version:
Keywords: Cc:
Parent Tickets:

Description

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.

Attachments (1)

ticket-90.patch (11.7 KB) - added by ehuelsmann 10 years ago.
Patch implementing a solution

Download all attachments as: .zip

Change History (1)

Changed 10 years ago by ehuelsmann

Attachment: ticket-90.patch added

Patch implementing a solution

Note: See TracTickets for help on using tickets.