10.04.2011, 13:19, "Luís Oliveira" <luis...@gmail.com>:
> 2011/4/10 Anton Vodonosov <avodono...@yandex.ru>;:
>
>>  I have impression, that the callback is called from a non-Lisp thread, i.e.
>>  a thread that was not started by list, but was started by foreign code.
>>
>>  Is it known/supposed to work/fail? In CCL (and in general).
>
> Not all Lisps support that mode of operation but it works for me on
> CCL + OSX. See <http://article.gmane.org/gmane.lisp.cffi.devel/1667>
> for more information and a small test to check whether your Lisp
> supports this feature. You might need to port it to Windows or use the
> pthread-win32 library. Let me know if that helps.

I just got a confirmation from the openssl-users list that OpenSSL doesn't
invoke the callback from any threads not created by user, i.e. the non-Lisp
thread theory is not valid.

If you have any hints on how to determine the crash reason - it is very 
appreciated.

BTW, I tried with CLISP - it doesn't crash. I've run the CFFI tests with CLISP,
the result is similar to CCL, but the number of failures is a bit smaller.

If you are interested, the test log is attached.

Best regards,
- Anton
C:\Users\anton\unpacked\lisp-libs\cffi_0.10.6\tests>rem set 
LISP_FILE=c:/Users/anton/unpacked/lisp-libs/cl+ssl/threading-bug/cffi-test.lisp 

C:\Users\anton\unpacked\lisp-libs\cffi_0.10.6\tests>set 
LISP_FILE=run-tests.lisp 

C:\Users\anton\unpacked\lisp-libs\cffi_0.10.6\tests>rem sbcl --load 
run-tests.lisp 

C:\Users\anton\unpacked\lisp-libs\cffi_0.10.6\tests>rem 
C:\Users\anton\unpacked\ccl\ccl-trunk-windows\wx86cl64.exe -l run-tests.lisp 

C:\Users\anton\unpacked\lisp-libs\cffi_0.10.6\tests>clisp -x "(load 
\"run-tests.lisp\")" 
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Type :h and hit Enter for context help.

;; Loading file C:\Users\anton\.clisprc.lisp ...
;;  Loading file C:\Users\anton\quicklisp\setup.lisp ...
;;   Loading file C:\Users\anton\quicklisp\ASDF.lisp ...
;;   Loaded file C:\Users\anton\quicklisp\ASDF.lisp
;;  Loaded file C:\Users\anton\quicklisp\setup.lisp
;; Loaded file C:\Users\anton\.clisprc.lisp
;; Loading file run-tests.lisp ...
;;; -------- Running tests in CLISP --------
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION PERFORM> is being 
modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION PERFORM> is being 
modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION OPERATION-DONE-P> is 
being modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION OPERATION-DONE-P> is 
being modified, but has already been called.
WARNING: in #:|31 219 (PROGN (DEFTEST FUNCALL.CHAR # ...) (DEFTEST 
FUNCALL.INT.1 # ...) ...)-2-24-1-1| in lines 31..219 :
         variable VAL is not used.
         Misspelled or missing IGNORE declaration?
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN> is 
being modified, but has already been called.
WARNING: FFI::FIND-FOREIGN-FUNCTION: no dynamic object named "stdcall_fun@12" 
in library :DEFAULT
WARNING: Redefining test FOREIGN-ALLOC.6
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN> is 
being modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-FROM-FOREIGN> 
is being modified, but has already been
         called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN> is 
being modified, but has already been called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION 
TRANSLATE-FROM-FOREIGN> is being modified, but has already been
         called.
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN> is 
being modified, but has already been called.
WARNING: Replacing method #<STANDARD-METHOD (#<BUILT-IN-CLASS T> 
#<STANDARD-CLASS ERROR-ERROR>)> in
         #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN>
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION EXPAND-FROM-FOREIGN> 
is being modified, but has already been
         called.
WARNING: Replacing method #<STANDARD-METHOD (#<BUILT-IN-CLASS T> 
#<STANDARD-CLASS ERROR-ERROR>)> in
         #<STANDARD-GENERIC-FUNCTION EXPAND-FROM-FOREIGN>
WARNING: Replacing method #<STANDARD-METHOD (#<BUILT-IN-CLASS T> 
#<STANDARD-CLASS EXPAND-TRACKER>)> in
         #<STANDARD-GENERIC-FUNCTION EXPAND-TO-FOREIGN>
