Disable Common Lisp / CLISP target language
Clean up to disable target languages that have been neglected/not functional. Target language be fully deleted in SWIG 4.1 unless a new maintainer brings it up to an acceptable status (experimental or supported). Issue #1447
This commit is contained in:
parent
df51dc8e8f
commit
cb4bd26422
11 changed files with 10 additions and 284 deletions
4
ANNOUNCE
4
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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -19,10 +19,8 @@
|
|||
<li><a href="#Lisp_nn6">Generating CFFI bindings for C++ code</a>
|
||||
<li><a href="#Lisp_nn7">Inserting user code into generated files</a>
|
||||
</ul>
|
||||
<li><a href="#Lisp_nn8">CLISP</a>
|
||||
<ul>
|
||||
<li><a href="#Lisp_nn9">Additional Commandline Options </a>
|
||||
<li><a href="#Lisp_nn10">Details on CLISP bindings</a>
|
||||
</ul>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -38,8 +36,7 @@
|
|||
There are more than 9 different implementations of common lisp which
|
||||
are available, all have different foreign function
|
||||
interfaces. SWIG currently supports only the Allegro Common
|
||||
Lisp, Common Foreign Function Interface(CFFI), CLisp
|
||||
foreign function interfaces.
|
||||
Lisp, Common Foreign Function Interface(CFFI).
|
||||
</p>
|
||||
<H2><a name="Lisp_nn2">29.1 Allegro Common Lisp</a></H2>
|
||||
|
||||
|
|
@ -80,15 +77,6 @@ swig -cffi -module <i>module-name</i> <i>file-name</i>
|
|||
<H3><a name="Lisp_nn4">29.2.1 Additional Commandline Options </a></H3>
|
||||
|
||||
|
||||
<p>
|
||||
The following table list the additional commandline options available for the CLISP module. They can also be seen by using:
|
||||
</p>
|
||||
|
||||
<div class="code"><pre>
|
||||
swig -cffi -help
|
||||
</pre></div>
|
||||
<br/>
|
||||
|
||||
<table summary="CFFI specific options">
|
||||
<tr>
|
||||
<th> CFFI specific options</th>
|
||||
|
|
@ -621,192 +609,5 @@ Note that the block <tt>%{ ... %}</tt> is effectively a shortcut for
|
|||
</p>
|
||||
|
||||
|
||||
<H2><a name="Lisp_nn8">29.3 CLISP</a></H2>
|
||||
|
||||
|
||||
<p>
|
||||
<a href="http://clisp.cons.org">CLISP</a> is a feature-loaded
|
||||
implementation of common lisp which is portable across most of the
|
||||
operating system environments and hardware. CLISP includes an
|
||||
interpreter, a compiler, a debugger, CLOS, MOP, a foreign
|
||||
language interface, i18n, regular expressions, a socket
|
||||
interface, and more. An X11 interface is available through CLX,
|
||||
Garnet and CLUE/CLIO. Command line editing is provided by
|
||||
readline. CLISP runs Maxima, ACL2 and many other Common Lisp
|
||||
packages.
|
||||
</p>
|
||||
<p>
|
||||
To run the clisp module of SWIG requires very little effort, you
|
||||
just need to execute:
|
||||
</p>
|
||||
<div class="code"><pre>
|
||||
swig -clisp -module <i>module-name</i> <i>file-name</i>
|
||||
|
||||
</pre></div>
|
||||
|
||||
<p>
|
||||
Because of the high level nature of the CLISP FFI, the bindings
|
||||
generated by SWIG may not be absolutely correct, and you may need
|
||||
to modify them. The good thing is that you don't need to complex
|
||||
interface file for the CLISP module. The CLISP module tries to
|
||||
produce code which is both human readable and easily modifiable.
|
||||
</p>
|
||||
<H3><a name="Lisp_nn9">29.3.1 Additional Commandline Options </a></H3>
|
||||
|
||||
|
||||
<p>
|
||||
The following table list the additional commandline options available for the CLISP module. They can also be seen by using:
|
||||
</p>
|
||||
|
||||
<div class="code"><pre>
|
||||
swig -clisp -help
|
||||
</pre></div>
|
||||
<br/>
|
||||
<table summary="CLISP specific options">
|
||||
<tr>
|
||||
<th>CLISP specific options</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>-extern-all</td>
|
||||
<td>If this option is given then clisp definitions for all the functions<br/>
|
||||
and global variables will be created otherwise only definitions for<br/>
|
||||
externed functions and variables are created.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>-generate-typedef</td>
|
||||
<td>If this option is given then def-c-type will be used to generate<br/>
|
||||
shortcuts according to the typedefs in the input.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<H3><a name="Lisp_nn10">29.3.2 Details on CLISP bindings</a></H3>
|
||||
|
||||
|
||||
<p>
|
||||
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.<br/>
|
||||
After generating the defpackage statement, the clisp module also
|
||||
sets the default language.
|
||||
|
||||
<div class="targetlang"><pre>
|
||||
(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)
|
||||
</pre></div>
|
||||
<p>
|
||||
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)))'
|
||||
</p>
|
||||
<div class="code"><pre>
|
||||
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);
|
||||
|
||||
}
|
||||
</pre></div>
|
||||
<div class="targetlang"><pre>
|
||||
(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+))
|
||||
|
||||
</pre></div>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<div class="code"><pre>
|
||||
struct bar {
|
||||
short x, y;
|
||||
char a, b;
|
||||
int *z[1000];
|
||||
struct bar * n;
|
||||
};
|
||||
|
||||
#define max 1000
|
||||
</pre></div>
|
||||
<div class="targetlang"><pre>
|
||||
(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)
|
||||
|
||||
</pre></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@ SWIG_VERSION Hexadecimal (binary-coded decimal) number contai
|
|||
SWIGALLEGROCL Defined when using Allegro CL
|
||||
SWIGCFFI Defined when using CFFI
|
||||
SWIGCHICKEN Defined when using CHICKEN
|
||||
SWIGCLISP Defined when using CLISP
|
||||
SWIGCSHARP Defined when using C#
|
||||
SWIGGUILE Defined when using Guile
|
||||
SWIGJAVA Defined when using Java
|
||||
|
|
|
|||
|
|
@ -120,7 +120,6 @@ for example, <tt>swig -ruby -help</tt> for Ruby.
|
|||
Supported Target Language Options
|
||||
-allegrocl - Generate ALLEGROCL wrappers
|
||||
-chicken - Generate CHICKEN wrappers
|
||||
-clisp - Generate CLISP wrappers
|
||||
-cffi - Generate CFFI wrappers
|
||||
-csharp - Generate C# wrappers
|
||||
-d - Generate D wrappers
|
||||
|
|
|
|||
|
|
@ -1391,42 +1391,6 @@ allegrocl_clean:
|
|||
rm -f core @EXTRA_CLEAN@
|
||||
rm -f *.@OBJEXT@ *@SO@
|
||||
|
||||
##################################################################
|
||||
##### CLISP ######
|
||||
##################################################################
|
||||
|
||||
CLISP = @CLISPBIN@
|
||||
CLISP_SCRIPT=$(RUNME).lisp
|
||||
|
||||
clisp: $(SRCDIR_SRCS)
|
||||
$(SWIG) -clisp $(SWIGOPT) -o $(ISRCS) $(INTERFACEPATH)
|
||||
|
||||
clisp_cpp: $(SRCDIR_SRCS)
|
||||
$(SWIG) -c++ -clisp $(SWIGOPT) -o $(ICXXSRCS) $(INTERFACEPATH)
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Run CLISP example
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
clisp_run:
|
||||
$(RUNTOOL) $(CLISP) -batch -s $(CLISP_SCRIPT) $(RUNPIPE)
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Version display
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
clisp_version:
|
||||
$(CLISP) --version | head -n 1
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Cleaning the CLISP examples
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
clisp_clean:
|
||||
rm -f *_wrap* *~ .~*
|
||||
rm -f core @EXTRA_CLEAN@
|
||||
rm -f *.@OBJEXT@ *@SO@
|
||||
|
||||
##################################################################
|
||||
##### CFFI ######
|
||||
##################################################################
|
||||
|
|
|
|||
10
Makefile.in
10
Makefile.in
|
|
@ -73,7 +73,6 @@ skip-chicken = test -n "@SKIP_CHICKEN@"
|
|||
skip-csharp = test -n "@SKIP_CSHARP@"
|
||||
skip-lua = test -n "@SKIP_LUA@"
|
||||
skip-allegrocl = test -n "@SKIP_ALLEGROCL@"
|
||||
skip-clisp = test -n "@SKIP_CLISP@"
|
||||
skip-cffi = test -n "@SKIP_CFFI@"
|
||||
skip-r = test -n "@SKIP_R@"
|
||||
skip-scilab = test -n "@SKIP_SCILAB@"
|
||||
|
|
@ -117,7 +116,6 @@ check-aliveness:
|
|||
@$(skip-chicken) || ./$(TARGET) -chicken -help
|
||||
@$(skip-csharp) || ./$(TARGET) -csharp -help
|
||||
@$(skip-allegrocl)|| ./$(TARGET) -allegrocl -help
|
||||
@$(skip-clisp) || ./$(TARGET) -clisp -help
|
||||
@$(skip-cffi) || ./$(TARGET) -cffi -help
|
||||
@$(skip-lua) || ./$(TARGET) -lua -help
|
||||
@$(skip-r) || ./$(TARGET) -r -help
|
||||
|
|
@ -147,7 +145,6 @@ check-versions: \
|
|||
check-csharp-version \
|
||||
check-lua-version \
|
||||
check-allegrocl-version \
|
||||
check-clisp-version \
|
||||
check-cffi-version \
|
||||
check-r-version \
|
||||
check-scilab-version \
|
||||
|
|
@ -184,7 +181,6 @@ check-examples: \
|
|||
check-csharp-examples \
|
||||
check-lua-examples \
|
||||
check-allegrocl-examples \
|
||||
check-clisp-examples \
|
||||
check-cffi-examples \
|
||||
check-r-examples \
|
||||
check-scilab-examples \
|
||||
|
|
@ -207,7 +203,6 @@ chicken_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/chicken/check.list)
|
|||
csharp_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/csharp/check.list)
|
||||
lua_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/lua/check.list)
|
||||
allegrocl_examples :=
|
||||
clisp_examples :=
|
||||
cffi_examples :=
|
||||
r_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/r/check.list)
|
||||
scilab_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/scilab/check.list)
|
||||
|
|
@ -251,7 +246,6 @@ check-test-suite: \
|
|||
check-csharp-test-suite \
|
||||
check-lua-test-suite \
|
||||
check-allegrocl-test-suite \
|
||||
check-clisp-test-suite \
|
||||
check-cffi-test-suite \
|
||||
check-chicken-test-suite \
|
||||
check-r-test-suite \
|
||||
|
|
@ -302,7 +296,6 @@ all-test-suite: \
|
|||
all-csharp-test-suite \
|
||||
all-lua-test-suite \
|
||||
all-allegrocl-test-suite \
|
||||
all-clisp-test-suite \
|
||||
all-cffi-test-suite \
|
||||
all-chicken-test-suite \
|
||||
all-r-test-suite \
|
||||
|
|
@ -329,7 +322,6 @@ broken-test-suite: \
|
|||
broken-csharp-test-suite \
|
||||
broken-lua-test-suite \
|
||||
broken-allegrocl-test-suite \
|
||||
broken-clisp-test-suite \
|
||||
broken-cffi-test-suite \
|
||||
broken-chicken-test-suite \
|
||||
broken-r-test-suite \
|
||||
|
|
@ -468,7 +460,7 @@ install-main:
|
|||
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@
|
||||
|
||||
lib-languages = typemaps tcl perl5 python guile java mzscheme ruby php ocaml octave \
|
||||
chicken csharp allegrocl clisp lua cffi r go d javascript javascript/jsc \
|
||||
chicken csharp allegrocl lua cffi r go d javascript javascript/jsc \
|
||||
javascript/v8 scilab xml
|
||||
|
||||
lib-modules = std
|
||||
|
|
|
|||
2
README
2
README
|
|
@ -5,7 +5,7 @@ Version: 4.0.0 (in progress)
|
|||
Tagline: SWIG is a compiler that integrates C and C++ with languages
|
||||
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
|
||||
Octave, R, Scheme (Guile, MzScheme/Racket, CHICKEN), Scilab,
|
||||
Ocaml, Common Lisp (CLISP, Allegro CL, CFFI).
|
||||
Ocaml, Common Lisp (Allegro CL, CFFI).
|
||||
SWIG can also export its parse tree into XML.
|
||||
|
||||
SWIG reads annotated C/C++ header files and creates wrapper code (glue
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ eswig_SOURCES = CParse/cscanner.c \
|
|||
Modules/browser.cxx \
|
||||
Modules/cffi.cxx \
|
||||
Modules/chicken.cxx \
|
||||
Modules/clisp.cxx \
|
||||
Modules/contract.cxx \
|
||||
Modules/csharp.cxx \
|
||||
Modules/d.cxx \
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ extern "C" {
|
|||
Language *swig_allegrocl(void);
|
||||
Language *swig_cffi(void);
|
||||
Language *swig_chicken(void);
|
||||
Language *swig_clisp(void);
|
||||
Language *swig_csharp(void);
|
||||
Language *swig_d(void);
|
||||
Language *swig_go(void);
|
||||
|
|
@ -59,7 +58,7 @@ extern "C" {
|
|||
static TargetLanguageModule modules[] = {
|
||||
{"-allegrocl", swig_allegrocl, "ALLEGROCL", Supported},
|
||||
{"-chicken", swig_chicken, "CHICKEN", Supported},
|
||||
{"-clisp", swig_clisp, "CLISP", Supported},
|
||||
{"-clisp", NULL, "CLISP", Disabled},
|
||||
{"-cffi", swig_cffi, "CFFI", Supported},
|
||||
{"-csharp", swig_csharp, "C#", Supported},
|
||||
{"-d", swig_d, "D", Supported},
|
||||
|
|
|
|||
31
configure.ac
31
configure.ac
|
|
@ -2457,29 +2457,6 @@ fi
|
|||
|
||||
AC_SUBST(ALLEGROCLBIN)
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# Look for GNU CLISP
|
||||
#----------------------------------------------------------------
|
||||
|
||||
CLISPBIN=
|
||||
|
||||
AC_ARG_WITH(clisp, AS_HELP_STRING([--without-clisp], [Disable CLISP])
|
||||
AS_HELP_STRING([--with-clisp=path], [Set location of CLISP executable (clisp)]),[ CLISPBIN="$withval"], [CLISPBIN="$alllang_default"])
|
||||
|
||||
# First, check for "--without-clisp" or "--with-clisp=no".
|
||||
if test x"${CLISPBIN}" = xno; then
|
||||
AC_MSG_NOTICE([Disabling CLISP])
|
||||
CLISPBIN=
|
||||
else
|
||||
|
||||
# can we find clisp?
|
||||
if test "x$CLISPBIN" = xyes; then
|
||||
AC_PATH_PROG(CLISPBIN, clisp)
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(CLISPBIN)
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# Look for GNU R
|
||||
#----------------------------------------------------------------
|
||||
|
|
@ -2828,12 +2805,6 @@ if test -z "$ALLEGROCLBIN" ; then
|
|||
fi
|
||||
AC_SUBST(SKIP_ALLEGROCL)
|
||||
|
||||
SKIP_CLISP=
|
||||
if test -z "$CLISPBIN" ; then
|
||||
SKIP_CLISP="1"
|
||||
fi
|
||||
AC_SUBST(SKIP_CLISP)
|
||||
|
||||
SKIP_R=
|
||||
if test -z "$RBIN" ; then
|
||||
SKIP_R="1"
|
||||
|
|
@ -2970,7 +2941,6 @@ AC_CONFIG_FILES([
|
|||
Examples/test-suite/tcl/Makefile
|
||||
Examples/test-suite/lua/Makefile
|
||||
Examples/test-suite/allegrocl/Makefile
|
||||
Examples/test-suite/clisp/Makefile
|
||||
Examples/test-suite/cffi/Makefile
|
||||
Examples/test-suite/r/Makefile
|
||||
Examples/test-suite/go/Makefile
|
||||
|
|
@ -3022,7 +2992,6 @@ langs=""
|
|||
test -n "$SKIP_ALLEGROCL" || langs="${langs}allegrocl "
|
||||
test -n "$SKIP_CFFI" || langs="${langs}cffi "
|
||||
test -n "$SKIP_CHICKEN" || langs="${langs}chicken "
|
||||
test -n "$SKIP_CLISP" || langs="${langs}clisp "
|
||||
test -n "$SKIP_CSHARP" || langs="${langs}csharp "
|
||||
test -n "$SKIP_D" || langs="${langs}d "
|
||||
test -n "$SKIP_GO" || langs="${langs}go "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue