On Sun, Jun 7, 2009 at 9:22 AM, Luís Oliveira <span dir="ltr"><<a href="mailto:luismbo@gmail.com">luismbo@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Sat, Jun 6, 2009 at 10:14 PM, Greg Santucci<<a href="mailto:thecodewitch@gmail.com">thecodewitch@gmail.com</a>> wrote:<br>
> The transcript is in the attached file "latest-cffi-test.txt".<br>
<br>
</div>So it seems like CCL crashes in the CALLBACKS.QSORT test (in<br>
cffi/tests/callbacks.lisp) somewhere within the call to qsort(). I<br>
would guess there is some bug related to callbacks. Try this:<br>
<br>
(ccl:defcallback qsort-callback (:address a :address b :signed-int)<br>
  (let ((x (ccl:%get-signed-long a))<br>
        (y (ccl:%get-signed-long b)))<br>
    (cond ((> x y) 1)<br>
          ((< x y) -1)<br>
          (t 0))))<br>
<br>
(defun test-callbacks-with-qsort ()<br>
  (ccl:%stack-block ((array 40))<br>
    (loop for i from 0<br>
          and n in '(7 2 10 4 3 5 1 6 9 8)<br>
          do (setf (ccl:%get-signed-long array (* i 4)) n))<br>
    (ccl:external-call "qsort" :address array :signed-int 10 :signed-int 4<br>
                       :address qsort-callback :void)<br>
    (loop for i from 0 below 10<br>
          collect (ccl:%get-signed-long array (* i 4)))))</blockquote><div><br>That seems to work!<br><br>The output is in the attached file,  good-cffi-results.txt<br><br>Does this mean cffi can be patched again?<br><br>
Regards,<br>Greg<br><br></div></div>