[Pike] Remove code for Pike

We dropped support for it in SWIG 4.0.0 and nobody has stepped forward
to revive it in over 2 years.

See #2009.
diff --git a/CHANGES.current b/CHANGES.current
index 13d76ef..928e0be 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -8,6 +8,11 @@
 ===========================
 
 2021-05-13: olly
+	    [Pike] #2009 Remove code for Pike.  We dropped support for it in
+	    SWIG 4.0.0 and nobody has stepped forward to revive it in over 2
+	    years.
+
+2021-05-13: olly
 	    [Modula3] #2009 Remove code for Modula3.  We dropped support for it
 	    in SWIG 4.0.0 and nobody has stepped forward to revive it in over 2
 	    years.
diff --git a/Doc/Manual/Pike.html b/Doc/Manual/Pike.html
deleted file mode 100644
index 2b84323..0000000
--- a/Doc/Manual/Pike.html
+++ /dev/null
@@ -1,246 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<title>SWIG and Pike</title>
-<link rel="stylesheet" type="text/css" href="style.css">
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-</head>
-
-<body bgcolor="#ffffff">
-<H1><a name="Pike">37 SWIG and Pike</a></H1>
-<!-- INDEX -->
-<div class="sectiontoc">
-<ul>
-<li><a href="#Pike_nn2">Preliminaries</a>
-<ul>
-<li><a href="#Pike_nn3">Running SWIG</a>
-<li><a href="#Pike_nn4">Getting the right header files</a>
-<li><a href="#Pike_nn5">Using your module</a>
-</ul>
-<li><a href="#Pike_nn6">Basic C/C++ Mapping</a>
-<ul>
-<li><a href="#Pike_nn7">Modules</a>
-<li><a href="#Pike_nn8">Functions</a>
-<li><a href="#Pike_nn9">Global variables</a>
-<li><a href="#Pike_nn10">Constants and enumerated types</a>
-<li><a href="#Pike_nn11">Constructors and Destructors</a>
-<li><a href="#Pike_nn12">Static Members</a>
-</ul>
-</ul>
-</div>
-<!-- INDEX -->
-
-
-
-<p>
-This chapter describes SWIG support for Pike. As of this writing, the
-SWIG  Pike module is still under development and is not considered
-ready for prime  time. The Pike module is being developed against the
-Pike 7.4.10 release  and may not be compatible with previous versions
-of Pike.
-</p>
-
-<p>
-This chapter covers most SWIG features, but certain low-level details
-are  covered in less depth than in earlier chapters.  At the very
-least, make sure you read the "<a href="SWIG.html#SWIG">SWIG Basics</a>"
-chapter.<br>
-</p>
-
-<H2><a name="Pike_nn2">37.1 Preliminaries</a></H2>
-
-
-<H3><a name="Pike_nn3">37.1.1 Running SWIG</a></H3>
-
-
-<p>
-Suppose that you defined a SWIG module such as the following:
-</p>
-
-<div class="code">
-  <pre>%module example<br><br>%{<br>#include "example.h"<br>%}<br><br>int fact(int n);<br></pre>
-</div>
-
-<p>
-To build a C extension module for Pike, run SWIG using the <tt>-pike</tt> option :
-</p>
-
-<div class="code">
-  <pre>$ <b>swig -pike example.i</b><br></pre>
-</div>
-
-<p>
-If you're building a C++ extension, be sure to add the <tt>-c++</tt> option:
-</p>
-
-<div class="code">
-  <pre>$ <b>swig -c++ -pike example.i</b><br></pre>
-</div>
-
-<p>
-This creates a single source file named <tt>example_wrap.c</tt> (or <tt>example_wrap.cxx</tt>, if you
-ran SWIG with the <tt>-c++</tt> option).
-The SWIG-generated source file contains the low-level wrappers that need
-to be compiled and linked with the rest of your C/C++ application to
-create an extension module.
-</p>
-
-<p>
-The name of the wrapper file is derived from the name of the input
-file.  For example, if the input file is <tt>example.i</tt>, the name
-of the wrapper file is <tt>example_wrap.c</tt>. To change this, you
-can use the <tt>-o</tt> option:
-</p>
-
-<div class="code">
-  <pre>$ <b>swig -pike -o pseudonym.c example.i</b><br></pre>
-</div>
-<H3><a name="Pike_nn4">37.1.2 Getting the right header files</a></H3>
-
-
-<p>
-In order to compile the C/C++ wrappers, the compiler needs to know the
-path to the Pike header files. These files are usually contained in a
-directory such as
-</p>
-
-<div class="code">
-  <pre>/usr/local/pike/7.4.10/include/pike<br></pre>
-</div>
-
-<p>
-There doesn't seem to be any way to get Pike itself to reveal the
-location of these files, so you may need to hunt around for them.
-You're looking for files with the names <tt>global.h</tt>, <tt>program.h</tt>
-and so on.
-</p>
-
-<H3><a name="Pike_nn5">37.1.3 Using your module</a></H3>
-
-
-<p>
-To use your module, simply use Pike's <tt>import</tt> statement:
-</p>
-
-<div class="code"><pre>
-$ <b>pike</b>
-Pike v7.4 release 10 running Hilfe v3.5 (Incremental Pike Frontend)
-&gt; <b>import example;</b>
-&gt; <b>fact(4);</b>
-(1) Result: 24
-</pre></div>
-
-<H2><a name="Pike_nn6">37.2 Basic C/C++ Mapping</a></H2>
-
-
-<H3><a name="Pike_nn7">37.2.1 Modules</a></H3>
-
-
-<p>
-All of the code for a given SWIG module is wrapped into a single Pike
-module. Since the name of the shared library that implements your
-module ultimately determines the module's name (as far as Pike is
-concerned), SWIG's <tt>%module</tt> directive doesn't really have any
-significance.
-</p>
-
-<H3><a name="Pike_nn8">37.2.2 Functions</a></H3>
-
-
-<p>
-Global functions are wrapped as new Pike built-in functions. For
-example,
-</p>
-
-<div class="code"><pre>
-%module example
-
-int fact(int n);
-</pre></div>
-
-<p>
-creates a new built-in function <tt>example.fact(n)</tt> that works
-exactly as you'd expect it to:
-</p>
-
-<div class="code"><pre>
-&gt; <b>import example;</b>
-&gt; <b>fact(4);</b>
-(1) Result: 24
-</pre></div>
-
-<H3><a name="Pike_nn9">37.2.3 Global variables</a></H3>
-
-
-<p>
-Global variables are currently wrapped as a pair of functions, one to get
-the current value of the variable and another to set it. For example, the
-declaration
-</p>
-
-<div class="code"><pre>
-%module example
-
-double Foo;
-</pre></div>
-
-<p>
-will result in two functions, <tt>Foo_get()</tt> and <tt>Foo_set()</tt>:
-</p>
-
-<div class="code"><pre>
-&gt; <b>import example;</b>
-&gt; <b>Foo_get();</b>
-(1) Result: 3.000000
-&gt; <b>Foo_set(3.14159);</b>
-(2) Result: 0
-&gt; <b>Foo_get();</b>
-(3) Result: 3.141590
-</pre></div>
-
-<H3><a name="Pike_nn10">37.2.4 Constants and enumerated types</a></H3>
-
-
-<p>
-Enumerated types in C/C++ declarations are wrapped as Pike constants,
-not as Pike enums.
-</p>
-
-<H3><a name="Pike_nn11">37.2.5 Constructors and Destructors</a></H3>
-
-
-<p>
-Constructors are wrapped as <tt>create()</tt> methods, and destructors are
-wrapped as <tt>destroy()</tt> methods, for Pike classes.
-</p>
-
-<H3><a name="Pike_nn12">37.2.6 Static Members</a></H3>
-
-
-<p>
-Since Pike doesn't support static methods or data for Pike classes, static
-member functions in your C++ classes are wrapped as regular functions and
-static member variables are wrapped as pairs of functions (one to get the
-value of the static member variable, and another to set it). The names of
-these functions are prepended with the name of the class.
-For example, given this C++ class declaration:
-</p>
-
-<div class="code"><pre>
-class Shape
-{
-public:
-  static void print();
-  static int nshapes;
-};
-</pre></div>
-
-<p>
-SWIG will generate a <tt>Shape_print()</tt> method that invokes the static
-<tt>Shape::print()</tt> member function, as well as a pair of methods,
-<tt>Shape_nshapes_get()</tt> and <tt>Shape_nshapes_set()</tt>, to get and set
-the value of <tt>Shape::nshapes</tt>.
-</p>
-
-</body>
-</html>
diff --git a/Examples/pike/check.list b/Examples/pike/check.list
deleted file mode 100644
index d6c8e2e..0000000
--- a/Examples/pike/check.list
+++ /dev/null
@@ -1,7 +0,0 @@
-# see top-level Makefile.in
-class
-constants
-enum
-overload
-simple
-template
diff --git a/Examples/pike/class/Makefile b/Examples/pike/class/Makefile
deleted file mode 100644
index e5319db..0000000
--- a/Examples/pike/class/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-CXXSRCS    = example.cxx
-TARGET     = example
-INTERFACE  = example.i
-LIBS       = -lm
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/class/example.cxx b/Examples/pike/class/example.cxx
deleted file mode 100644
index 0463045..0000000
--- a/Examples/pike/class/example.cxx
+++ /dev/null
@@ -1,28 +0,0 @@
-/* File : example.cxx */
-
-#include "example.h"
-#define M_PI 3.14159265358979323846
-
-/* Move the shape to a new location */
-void Shape::move(double dx, double dy) {
-  x += dx;
-  y += dy;
-}
-
-int Shape::nshapes = 0;
-
-double Circle::area() {
-  return M_PI*radius*radius;
-}
-
-double Circle::perimeter() {
-  return 2*M_PI*radius;
-}
-
-double Square::area() {
-  return width*width;
-}
-
-double Square::perimeter() {
-  return 4*width;
-}
diff --git a/Examples/pike/class/example.h b/Examples/pike/class/example.h
deleted file mode 100644
index 0dff185..0000000
--- a/Examples/pike/class/example.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* File : example.h */
-
-class Shape {
-public:
-  Shape() {
-    nshapes++;
-  }
-  virtual ~Shape() {
-    nshapes--;
-  }
-  double  x, y;
-  void    move(double dx, double dy);
-  virtual double area() = 0;
-  virtual double perimeter() = 0;
-  static  int nshapes;
-};
-
-class Circle : public Shape {
-private:
-  double radius;
-public:
-  Circle(double r) : radius(r) { }
-  virtual double area();
-  virtual double perimeter();
-};
-
-class Square : public Shape {
-private:
-  double width;
-public:
-  Square(double w) : width(w) { }
-  virtual double area();
-  virtual double perimeter();
-};
diff --git a/Examples/pike/class/example.i b/Examples/pike/class/example.i
deleted file mode 100644
index fbdf724..0000000
--- a/Examples/pike/class/example.i
+++ /dev/null
@@ -1,9 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/* Let's just grab the original header file here */
-%include "example.h"
diff --git a/Examples/pike/class/runme.pike b/Examples/pike/class/runme.pike
deleted file mode 100644
index a637760..0000000
--- a/Examples/pike/class/runme.pike
+++ /dev/null
@@ -1,53 +0,0 @@
-import .example;
-
-int main()
-{
-    // ----- Object creation -----
-
-    write("Creating some objects:\n");
-    Circle c = Circle(10.0);
-    write("    Created circle.\n");
-    Square s = Square(10.0);
-    write("    Created square.\n");
-
-    // ----- Access a static member -----
-
-    write("\nA total of " + Shape_nshapes_get() + " shapes were created\n");
-
-    // ----- Member data access -----
-
-    // Set the location of the object
-
-    c->x_set(20.0);
-    c->y_set(30.0);
-
-    s->x_set(-10.0);
-    s->y_set(5.0);
-
-    write("\nHere is their current position:\n");
-    write("    Circle = (%f, %f)\n", c->x_get(), c->y_get());
-    write("    Square = (%f, %f)\n", s->x_get(), s->y_get());
-
-    // ----- Call some methods -----
-
-    write("\nHere are some properties of the shapes:\n");
-    write("   The circle:\n");
-    write("        area      = %f.\n", c->area());
-    write("        perimeter = %f.\n", c->perimeter());
-    write("   The square:\n");
-    write("        area      = %f.\n", s->area());
-    write("        perimeter = %f.\n", s->perimeter());
-
-    write("\nGuess I'll clean up now\n");
-
-    /* See if we can force 's' to be garbage-collected */
-    s = 0;
-    
-    /* Now we should be down to only 1 shape */
-    write("%d shapes remain\n", Shape_nshapes_get());
-    
-    /* Done */
-    write("Goodbye\n");
-    
-    return 0;
-}
diff --git a/Examples/pike/constants/Makefile b/Examples/pike/constants/Makefile
deleted file mode 100644
index 45da7d2..0000000
--- a/Examples/pike/constants/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-SRCS       =
-TARGET     = example
-INTERFACE  = example.i
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='mypike' INTERFACE='$(INTERFACE)' pike_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/constants/example.i b/Examples/pike/constants/example.i
deleted file mode 100644
index 4f7b1a4..0000000
--- a/Examples/pike/constants/example.i
+++ /dev/null
@@ -1,27 +0,0 @@
-/* File : example.i */
-%module example
-
-/* A few preprocessor macros */
-
-#define    ICONST      42
-#define    FCONST      2.1828
-#define    CCONST      'x'
-#define    CCONST2     '\n'
-#define    SCONST      "Hello World"
-#define    SCONST2     "\"Hello World\""
-
-/* This should work just fine */
-#define    EXPR        ICONST + 3*(FCONST)
-
-/* This shouldn't do anything */
-#define    EXTERN      extern
-
-/* Neither should this (BAR isn't defined) */
-#define    FOO         (ICONST + BAR)
-
-/* The following directives also produce constants */
-
-%constant int iconst = 37;
-%constant double fconst = 3.14;
-
-
diff --git a/Examples/pike/constants/runme.pike b/Examples/pike/constants/runme.pike
deleted file mode 100644
index a8d9f94..0000000
--- a/Examples/pike/constants/runme.pike
+++ /dev/null
@@ -1,24 +0,0 @@
-int main()
-{
-  write("ICONST  = %d (should be 42)\n", .example.ICONST);
-  write("FCONST  = %f (should be 2.1828)\n", .example.FCONST);
-  write("CCONST  = %c (should be 'x')\n", .example.CCONST);
-  write("CCONST2 = %c (this should be on a new line)\n", .example.CCONST2);
-  write("SCONST  = %s (should be 'Hello World')\n", .example.SCONST);
-  write("SCONST2 = %s (should be '\"Hello World\"')\n", .example.SCONST2);
-  write("EXPR    = %f (should be 48.5484)\n", .example.EXPR);
-  write("iconst  = %d (should be 37)\n", .example.iconst);
-  write("fconst  = %f (should be 3.14)\n", .example.fconst);
-
-  if (search(indices(.example), "EXTERN") == -1)
-    write("EXTERN isn't defined (good)\n");
-  else
-    write("EXTERN is defined (bad)\n");
-
-  if (search(indices(.example), "FOO") == -1)
-    write("FOO isn't defined (good)\n");
-  else
-    write("FOO is defined (bad)\n");
-
-  return 0;
-}
diff --git a/Examples/pike/enum/Makefile b/Examples/pike/enum/Makefile
deleted file mode 100644
index e5319db..0000000
--- a/Examples/pike/enum/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-CXXSRCS    = example.cxx
-TARGET     = example
-INTERFACE  = example.i
-LIBS       = -lm
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/enum/README b/Examples/pike/enum/README
deleted file mode 100644
index 055aa9f..0000000
--- a/Examples/pike/enum/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This example will not compile with Pike versions 7.4.20 unless you first
-patch the Pike sources. The problem is for line 91 of Pike's "stralloc.h"
-(usually installed as /usr/local/pike/7.4.10/include/pike/stralloc.h). That
-line reads:
-
-    tmp.ptr=ptr;
-
-but should be patched to read:
-
-    tmp.ptr=(p_wchar0 *) ptr;
-
-This bug has been reported to the Pike developers.
-
diff --git a/Examples/pike/enum/example.cxx b/Examples/pike/enum/example.cxx
deleted file mode 100644
index 6785e57..0000000
--- a/Examples/pike/enum/example.cxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/* File : example.c */
-
-#include "example.h"
-#include <stdio.h>
-
-void Foo::enum_test(speed s) {
-  if (s == IMPULSE) {
-    printf("IMPULSE speed\n");
-  } else if (s == WARP) {
-    printf("WARP speed\n");
-  } else if (s == LUDICROUS) {
-    printf("LUDICROUS speed\n");
-  } else {
-    printf("Unknown speed\n");
-  }
-}
-
-void enum_test(color c, Foo::speed s) {
-  if (c == RED) {
-    printf("color = RED, ");
-  } else if (c == BLUE) {
-    printf("color = BLUE, ");
-  } else if (c == GREEN) {
-    printf("color = GREEN, ");
-  } else {
-    printf("color = Unknown color!, ");
-  }
-  if (s == Foo::IMPULSE) {
-    printf("speed = IMPULSE speed\n");
-  } else if (s == Foo::WARP) {
-    printf("speed = WARP speed\n");
-  } else if (s == Foo::LUDICROUS) {
-    printf("speed = LUDICROUS speed\n");
-  } else {
-    printf("speed = Unknown speed!\n");
-  }
-}
diff --git a/Examples/pike/enum/example.h b/Examples/pike/enum/example.h
deleted file mode 100644
index 525d62a..0000000
--- a/Examples/pike/enum/example.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* File : example.h */
-
-enum color { RED, BLUE, GREEN };
-
-class Foo {
- public:
-  Foo() { }
-  enum speed { IMPULSE, WARP, LUDICROUS };
-  void enum_test(speed s);
-};
-
-void enum_test(color c, Foo::speed s);
-
diff --git a/Examples/pike/enum/example.i b/Examples/pike/enum/example.i
deleted file mode 100644
index 23ee8a8..0000000
--- a/Examples/pike/enum/example.i
+++ /dev/null
@@ -1,11 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/* Let's just grab the original header file here */
-
-%include "example.h"
-
diff --git a/Examples/pike/enum/runme.pike b/Examples/pike/enum/runme.pike
deleted file mode 100644
index 4846356..0000000
--- a/Examples/pike/enum/runme.pike
+++ /dev/null
@@ -1,28 +0,0 @@
-int main()
-{
-    write("*** color ***\n");
-    write("    RED    = " + .example.RED + "\n");
-    write("    BLUE   = " + .example.BLUE + "\n");
-    write("    GREEN  = " + .example.GREEN + "\n");
-
-    write("\n*** Foo::speed ***\n");
-    write("    Foo_IMPULSE   = " + .example.Foo.IMPULSE + "\n");
-    write("    Foo_WARP      = " + .example.Foo.WARP + "\n");
-    write("    Foo_LUDICROUS = " + .example.Foo.LUDICROUS + "\n");
-
-    write("\nTesting use of enums with functions\n\n");
-
-    .example.enum_test(.example.RED,   .example.Foo.IMPULSE);
-    .example.enum_test(.example.BLUE,  .example.Foo.WARP);
-    .example.enum_test(.example.GREEN, .example.Foo.LUDICROUS);
-    .example.enum_test(1234, 5678);
-
-    write("\nTesting use of enum with class method\n");
-    .example.Foo f = .example.Foo();
-
-    f->enum_test(.example.Foo.IMPULSE);
-    f->enum_test(.example.Foo.WARP);
-    f->enum_test(.example.Foo.LUDICROUS);
-    
-    return 0;
-}
diff --git a/Examples/pike/overload/Makefile b/Examples/pike/overload/Makefile
deleted file mode 100644
index 5e5fe66..0000000
--- a/Examples/pike/overload/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-CXXSRCS    = example.cxx
-TARGET     = example
-INTERFACE  = example.i
-LIBS       = -lstdc++ -lm
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/overload/example.cxx b/Examples/pike/overload/example.cxx
deleted file mode 100644
index 3760fdd..0000000
--- a/Examples/pike/overload/example.cxx
+++ /dev/null
@@ -1,115 +0,0 @@
-#include <iostream>
-
-#include "example.h"
-
-// Overloaded constructors for class Bar
-Bar::Bar() {
-    std::cout << "Called Bar::Bar()" << std::endl;
-}
-
-Bar::Bar(const Bar&) {
-    std::cout << "Called Bar::Bar(const Bar&)" << std::endl;
-}
-
-Bar::Bar(double x) {
-    std::cout << "Called Bar::Bar(double) with x = " << x << std::endl;
-}
-
-Bar::Bar(double x, char *y) {
-    std::cout << "Called Bar::Bar(double, char *) with x, y = " << x << ", \"" << y << "\"" << std::endl;
-}
-
-Bar::Bar(int x, int y) {
-    std::cout << "Called Bar::Bar(int, int) with x, y = " << x << ", " << y << std::endl;
-}
-
-Bar::Bar(char *x) {
-    std::cout << "Called Bar::Bar(char *) with x = \"" << x << "\"" << std::endl;
-}
-
-Bar::Bar(int x) {
-    std::cout << "Called Bar::Bar(int) with x = " << x << std::endl;
-}
-
-Bar::Bar(long x) {
-    std::cout << "Called Bar::Bar(long) with x = " << x << std::endl;
-}
-
-Bar::Bar(Bar *x) {
-    std::cout << "Called Bar::Bar(Bar *) with x = " << x << std::endl;
-}
-
-// Overloaded member functions
-void Bar::foo(const Bar& x) {
-    std::cout << "Called Bar::foo(const Bar&) with &x = " << &x << std::endl;
-}
-
-void Bar::foo(double x) {
-    std::cout << "Called Bar::foo(double) with x = " << x << std::endl;
-}
-
-void Bar::foo(double x, char *y) {
-    std::cout << "Called Bar::foo(double, char *) with x, y = " << x << ", \"" << y << "\"" << std::endl;
-}
-
-void Bar::foo(int x, int y) {
-    std::cout << "Called Bar::foo(int, int) with x, y = " << x << ", " << y << std::endl;
-}
-
-void Bar::foo(char *x) {
-    std::cout << "Called Bar::foo(char *) with x = \"" << x << "\"" << std::endl;
-}
-
-void Bar::foo(int x) {
-    std::cout << "Called Bar::foo(int) with x = " << x << std::endl;
-}
-
-void Bar::foo(long x) {
-    std::cout << "Called Bar::foo(long) with x = " << x << std::endl;
-}
-
-void Bar::foo(Bar *x) {
-    std::cout << "Called Bar::foo(Bar *) with x = " << x << std::endl;
-}
-
-void Bar::spam(int x, int y, int z) {
-    std::cout << "Called Bar::spam(int, int, int) with x, y, z = " << x << ", " << y << ", " << z << std::endl;
-}
-
-void Bar::spam(double x, int y, int z) {
-    std::cout << "Called Bar::spam(double, int, int) with x, y, z = " << x << ", " << y << ", " << z << std::endl;
-}
-
-// Overloaded global methods
-void foo(const Bar& x) {
-    std::cout << "Called foo(const Bar& x) with &x = " << &x << std::endl;
-}
-
-void foo(double x) {
-    std::cout << "Called foo(double) with x = " << x << std::endl;
-}
-
-void foo(double x, char *y) {
-    std::cout << "Called foo(double, char *) with x, y = " << x << ", \"" << y << "\"" << std::endl;
-}
-
-void foo(int x, int y) {
-    std::cout << "Called foo(int, int) with x, y = " << x << ", " << y << std::endl;
-}
-
-void foo(char *x) {
-    std::cout << "Called foo(char *) with x = \"" << x << "\"" << std::endl;
-}
-
-void foo(int x) {
-    std::cout << "Called foo(int) with x = " << x << std::endl;
-}
-
-void foo(long x) {
-    std::cout << "Called foo(long) with x = " << x << std::endl;
-}
-
-void foo(Bar *x) {
-    std::cout << "Called foo(Bar *) with x = " << x << std::endl;
-}
-
diff --git a/Examples/pike/overload/example.h b/Examples/pike/overload/example.h
deleted file mode 100644
index e47a122..0000000
--- a/Examples/pike/overload/example.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef EXAMPLE_H
-#define EXAMPLE_H
-
-class Bar {
-public:
-    Bar();
-    Bar(const Bar&);
-    Bar(double);
-    Bar(double, char *);
-    Bar(int, int);
-    Bar(char *);
-    Bar(long);
-    Bar(int);
-    Bar(Bar *);
-
-    void foo(const Bar&);
-    void foo(double);
-    void foo(double, char *);
-    void foo(int, int);
-    void foo(char *);
-    void foo(long);
-    void foo(int);
-    void foo(Bar *);
-    
-    void spam(int x, int y=2, int z=3);
-    void spam(double x, int y=2, int z=3);
-};
-
-void foo(const Bar&);
-void foo(double);
-void foo(double, char *);
-void foo(int, int);
-void foo(char *);
-void foo(int);
-void foo(long);
-void foo(Bar *);
-
-void spam(int x, int y=2, int z=3);
-void spam(double x, int y=2, int z=3);
-
-#endif
diff --git a/Examples/pike/overload/example.i b/Examples/pike/overload/example.i
deleted file mode 100644
index ddcd006..0000000
--- a/Examples/pike/overload/example.i
+++ /dev/null
@@ -1,28 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/**
- * These overloaded declarations conflict with other overloads (as far as
- * SWIG's Ruby module's implementation for overloaded methods is concerned).
- * One option is use the %rename directive to rename the conflicting methods;
- * here, we're just using %ignore to avoid wrapping some of the overloaded
- * functions altogether.
- */
-
-%ignore Bar;
-
-%ignore Bar::Bar(Bar *);
-%ignore Bar::Bar(long);
-
-%ignore Bar::foo(const Bar&);
-%ignore Bar::foo(long);
-
-%ignore ::foo(const Bar&);
-%ignore ::foo(int);
-
-/* Let's just grab the original header file here */
-%include "example.h"
diff --git a/Examples/pike/overload/runme.pike b/Examples/pike/overload/runme.pike
deleted file mode 100644
index d30e947..0000000
--- a/Examples/pike/overload/runme.pike
+++ /dev/null
@@ -1,83 +0,0 @@
-// import .example;
-
-int main()
-{
-	// This should invoke foo(double)
-	.example.foo(3.14159);
-
-	// This should invoke foo(double, char *)
-	.example.foo(3.14159, "Pi");
-
-	// This should invoke foo(int, int)
-	.example.foo(3, 4);
-
-	//  This should invoke foo(char *)
-	.example.foo("This is a test");
-
-	// This should invoke foo(long)
-	.example.foo(42);
-
-	/*
-	// This should invoke Bar::Bar() followed by foo(Bar *)
-	foo(Bar.new);
-
-	// Skip a line
-	write("\n");
-
-	// This should invoke Bar::Bar(double)
-	Bar.new(3.14159);
-
-	// This should invoke Bar::Bar(double, char *)
-	Bar.new(3.14159, "Pi");
-
-	// This should invoke Bar::Bar(int, int)
-	Bar.new(3, 4);
-
-	// This should invoke Bar::Bar(char *)
-	Bar.new("This is a test");
-
-	// This should invoke Bar::Bar(int)
-	Bar.new(42);
-
-	// This should invoke Bar::Bar() for the input argument,
-	// followed by Bar::Bar(const Bar&).
-	Bar.new(Bar.new);
-
-	// Skip a line
-	write("\n");
-	*/
-
-	// Construct a new Bar instance (invokes Bar::Bar())
-	/*
-	bar = Bar.new;
-
-	// This should invoke Bar::foo(double)
-	bar.foo(3.14159);
-
-	// This should invoke Bar::foo(double, char *)
-	bar.foo(3.14159, "Pi");
-
-	// This should invoke Bar::foo(int, int)
-	bar.foo(3, 4);
-
-	// This should invoke Bar::foo(char *)
-	bar.foo("This is a test");
-
-	// This should invoke Bar::foo(int)
-	bar.foo(42);
-
-	// This should invoke Bar::Bar() to construct the input
-	// argument, followed by Bar::foo(Bar *).
-	bar.foo(Example::Bar.new);
-
-	// This should invoke Bar::spam(int x, int y, int z)
-	bar.spam(1);
-
-	// This should invoke Bar::spam(double x, int y, int z)
-	bar.spam(3.14159);
-	*/
-
-   	write("Goodbye\n");
-    
-   	return 0;
-}
diff --git a/Examples/pike/simple/Makefile b/Examples/pike/simple/Makefile
deleted file mode 100644
index 8b49b4e..0000000
--- a/Examples/pike/simple/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-SRCS       = example.c
-TARGET     = example
-INTERFACE  = example.i
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	TARGET='mypike' INTERFACE='$(INTERFACE)' pike_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/simple/example.c b/Examples/pike/simple/example.c
deleted file mode 100644
index 1c2af78..0000000
--- a/Examples/pike/simple/example.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* File : example.c */
-
-/* A global variable */
-double Foo = 3.0;
-
-/* Compute the greatest common divisor of positive integers */
-int gcd(int x, int y) {
-  int g;
-  g = y;
-  while (x > 0) {
-    g = x;
-    x = y % x;
-    y = g;
-  }
-  return g;
-}
-
-
diff --git a/Examples/pike/simple/example.i b/Examples/pike/simple/example.i
deleted file mode 100644
index 24093b9..0000000
--- a/Examples/pike/simple/example.i
+++ /dev/null
@@ -1,7 +0,0 @@
-/* File : example.i */
-%module example
-
-%inline %{
-extern int    gcd(int x, int y);
-extern double Foo;
-%}
diff --git a/Examples/pike/simple/runme.pike b/Examples/pike/simple/runme.pike
deleted file mode 100644
index a6a78e9..0000000
--- a/Examples/pike/simple/runme.pike
+++ /dev/null
@@ -1,20 +0,0 @@
-int main()
-{
-    /* Call our gcd() function */
-    int x = 42;
-    int y = 105;
-    int g = .example.gcd(x, y);
-    write("The gcd of %d and %d is %d\n", x, y, g);
-
-    /* Manipulate the Foo global variable */
-    /* Output its current value */
-    write("Foo = %f\n", .example->Foo_get());
-
-    /* Change its value */
-    .example->Foo_set(3.1415926);
-
-    /* See if the change took effect */
-    write("Foo = %f\n", .example->Foo_get());
-    
-    return 0;
-}
diff --git a/Examples/pike/template/Makefile b/Examples/pike/template/Makefile
deleted file mode 100644
index 513dc3b..0000000
--- a/Examples/pike/template/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP        = ../..
-SWIGEXE    = $(TOP)/../swig
-SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
-CXXSRCS    =
-TARGET     = example
-INTERFACE  = example.i
-LIBS       = -lm
-SWIGOPT    =
-
-check: build
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_run
-
-build:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-
-static:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
-	SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
-	SWIGOPT='$(SWIGOPT)' TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-
-clean:
-	$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Examples/pike/template/example.h b/Examples/pike/template/example.h
deleted file mode 100644
index 7401df6..0000000
--- a/Examples/pike/template/example.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* File : example.h */
-
-// Some template definitions
-
-template<class T> T max(T a, T b) { return  a>b ? a : b; }
-
-template<class T> class vector {
-  T *v;
-  int sz;
- public:
-  vector(int _sz) {
-    v = new T[_sz];
-    sz = _sz;
-  }
-  T &get(int index) {
-    return v[index];
-  }
-  void set(int index, T &val) {
-    v[index] = val;
-  }
-#ifdef SWIG
-  %extend {
-    T getitem(int index) {
-      return $self->get(index);
-    }
-    void setitem(int index, T val) {
-      $self->set(index,val);
-    }
-  }
-#endif
-};
-
diff --git a/Examples/pike/template/example.i b/Examples/pike/template/example.i
deleted file mode 100644
index 8f94c4d..0000000
--- a/Examples/pike/template/example.i
+++ /dev/null
@@ -1,17 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/* Let's just grab the original header file here */
-%include "example.h"
-
-/* Now instantiate some specific template declarations */
-
-%template(maxint) max<int>;
-%template(maxdouble) max<double>;
-%template(vecint) vector<int>;
-%template(vecdouble) vector<double>;
-
diff --git a/Examples/pike/template/runme.pike b/Examples/pike/template/runme.pike
deleted file mode 100644
index 36825c3..0000000
--- a/Examples/pike/template/runme.pike
+++ /dev/null
@@ -1,33 +0,0 @@
-int main()
-{
-    // Call some templated functions
-    write(sprintf("%d\n", .example.maxint(3, 7)));
-    write(sprintf("%f\n", .example.maxdouble(3.14, 2.18)));
-    
-    // Create some objects
-    .example.vecint iv = .example.vecint(100);
-    .example.vecdouble dv = .example.vecdouble(1000);
-    
-    for (int i = 0; i < 100; i++) {
-        iv->setitem(i, 2*i);
-    }
-
-    for (int i = 0; i < 1000; i++) {
-        dv->setitem(i, 1.0/(i+1));
-    }
-    
-    int isum = 0;
-    for (int i = 0; i < 100; i++) {
-        isum += iv->getitem(i);
-    }
-    
-    write(sprintf("%d\n", isum));
-    
-    float fsum = 0.0;
-    for (int i = 0; i < 1000; i++) {
-        fsum += dv->getitem(i);
-    }
-    write(sprintf("%f\n", fsum));
-    
-    return 0;
-}
diff --git a/Examples/test-suite/pike/Makefile.in b/Examples/test-suite/pike/Makefile.in
deleted file mode 100644
index 6e1bdfb..0000000
--- a/Examples/test-suite/pike/Makefile.in
+++ /dev/null
@@ -1,49 +0,0 @@
-#######################################################################
-# Makefile for Pike test-suite
-#######################################################################
-
-LANGUAGE     = pike
-PIKE         = pike
-SCRIPTSUFFIX = _runme.pike
-
-srcdir       = @srcdir@
-top_srcdir   = @top_srcdir@
-top_builddir = @top_builddir@
-
-include $(srcdir)/../common.mk
-
-# Overridden variables here
-# none!
-
-# Custom tests - tests with additional commandline options
-# none!
-
-# Rules for the different types of tests
-%.cpptest:
-	$(setup)
-	+$(swig_and_compile_cpp)
-	$(run_testcase)
-
-%.ctest:
-	$(setup)
-	+$(swig_and_compile_c)
-	$(run_testcase)
-
-%.multicpptest:
-	$(setup)
-	+$(swig_and_compile_multi_cpp)
-	$(run_testcase)
-
-# Runs the testcase. A testcase is only run if
-# a file is found which has _runme.pike appended after the testcase name.
-run_testcase = \
-	if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
-	  env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(PIKE) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
-	fi
-
-# Clean: remove the generated .pike file
-%.clean:
-	@rm -f $*.pike;
-
-clean:
-	$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' pike_clean
diff --git a/Lib/pike/pike.swg b/Lib/pike/pike.swg
deleted file mode 100644
index a36bf3a..0000000
--- a/Lib/pike/pike.swg
+++ /dev/null
@@ -1,326 +0,0 @@
-/* -----------------------------------------------------------------------------
- * pike.swg
- *
- * Pike configuration module.
- * ----------------------------------------------------------------------------- */
-
-%insert(runtime) "swigrun.swg";            // Common C API type-checking code
-%insert(runtime) "pikerun.swg";         // Pike run-time code
-
-%insert(runtime) %{
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include <pike/global.h>
-#include <pike/module.h>
-#include <pike/interpret.h>
-#ifdef __cplusplus
-}
-#endif
-%}
-
-/* -----------------------------------------------------------------------------
- *                          standard typemaps
- * ----------------------------------------------------------------------------- */
-
-/* --- Input arguments --- */
-
-/* Primitive datatypes. */
-
-%typemap(in, pikedesc="tInt")
-    int, unsigned int, short, unsigned short,
-    long, unsigned long, char, signed char, unsigned char,
-    bool, enum SWIGTYPE, long long, unsigned long long
-{
-    if ($input.type != T_INT)
-        Pike_error("Bad argument: Expected an integer.\n");
-    $1 = ($1_ltype) $input.u.integer;
-}
-
-%typemap(in, pikedesc="tFloat") float, double {
-    if ($input.type != T_FLOAT)
-        Pike_error("Bad argument: Expected a float.\n");
-    $1 = ($1_ltype) $input.u.float_number;
-}
-
-%typemap(in, pikedesc="tStr") char *, char [ANY] {
-    if ($input.type != T_STRING)
-        Pike_error("Bad argument: Expected a string.\n");
-    $1 = ($1_ltype) STR0($input.u.string);
-}
-
-/* Pointers, references and arrays */
-
-%typemap(in) SWIGTYPE *,
-             SWIGTYPE &,
-             SWIGTYPE &&,
-             SWIGTYPE []
-	"SWIG_ConvertPtr($input.u.object, (void **) &$1, $1_descriptor, 1);"
-	
-/* Void pointer.  Accepts any kind of pointer */
-%typemap(in) void * "/* FIXME */";
-
-/* Object passed by value. Convert to a pointer */
-%typemap(in) SWIGTYPE ($&1_ltype argp) "/* FIXME */";
-
-/* Pointer to a class member */
-%typemap(in) SWIGTYPE (CLASS::*) "/* FIXME */";
-
-/* Const primitive references.  Passed by value */
-
-%typemap(in, pikedesc="tInt") const int & (int temp),
-	     const short & (short temp),
-             const long  & (long temp),
-             const unsigned int & (unsigned int temp),
-             const unsigned short & (unsigned short temp),
-             const unsigned long & (unsigned long temp),
-	     const char & (char temp),
-             const signed char & (signed char temp),
-             const unsigned char & (unsigned char temp),
-             const bool & (bool temp),
-	     const long long & ($*1_ltype temp),
-	     const unsigned long long & ($*1_ltype temp),
-             const enum SWIGTYPE & ($*1_ltype temp),
-             const enum SWIGTYPE && ($*1_ltype temp)
-{
-  if ($input.type != T_INT)
-    Pike_error("Bad argument: Expected an integer.\n");
-    temp = ($*1_ltype) $input.u.integer;
-    $1 = &temp;
-}
-
-%typemap(in, pikedesc="tFloat") const float & (float temp),
-	     const double & (double temp)
-{
-  if ($input.type != T_FLOAT)
-    Pike_error("Bad argument: Expected a float.\n");
-    temp = ($*1_ltype) $input.u.float_number;
-    $1 = &temp;
-}
-
-/* -----------------------------------------------------------------------------
- * Output Typemaps
- * ----------------------------------------------------------------------------- */
-%typemap(out, pikedesc="tInt")
-    int, unsigned int,
-    short, unsigned short,
-    long, unsigned long,
-    char, signed char, unsigned char, 
-    bool, enum SWIGTYPE
-	"push_int($1);";
-
-%typemap(out, pikedesc="tInt") long long	"push_int64($1);";
-%typemap(out, pikedesc="tInt") unsigned long long	"push_int64($1);";
-%typemap(out, pikedesc="tFloat") float, double	"push_float($1);";
-%typemap(out, pikedesc="tStr") char *		"push_text($1);";
-
-/* Pointers, references, and arrays */
-%typemap(out, pikedesc="tObj") SWIGTYPE*, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [] "push_object(SWIG_NewPointerObj((void *) $1, $1_descriptor, $owner));";
-
-/* Void return value; don't push anything */
-%typemap(out, pikedesc="tVoid") void		"";
-
-/* Dynamic casts */
-
-%typemap(out) SWIGTYPE *DYNAMIC, SWIGTYPE &DYNAMIC "/* FIXME */";
-
-/* Member pointer */
-%typemap(out) SWIGTYPE (CLASS::*) "/* FIXME */";
-
-/* Special typemap for character array return values */
-%typemap(out, pikedesc="tStr") char [ANY], const char [ANY] "push_text($1);";
-
-/* Primitive types--return by value */
-%typemap(out, pikedesc="tObj") SWIGTYPE 
-#ifdef __cplusplus
-{
-  $&1_ltype resultptr;
-  resultptr = new $1_ltype((const $1_ltype &) $1);
-  push_object(SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1));
-}
-#else
-{
-  $&1_ltype resultptr;
-  resultptr = ($&1_ltype) malloc(sizeof($1_type));
-  memmove(resultptr, &$1, sizeof($1_type));
-  push_object(SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1));
-}
-#endif
-
-/* References to primitive types.  Return by value */
-
-%typemap(out, pikedesc="tInt") const int &, const unsigned int &,
-              const short &, const unsigned short &,
-              const long &, const unsigned long &,
-              const char &, const signed char &, const unsigned char &,
-              const bool &,
-	      const long long &, const unsigned long long &,
-              const enum SWIGTYPE & ($*1_ltype temp),
-              const enum SWIGTYPE && ($*1_ltype temp)
-      "push_int(*($1));";
-
-%typemap(out, pikedesc="tFloat") const float &, const double &  "push_float(*($1));";
-
-/************************ Constant Typemaps *****************************/
-
-%typemap(constant)
-    int, unsigned int,
-    short, unsigned short,
-    long, unsigned long,
-    signed char, unsigned char, 
-    bool, enum SWIGTYPE,
-    long long, unsigned long long
-    	"add_integer_constant(\"$symname\", $1, 0);";
-
-%typemap(constant) char
-	"add_integer_constant(\"$symname\", '$1', 0);";
-
-%typemap(constant) long long, unsigned long long
-	"add_integer_constant(\"$symname\", $1, 0);";
-
-%typemap(constant) float, double
-	"add_float_constant(\"$symname\", $1, 0);";
-
-%typemap(constant) char *
-	"add_string_constant(\"$symname\", \"$1\", 0);";
-
-/* ------------------------------------------------------------
- * String & length
- * ------------------------------------------------------------ */
-
-%typemap(in) (char *STRING, int LENGTH), (char *STRING, size_t LENGTH) {
-    if ($input.type != T_STRING)
-        Pike_error("Bad argument: Expected a string.\n");
-    $1 = ($1_ltype) STR0($input.u.string);
-    $2 = ($2_ltype) $input.u.string->length;
-}
-
-/* ------------------------------------------------------------
- * ANSI C typemaps
- * ------------------------------------------------------------ */
-
-%typemap(in, pikedesc="tInt") size_t {
-    if ($input.type != T_INT)
-        Pike_error("Bad argument: Expected an integer.\n");
-    $1 = ($1_ltype) $input.u.integer;
-}
-
-%typemap(out)      size_t = long;
-
-/* ------------------------------------------------------------
- * Typechecking rules
- * ------------------------------------------------------------ */
-
-%typecheck(SWIG_TYPECHECK_INTEGER)
-	 int, short, long,
- 	 unsigned int, unsigned short, unsigned long,
-	 signed char, unsigned char,
-	 long long, unsigned long long,
-	 const int &, const short &, const long &,
- 	 const unsigned int &, const unsigned short &, const unsigned long &,
-	 const long long &, const unsigned long long &,
-	 enum SWIGTYPE, enum SWIGTYPE &, SWIGTYPE &&,
-         bool, const bool & 
-{
-  $1 = ($input.type == T_INT) ? 1 : 0;
-}
-
-%typecheck(SWIG_TYPECHECK_DOUBLE)
-	float, double,
-	const float &, const double &
-{
-  $1 = (($input.type == T_FLOAT) || ($input.type == T_INT)) ? 1 : 0;
-}
-
-%typecheck(SWIG_TYPECHECK_CHAR) char {
-  $1 = ($input.type == T_INT) ? 1 : 0;
-}
-
-%typecheck(SWIG_TYPECHECK_STRING) char * {
-  $1 = ($input.type == T_STRING) ? 1 : 0;
-}
-
-%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [] {
-  void *ptr;
-  if (SWIG_ConvertPtr($input.u.object, (void **) &ptr, $1_descriptor, 0) == -1) {
-    $1 = 0;
-  } else {
-    $1 = 1;
-  }
-}
-
-%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE {
-  void *ptr;
-  if (SWIG_ConvertPtr($input.u.object, (void **) &ptr, $&1_descriptor, 0) == -1) {
-    $1 = 0;
-  } else {
-    $1 = 1;
-  }
-}
-
-%typecheck(SWIG_TYPECHECK_VOIDPTR) void * {
-  void *ptr;
-  if (SWIG_ConvertPtr($input.u.object, (void **) &ptr, 0, 0) == -1) {
-    $1 = 0;
-  } else {
-    $1 = 1;
-  }
-}
-
-/* Array reference typemaps */
-%apply SWIGTYPE & { SWIGTYPE ((&)[ANY]) }
-%apply SWIGTYPE && { SWIGTYPE ((&&)[ANY]) }
-
-/* const pointers */
-%apply SWIGTYPE * { SWIGTYPE *const }
-%apply SWIGTYPE (CLASS::*) { SWIGTYPE (CLASS::*const) }
-%apply SWIGTYPE & { SWIGTYPE (CLASS::*const&) }
-
-/* ------------------------------------------------------------
- * Overloaded operator support
- * ------------------------------------------------------------ */
-
-#ifdef __cplusplus
-%rename("`+")      *::operator+;
-%rename("`-")      *::operator-;
-%rename("`*")      *::operator*;
-%rename("`/")      *::operator/;
-%rename("`%")      *::operator%;
-%rename("`<<")     *::operator<<;
-%rename("`>>")     *::operator>>;
-%rename("`&")      *::operator&;
-%rename("`|")      *::operator|;
-%rename("`^")      *::operator^;
-%rename("`~")      *::operator~;
-%rename("`<")      *::operator<;
-%rename("`>")      *::operator>;
-%rename("`==")     *::operator==;
-
-/* Special cases */
-%rename("`()")     *::operator();
-
-#endif
-
-/* ------------------------------------------------------------
- * The start of the Pike initialization function
- * ------------------------------------------------------------ */
-
-%init "swiginit.swg"
-
-%init %{
-#ifdef __cplusplus
-extern "C"
-#endif
-PIKE_MODULE_EXIT {}
-
-#ifdef __cplusplus
-extern "C"
-#endif
-PIKE_MODULE_INIT
-{
-    struct program *pr;
-    SWIG_InitializeModule(0);
-%}
-
-/* pike keywords */
-%include <pikekw.swg>
diff --git a/Lib/pike/pikekw.swg b/Lib/pike/pikekw.swg
deleted file mode 100644
index 844b1f1..0000000
--- a/Lib/pike/pikekw.swg
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef PIKE_PIKEKW_SWG_
-#define PIKE_PIKEKW_SWG_
-
-/* Warnings for Pike keywords */
-#define PIKEKW(x) %namewarn("314: '" #x "' is a pike keyword")  #x
-
-/*
-   from
-   http://www.http://docs.linux.cz/pike/tutorial_C.html
-
-*/
-
-
-PIKEKW(array);
-PIKEKW(break);
-PIKEKW(case);
-PIKEKW(catch);
-PIKEKW(continue);
-PIKEKW(default);
-PIKEKW(do);
-PIKEKW(else);
-PIKEKW(float);
-PIKEKW(for);
-PIKEKW(foreach);
-PIKEKW(function);
-PIKEKW(gauge);
-PIKEKW(if);
-PIKEKW(inherit);
-PIKEKW(inline);
-PIKEKW(int);
-PIKEKW(lambda);
-PIKEKW(mapping);
-PIKEKW(mixed);
-PIKEKW(multiset);
-PIKEKW(nomask);
-PIKEKW(object);
-PIKEKW(predef);
-PIKEKW(private);
-PIKEKW(program);
-PIKEKW(protected);
-PIKEKW(public);
-PIKEKW(return);
-PIKEKW(sscanf);
-PIKEKW(static);
-PIKEKW(string);
-PIKEKW(switch);
-PIKEKW(typeof);
-PIKEKW(varargs);
-PIKEKW(void);
-PIKEKW(while);
-
-
-#undef PIKEKW
-
-#endif //PIKE_PIKEKW_SWG_
diff --git a/Lib/pike/pikerun.swg b/Lib/pike/pikerun.swg
deleted file mode 100644
index 6ec1143..0000000
--- a/Lib/pike/pikerun.swg
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -----------------------------------------------------------------------------
- * pikerun.swg
- *
- * This file contains the runtime support for Pike modules
- * and includes code for managing global variables and pointer
- * type checking.
- * ----------------------------------------------------------------------------- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include "pike/object.h"
-#include "pike/program.h"
-#ifdef __cplusplus
-}
-#endif
-#include <assert.h>
-
-/* Stores information about a wrapped object */
-typedef struct swig_object_wrapper {
-    void *self;
-    swig_type_info *type;
-} swig_object_wrapper;
-
-#ifdef THIS
-#undef THIS
-#endif
-#define THIS (((swig_object_wrapper *) Pike_fp->current_storage)->self)
-
-#define SWIG_ConvertPtr SWIG_Pike_ConvertPtr
-#define SWIG_NewPointerObj SWIG_Pike_NewPointerObj
-#define SWIG_GetModule(clientdata) SWIG_Pike_GetModule(clientdata)
-#define SWIG_SetModule(clientdata, pointer) SWIG_Pike_SetModule(pointer)
-
-/* These need to be filled in before type sharing between modules will work */
-static swig_module_info *SWIG_Pike_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
-  return 0;
-}
-
-static void SWIG_Pike_SetModule(swig_module_info *pointer) {
-
-}
-
-/* Convert a pointer value */
-static int
-SWIG_Pike_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
-    struct program *pr;
-    swig_cast_info *tc;
-    swig_object_wrapper *obj_wrapper;
-    
-    if (ty) {
-        pr = (struct program *) ty->clientdata;
-        obj_wrapper = (swig_object_wrapper *) get_storage(obj, pr);
-        if (obj_wrapper && obj_wrapper->type) {
-            tc = SWIG_TypeCheckStruct(obj_wrapper->type, ty);
-            if (tc) {
-                int newmemory = 0;
-                *ptr = SWIG_TypeCast(tc, obj_wrapper->self, &newmemory);
-                assert(!newmemory); /* newmemory handling not yet implemented */
-                return 0;
-            }
-        }
-    }
-    return -1;
-}
-
-/* Create a new pointer object */
-static struct object *
-SWIG_Pike_NewPointerObj(void *ptr, swig_type_info *type, int own) {
-    return 0;
-}
diff --git a/Lib/pike/std_string.i b/Lib/pike/std_string.i
deleted file mode 100644
index b32b3c1..0000000
--- a/Lib/pike/std_string.i
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -----------------------------------------------------------------------------
- * std_string.i
- *
- * SWIG typemaps for std::string
- * ----------------------------------------------------------------------------- */
-
-%{
-#include <string>
-%}
-
-namespace std {
-
-    %naturalvar string;
-
-    class string;
-
-    /* Overloading check */
-
-    %typemap(typecheck) string = char *;
-    %typemap(typecheck) const string & = char *;
-
-    %typemap(in, pikedesc="tStr") string {
-      if ($input.type != T_STRING)
-        Pike_error("Bad argument: Expected a string.\n");
-      $1.assign(STR0($input.u.string));
-    }
-
-    %typemap(in, pikedesc="tStr") const string & ($*1_ltype temp) {
-      if ($input.type != T_STRING)
-        Pike_error("Bad argument: Expected a string.\n");
-      temp.assign(STR0($input.u.string));
-      $1 = &temp;
-    }
-
-    %typemap(out, pikedesc="tStr") string "push_text($1.c_str());";
-
-    %typemap(out, pikedesc="tStr") const string & "push_text($1->c_str());";
-    
-    %typemap(directorin) string, const string &, string & "$1.c_str()";
-
-    %typemap(directorin) string *, const string * "$1->c_str()";
-    
-    %typemap(directorout) string {
-      if ($input.type == T_STRING)
-        $result.assign(STR0($input.u.string));
-      else
-        throw Swig::DirectorTypeMismatchException("string expected");
-    }
-    
-    %typemap(directorout) const string & ($*1_ltype temp) {
-      if ($input.type == T_STRING) {
-        temp.assign(STR0($input.u.string));
-        $result = &temp;
-      } else {
-        throw Swig::DirectorTypeMismatchException("string expected");
-      }
-    }
-
-}
-
diff --git a/Source/Modules/pike.cxx b/Source/Modules/pike.cxx
deleted file mode 100644
index c8cd087..0000000
--- a/Source/Modules/pike.cxx
+++ /dev/null
@@ -1,892 +0,0 @@
-/* ----------------------------------------------------------------------------- 
- * This file is part of SWIG, which is licensed as a whole under version 3 
- * (or any later version) of the GNU General Public License. Some additional
- * terms also apply to certain portions of SWIG. The full details of the SWIG
- * license and copyrights can be found in the LICENSE and COPYRIGHT files
- * included with the SWIG source code as distributed by the SWIG developers
- * and at http://www.swig.org/legal.html.
- *
- * pike.cxx
- *
- * Pike language module for SWIG.
- * ----------------------------------------------------------------------------- */
-
-/*
- * Notes:
- *
- * - The current approach used for "out" typemaps is inconsistent with
- *   how "out" typemaps are handled by other language modules. Instead
- *   of converting the C/C++ type ($1) to a Pike object type (e.g. a
- *   struct svalue), we're just calling the appropriate push_XXX
- *   (e.g. push_int) to push the return value onto the stack.
- *
- * - Pike classes can't have static member functions or data, so we need
- *   to find some other appropriate mapping for C++ static member functions
- *   and data.
- *
- * - Pike doesn't seem to provide any default way to print the memory
- *   address, etc. for extension objects. Should we do something here?
- *
- */
-
-#include "swigmod.h"
-
-#include <ctype.h>		// for isalnum()
-
-static const char *usage = "\
-Pike Options (available with -pike)\n\
-     [no additional options]\n\
-\n";
-
-class PIKE:public Language {
-private:
-
-  File *f_begin;
-  File *f_runtime;
-  File *f_header;
-  File *f_wrappers;
-  File *f_init;
-  File *f_classInit;
-
-  String *PrefixPlusUnderscore;
-  int current;
-
-  // Wrap modes
-  enum {
-    NO_CPP,
-    MEMBER_FUNC,
-    CONSTRUCTOR,
-    DESTRUCTOR,
-    MEMBER_VAR,
-    CLASS_CONST,
-    STATIC_FUNC,
-    STATIC_VAR
-  };
-
-public:
-
-  /* ---------------------------------------------------------------------
-   * PIKE()
-   *
-   * Initialize member data
-   * --------------------------------------------------------------------- */
-
-   PIKE() {
-    f_begin = 0;
-    f_runtime = 0;
-    f_header = 0;
-    f_wrappers = 0;
-    f_init = 0;
-    f_classInit = 0;
-    PrefixPlusUnderscore = 0;
-    current = NO_CPP;
-  }
-
-  /* ---------------------------------------------------------------------
-   * main()
-   *
-   * Parse command line options and initializes variables.
-   * --------------------------------------------------------------------- */
-  
-   virtual void main(int argc, char *argv[]) {
-
-    /* Set location of SWIG library */
-    SWIG_library_directory("pike");
-
-    /* Look for certain command line options */
-    for (int i = 1; i < argc; i++) {
-      if (argv[i]) {
-	if (strcmp(argv[i], "-help") == 0) {
-	  fputs(usage, stdout);
-	}
-      }
-    }
-
-    /* Add a symbol to the parser for conditional compilation */
-    Preprocessor_define("SWIGPIKE 1", 0);
-
-    /* Set language-specific configuration file */
-    SWIG_config_file("pike.swg");
-
-    /* Set typemap language */
-    SWIG_typemap_lang("pike");
-
-    /* Enable overloaded methods support */
-    allow_overloading();
-  }
-
-  /* ---------------------------------------------------------------------
-   * top()
-   * --------------------------------------------------------------------- */
-
-  virtual int top(Node *n) {
-    /* Get the module name */
-    String *module = Getattr(n, "name");
-
-    /* Get the output file name */
-    String *outfile = Getattr(n, "outfile");
-
-    /* Open the output file */
-    f_begin = NewFile(outfile, "w", SWIG_output_files());
-    if (!f_begin) {
-      FileErrorDisplay(outfile);
-      SWIG_exit(EXIT_FAILURE);
-    }
-    f_runtime = NewString("");
-    f_init = NewString("");
-    f_classInit = NewString("");
-    f_header = NewString("");
-    f_wrappers = NewString("");
-
-    /* Register file targets with the SWIG file handler */
-    Swig_register_filebyname("header", f_header);
-    Swig_register_filebyname("wrapper", f_wrappers);
-    Swig_register_filebyname("begin", f_begin);
-    Swig_register_filebyname("runtime", f_runtime);
-    Swig_register_filebyname("init", f_init);
-    Swig_register_filebyname("classInit", f_classInit);
-
-    /* Standard stuff for the SWIG runtime section */
-    Swig_banner(f_begin);
-
-    Printf(f_runtime, "\n\n#ifndef SWIGPIKE\n#define SWIGPIKE\n#endif\n\n");
-
-    Printf(f_header, "#define SWIG_init    pike_module_init\n");
-    Printf(f_header, "#define SWIG_name    \"%s\"\n\n", module);
-
-    /* Change naming scheme for constructors and destructors */
-    Swig_name_register("construct", "%n%c_create");
-    Swig_name_register("destroy", "%n%c_destroy");
-
-    /* Current wrap type */
-    current = NO_CPP;
-
-    /* Emit code for children */
-    Language::top(n);
-
-    /* Close the initialization function */
-    Printf(f_init, "}\n");
-    SwigType_emit_type_table(f_runtime, f_wrappers);
-
-    /* Close all of the files */
-    Dump(f_runtime, f_begin);
-    Dump(f_header, f_begin);
-    Dump(f_wrappers, f_begin);
-    Wrapper_pretty_print(f_init, f_begin);
-
-    Delete(f_header);
-    Delete(f_wrappers);
-    Delete(f_init);
-    Delete(f_classInit);
-    Delete(f_runtime);
-    Delete(f_begin);
-
-    /* Done */
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * validIdentifier()
-   * ------------------------------------------------------------ */
-
-  virtual int validIdentifier(String *s) {
-    char *c = Char(s);
-    const char *c0 = c;
-    const char *c1 = c0 + 1;
-    while (*c) {
-      if (*c == '`' && c == c0) {
-	c++;
-	continue;
-      }
-      if ((*c == '+' || *c == '-' || *c == '*' || *c == '/') && c == c1) {
-	c++;
-	continue;
-      }
-      if (!(isalnum(*c) || (*c == '_')))
-	return 0;
-      c++;
-    }
-    return 1;
-  }
-
-  /* ------------------------------------------------------------
-   * importDirective()
-   * ------------------------------------------------------------ */
-
-  virtual int importDirective(Node *n) {
-    String *modname = Getattr(n, "module");
-    if (modname) {
-      Printf(f_init, "pike_require(\"%s\");\n", modname);
-    }
-    return Language::importDirective(n);
-  }
-
-  /* ------------------------------------------------------------
-   * strip()
-   *
-   * For names that begin with the current class prefix plus an
-   * underscore (e.g. "Foo_enum_test"), return the base function
-   * name (i.e. "enum_test").
-   * ------------------------------------------------------------ */
-
-  String *strip(const DOHconst_String_or_char_ptr name) {
-    String *s = Copy(name);
-    if (Strncmp(name, PrefixPlusUnderscore, Len(PrefixPlusUnderscore)) != 0) {
-      return s;
-    }
-    Replaceall(s, PrefixPlusUnderscore, "");
-    return s;
-  }
-
-  /* ------------------------------------------------------------
-   * add_method()
-   * ------------------------------------------------------------ */
-
-  void add_method(const DOHconst_String_or_char_ptr name, const DOHconst_String_or_char_ptr function, const DOHconst_String_or_char_ptr description) {
-    String *rename = NULL;
-    switch (current) {
-    case NO_CPP:
-      rename = NewString(name);
-      Printf(f_init, "ADD_FUNCTION(\"%s\", %s, tFunc(%s), 0);\n", rename, function, description);
-      break;
-    case STATIC_FUNC:
-    case STATIC_VAR:
-      rename = NewString(name);
-      Printf(f_init, "ADD_FUNCTION(\"%s\", %s, tFunc(%s), 0);\n", rename, function, description);
-      break;
-    case CONSTRUCTOR:
-    case DESTRUCTOR:
-    case MEMBER_FUNC:
-    case MEMBER_VAR:
-      rename = strip(name);
-      Printf(f_classInit, "ADD_FUNCTION(\"%s\", %s, tFunc(%s), 0);\n", rename, function, description);
-      break;
-    case CLASS_CONST: // shouldn't have gotten here for CLASS_CONST nodes
-    default: // what is this?
-      assert(false);
-    }
-    Delete(rename);
-  }
-
-  /* ---------------------------------------------------------------------
-   * functionWrapper()
-   *
-   * Create a function declaration and register it with the interpreter.
-   * --------------------------------------------------------------------- */
-
-  virtual int functionWrapper(Node *n) {
-
-    String *name = Getattr(n, "name");
-    String *iname = Getattr(n, "sym:name");
-    SwigType *d = Getattr(n, "type");
-    ParmList *l = Getattr(n, "parms");
-
-    Parm *p;
-    String *tm;
-    int i;
-
-    String *overname = 0;
-    if (Getattr(n, "sym:overloaded")) {
-      overname = Getattr(n, "sym:overname");
-    } else {
-      if (!addSymbol(iname, n))
-	return SWIG_ERROR;
-    }
-
-    Wrapper *f = NewWrapper();
-
-    // Emit all of the local variables for holding arguments.
-    emit_parameter_variables(l, f);
-
-    /* Attach the standard typemaps */
-    emit_attach_parmmaps(l, f);
-    Setattr(n, "wrap:parms", l);
-
-    /* Get number of required and total arguments */
-    int num_arguments = emit_num_arguments(l);
-    int varargs = emit_isvarargs(l);
-
-    /* Which input argument to start with? */
-    int start = (current == MEMBER_FUNC || current == MEMBER_VAR || current == DESTRUCTOR) ? 1 : 0;
-
-    /* Offset to skip over the attribute name */
-    // int offset = (current == MEMBER_VAR) ? 1 : 0;
-    int offset = 0;
-
-    String *wname = Swig_name_wrapper(iname);
-    if (overname) {
-      Append(wname, overname);
-    }
-    Setattr(n, "wrap:name", wname);
-
-    Printv(f->def, "static void ", wname, "(INT32 args) {", NIL);
-
-    /* Generate code for argument marshalling */
-    String *description = NewString("");
-    char source[64];
-    for (i = 0, p = l; i < num_arguments; i++) {
-
-      while (checkAttribute(p, "tmap:in:numinputs", "0")) {
-	p = Getattr(p, "tmap:in:next");
-      }
-
-      SwigType *pt = Getattr(p, "type");
-      String *ln = Getattr(p, "lname");
-
-      if (i < start) {
-	String *lstr = SwigType_lstr(pt, 0);
-	Printf(f->code, "%s = (%s) THIS;\n", ln, lstr);
-	Delete(lstr);
-      } else {
-	/* Look for an input typemap */
-	sprintf(source, "Pike_sp[%d-args]", i - start + offset);
-	if ((tm = Getattr(p, "tmap:in"))) {
-	  Replaceall(tm, "$input", source);
-	  Setattr(p, "emit:input", source);
-	  Printf(f->code, "%s\n", tm);
-	  String *pikedesc = Getattr(p, "tmap:in:pikedesc");
-	  if (pikedesc) {
-	    Printv(description, pikedesc, " ", NIL);
-	  }
-	  p = Getattr(p, "tmap:in:next");
-	  continue;
-	} else {
-	  Swig_warning(WARN_TYPEMAP_IN_UNDEF, input_file, line_number, "Unable to use type %s as a function argument.\n", SwigType_str(pt, 0));
-	  break;
-	}
-      }
-      p = nextSibling(p);
-    }
-
-    /* Check for trailing varargs */
-    if (varargs) {
-      if (p && (tm = Getattr(p, "tmap:in"))) {
-	Replaceall(tm, "$input", "varargs");
-	Printv(f->code, tm, "\n", NIL);
-      }
-    }
-
-    /* Insert constraint checking code */
-    for (p = l; p;) {
-      if ((tm = Getattr(p, "tmap:check"))) {
-	Printv(f->code, tm, "\n", NIL);
-	p = Getattr(p, "tmap:check:next");
-      } else {
-	p = nextSibling(p);
-      }
-    }
-
-    /* Insert cleanup code */
-    String *cleanup = NewString("");
-    for (p = l; p;) {
-      if ((tm = Getattr(p, "tmap:freearg"))) {
-	Printv(cleanup, tm, "\n", NIL);
-	p = Getattr(p, "tmap:freearg:next");
-      } else {
-	p = nextSibling(p);
-      }
-    }
-
-    /* Insert argument output code */
-    String *outarg = NewString("");
-    for (p = l; p;) {
-      if ((tm = Getattr(p, "tmap:argout"))) {
-	Replaceall(tm, "$arg", Getattr(p, "emit:input"));
-	Replaceall(tm, "$input", Getattr(p, "emit:input"));
-	Printv(outarg, tm, "\n", NIL);
-	p = Getattr(p, "tmap:argout:next");
-      } else {
-	p = nextSibling(p);
-      }
-    }
-
-    /* Emit the function call */
-    String *actioncode = emit_action(n);
-
-    /* Clear the return stack */
-    Printf(actioncode, "pop_n_elems(args);\n");
-
-    /* Return the function value */
-    if (current == CONSTRUCTOR) {
-      Printv(actioncode, "THIS = (void *) ", Swig_cresult_name(), ";\n", NIL);
-      Printv(description, ", tVoid", NIL);
-    } else if (current == DESTRUCTOR) {
-      Printv(description, ", tVoid", NIL);
-    } else {
-      Printv(description, ", ", NIL);
-      if ((tm = Swig_typemap_lookup_out("out", n, Swig_cresult_name(), f, actioncode))) {
-        actioncode = 0;
-	Replaceall(tm, "$result", "resultobj");
-	if (GetFlag(n, "feature:new")) {
-	  Replaceall(tm, "$owner", "1");
-	} else {
-	  Replaceall(tm, "$owner", "0");
-	}
-	String *pikedesc = Getattr(n, "tmap:out:pikedesc");
-	if (pikedesc) {
-	  Printv(description, pikedesc, NIL);
-	}
-	Printf(f->code, "%s\n", tm);
-      } else {
-	Swig_warning(WARN_TYPEMAP_OUT_UNDEF, input_file, line_number, "Unable to use return type %s in function %s.\n", SwigType_str(d, 0), name);
-      }
-    }
-    if (actioncode) {
-      Append(f->code, actioncode);
-      Delete(actioncode);
-    }
-    emit_return_variable(n, d, f);
-
-    /* Output argument output code */
-    Printv(f->code, outarg, NIL);
-
-    /* Output cleanup code */
-    Printv(f->code, cleanup, NIL);
-
-    /* Look to see if there is any newfree cleanup code */
-    if (GetFlag(n, "feature:new")) {
-      if ((tm = Swig_typemap_lookup("newfree", n, Swig_cresult_name(), 0))) {
-	Printf(f->code, "%s\n", tm);
-      }
-    }
-
-    /* See if there is any return cleanup code */
-    if ((tm = Swig_typemap_lookup("ret", n, Swig_cresult_name(), 0))) {
-      Printf(f->code, "%s\n", tm);
-    }
-
-    /* Close the function */
-    Printf(f->code, "}\n");
-
-    /* Substitute the cleanup code */
-    Replaceall(f->code, "$cleanup", cleanup);
-
-    /* Substitute the function name */
-    Replaceall(f->code, "$symname", iname);
-    Replaceall(f->code, "$result", "resultobj");
-
-    /* Dump the function out */
-    Wrapper_print(f, f_wrappers);
-
-    /* Now register the function with the interpreter. */
-    if (!Getattr(n, "sym:overloaded")) {
-      add_method(iname, wname, description);
-    } else {
-      if (!Getattr(n, "sym:nextSibling")) {
-	dispatchFunction(n);
-      }
-    }
-
-    Delete(cleanup);
-    Delete(outarg);
-    Delete(description);
-    Delete(wname);
-    DelWrapper(f);
-
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * dispatchFunction()
-   *
-   * Emit overloading dispatch function
-   * ------------------------------------------------------------ */
-
-  void dispatchFunction(Node *n) {
-    /* Last node in overloaded chain */
-
-    int maxargs;
-    String *tmp = NewString("");
-    String *dispatch = Swig_overload_dispatch(n, "%s(args); return;", &maxargs);
-
-    /* Generate a dispatch wrapper for all overloaded functions */
-
-    Wrapper *f = NewWrapper();
-    String *symname = Getattr(n, "sym:name");
-    String *wname = Swig_name_wrapper(symname);
-
-    Printf(f->def, "static void %s(INT32 args) {", wname);
-
-    Wrapper_add_local(f, "argc", "INT32 argc");
-    Printf(tmp, "struct svalue argv[%d]", maxargs);
-    Wrapper_add_local(f, "argv", tmp);
-    Wrapper_add_local(f, "ii", "INT32 ii");
-
-    Printf(f->code, "argc = args;\n");
-    Printf(f->code, "for (ii = 0; (ii < argc) && (ii < %d); ii++) {\n", maxargs);
-    Printf(f->code, "argv[ii] = Pike_sp[ii-args];\n");
-    Printf(f->code, "}\n");
-
-    Replaceall(dispatch, "$args", "self, args");
-    Printv(f->code, dispatch, "\n", NIL);
-    Printf(f->code, "Pike_error(\"No matching function for overloaded '%s'.\");\n", symname);
-    Printv(f->code, "}\n", NIL);
-
-    Wrapper_print(f, f_wrappers);
-
-    String *description = NewString("");
-    Printf(description, "tAny,");
-    if (current == CONSTRUCTOR || current == DESTRUCTOR) {
-      Printf(description, " tVoid");
-    } else {
-      String *pd = Getattr(n, "tmap:out:pikedesc");
-      if (pd)
-	Printf(description, " %s", pd);
-    }
-    add_method(symname, wname, description);
-    Delete(description);
-
-    DelWrapper(f);
-    Delete(dispatch);
-    Delete(tmp);
-    Delete(wname);
-  }
-
-  /* ------------------------------------------------------------
-   * variableWrapper()
-   * ------------------------------------------------------------ */
-
-  virtual int variableWrapper(Node *n) {
-    return Language::variableWrapper(n);
-  }
-
-  /* ------------------------------------------------------------
-   * constantWrapper()
-   * ------------------------------------------------------------ */
-
-  virtual int constantWrapper(Node *n) {
-
-    Swig_require("constantWrapper", n, "*sym:name", "type", "value", NIL);
-
-    String *symname = Getattr(n, "sym:name");
-    SwigType *type = Getattr(n, "type");
-    String *value = Getattr(n, "value");
-    bool is_enum_item = (Cmp(nodeType(n), "enumitem") == 0);
-
-    if (SwigType_type(type) == T_MPOINTER) {
-      /* Special hook for member pointer */
-      String *wname = Swig_name_wrapper(symname);
-      Printf(f_header, "static %s = %s;\n", SwigType_str(type, wname), value);
-      value = wname;
-    } else if (SwigType_type(type) == T_CHAR && is_enum_item) {
-      type = NewSwigType(T_INT);
-      Setattr(n, "type", type);
-    }
-
-    /* Perform constant typemap substitution */
-    String *tm = Swig_typemap_lookup("constant", n, value, 0);
-    if (tm) {
-      Replaceall(tm, "$symname", symname);
-      Replaceall(tm, "$value", value);
-      Printf(f_init, "%s\n", tm);
-    } else {
-      Swig_warning(WARN_TYPEMAP_CONST_UNDEF, input_file, line_number, "Unsupported constant value %s = %s\n", SwigType_str(type, 0), value);
-    }
-
-    Swig_restore(n);
-
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------ 
-   * nativeWrapper()
-   * ------------------------------------------------------------ */
-
-  virtual int nativeWrapper(Node *n) {
-    //   return Language::nativeWrapper(n);
-    String *name = Getattr(n, "sym:name");
-    String *wrapname = Getattr(n, "wrap:name");
-
-    if (!addSymbol(wrapname, n))
-      return SWIG_ERROR;
-
-    add_method(name, wrapname, 0);
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * enumDeclaration()
-   * ------------------------------------------------------------ */
-
-  virtual int enumDeclaration(Node *n) {
-    return Language::enumDeclaration(n);
-  }
-
-  /* ------------------------------------------------------------
-   * enumvalueDeclaration()
-   * ------------------------------------------------------------ */
-
-  virtual int enumvalueDeclaration(Node *n) {
-    return Language::enumvalueDeclaration(n);
-  }
-
-  /* ------------------------------------------------------------
-   * classDeclaration()
-   * ------------------------------------------------------------ */
-
-  virtual int classDeclaration(Node *n) {
-    return Language::classDeclaration(n);
-  }
-
-  /* ------------------------------------------------------------
-   * classHandler()
-   * ------------------------------------------------------------ */
-
-  virtual int classHandler(Node *n) {
-
-    String *symname = Getattr(n, "sym:name");
-    if (!addSymbol(symname, n))
-      return SWIG_ERROR;
-
-    PrefixPlusUnderscore = NewStringf("%s_", getClassPrefix());
-
-    Printf(f_classInit, "start_new_program();\n");
-
-    /* Handle inheritance */
-    List *baselist = Getattr(n, "bases");
-    if (baselist && Len(baselist) > 0) {
-      Iterator base = First(baselist);
-      while (base.item) {
-	String *basename = Getattr(base.item, "name");
-	SwigType *basetype = NewString(basename);
-	SwigType_add_pointer(basetype);
-	SwigType_remember(basetype);
-	String *basemangle = SwigType_manglestr(basetype);
-	Printf(f_classInit, "low_inherit((struct program *) SWIGTYPE%s->clientdata, 0, 0, 0, 0, 0);\n", basemangle);
-	Delete(basemangle);
-	Delete(basetype);
-	base = Next(base);
-      }
-    } else {
-      Printf(f_classInit, "ADD_STORAGE(swig_object_wrapper);\n");
-    }
-
-    Language::classHandler(n);
-
-    /* Accessors for member variables */
-    /*
-       List *membervariables = Getattr(n,"membervariables");
-       if (membervariables && Len(membervariables) > 0) {
-       membervariableAccessors(membervariables);
-       }
-     */
-
-    /* Done, close the class and dump its definition to the init function */
-    Printf(f_classInit, "add_program_constant(\"%s\", pr = end_program(), 0);\n", symname);
-    Dump(f_classInit, f_init);
-    Clear(f_classInit);
-
-    SwigType *tt = NewString(symname);
-    SwigType_add_pointer(tt);
-    SwigType_remember(tt);
-    String *tm = SwigType_manglestr(tt);
-    Printf(f_init, "SWIG_TypeClientData(SWIGTYPE%s, (void *) pr);\n", tm);
-    Delete(tm);
-    Delete(tt);
-
-    Delete(PrefixPlusUnderscore);
-    PrefixPlusUnderscore = 0;
-
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * memberfunctionHandler()
-   *
-   * Method for adding C++ member function
-   * ------------------------------------------------------------ */
-
-  virtual int memberfunctionHandler(Node *n) {
-    current = MEMBER_FUNC;
-    Language::memberfunctionHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * constructorHandler()
-   *
-   * Method for adding C++ member constructor
-   * ------------------------------------------------------------ */
-
-  virtual int constructorHandler(Node *n) {
-    current = CONSTRUCTOR;
-    Language::constructorHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * destructorHandler()
-   * ------------------------------------------------------------ */
-
-  virtual int destructorHandler(Node *n) {
-    current = DESTRUCTOR;
-    Language::destructorHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * membervariableAccessors()
-   * ------------------------------------------------------------ */
-
-  void membervariableAccessors(List *membervariables) {
-    String *name;
-    Iterator i;
-    bool need_setter;
-    String *funcname;
-
-    /* If at least one of them is mutable, we need a setter */
-    need_setter = false;
-    i = First(membervariables);
-    while (i.item) {
-      if (!GetFlag(i.item, "feature:immutable")) {
-	need_setter = true;
-	break;
-      }
-      i = Next(i);
-    }
-
-    /* Create a function to set the values of the (mutable) variables */
-    if (need_setter) {
-      Wrapper *wrapper = NewWrapper();
-      String *setter = Swig_name_member(NSPACE_TODO, getClassPrefix(), "`->=");
-      String *wname = Swig_name_wrapper(setter);
-      Printv(wrapper->def, "static void ", wname, "(INT32 args) {", NIL);
-      Printf(wrapper->locals, "char *name = (char *) STR0(Pike_sp[0-args].u.string);\n");
-
-      i = First(membervariables);
-      while (i.item) {
-	if (!GetFlag(i.item, "feature:immutable")) {
-	  name = Getattr(i.item, "name");
-	  funcname = Swig_name_wrapper(Swig_name_set(NSPACE_TODO, Swig_name_member(NSPACE_TODO, getClassPrefix(), name)));
-	  Printf(wrapper->code, "if (!strcmp(name, \"%s\")) {\n", name);
-	  Printf(wrapper->code, "%s(args);\n", funcname);
-	  Printf(wrapper->code, "return;\n");
-	  Printf(wrapper->code, "}\n");
-	  Delete(funcname);
-	}
-	i = Next(i);
-      }
-
-      /* Close the function */
-      Printf(wrapper->code, "pop_n_elems(args);\n");
-      Printf(wrapper->code, "}\n");
-
-      /* Dump wrapper code to the output file */
-      Wrapper_print(wrapper, f_wrappers);
-
-      /* Register it with Pike */
-      String *description = NewString("tStr tFloat, tVoid");
-      add_method("`->=", wname, description);
-      Delete(description);
-
-      /* Clean up */
-      Delete(wname);
-      Delete(setter);
-      DelWrapper(wrapper);
-    }
-
-    /* Create a function to get the values of the (mutable) variables */
-    Wrapper *wrapper = NewWrapper();
-    String *getter = Swig_name_member(NSPACE_TODO, getClassPrefix(), "`->");
-    String *wname = Swig_name_wrapper(getter);
-    Printv(wrapper->def, "static void ", wname, "(INT32 args) {", NIL);
-    Printf(wrapper->locals, "char *name = (char *) STR0(Pike_sp[0-args].u.string);\n");
-
-    i = First(membervariables);
-    while (i.item) {
-      name = Getattr(i.item, "name");
-      funcname = Swig_name_wrapper(Swig_name_get(NSPACE_TODO, Swig_name_member(NSPACE_TODO, getClassPrefix(), name)));
-      Printf(wrapper->code, "if (!strcmp(name, \"%s\")) {\n", name);
-      Printf(wrapper->code, "%s(args);\n", funcname);
-      Printf(wrapper->code, "return;\n");
-      Printf(wrapper->code, "}\n");
-      Delete(funcname);
-      i = Next(i);
-    }
-
-    /* Close the function */
-    Printf(wrapper->code, "pop_n_elems(args);\n");
-    Printf(wrapper->code, "}\n");
-
-    /* Dump wrapper code to the output file */
-    Wrapper_print(wrapper, f_wrappers);
-
-    /* Register it with Pike */
-    String *description = NewString("tStr, tMix");
-    add_method("`->", wname, description);
-    Delete(description);
-
-    /* Clean up */
-    Delete(wname);
-    Delete(getter);
-    DelWrapper(wrapper);
-  }
-
-  /* ------------------------------------------------------------
-   * membervariableHandler()
-   * ------------------------------------------------------------ */
-
-  virtual int membervariableHandler(Node *n) {
-    List *membervariables = Getattr(getCurrentClass(), "membervariables");
-    if (!membervariables) {
-      membervariables = NewList();
-      Setattr(getCurrentClass(), "membervariables", membervariables);
-    }
-    Append(membervariables, n);
-    current = MEMBER_VAR;
-    Language::membervariableHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* -----------------------------------------------------------------------
-   * staticmemberfunctionHandler()
-   *
-   * Wrap a static C++ function
-   * ---------------------------------------------------------------------- */
-
-  virtual int staticmemberfunctionHandler(Node *n) {
-    current = STATIC_FUNC;
-    Language::staticmemberfunctionHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* ------------------------------------------------------------
-   * memberconstantHandler()
-   *
-   * Create a C++ constant
-   * ------------------------------------------------------------ */
-
-  virtual int memberconstantHandler(Node *n) {
-    current = CLASS_CONST;
-    constantWrapper(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-
-  /* ---------------------------------------------------------------------
-   * staticmembervariableHandler()
-   * --------------------------------------------------------------------- */
-
-  virtual int staticmembervariableHandler(Node *n) {
-    current = STATIC_VAR;
-    Language::staticmembervariableHandler(n);
-    current = NO_CPP;
-    return SWIG_OK;
-  }
-};
-
-/* -----------------------------------------------------------------------------
- * swig_pike()    - Instantiate module
- * ----------------------------------------------------------------------------- */
-
-static Language *new_swig_pike() {
-  return new PIKE();
-}
-extern "C" Language *swig_pike(void) {
-  return new_swig_pike();
-}
diff --git a/Tools/check-include-path.pike b/Tools/check-include-path.pike
deleted file mode 100644
index 2bfb2b9..0000000
--- a/Tools/check-include-path.pike
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * This is a helper script to identify the proper include path
- * for Pike header files. It should be run with the full path
- * to the Pike executable as its single argument, e.g.
- *
- *     pike check-include-path.pike /usr/local/bin/pike
- *
- * and its output should be the correct path to the header
- * files, e.g.
- *
- *     /usr/local/pike/7.2.239/include/pike
- *
- */
-
-int main(int argc, array(string) argv)
-{
-    string prefix = replace(argv[1], "/bin/pike", "");
-    write(prefix + "/pike/" + __MAJOR__ + "." + __MINOR__ + "." + __BUILD__ + "/include/pike");
-    return 0;
-}