diff --git a/ANNOUNCE b/ANNOUNCE index 0cfc1c1f1..c79917b56 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -11,8 +11,8 @@ SWIG is a software development tool that reads C/C++ header files and generates the wrapper code needed to make C and C++ code accessible from other programming languages including Perl, Python, Tcl, Ruby, PHP, C#, Go, Java, Javascript, Lua, Scheme (Guile, MzScheme, CHICKEN), -D, Ocaml, Octave, R, Scilab, Common Lisp (CLISP, -Allegro CL, CFFI). SWIG can also export its parse tree in +D, Ocaml, Octave, R, Scilab, Common Lisp (Allegro CL, CFFI). +SWIG can also export its parse tree in the form of XML. Major applications of SWIG include generation of scripting language extension modules, rapid prototyping, testing, and user interface development for large diff --git a/CHANGES.current b/CHANGES.current index fd39d0fa0..772c7a98c 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.0.0 (in progress) =========================== +2019-02-04: wsfulton + [CLISP] #1447 GNU Common Lisp has been disabled as a target language in SWIG as part of a + clean up to remove target languages that have been neglected/not functional. + 2019-02-04: wsfulton [S-EXP] #1447 Common Lisp S-Exp has been disabled as a target language in SWIG as part of a clean up to remove target languages that have been neglected/not functional. diff --git a/Doc/Manual/Lisp.html b/Doc/Manual/Lisp.html index 1e7996581..f1dc3d17b 100644 --- a/Doc/Manual/Lisp.html +++ b/Doc/Manual/Lisp.html @@ -19,10 +19,8 @@
-The following table list the additional commandline options available for the CLISP module. They can also be seen by using: -
- --swig -cffi -help -
| CFFI specific options | @@ -621,192 +609,5 @@ Note that the block %{ ... %} is effectively a shortcut for -
|---|
| CLISP specific options | -|
|---|---|
| -extern-all | -If this option is given then clisp definitions for all the functions -and global variables will be created otherwise only definitions for -externed functions and variables are created. - |
-
| -generate-typedef | -If this option is given then def-c-type will be used to generate -shortcuts according to the typedefs in the input. - |
-
-As mentioned earlier the CLISP bindings generated by SWIG may need
-some modifications. The clisp module creates a lisp file with
-the same name as the module name. This
-lisp file contains a 'defpackage' declaration, with the
-package name same as the module name. This package uses the
-'common-lisp' and 'ffi' packages. Also, package exports all
-the functions, structures and variables for which an ffi
-binding was generated.
-After generating the defpackage statement, the clisp module also
-sets the default language.
-
-
-(defpackage :test - (:use :common-lisp :ffi) - (:export - :make-bar - :bar-x - :bar-y - :bar-a - :bar-b - :bar-z - :bar-n - :pointer_func - :func123 - :make-cfunr - :lispsort_double - :test123)) - -(in-package :test) - -(default-foreign-language :stdc) -
-The ffi wrappers for functions and variables are generated as shown - below. When functions have arguments of type "double * array", - SWIG doesn't knows whether it is an 'out' argument or it is - an array which will be passed, so SWIG plays it safe by - declaring it as an '(array (ffi:c-ptr DOUBLE-FLOAT))'. For - arguments of type "int **z[100]" where SWIG has more - information, i.e., it knows that 'z' is an array of pointers to - pointers of integers, SWIG defines it to be '(z (ffi:c-ptr - (ffi:c-array (ffi:c-ptr (ffi:c-ptr ffi:int)) 100)))' -
-
-extern "C" {
-int pointer_func(void (*ClosureFun)( void* _fun, void* _data, void* _evt ), int y);
-
-int func123(div_t * x, int **z[100], int y[][1000][10]);
-
-void lispsort_double (int n, double * array);
-
-void test123(float x , double y);
-
-}
--(ffi:def-call-out pointer_func - (:name "pointer_func") - (:arguments (ClosureFun (ffi:c-function (:arguments (arg0 (ffi:c-pointer NIL)) - (arg1 (ffi:c-pointer NIL)) - (arg2 (ffi:c-pointer NIL))) - (:return-type NIL))) - (y ffi:int)) - (:return-type ffi:int) - (:library +library-name+)) - -(ffi:def-call-out func123 - (:name "func123") - (:arguments (x (ffi:c-pointer div_t)) - (z (ffi:c-ptr (ffi:c-array (ffi:c-ptr (ffi:c-ptr ffi:int)) 100))) - (y (ffi:c-ptr (ffi:c-ptr (ffi:c-array ffi:int (1000 10)))))) - (:return-type ffi:int) - (:library +library-name+)) - - -(ffi:def-call-out lispsort_double - (:name "lispsort_double") - (:arguments (n ffi:int) - (array (ffi:c-ptr DOUBLE-FLOAT))) - (:return-type NIL) - (:library +library-name+)) - -(ffi:def-call-out test123 - (:name "test") - (:arguments (x SINGLE-FLOAT) - (y DOUBLE-FLOAT)) - (:return-type NIL) - (:library +library-name+)) - -
-The module also handles strutcures and #define constants as shown - below. SWIG automatically adds the constructors and accessors - created for the struct to the list of symbols exported by the - package. -
-
-struct bar {
- short x, y;
- char a, b;
- int *z[1000];
- struct bar * n;
-};
-
-#define max 1000
--(ffi:def-c-struct bar - (x :type ffi:short) - (y :type ffi:short) - (a :type character) - (b :type character) - (z :type (ffi:c-array (ffi:c-ptr ffi:int) 1000)) - (n :type (ffi:c-pointer bar))) - -(defconstant max 1000) - -