swig/Examples
William S Fulton 96fae38be2 Fix Python pickling and metaclass for builtin wrappers
The metaclass (SwigPyObjectType) for SWIG objects was not defined in
a way that let importlib successfully import the Python wrappers.
The pickle module failed because it couldn't determine what module the
SWIG wrapped objects are in.

I've changed the definition of SwigPyObjectType using more normal
builtin type definitions. There are still some open questions:
- None of the builtin types, like swig_static_var_getset_descriptor and
  SwigPyObject are added into any module. No call to PyModule_AddObject
  is made, so isinstance cannot be used for any wrapped type, all of
  which are derived from SwigPyObject.

Closes #808
2016-10-14 07:30:44 +01:00
..
android Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
chicken Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
contract Remove bogus ; after } in examples 2014-11-07 15:34:43 +13:00
csharp Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
d Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
go Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
guile Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
java Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
javascript Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
lua Fix examples for lua 5.3 2016-05-01 11:52:02 +01:00
modula3 More remove SWIG_LIB variable 2015-08-21 22:48:34 +01:00
mzscheme More remove SWIG_LIB variable 2015-08-21 22:48:34 +01:00
ocaml Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
octave octave: map unary functions to __...___ Python-style unary members 2016-02-07 20:22:39 +01:00
perl5 Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
php Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
pike Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
python Add missing print statements to the Python import_packages tests 2016-06-06 22:12:56 +01:00
r Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
ruby Ruby mark_function example and docs fixes 2015-09-05 15:30:50 +01:00
s-exp Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
scilab Revert "scilab: runtime initialization needed in examples" 2016-03-18 08:56:23 +00:00
tcl Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
test-suite Fix Python pickling and metaclass for builtin wrappers 2016-10-14 07:30:44 +01:00
xml More remove SWIG_LIB variable 2015-08-21 22:48:34 +01:00
index.html
Makefile.in Examples makefile changes to make it easier to test python3 without -py3 2016-06-05 22:39:34 +01:00
README Improve Examples/README 2014-02-21 08:14:24 +13:00

SWIG Examples

The subdirectories of "Examples" named after SWIG's language backends
contain a number of simple examples that are primarily used for testing.

The file 'index.html' is the top of a hyperlinked document that
contains information about all of the examples along with various
notes related to each example.

Note: All of the examples rely upon the Makefile in this directory.
You may need to edit it to reflect the configuration of your machine
in case the configure script guesses incorrect settings.


*** Special note concerning C++ ***

The configure script is currently unable to handle all of the possible
options for producing dynamically loadable C++ extensions.  Here are
the rules of thumb for making C++ work:

 -  Try using the C++ as the linker for the shared library.  For example:

         g++ -shared $(OBJS) -o module.so

 -  If that doesn't work, you may need to explicitly link against some
    kind of C++ runtime library.  For example:

         ld -G $(OBJS) -L/opt/SUNWspro/lib -lCrun -o module.so

    This can be set by modifying the setting of CPP_DLLIBS in the
    Makefile.


*** Special note for SWIG Maintainers ***

When you add an example, consider arranging for the example to be also
useful as part of the SWIG testing framework.  To do this, include in
the example makefile a target "check" ("check: all" is sufficient for a
first pass), and add an invocation to ../Makefile.in under target
"check-examples" (or whatever is appropriate).  Later, we can add or
expand the actions under target "check" to do more in-depth testing.