summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2019-02-04 20:01:05 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2019-02-05 18:41:54 +0000
commitf63d0db21b84629e5e7f3b5a5b5b3676235ed3de (patch)
tree8c87e4bbce0b28315e891723fd96f876e0575ecc
parent8aa4086136f8bd1564fc9ce6082d81ce3168482e (diff)
downloadswig-f63d0db21b84629e5e7f3b5a5b5b3676235ed3de.tar.gz
Disable Common Lisp / UFFI 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
-rw-r--r--ANNOUNCE2
-rw-r--r--CHANGES.current4
-rw-r--r--Doc/Manual/Allegrocl.html2
-rw-r--r--Doc/Manual/Lisp.html10
-rw-r--r--Doc/Manual/SWIG.html1
-rw-r--r--Examples/Makefile.in40
-rw-r--r--Makefile.in10
-rw-r--r--README2
-rw-r--r--Source/Makefile.am1
-rw-r--r--Source/Modules/swigmain.cxx3
-rw-r--r--TODO48
-rw-r--r--configure.ac8
12 files changed, 12 insertions, 119 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 2caaaea71..3fc3b3517 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -12,7 +12,7 @@ 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, UFFI). SWIG can also export its parse tree in
+Allegro CL, CFFI). SWIG can also export its parse tree in
the form of XML and Lisp s-expressions. 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 e9a2ef895..b6651d762 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -8,6 +8,10 @@ Version 4.0.0 (in progress)
===========================
2019-02-04: wsfulton
+ [UFFI] #1447 Common Lisp UFFI 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
[Pike] #1447 Pike 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/Allegrocl.html b/Doc/Manual/Allegrocl.html
index a3d631ec4..4069ecd8b 100644
--- a/Doc/Manual/Allegrocl.html
+++ b/Doc/Manual/Allegrocl.html
@@ -129,7 +129,7 @@ It is significant to note that, while this is a vendor-specific
module, we would like to acknowledge the current and ongoing
work by developers in the open source lisp community that are
working on similar interfaces to implementation-independent
-foreign function interfaces (UFFI or CFFI, for example). Such
+foreign function interfaces (CFFI, for example). Such
work can only benefit the lisp community, and we would not
be unhappy to see some enterprising folk use this work to add
to it.
diff --git a/Doc/Manual/Lisp.html b/Doc/Manual/Lisp.html
index 2d65f883b..1e7996581 100644
--- a/Doc/Manual/Lisp.html
+++ b/Doc/Manual/Lisp.html
@@ -24,7 +24,6 @@
<li><a href="#Lisp_nn9">Additional Commandline Options </a>
<li><a href="#Lisp_nn10">Details on CLISP bindings</a>
</ul>
-<li><a href="#Lisp_nn11">UFFI </a>
</ul>
</div>
<!-- INDEX -->
@@ -39,7 +38,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 and UFFI
+ Lisp, Common Foreign Function Interface(CFFI), CLisp
foreign function interfaces.
</p>
<H2><a name="Lisp_nn2">29.1 Allegro Common Lisp</a></H2>
@@ -56,8 +55,8 @@
<p>
CFFI, the Common Foreign Function Interface, is a portable foreign
- function interface for ANSI Common Lisp systems, similar in
- spirit to UFFI. Unlike UFFI, CFFI requires only a small set of
+ function interface for ANSI Common Lisp systems.
+ CFFI requires only a small set of
low-level functionality from the Lisp implementation, such as
calling a foreign function by name, allocating foreign memory,
and dereferencing pointers.
@@ -809,8 +808,5 @@ struct bar {
</pre></div>
-<H2><a name="Lisp_nn11">29.4 UFFI </a></H2>
-
-
</body>
</html>
diff --git a/Doc/Manual/SWIG.html b/Doc/Manual/SWIG.html
index 0906836db..f1e441c8a 100644
--- a/Doc/Manual/SWIG.html
+++ b/Doc/Manual/SWIG.html
@@ -140,7 +140,6 @@ Supported Target Language Options
-scilab - Generate Scilab wrappers
-sexp - Generate Lisp S-Expressions wrappers
-tcl - Generate Tcl wrappers
- -uffi - Generate Common Lisp / UFFI wrappers
-xml - Generate XML wrappers
Experimental Target Language Options
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index fff85f5f7..d070e3c8e 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1468,46 +1468,6 @@ cffi_clean:
rm -f *.@OBJEXT@ *@SO@
##################################################################
-##### UFFI ######
-##################################################################
-
-UFFI = @UFFIBIN@
-UFFI_SCRIPT=$(RUNME).lisp
-
-uffi: $(SRCDIR_SRCS)
- $(SWIG) -uffi $(SWIGOPT) -o $(ISRCS) $(INTERFACEPATH)
-# $(CC) -c $(CCSHARED) $(CPPFLAGS) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCDIR_SRCS)
-# $(LDSHARED) $(CFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
-
-uffi_cpp: $(SRCDIR_SRCS)
- $(SWIG) -c++ -uffi $(SWIGOPT) -o $(ICXXSRCS) $(INTERFACEPATH)
-# $(CXX) -c $(CCSHARED) $(CPPFLAGS) $(CXXFLAGS) $(ICXXSRCS) $(SRCDIR_SRCS) $(SRCDIR_CXXSRCS) $(INCLUDES)
-# $(CXXSHARED) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
-
-# -----------------------------------------------------------------
-# Run UFFI example
-# -----------------------------------------------------------------
-
-uffi_run:
- $(RUNTOOL) $(UFFI) -batch -s $(UFFI_SCRIPT) $(RUNPIPE)
-
-# -----------------------------------------------------------------
-# Version display
-# -----------------------------------------------------------------
-
-uffi_version:
- $(UFFI) --version
-
-# -----------------------------------------------------------------
-# Cleaning the UFFI examples
-# -----------------------------------------------------------------
-
-uffi_clean:
- rm -f *_wrap* *~ .~*
- rm -f core @EXTRA_CLEAN@
- rm -f *.@OBJEXT@ *@SO@
-
-##################################################################
##### R ######
##################################################################
diff --git a/Makefile.in b/Makefile.in
index b9e926108..a45684a1d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -75,7 +75,6 @@ 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-uffi = test -n "@SKIP_UFFI@"
skip-r = test -n "@SKIP_R@"
skip-scilab = test -n "@SKIP_SCILAB@"
skip-go = test -n "@SKIP_GO@"
@@ -119,7 +118,6 @@ check-aliveness:
@$(skip-csharp) || ./$(TARGET) -csharp -help
@$(skip-allegrocl)|| ./$(TARGET) -allegrocl -help
@$(skip-clisp) || ./$(TARGET) -clisp -help
- @$(skip-uffi) || ./$(TARGET) -uffi -help
@$(skip-cffi) || ./$(TARGET) -cffi -help
@$(skip-lua) || ./$(TARGET) -lua -help
@$(skip-r) || ./$(TARGET) -r -help
@@ -150,7 +148,6 @@ check-versions: \
check-lua-version \
check-allegrocl-version \
check-clisp-version \
- check-uffi-version \
check-cffi-version \
check-r-version \
check-scilab-version \
@@ -188,7 +185,6 @@ check-examples: \
check-lua-examples \
check-allegrocl-examples \
check-clisp-examples \
- check-uffi-examples \
check-cffi-examples \
check-r-examples \
check-scilab-examples \
@@ -212,7 +208,6 @@ csharp_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/csharp/check.list)
lua_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/lua/check.list)
allegrocl_examples :=
clisp_examples :=
-uffi_examples :=
cffi_examples :=
r_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/r/check.list)
scilab_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/scilab/check.list)
@@ -257,7 +252,6 @@ check-test-suite: \
check-lua-test-suite \
check-allegrocl-test-suite \
check-clisp-test-suite \
- check-uffi-test-suite \
check-cffi-test-suite \
check-chicken-test-suite \
check-r-test-suite \
@@ -309,7 +303,6 @@ all-test-suite: \
all-lua-test-suite \
all-allegrocl-test-suite \
all-clisp-test-suite \
- all-uffi-test-suite \
all-cffi-test-suite \
all-chicken-test-suite \
all-r-test-suite \
@@ -337,7 +330,6 @@ broken-test-suite: \
broken-lua-test-suite \
broken-allegrocl-test-suite \
broken-clisp-test-suite \
- broken-uffi-test-suite \
broken-cffi-test-suite \
broken-chicken-test-suite \
broken-r-test-suite \
@@ -476,7 +468,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 uffi r go d javascript javascript/jsc \
+ chicken csharp allegrocl clisp lua cffi r go d javascript javascript/jsc \
javascript/v8 scilab xml
lib-modules = std
diff --git a/README b/README
index c0c3808d1..ea30d32f1 100644
--- a/README
+++ b/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, UFFI).
+ Ocaml, Common Lisp (CLISP, Allegro CL, CFFI).
SWIG can also export its parse tree into XML and
Lisp s-expressions.
diff --git a/Source/Makefile.am b/Source/Makefile.am
index e9802c520..820d50289 100644
--- a/Source/Makefile.am
+++ b/Source/Makefile.am
@@ -79,7 +79,6 @@ eswig_SOURCES = CParse/cscanner.c \
Modules/swigmain.cxx \
Modules/tcl8.cxx \
Modules/typepass.cxx \
- Modules/uffi.cxx \
Modules/utils.cxx \
Modules/xml.cxx \
Preprocessor/cpp.c \
diff --git a/Source/Modules/swigmain.cxx b/Source/Modules/swigmain.cxx
index 8cc20f660..c56f73092 100644
--- a/Source/Modules/swigmain.cxx
+++ b/Source/Modules/swigmain.cxx
@@ -50,7 +50,6 @@ extern "C" {
Language *swig_scilab(void);
Language *swig_sexp(void);
Language *swig_tcl(void);
- Language *swig_uffi(void);
Language *swig_xml(void);
}
@@ -88,7 +87,7 @@ static TargetLanguageModule modules[] = {
{"-sexp", swig_sexp, "Lisp S-Expressions", Supported},
{"-tcl", swig_tcl, "Tcl", Supported},
{"-tcl8", swig_tcl, NULL, Supported},
- {"-uffi", swig_uffi, "Common Lisp / UFFI", Supported},
+ {"-uffi", NULL, "Common Lisp / UFFI", Disabled},
{"-xml", swig_xml, "XML", Supported},
{NULL, NULL, NULL, Disabled}
};
diff --git a/TODO b/TODO
index 97e5319dd..bd573c652 100644
--- a/TODO
+++ b/TODO
@@ -275,54 +275,6 @@ Mzscheme
** Add shadow class support for the Swindle system.
-Common Lisp
------------
-
-* Random thoughts by mkoeppe on supporting Common Lisp implementations:
-
- There are many different Foreign Function Interfaces (FFI) for
- the various CL implementations. Probably SWIG should interface
- to UFFI, a least-common-denominator FFI that supports many
- implementations.
-
- Via the s-expression SWIG module we can export SWIG's parse
- tree and import it into CL. It remains to check if all
- relevant information is dumped (for instance, the type
- information). Experimental code is available to generate
- low-level UFFI declarations from this parse tree.
-
- However, for wrapping C++, we also need to create C wrappers
- because most FFIs cannot directly import C++. A CL SWIG module
- could be exporting both these wrappers and UFFI declarations.
- I have experimental code (not checked in yet) that does this.
-
- This is fine for generating low-level wrappers. But how do we
- support user typemaps (like converting lists and vectors to C
- arrays on input)? We have to generate Lisp code that does the
- conversion and then calls the low-level wrapper. If we
- generate Lisp code, it should be beautiful and readable.
- Therefore, we need at least a Lisp pretty printer. A Lisp
- pretty printer works best when the Lisp program is represented
- not as text but as Lisp data. Moreover, typemap writers will
- feel very much constrained by SWIG's capabilities for
- generating wrapper code, when compared to writing Lisp macros.
- Thus we would need half a re-implementation of Lisp in SWIG to
- make users happy.
-
- The solution could be the following:
-
-** Build a SWIG library (again) and load it into a Common Lisp
- implementation.
-
- The FFI declarations could be written manually, or this could
- be bootstrapped via the s-expression module or the primitive
- UFFI wrappers. This should be easy because SWIG's API is quite
- simple.
-
- The embedded SWIG would be driven by a CL program. High-level
- typemaps would be written as Lisp programs that generate Lisp
- code.
-
ALLEGROCL
-----
These first three will remove most of the warnings from most of the
diff --git a/configure.ac b/configure.ac
index 713b4b90f..efdca9aea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2846,12 +2846,6 @@ SKIP_CFFI=
#fi
AC_SUBST(SKIP_CFFI)
-SKIP_UFFI=
-#if test -z "$UFFIBIN" ; then
- SKIP_UFFI="1"
-#fi
-AC_SUBST(SKIP_UFFI)
-
SKIP_SCILAB=
if test -z "$SCILAB"; then
SKIP_SCILAB="1"
@@ -2978,7 +2972,6 @@ AC_CONFIG_FILES([
Examples/test-suite/allegrocl/Makefile
Examples/test-suite/clisp/Makefile
Examples/test-suite/cffi/Makefile
- Examples/test-suite/uffi/Makefile
Examples/test-suite/r/Makefile
Examples/test-suite/go/Makefile
Source/Makefile
@@ -3047,7 +3040,6 @@ test -n "$SKIP_R" || langs="${langs}r "
test -n "$SKIP_RUBY" || langs="${langs}ruby "
test -n "$SKIP_SCILAB" || langs="${langs}scilab "
test -n "$SKIP_TCL" || langs="${langs}tcl "
-test -n "$SKIP_UFFI" || langs="${langs}uffi "
echo "
The SWIG test-suite and examples are configured for the following languages: