As of (From the CLISP src/Changelog):
2006-10-05 Sam Steingold sds@podval.org
merged LOOKUP-FOREIGN-FUNCTION & FOREIGN-LIBRARY-FUNCTION into FIND-FOREIGN-FUNCTION; LOOKUP-FOREIGN-VARIABLE & FOREIGN-LIBRARY-VARIABLE into FIND-FOREIGN-VARIABLE ...
This includes CVS releases starting with clisp-2.41.
FFI::FOREIGN-LIBRARY-FUNCTION and FFI::FOREIGN-LIBRARY-VARIABLE have effectively been made legasy.
In the current CVS head (but not the last clisp-2.44.1 release) these functions have quietly disappeared. This causes problems with the CLISP CVS head in cffi-clisp.lisp.
I'm not sure what version of CLISP need to be supported. Should the new FFI::FIND-FOREIGN-FUNCTION and FFI::FIND-FOREIGN-VARIABLE interface now be used.
On Fri, Apr 4, 2008 at 5:57 PM, Barry Fishman barry_fishman@acm.org wrote:
As of (From the CLISP src/Changelog):
2006-10-05 Sam Steingold sds@podval.org
merged LOOKUP-FOREIGN-FUNCTION & FOREIGN-LIBRARY-FUNCTION into FIND-FOREIGN-FUNCTION; LOOKUP-FOREIGN-VARIABLE & FOREIGN-LIBRARY-VARIABLE into FIND-FOREIGN-VARIABLE ...
This includes CVS releases starting with clisp-2.41.
FFI::FOREIGN-LIBRARY-FUNCTION and FFI::FOREIGN-LIBRARY-VARIABLE have effectively been made legasy.
In the current CVS head (but not the last clisp-2.44.1 release) these functions have quietly disappeared. This causes problems with the CLISP CVS head in cffi-clisp.lisp.
The attached patch should fix that while maintaining backwards compatibility. Unfortunately, CVS CLISP (my copy of the ChangeLog says 2008-03-25) dumps core on the callback tests. I'm using x86-64. Can anyone reproduce this behaviour?
[1]> (asdf:oos 'asdf:test-op :cffi) ... *** - handle_fault error2 ! address = 0x8 not in [0x333a9f000,0x333d4b160) ! SIGSEGV cannot be cured. Fault address = 0x8. Permanently allocated: 161560 bytes. Currently in use: 5352408 bytes. Free space: 324432 bytes. Segmentation fault (core dumped)
luis@haden:~$ clisp --version GNU CLISP 2.45 (2008-04-04) (built 3415563584) (memory 3415563829) Software: GNU C 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) gcc -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -x none -lreadline -lncurses -ldl -lavcall -lcallback -lsigsegv SAFETY=0 TYPECODES WIDE GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libreadline 5.2 Features: (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX) C Modules: (clisp i18n syscalls regexp readline) Installation directory: /home/luis/Software/lib/clisp-2.45/ User language: ENGLISH Machine: X86_64 (X86_64) haden [127.0.1.1]
"Luís Oliveira" luismbo@gmail.com writes:
On Fri, Apr 4, 2008 at 5:57 PM, Barry Fishman barry_fishman@acm.org wrote:
In the current CVS head (but not the last clisp-2.44.1 release) these functions have quietly disappeared. This causes problems with the CLISP CVS head in cffi-clisp.lisp.
The attached patch should fix that while maintaining backwards compatibility.
Thank you. My cl-opengl code now works.
Unfortunately, CVS CLISP (my copy of the ChangeLog says
2008-03-25) dumps core on the callback tests. I'm using x86-64. Can anyone reproduce this behaviour?
[1]> (asdf:oos 'asdf:test-op :cffi) ... *** - handle_fault error2 ! address = 0x8 not in [0x333a9f000,0x333d4b160) ! SIGSEGV cannot be cured. Fault address = 0x8. Permanently allocated: 161560 bytes. Currently in use: 5352408 bytes. Free space: 324432 bytes. Segmentation fault (core dumped)
luis@haden:~$ clisp --version GNU CLISP 2.45 (2008-04-04) (built 3415563584) (memory 3415563829) Software: GNU C 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) gcc -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -x none -lreadline -lncurses -ldl -lavcall -lcallback -lsigsegv SAFETY=0 TYPECODES WIDE GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libreadline 5.2 Features: (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX) C Modules: (clisp i18n syscalls regexp readline) Installation directory: /home/luis/Software/lib/clisp-2.45/ User language: ENGLISH Machine: X86_64 (X86_64) haden [127.0.1.1]
I get:
1 out of 219 total tests failed: DEFCFUN.VARARGS.DOCSTRINGS. ;;; Finished running tests (uncompiled) 1 times. *** - test-op failed.
Using OpenSUSE 10.3, the CVS versions of CLISP, and the latest (but with your patch) common-lisp.net Darcs version.
GNU CLISP 2.45 (2008-04-04) (built 3415900623) (memory 3415900915) Software: GNU C 4.2.1 (SUSE Linux) gcc -I/usr/include/pgsql -I/usr/local/include -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O -falign-functions=4 -DUNICODE -DDYNAMIC_FFI -I. -x none -lreadline -lncurses -ldl -lavcall -lcallback -lsigsegv -L/usr/lib64 SAFETY=0 TYPECODES WIDE GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libreadline 5.2 Features: (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX) C Modules: (clisp i18n syscalls regexp readline) Installation directory: /home/util64/clisp/lib/clisp-2.45/ User language: ENGLISH Machine: X86_64 (X86_64) ecube.site [10.0.0.2]
On Sat, Apr 5, 2008 at 3:46 PM, Barry Fishman barry_fishman@acm.org wrote:
1 out of 219 total tests failed: DEFCFUN.VARARGS.DOCSTRINGS.
[...]
GNU CLISP 2.45 (2008-04-04) (built 3415900623) (memory 3415900915) Software: GNU C 4.2.1 (SUSE Linux)
I tried again with the latest CLISP from CVS (2008-04-03) and GCC 4.2.1-5ubuntu4 and I still get a core dump when running the callback tests.
"Luís Oliveira" luismbo@gmail.com writes:
On Sat, Apr 5, 2008 at 3:46 PM, Barry Fishman barry_fishman@acm.org wrote:
1 out of 219 total tests failed: DEFCFUN.VARARGS.DOCSTRINGS.
[...]
GNU CLISP 2.45 (2008-04-04) (built 3415900623) (memory 3415900915) Software: GNU C 4.2.1 (SUSE Linux)
I tried again with the latest CLISP from CVS (2008-04-03) and GCC 4.2.1-5ubuntu4 and I still get a core dump when running the callback tests.
Luckly enough, my system dual boots to Ubuntu.
After bringing my stuff up to date, I tried building the latest CVS CLISP there, and when I did a "make test" on CLISP, I got, on its callback test, the message and core dump you had seen.
Then I remembered that another change in CLISP is to seperately package the FFCALL interface. Although Ubuntu comes with these libraries, they don't seem to work. I rebuild the libraries from the CVS repository:
Repository: :pserver:anonymous@cvs.sv.gnu.org:/sources/libffcall Root: ffcall
After patching CLISP's make file to use the CVS version of these libraries, everything worked fine.
On Sat, Apr 5, 2008 at 8:56 PM, Barry Fishman barry_fishman@acm.org wrote:
Then I remembered that another change in CLISP is to seperately package the FFCALL interface. Although Ubuntu comes with these libraries, they don't seem to work.
Yes, that was it. Thanks!
Oops, I left off the actual test result:
Test DEFCFUN.VARARGS.DOCSTRINGS failed Form: (DOCUMENTATION 'SPRINTF 'FUNCTION) Expected value: "sprintf docstring" Actual value: NIL.
Also:
$ clisp -q -norc [1]> (setf (documentation 'bozo 'function) "bozo docstring") NIL [2]> (documentation 'bozo 'function) NIL [3]> (defun foo (a b) "foo docstring" (+ a b)) FOO [4]> (documentation 'foo 'function) "foo docstring" [5]> (setf (documentation 'foo 'function) "changed foo docstring") "changed foo docstring" [6]> (documentation 'foo 'function) "changed foo docstring" [7]>
On Sat, Apr 5, 2008 at 4:05 PM, Barry Fishman barry_fishman@acm.org wrote: [...]
Test DEFCFUN.VARARGS.DOCSTRINGS failed
[...]
$ clisp -q -norc [1]> (setf (documentation 'bozo 'function) "bozo docstring") NIL [2]> (documentation 'bozo 'function) NIL
[...]
Interesting, this is what makes this particular test fail though:
$ clisp -q -norc [1]> (defmacro foo () "docstring" nil) FOO [2]> (documentation 'foo 'function) "docstring" [3]> (compile 'foo) FOO ; NIL ; NIL [4]> (documentation 'foo 'function) NIL