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

Paul Meurer paul.meurer at uni.no
Sat Apr 16 10:25:42 PDT 2011


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




More information about the Openmcl-devel mailing list