;;; running tests (uncompiled)
Doing 244 pending tests of 244 tests total.
 FUNCALL.CHAR FUNCALL.INT.1 FUNCALL.INT.2 FUNCALL.LONG FUNCALL.LONG-LONG
 FUNCALL.FLOAT FUNCALL.DOUBLE FUNCALL.STRING.1 FUNCALL.STRING.2
 FUNCALL.STRING.3 FUNCALL.VARARGS.CHAR FUNCALL.VARARGS.INT
 FUNCALL.VARARGS.LONG
Test FUNCALL.VARARGS.DOUBLE failed
Form: 
(WITH-FOREIGN-POINTER-AS-STRING (S 100) (SETF (MEM-REF S :CHAR) 0)
 (FOREIGN-FUNCALL "sprintf" :POINTER S :STRING "%.2f" :DOUBLE (COERCE PI 
'DOUBLE-FLOAT) :INT))
Expected value: "3.14"
Actual value: "f".
 FUNCALL.VARARGS.STRING FUNCALL.DOUBLE26 FUNCALL.FLOAT26 FUNCALL.F-S-P.1
 FUNCALL.NAMESPACE.1
WARNING: FFI::FIND-FOREIGN-FUNCTION: no dynamic object named "stdcall_fun@12" 
in library :DEFAULT
Test FUNCALL.STDCALL.1 failed
Form: 
(FLET ((FUN NIL (FOREIGN-FUNCALL ("stdcall_fun@12" :CONVENTION :STDCALL) :INT 1 
:INT 2 :INT 3 :INT)))
 (LOOP REPEAT 100 DO (FUN) FINALLY (RETURN (FUN))))
Expected value: 6
Actual value: #<SYSTEM::SIMPLE-UNDEFINED-FUNCTION #x1A1D69D1>.
 FUNCALL.NIL-SKIP FUNCALL.POINTER-NOT-NIL DEFCFUN.CHAR DEFCFUN.DOCSTRING
 DEFCFUN.INT DEFCFUN.LONG DEFCFUN.LONG-LONG DEFCFUN.FLOAT DEFCFUN.DOUBLE
 DEFCFUN.STRING.1 DEFCFUN.STRING.2 DEFCFUN.STRING.3 DEFCFUN.NOARGS
 DEFCFUN.NOOP DEFCFUN.VARARGS.DOCSTRINGS DEFCFUN.VARARGS.CHAR
 DEFCFUN.VARARGS.SHORT DEFCFUN.VARARGS.INT DEFCFUN.VARARGS.LONG
Test DEFCFUN.VARARGS.FLOAT failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :FLOAT (FLOAT 
PI)))
Expected value: "3.14"
Actual value: "f".
Test DEFCFUN.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :DOUBLE (FLOAT 
PI 1.0d0)))
Expected value: "3.14"
Actual value: "f".
 DEFCFUN.VARARGS.STRING DEFCFUN.BFF.1
Test DEFCFUN.BFF.2 failed
Form: 
(SUM-127 (MAKE-POINTER 2746181372) (MAKE-POINTER 177623060) -32334.0 3158055028 
(MAKE-POINTER 242315091) 4288001754991016425
 -21047.0d0 287.0d0 18722 243379286 -8677366518541007140 581399424 -13872 
4240394881 1353358999 226 969197676 -26207.0d0 6484
 11150 1241680089902988480 106068320 61865 2253 (MAKE-POINTER 866809333) -31613 
35616 11715 1393601698 8940888681199591845
 (MAKE-POINTER 1524606024) 805638893 3315410736 3432596795 (MAKE-POINTER 
1490355706) 696175657106383698 -25438.0 1294381547
 26724 (MAKE-POINTER 3196569545) 2506913373410783697 -4405955718732597856 
4075932032 3224670123 2183829215657835866
 1318320964 -22 -3786.0d0 -2017024146 1579225515 -626617701 -1456 (MAKE-POINTER 
3561444187) 395687791 1968033632506257320
 -1847773261 48853 142937735275669133 -17974.0 (MAKE-POINTER 2791749948) 
-14140.0 2707 3691328585 3306.0 1132012981
 303633191773289330 (MAKE-POINTER 981183954) 9114.0d0 8664374572369470 
-19013.0d0 -10288.0d0 -3679345119891954339
 (MAKE-POINTER 3538786709) 23761 -154264605 (MAKE-POINTER 2694396308) 7023 
997.0d0 1009561368 241 (MAKE-POINTER 2612292671)
 48 1431872408 -32675.0d0 (MAKE-POINTER 1587599336) 958916472 -9857.0d0 111 
-14370.0d0 -7308 -967514912 488790941 2146978095
 -24111.0d0 13711 86681861 717987770 111 1013402998690933877 17234.0d0 -8772.0 
3959216275 -8711 (MAKE-POINTER 3142780851)
 9480.0 -3820453146461186120 1616574376 -3336232268263990050 
-1906114671562979758 -27925.0d0 9695970875869913114 27033.0d0
 1096518219 -12 104 3392025403 -27911 60 89 509297051 -533066551 29158.0 110 54 
-9802.0d0 593950442165910888 -79)
Expected value: 7758614658402721936
Actual value: 7758614624042983568.
WARNING: FFI::FIND-FOREIGN-FUNCTION: no dynamic object named 
"undefined_foreign_function" in library :DEFAULT
 DEFCFUN.UNDEFINED DEFCFUN.DOUBLE26 DEFCFUN.FLOAT26 DEFCFUN.NAMESPACE.1
