[Openmcl-devel] Strange compiler bug in 1.7-dev-r14406M-trunk

Ron Garret ron at flownet.com
Sat Apr 16 10:57:27 PDT 2011


Try updating your CCL.  Whatever was causing this has apparently been fixed for quite a while:

Welcome to Clozure Common Lisp Version 1.7-dev-r14674M-trunk  (DarwinX8664)!
? (defun parse-rayfield-line ()
	   (let ((style-features ()))
	     (labels ((collect-x ()
			(dolist (f nil)
			  (push f style-features))))
	       (when (null style-features)
		 ;;(print (null style-features))
		 (setf style-features (list "Norm")))
	       style-features)))
PARSE-RAYFIELD-LINE
? (PARSE-RAYFIELD-LINE)
("Norm")
? 

On Apr 16, 2011, at 10:25 AM, Paul Meurer wrote:

> I came over a strange bug in 1.7-dev-r14406M-trunk, on 64bit Darwin and Linux.
> 
> The following function should return non-NIL, but returns NIL.
> 
> CL-USER> (defun parse-rayfield-line ()
> 	   (let ((style-features ()))
> 	     (labels ((collect-x ()
> 			(dolist (f nil)
> 			  (push f style-features))))
> 	       (when (null style-features)
> 		 ;;(print (null style-features))
> 		 (setf style-features (list "Norm")))
> 	       style-features)))
> PARSE-RAYFIELD-LINE
> CL-USER> (PARSE-RAYFIELD-LINE)
> NIL
> 
> It behaves correctly if I either remove the labels or the push statement in it or uncomment the print statement in the when form.
> 
> Since I couldn't believe this and thought my system was corrupt in some way, I tried the same in 1.5 and in other Lisps (there it works as expected), and the newest trunk (same rev) on Ubuntu (there the bug is manifest), as well as on a freshly-fetched Darwin trunk on a different machine (same result).
> 
> -- 
> Paul
> 
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list