From: Cross, M. <mc...@ir...> - 2006-03-08 14:42:16
|
My message to the list was delayed because I sent it out as HTML. Anyways, I spent more time looking at this, and sent a patch to Bruno who accepted it and checked it into CVS. I also found that this was already logged as bug 1308444. My patch is listed in the bug report: http://sourceforge.net/tracker/?group_id=3D1355&atid=3D101355&func=3Ddeta= il&ai d=3D1308444=20 -- Matt Cross Senior Lead Software Engineer iRobot Corporation 63 South Avenue, Burlington, MA 01803 781-418-3373 (ph) 781-345-0201 (fax) mc...@ir... www.irobot.com <http://www.irobot.com/>=20 =20 =20 ________________________________ From: cli...@li... [mailto:cli...@li...] On Behalf Of Cross, Matthew Sent: Monday, March 06, 2006 9:47 AM To: cli...@li... Subject: [clisp-list] Problem with complex backquote expression =09 =09 (I tried to send this to the list on Friday, but it seems to have gotten dropped) =20 When I run this code with the latest release (2.38), I get strange results: =20 ---- (format t "~%~%test case 1:~%") =20 (let* ((testme nil) (testform ``(a ,@',testme d)) ) (princ testform) (format t "~%") (princ (eval testform)) ) =20 =20 =20 (format t "~%test case 2:~%") (let* ((testme '(b c)) (testform ``(a ,@',testme d)) ) (princ testform) (format t "~%") (princ (eval testform)) ) =20 =20 =20 (format t "~%~%") ---- =20 I would expect evaluating testform to give me (a d) in the first case and (a b c d) in the second case. However, clisp seems to truncate the list after the ,@ portion of the expression, giving me (a) and (a b c) from the test cases. =20 I narrowed it down to the problem being introduced in 2.33.84 (CVS tag clisp_2_33_84-2005-07-07). When I run it in this release (and the CVS head), I get: =20 ---- [1]> (lisp-implementation-version) "2.33.84 (2005-07-07) (built 3350413236) (memory 3350413776)" [2]> (load "~/backquote-test.lisp") ;; Loading file /home/mcross/backquote-test.lisp ... =20 test case 1: '(A) (A) test case 2: '(A B C) (A B C) =20 ;; Loaded file /home/mcross/backquote-test.lisp T ---- =20 When I run it in 2.33.2 (CVS tag clisp_2_33_2-2004-06-02) and older releases, it works: =20 ---- [1]> (lisp-implementation-version) "2.33.2 (2004-06-02) (built 3350412156) (memory 3350412304)" [2]> (load "~/backquote-test.lisp") ;; Loading file /home/mcross/backquote-test.lisp ... =20 test case 1: (CONS 'A (APPEND 'NIL '(D))) (A D) test case 2: (CONS 'A (APPEND '(B C) '(D))) (A B C D) =20 ;; Loaded file /home/mcross/backquote-test.lisp T ---- =20 I am running on Ubuntu Linux 5.10. =20 I don't see anything obvious in the NEWS file for 2.38 that would affect this. I'm going to look around to see if I can understand what's going on, but I've never delved into clisp internals before. Can someone take a look at this also? =20 Thanks, =20 -- Matt Cross Senior Lead Software Engineer iRobot Corporation 63 South Avenue, Burlington, MA 01803 781-418-3373 (ph) 781-345-0201 (fax) mc...@ir... www.irobot.com <http://www.irobot.com/>=20 =20 |