Test DEFCFUN.STDCALL.1 failed
Form: (LOOP REPEAT 100 DO (STDCALL-FUN 1 2 3) FINALLY (RETURN (STDCALL-FUN 1 2 
3)))
Expected value: 6
Actual value: #<SYSTEM::SIMPLE-UNDEFINED-FUNCTION #x1A20BBD9>.
 CALLBACKS.CHAR CALLBACKS.UNSIGNED-CHAR CALLBACKS.SHORT
 CALLBACKS.UNSIGNED-SHORT CALLBACKS.INT CALLBACKS.UNSIGNED-INT
 CALLBACKS.LONG CALLBACKS.UNSIGNED-LONG CALLBACKS.LONG-LONG
 CALLBACKS.UNSIGNED-LONG-LONG CALLBACKS.FLOAT CALLBACKS.DOUBLE
 CALLBACKS.POINTER CALLBACKS.STRING CALLBACKS.STRING-NOT-DOCSTRING
 CALLBACKS.NIL-FOR-NULL CALLBACKS.QSORT CALLBACKS.VOID
 CALLBACKS.FUNCALL.1 CALLBACKS.FUNCALL.2 CALLBACKS.BFF.1 CALLBACKS.BFF.2
 CALLBACKS.NON-EXISTANT CALLBACKS.DOUBLE26 CALLBACKS.DOUBLE26.FUNCALL
 CALLBACKS.FLOAT26 CALLBACKS.FLOAT26.FUNCALL CALLBACKS.STDCALL.1
 CALLBACKS.UNINTERNED FOREIGN-GLOBALS.REF.CHAR
 FOREIGN-GLOBALS.REF.UNSIGNED-CHAR FOREIGN-GLOBALS.REF.SHORT
 FOREIGN-GLOBALS.REF.UNSIGNED-SHORT FOREIGN-GLOBALS.REF.INT
 FOREIGN-GLOBALS.REF.UNSIGNED-INT FOREIGN-GLOBALS.REF.LONG
 FOREIGN-GLOBALS.REF.UNSIGNED-LONG FOREIGN-GLOBALS.REF.FLOAT
 FOREIGN-GLOBALS.REF.DOUBLE FOREIGN-GLOBALS.REF.POINTER
 FOREIGN-GLOBALS.REF.STRING FOREIGN-GLOBALS.REF.LONG-LONG
 FOREIGN-GLOBALS.REF.UNSIGNED-LONG-LONG FOREIGN-GLOBALS.SET.INT
 FOREIGN-GLOBALS.SET.STRING FOREIGN-GLOBALS.SET.LONG-LONG
 FOREIGN-GLOBALS.GET-VAR-POINTER.1 FOREIGN-GLOBALS.GET-VAR-POINTER.2
 FOREIGN-GLOBALS.REF.UPPERCASEINT1 FOREIGN-GLOBALS.REF.UPPER-CASE-INT1
 FOREIGN-GLOBALS.REF.MIXEDCASEINT1 FOREIGN-GLOBALS.REF.MIXED-CASE-INT1
 FOREIGN-GLOBALS.REF.UPPERCASEINT2 FOREIGN-GLOBALS.REF.UPPER-CASE-INT2
 FOREIGN-GLOBALS.REF.MIXEDCASEINT2 FOREIGN-GLOBALS.REF.MIXED-CASE-INT2
 FOREIGN-GLOBALS.REF.UPPERCASEINT3 FOREIGN-GLOBALS.REF.UPPER-CASE-INT3
 FOREIGN-GLOBALS.REF.MIXEDCASEINT3 FOREIGN-GLOBALS.REF.MIXED-CASE-INT3
 FOREIGN-GLOBALS.SYMBOL-NAME FOREIGN-GLOBALS.NAMESPACE.1
 FOREIGN-GLOBALS.NAMESPACE.2 FOREIGN-GLOBALS.NAMESPACE.3
 FOREIGN-GLOBALS.NAMESPACE.4 FOREIGN-GLOBALS.READ-ONLY.1
 DEFCVAR.DOCSTRING DEREF.CHAR DEREF.UNSIGNED-CHAR DEREF.SHORT
 DEREF.UNSIGNED-SHORT DEREF.INT DEREF.UNSIGNED-INT DEREF.LONG
 DEREF.UNSIGNED-LONG DEREF.LONG-LONG DEREF.UNSIGNED-LONG-LONG
 DEREF.FLOAT.1 DEREF.FLOAT.2 DEREF.FLOAT.3 DEREF.DOUBLE.1 DEREF.DOUBLE.2
 DEREF.DOUBLE.3 DEREF.POINTER.NULL LISP-STRING-TO-FOREIGN.EMPTY
 WITH-FOREIGN-POINTER.EVALX2 WITH-FOREIGN-POINTER.CONSTANT-SIZE
 MEM-REF.LEFT-TO-RIGHT %MEM-REF.LEFT-TO-RIGHT %MEM-SET.LEFT-TO-RIGHT
 MEM-AREF.EVAL-TYPE-X2 MEM-AREF.LEFT-TO-RIGHT MEM-REF.NESTED
 MEM-AREF.NESTED DEREF.AGGREGATE DEREF.ARRAY-OF-AGGREGATES POINTER.1
 POINTER.2 POINTER.NULL FOREIGN-POINTER-TYPE.NIL MAKE-POINTER.HIGH
 INC-POINTER.ZERO FOREIGN-ALLOC.1 FOREIGN-ALLOC.2 FOREIGN-ALLOC.3
 FOREIGN-ALLOC.4 FOREIGN-ALLOC.5 FOREIGN-ALLOC.6 FOREIGN-ALLOC.7
 FOREIGN-ALLOC.8 FOREIGN-ALLOC.9 DEREF.NONCONST.CHAR
 DEREF.NONCONST.UNSIGNED-CHAR DEREF.NONCONST.SHORT
 DEREF.NONCONST.UNSIGNED-SHORT DEREF.NONCONST.INT
 DEREF.NONCONST.UNSIGNED-INT DEREF.NONCONST.LONG
 DEREF.NONCONST.UNSIGNED-LONG DEREF.NONCONST.LONG-LONG
 DEREF.NONCONST.UNSIGNED-LONG-LONG DEREF.NONCONST.FLOAT.1
 DEREF.NONCONST.FLOAT.2 DEREF.NONCONST.FLOAT.3 DEREF.NONCONST.DOUBLE.1
 DEREF.NONCONST.DOUBLE.2 DEREF.NONCONST.DOUBLE.3 MEM-REF.RT.1
 MEM-REF.RT.2 INCF-POINTER.1 INCF-POINTER.2 POINTERP.1 POINTERP.2
 POINTERP.3 POINTERP.4 POINTERP.5 POINTERP.6 MEM-REF.SETF.1
 POINTER-EQ.NON-POINTERS.1 POINTER-EQ.NON-POINTERS.2
 NULL-POINTER-P.NON-POINTER.1 NULL-POINTER-P.NON-POINTER.2
 NULL-POINTER-P.NON-POINTER.3 STRING.CONVERSION.BASIC
 STRING.CONVERSION.BASIC.2 STRING.ENCODING.ASCII
