[developers] [spr31181] closure change in ACL 8.0 (from 6.2)?

David Margolies dm at franz.com
Fri Feb 10 19:06:10 CET 2006

I response to you question about problems with closures, I wrote:

    moving from 7.0 to 8.0, i noticed the following now breaks:

      (eval-when #+:ansi-eval-when (:load-toplevel :compile-toplevel :execute)
		 #-:ansi-eval-when (load eval compile)
	(let ((n -1))
	  (defun reset-failure-count () 
	    (setf n -1))

	  (defstruct failure
	    (id (incf n))
	    nature type1 type2 glb path suffix context)))

    the `failure' constructor apparently closured `n' in the past and now
    no longer does.  i admit i have yet to look up the ANSI spec on this,
    in  fact was hoping you could tell me.  either way, i felt you should
    consider adding an entry on it in section 6.2 of the release notes.

  Could you send us a transcript (use dribble-bug if possible) showing
  the compilation/loading/and execution of this code.

  (The dribble-bug will include the output of print-system-state.  If
  you do not use dribble-bug, could you send us that output separately.)

I do not believe I have heard more from you on this.  (If you sent
more information and I somehow missed it, could you please send it
again mentioning spr31181 in the subject line.)


David Margolies
Franz Inc.

More information about the developers mailing list