Test STRING.ENCODING.UTF-16.BASIC failed
Form: (WITH-FOREIGN-STRING (S *ASCII-TEST-STRING* :ENCODING :UTF-16) 
(FOREIGN-STRING-TO-LISP S :ENCODING :UTF-16))
Expected values: " 
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
                 190
Actual value: #<error during printing>
 STRING.SHORT-WRITE.1 STRING.ENCODING.UTF-8.BASIC
Test STRING.ENCODINGS.ALL.BASIC failed
Form: 
(LET (FAILED)
 (DOLIST (ENCODING (LIST-LATIN-COMPATIBLE-ENCODINGS) FAILED)
  (WITH-FOREIGN-STRING (PTR *BASIC-LATIN-ALPHABET* :ENCODING ENCODING)
   (LET ((STRING (FOREIGN-STRING-TO-LISP PTR :ENCODING ENCODING)))
    (UNLESS (STRING= *BASIC-LATIN-ALPHABET* STRING) (PUSH ENCODING FAILED))))))
Expected value: NIL
Actual value: #<SYSTEM::SIMPLE-UNBOUND-VARIABLE #x1A19F755>.
 STRING.ENCODINGS.DEFAULT STRUCT.1 STRUCT.2 STRUCT.3 STRUCT.4
 STRUCT.NAMES STRUCT.5 STRUCT.STRING.1 STRUCT.STRING.2
 STRUCT.ALIGNMENT.1 STRUCT.ALIGNMENT.2 STRUCT.ALIGNMENT.3
 STRUCT.ALIGNMENT.4 STRUCT.ALIGNMENT.5 STRUCT.ALIGNMENT.6
 STRUCT.ALIGNMENT.7 STRUCT.NESTED-SETF STRUCT.ALIGNMENT.8
 STRUCT-WRAPPER.1 STRUCT-WRAPPER.2 UNION.1 ENUM.1 ENUM.2 ENUM.3
 BITFIELD.1 BITFIELD.2 BITFIELD.3 BITFIELD.4 MISC-TYPES.STRING+PTR
 MISC-TYPES.BOOLEAN.1 MISC-TYPES.BOOLEAN.2 MISC-TYPES.WRAPPER
 MISC-TYPES.SIZED-INTS MISC-TYPES.EXPAND.1 MISC-TYPES.EXPAND.2
 MISC-TYPES.EXPAND.3 MISC-TYPES.EXPAND.4 MISC-TYPES.EXPAND.5
 MISC-TYPES.EXPAND.6
Test FOREIGN-SYMBOL-POINTER.1 failed
Form: (COMPARE-AGAINST-ABS (FOREIGN-SYMBOL-POINTER "abs"))
Expected value: T
Actual value: NIL.
 FOREIGN-SYMBOL-POINTER.2 LIBRARY.ERROR.1 LIBRARY.T-CLAUSE
 SHAREABLE-VECTOR.1 SHAREABLE-VECTOR.2
9 out of 244 total tests failed: FUNCALL.VARARGS.DOUBLE, 
   FUNCALL.STDCALL.1, DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, 
   DEFCFUN.BFF.2, DEFCFUN.STDCALL.1, STRING.ENCODING.UTF-16.BASIC, 
   STRING.ENCODINGS.ALL.BASIC, FOREIGN-SYMBOL-POINTER.1.
7 unexpected failures: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1, 
   DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2, 
   DEFCFUN.STDCALL.1, FOREIGN-SYMBOL-POINTER.1.
;;; running tests (compiled)
Doing 244 pending tests of 244 tests total.
 FUNCALL.CHAR FUNCALL.INT.1 FUNCALL.INT.2 FUNCALL.LONG FUNCALL.LONG-LONG
 FUNCALL.FLOAT FUNCALL.DOUBLE FUNCALL.STRING.1 FUNCALL.STRING.2
 FUNCALL.STRING.3 FUNCALL.VARARGS.CHAR FUNCALL.VARARGS.INT
 FUNCALL.VARARGS.LONG
Test FUNCALL.VARARGS.DOUBLE failed
Form: 
(WITH-FOREIGN-POINTER-AS-STRING (S 100) (SETF (MEM-REF S :CHAR) 0)
 (FOREIGN-FUNCALL "sprintf" :POINTER S :STRING "%.2f" :DOUBLE (COERCE PI 
'DOUBLE-FLOAT) :INT))
Expected value: "3.14"
Actual value: "f".
 FUNCALL.VARARGS.STRING FUNCALL.DOUBLE26 FUNCALL.FLOAT26 FUNCALL.F-S-P.1
 FUNCALL.NAMESPACE.1
WARNING: FFI::FIND-FOREIGN-FUNCTION: no dynamic object named "stdcall_fun@12" 
in library :DEFAULT
Test FUNCALL.STDCALL.1 failed
Form: 
(FLET ((FUN NIL (FOREIGN-FUNCALL ("stdcall_fun@12" :CONVENTION :STDCALL) :INT 1 
:INT 2 :INT 3 :INT)))
 (LOOP REPEAT 100 DO (FUN) FINALLY (RETURN (FUN))))
Expected value: 6
Actual value: #<SYSTEM::SIMPLE-UNDEFINED-FUNCTION #x1A21C125>.
 FUNCALL.NIL-SKIP FUNCALL.POINTER-NOT-NIL DEFCFUN.CHAR DEFCFUN.DOCSTRING
 DEFCFUN.INT DEFCFUN.LONG DEFCFUN.LONG-LONG DEFCFUN.FLOAT DEFCFUN.DOUBLE
 DEFCFUN.STRING.1 DEFCFUN.STRING.2 DEFCFUN.STRING.3 DEFCFUN.NOARGS
 DEFCFUN.NOOP DEFCFUN.VARARGS.DOCSTRINGS DEFCFUN.VARARGS.CHAR
 DEFCFUN.VARARGS.SHORT DEFCFUN.VARARGS.INT DEFCFUN.VARARGS.LONG
Test DEFCFUN.VARARGS.FLOAT failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :FLOAT (FLOAT 
PI)))
Expected value: "3.14"
Actual value: "f".
Test DEFCFUN.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :DOUBLE (FLOAT 
PI 1.0d0)))
Expected value: "3.14"
Actual value: "f".
 DEFCFUN.VARARGS.STRING DEFCFUN.BFF.1
Test DEFCFUN.BFF.2 failed
Form: 
(SUM-127 (MAKE-POINTER 2746181372) (MAKE-POINTER 177623060) -32334.0 3158055028 
(MAKE-POINTER 242315091) 4288001754991016425
 -21047.0d0 287.0d0 18722 243379286 -8677366518541007140 581399424 -13872 
4240394881 1353358999 226 969197676 -26207.0d0 6484
 11150 1241680089902988480 106068320 61865 2253 (MAKE-POINTER 866809333) -31613 
35616 11715 1393601698 8940888681199591845
 (MAKE-POINTER 1524606024) 805638893 3315410736 3432596795 (MAKE-POINTER 
1490355706) 696175657106383698 -25438.0 1294381547
 26724 (MAKE-POINTER 3196569545) 2506913373410783697 -4405955718732597856 
4075932032 3224670123 2183829215657835866
 1318320964 -22 -3786.0d0 -2017024146 1579225515 -626617701 -1456 (MAKE-POINTER 
3561444187) 395687791 1968033632506257320
 -1847773261 48853 142937735275669133 -17974.0 (MAKE-POINTER 2791749948) 
-14140.0 2707 3691328585 3306.0 1132012981
 303633191773289330 (MAKE-POINTER 981183954) 9114.0d0 8664374572369470 
-19013.0d0 -10288.0d0 -3679345119891954339
 (MAKE-POINTER 3538786709) 23761 -154264605 (MAKE-POINTER 2694396308) 7023 
997.0d0 1009561368 241 (MAKE-POINTER 2612292671)
 48 1431872408 -32675.0d0 (MAKE-POINTER 1587599336) 958916472 -9857.0d0 111 
-14370.0d0 -7308 -967514912 488790941 2146978095
 -24111.0d0 13711 86681861 717987770 111 1013402998690933877 17234.0d0 -8772.0 
3959216275 -8711 (MAKE-POINTER 3142780851)
 9480.0 -3820453146461186120 1616574376 -3336232268263990050 
-1906114671562979758 -27925.0d0 9695970875869913114 27033.0d0
 1096518219 -12 104 3392025403 -27911 60 89 509297051 -533066551 29158.0 110 54 
-9802.0d0 593950442165910888 -79)
Expected value: 7758614658402721936
Actual value: 7758614624042983568.
WARNING: FFI::FIND-FOREIGN-FUNCTION: no dynamic object named 
"undefined_foreign_function" in library :DEFAULT
 DEFCFUN.UNDEFINED DEFCFUN.DOUBLE26 DEFCFUN.FLOAT26 DEFCFUN.NAMESPACE.1
Test DEFCFUN.STDCALL.1 failed
Form: (LOOP REPEAT 100 DO (STDCALL-FUN 1 2 3) FINALLY (RETURN (STDCALL-FUN 1 2 
3)))
Expected value: 6
Actual value: #<SYSTEM::SIMPLE-UNDEFINED-FUNCTION #x1A1AD10D>.
 CALLBACKS.CHAR CALLBACKS.UNSIGNED-CHAR CALLBACKS.SHORT
 CALLBACKS.UNSIGNED-SHORT CALLBACKS.INT CALLBACKS.UNSIGNED-INT
 CALLBACKS.LONG CALLBACKS.UNSIGNED-LONG CALLBACKS.LONG-LONG
 CALLBACKS.UNSIGNED-LONG-LONG CALLBACKS.FLOAT CALLBACKS.DOUBLE
 CALLBACKS.POINTER CALLBACKS.STRING CALLBACKS.STRING-NOT-DOCSTRING
 CALLBACKS.NIL-FOR-NULL CALLBACKS.QSORT CALLBACKS.VOID
 CALLBACKS.FUNCALL.1 CALLBACKS.FUNCALL.2 CALLBACKS.BFF.1 CALLBACKS.BFF.2
 CALLBACKS.NON-EXISTANT CALLBACKS.DOUBLE26 CALLBACKS.DOUBLE26.FUNCALL
 CALLBACKS.FLOAT26 CALLBACKS.FLOAT26.FUNCALL CALLBACKS.STDCALL.1
 CALLBACKS.UNINTERNED FOREIGN-GLOBALS.REF.CHAR
 FOREIGN-GLOBALS.REF.UNSIGNED-CHAR FOREIGN-GLOBALS.REF.SHORT
 FOREIGN-GLOBALS.REF.UNSIGNED-SHORT FOREIGN-GLOBALS.REF.INT
 FOREIGN-GLOBALS.REF.UNSIGNED-INT FOREIGN-GLOBALS.REF.LONG
 FOREIGN-GLOBALS.REF.UNSIGNED-LONG FOREIGN-GLOBALS.REF.FLOAT
 FOREIGN-GLOBALS.REF.DOUBLE FOREIGN-GLOBALS.REF.POINTER
 FOREIGN-GLOBALS.REF.STRING FOREIGN-GLOBALS.REF.LONG-LONG
 FOREIGN-GLOBALS.REF.UNSIGNED-LONG-LONG FOREIGN-GLOBALS.SET.INT
 FOREIGN-GLOBALS.SET.STRING FOREIGN-GLOBALS.SET.LONG-LONG
 FOREIGN-GLOBALS.GET-VAR-POINTER.1 FOREIGN-GLOBALS.GET-VAR-POINTER.2
 FOREIGN-GLOBALS.REF.UPPERCASEINT1 FOREIGN-GLOBALS.REF.UPPER-CASE-INT1
 FOREIGN-GLOBALS.REF.MIXEDCASEINT1 FOREIGN-GLOBALS.REF.MIXED-CASE-INT1
 FOREIGN-GLOBALS.REF.UPPERCASEINT2 FOREIGN-GLOBALS.REF.UPPER-CASE-INT2
 FOREIGN-GLOBALS.REF.MIXEDCASEINT2 FOREIGN-GLOBALS.REF.MIXED-CASE-INT2
 FOREIGN-GLOBALS.REF.UPPERCASEINT3 FOREIGN-GLOBALS.REF.UPPER-CASE-INT3
 FOREIGN-GLOBALS.REF.MIXEDCASEINT3 FOREIGN-GLOBALS.REF.MIXED-CASE-INT3
 FOREIGN-GLOBALS.SYMBOL-NAME FOREIGN-GLOBALS.NAMESPACE.1
 FOREIGN-GLOBALS.NAMESPACE.2 FOREIGN-GLOBALS.NAMESPACE.3
 FOREIGN-GLOBALS.NAMESPACE.4 FOREIGN-GLOBALS.READ-ONLY.1
 DEFCVAR.DOCSTRING DEREF.CHAR DEREF.UNSIGNED-CHAR DEREF.SHORT
 DEREF.UNSIGNED-SHORT DEREF.INT DEREF.UNSIGNED-INT DEREF.LONG
 DEREF.UNSIGNED-LONG DEREF.LONG-LONG DEREF.UNSIGNED-LONG-LONG
 DEREF.FLOAT.1 DEREF.FLOAT.2 DEREF.FLOAT.3 DEREF.DOUBLE.1 DEREF.DOUBLE.2
 DEREF.DOUBLE.3 DEREF.POINTER.NULL LISP-STRING-TO-FOREIGN.EMPTY
 WITH-FOREIGN-POINTER.EVALX2 WITH-FOREIGN-POINTER.CONSTANT-SIZE
 MEM-REF.LEFT-TO-RIGHT %MEM-REF.LEFT-TO-RIGHT %MEM-SET.LEFT-TO-RIGHT
 MEM-AREF.EVAL-TYPE-X2 MEM-AREF.LEFT-TO-RIGHT MEM-REF.NESTED
 MEM-AREF.NESTED DEREF.AGGREGATE DEREF.ARRAY-OF-AGGREGATES POINTER.1
 POINTER.2 POINTER.NULL FOREIGN-POINTER-TYPE.NIL MAKE-POINTER.HIGH
 INC-POINTER.ZERO FOREIGN-ALLOC.1 FOREIGN-ALLOC.2 FOREIGN-ALLOC.3
 FOREIGN-ALLOC.4 FOREIGN-ALLOC.5 FOREIGN-ALLOC.6 FOREIGN-ALLOC.7
 FOREIGN-ALLOC.8 FOREIGN-ALLOC.9 DEREF.NONCONST.CHAR
 DEREF.NONCONST.UNSIGNED-CHAR DEREF.NONCONST.SHORT
 DEREF.NONCONST.UNSIGNED-SHORT DEREF.NONCONST.INT
 DEREF.NONCONST.UNSIGNED-INT DEREF.NONCONST.LONG
 DEREF.NONCONST.UNSIGNED-LONG DEREF.NONCONST.LONG-LONG
 DEREF.NONCONST.UNSIGNED-LONG-LONG DEREF.NONCONST.FLOAT.1
 DEREF.NONCONST.FLOAT.2 DEREF.NONCONST.FLOAT.3 DEREF.NONCONST.DOUBLE.1
 DEREF.NONCONST.DOUBLE.2 DEREF.NONCONST.DOUBLE.3 MEM-REF.RT.1
 MEM-REF.RT.2 INCF-POINTER.1 INCF-POINTER.2 POINTERP.1 POINTERP.2
 POINTERP.3 POINTERP.4 POINTERP.5 POINTERP.6 MEM-REF.SETF.1
 POINTER-EQ.NON-POINTERS.1 POINTER-EQ.NON-POINTERS.2
 NULL-POINTER-P.NON-POINTER.1 NULL-POINTER-P.NON-POINTER.2
 NULL-POINTER-P.NON-POINTER.3 STRING.CONVERSION.BASIC
 STRING.CONVERSION.BASIC.2 STRING.ENCODING.ASCII
Test STRING.ENCODING.UTF-16.BASIC failed
Form: (WITH-FOREIGN-STRING (S *ASCII-TEST-STRING* :ENCODING :UTF-16) 
(FOREIGN-STRING-TO-LISP S :ENCODING :UTF-16))
Expected values: " 
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
                 190
Actual value: #<error during printing>
 STRING.SHORT-WRITE.1 STRING.ENCODING.UTF-8.BASIC
Test STRING.ENCODINGS.ALL.BASIC failed
Form: 
(LET (FAILED)
 (DOLIST (ENCODING (LIST-LATIN-COMPATIBLE-ENCODINGS) FAILED)
  (WITH-FOREIGN-STRING (PTR *BASIC-LATIN-ALPHABET* :ENCODING ENCODING)
   (LET ((STRING (FOREIGN-STRING-TO-LISP PTR :ENCODING ENCODING)))
    (UNLESS (STRING= *BASIC-LATIN-ALPHABET* STRING) (PUSH ENCODING FAILED))))))
Expected value: NIL
Actual value: #<SYSTEM::SIMPLE-UNBOUND-VARIABLE #x1A16AB91>.
 STRING.ENCODINGS.DEFAULT STRUCT.1 STRUCT.2 STRUCT.3 STRUCT.4
 STRUCT.NAMES STRUCT.5 STRUCT.STRING.1 STRUCT.STRING.2
 STRUCT.ALIGNMENT.1 STRUCT.ALIGNMENT.2 STRUCT.ALIGNMENT.3
 STRUCT.ALIGNMENT.4 STRUCT.ALIGNMENT.5 STRUCT.ALIGNMENT.6
 STRUCT.ALIGNMENT.7 STRUCT.NESTED-SETF STRUCT.ALIGNMENT.8
 STRUCT-WRAPPER.1 STRUCT-WRAPPER.2 UNION.1 ENUM.1 ENUM.2 ENUM.3
 BITFIELD.1 BITFIELD.2 BITFIELD.3 BITFIELD.4 MISC-TYPES.STRING+PTR
 MISC-TYPES.BOOLEAN.1 MISC-TYPES.BOOLEAN.2 MISC-TYPES.WRAPPER
 MISC-TYPES.SIZED-INTS MISC-TYPES.EXPAND.1 MISC-TYPES.EXPAND.2
 MISC-TYPES.EXPAND.3 MISC-TYPES.EXPAND.4 MISC-TYPES.EXPAND.5
 MISC-TYPES.EXPAND.6
Test FOREIGN-SYMBOL-POINTER.1 failed
Form: (COMPARE-AGAINST-ABS (FOREIGN-SYMBOL-POINTER "abs"))
Expected value: T
Actual value: NIL.
 FOREIGN-SYMBOL-POINTER.2 LIBRARY.ERROR.1 LIBRARY.T-CLAUSE
 SHAREABLE-VECTOR.1 SHAREABLE-VECTOR.2
9 out of 244 total tests failed: FUNCALL.VARARGS.DOUBLE, 
   FUNCALL.STDCALL.1, DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, 
   DEFCFUN.BFF.2, DEFCFUN.STDCALL.1, STRING.ENCODING.UTF-16.BASIC, 
   STRING.ENCODINGS.ALL.BASIC, FOREIGN-SYMBOL-POINTER.1.
7 unexpected failures: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1, 
   DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2, 
   DEFCFUN.STDCALL.1, FOREIGN-SYMBOL-POINTER.1.
Bye.
_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to