From 825e67b2b0e7a356c678833ae3535b17708701ee Mon Sep 17 00:00:00 2001
From: Jamie Kirkpatrick
Date: Fri, 12 Sep 2008 10:51:51 +0000
Subject: [PATCH] Merged revisions
10487,10498-10499,10503-10504,10506,10508,10511,10515-10516,10518-10519,10527,10530-10531,10536-10537,10539-10552,10558-10568,10574-10580,10582,10584,10588-10589,10594,10607-10610,10616,10621,10624-10629,10633-10641,10643,10647,10649-10650,10662,10672,10676-10677,10682-10683,10714,10726-10727,10738,10743,10747,10749,10794,10801-10809,10827-10831,10834
via svnmerge from https://swig.svn.sourceforge.net/svnroot/swig/trunk
................
r10487 | wsfulton | 2008-05-21 23:15:52 +0100 (Wed, 21 May 2008) | 1 line
Apply patch from Petr Viktorin to fix some recent regressions in CFFI/CLOS
................
r10498 | talby | 2008-05-26 21:09:56 +0100 (Mon, 26 May 2008) | 2 lines
run test cases in the Perl set by the --with-perl5 configure option.
................
r10499 | talby | 2008-05-26 22:04:06 +0100 (Mon, 26 May 2008) | 3 lines
The perl5 minherit runtime test will work better if the classes are
actually built under SWIGPERL.
................
r10503 | wsfulton | 2008-05-28 10:44:37 +0100 (Wed, 28 May 2008) | 1 line
Fix variable wrappers when using -proxy. Patch from Jan Jezabek
................
r10504 | bhy | 2008-05-28 18:27:48 +0100 (Wed, 28 May 2008) | 2 lines
Fixed SF #1971977: typo in pycontainer.swg (related to -extranative option)
................
r10506 | wsfulton | 2008-05-29 01:45:28 +0100 (Thu, 29 May 2008) | 1 line
Fix variable wrappers when using -noproxy
................
r10508 | bhy | 2008-05-30 14:53:33 +0100 (Fri, 30 May 2008) | 1 line
Fixed SF #1976978, apply the macros for primitive types to std::wstring
................
r10511 | olly | 2008-05-30 17:11:27 +0100 (Fri, 30 May 2008) | 4 lines
Fix typo in handling of /*@SWIG[...]*/ comments in the scanner. This just
meant we were only actually looking for /*@SWI at the start of the comment, so
was pretty harmless in practice.
................
r10515 | wsfulton | 2008-06-02 21:10:40 +0100 (Mon, 02 Jun 2008) | 1 line
Fix samename testcase for c# and java
................
r10516 | wsfulton | 2008-06-02 21:15:39 +0100 (Mon, 02 Jun 2008) | 1 line
Fix enums when using -noproxy
................
r10518 | bhy | 2008-06-07 12:20:07 +0100 (Sat, 07 Jun 2008) | 4 lines
Added a test case for keyword renaming.
Now it works for Python in SWIG's -c++ mode,
but in C mode it doesn't work! (you can try with make keyword_rename.ctest)
................
r10519 | bhy | 2008-06-07 14:40:51 +0100 (Sat, 07 Jun 2008) | 1 line
fixed keyword_rename.ctest tese case, caused by a mistake in Swig/naming.c
................
r10527 | mgossage | 2008-06-17 03:57:15 +0100 (Tue, 17 Jun 2008) | 1 line
[lua] bugfix 1938142 (bool& and bool* support)
................
r10530 | wsfulton | 2008-06-19 21:02:13 +0100 (Thu, 19 Jun 2008) | 1 line
Add R keyword support. Rename keywords for successful compilation of Java and C# code. More consistent keyword warnings across the different languages.
................
r10531 | wsfulton | 2008-06-19 22:15:48 +0100 (Thu, 19 Jun 2008) | 1 line
add complete list of R reserved words
................
r10536 | wsfulton | 2008-06-21 12:35:33 +0100 (Sat, 21 Jun 2008) | 1 line
better terminology for static types
................
r10537 | wsfulton | 2008-06-21 12:42:48 +0100 (Sat, 21 Jun 2008) | 1 line
remove raise as keyword test- it conflicts with _raise in LIBCMT on windows
................
r10539 | wsfulton | 2008-06-21 16:21:29 +0100 (Sat, 21 Jun 2008) | 1 line
Lua example warning removal fixes for vc++
................
r10540 | wsfulton | 2008-06-21 16:23:02 +0100 (Sat, 21 Jun 2008) | 1 line
Remove some vc++ /W4 warnings
................
r10541 | wsfulton | 2008-06-21 17:04:55 +0100 (Sat, 21 Jun 2008) | 1 line
minor vc++ /W4 warning fixes
................
r10542 | wsfulton | 2008-06-21 20:07:51 +0100 (Sat, 21 Jun 2008) | 1 line
'byte' is already used in Ruby on windows, so use another keyword
................
r10543 | wsfulton | 2008-06-21 21:45:32 +0100 (Sat, 21 Jun 2008) | 1 line
Fix crashing in the Ruby reject method in the STL wrappers
................
r10544 | wsfulton | 2008-06-21 21:48:28 +0100 (Sat, 21 Jun 2008) | 1 line
Fix crashing in the Ruby reject method in the STL wrappers
................
r10545 | wsfulton | 2008-06-21 21:49:10 +0100 (Sat, 21 Jun 2008) | 1 line
remove unnecessary variable int the char **STRING_ARRAY out typemap
................
r10546 | wsfulton | 2008-06-21 22:07:49 +0100 (Sat, 21 Jun 2008) | 1 line
Fix Ruby C++ example dependencies in dsp files
................
r10547 | wsfulton | 2008-06-21 23:25:36 +0100 (Sat, 21 Jun 2008) | 1 line
Fix unused parameter warnings in python when using gcc's -W -Wall options
................
r10548 | wsfulton | 2008-06-21 23:26:35 +0100 (Sat, 21 Jun 2008) | 1 line
Fix virtual destructor
................
r10549 | wsfulton | 2008-06-22 00:25:20 +0100 (Sun, 22 Jun 2008) | 1 line
various warning fixes
................
r10550 | wsfulton | 2008-06-22 01:09:11 +0100 (Sun, 22 Jun 2008) | 1 line
Another fix for the JVM hanging on exit problem when using directors
................
r10551 | wsfulton | 2008-06-22 01:09:51 +0100 (Sun, 22 Jun 2008) | 1 line
documentation sections update
................
r10552 | wsfulton | 2008-06-22 01:18:10 +0100 (Sun, 22 Jun 2008) | 1 line
more docs on defining macros for the thread hanging problem
................
r10558 | wsfulton | 2008-06-22 22:30:20 +0100 (Sun, 22 Jun 2008) | 1 line
fix unused parms in last commit for C code
................
r10559 | wsfulton | 2008-06-22 23:12:43 +0100 (Sun, 22 Jun 2008) | 1 line
Suppress unused methods warning for VC++
................
r10560 | wsfulton | 2008-06-23 21:26:07 +0100 (Mon, 23 Jun 2008) | 1 line
fix partialcheck-test-suite and parallel make for r, chicken, tcl and php
................
r10561 | wsfulton | 2008-06-23 21:39:41 +0100 (Mon, 23 Jun 2008) | 1 line
correct message display when running the partialcheck-test-suite make target
................
r10562 | wsfulton | 2008-06-23 22:14:53 +0100 (Mon, 23 Jun 2008) | 1 line
fix typo
................
r10563 | olly | 2008-06-23 22:23:54 +0100 (Mon, 23 Jun 2008) | 3 lines
Fix bad use of Python API (untested, since I can't even compile this code on
x86-64!)
................
r10564 | olly | 2008-06-23 23:58:03 +0100 (Mon, 23 Jun 2008) | 3 lines
[PHP] Fix segfault when wrapping a non-class function marked with
%newobject (testcase char_strings).
................
r10565 | olly | 2008-06-24 01:27:34 +0100 (Tue, 24 Jun 2008) | 3 lines
[PHP] Fix assertion failure when handling %typemap(in,numinputs=0)
(testcase ignore_parameter).
................
r10566 | olly | 2008-06-24 01:33:08 +0100 (Tue, 24 Jun 2008) | 2 lines
[PHP] Fix typemap_namespace.i to not try to copy a non-existent typemap.
................
r10567 | olly | 2008-06-24 01:41:07 +0100 (Tue, 24 Jun 2008) | 3 lines
Clean up dead and unused code in SwigToPhpType(), and rename to
GetShadowReturnType().
................
r10568 | olly | 2008-06-24 01:42:29 +0100 (Tue, 24 Jun 2008) | 2 lines
Fix cosmetic typo in string constant.
................
r10574 | wsfulton | 2008-06-24 21:10:28 +0100 (Tue, 24 Jun 2008) | 1 line
zap last entry
................
r10575 | wsfulton | 2008-06-24 21:11:46 +0100 (Tue, 24 Jun 2008) | 1 line
variable name changes to remove php keywords
................
r10576 | wsfulton | 2008-06-24 21:12:08 +0100 (Tue, 24 Jun 2008) | 1 line
variable name hiding fix
................
r10577 | wsfulton | 2008-06-24 21:12:43 +0100 (Tue, 24 Jun 2008) | 1 line
More info about numobjects added
................
r10578 | wsfulton | 2008-06-24 21:13:41 +0100 (Tue, 24 Jun 2008) | 1 line
update for 1.3.36 release
................
r10579 | wsfulton | 2008-06-24 22:48:46 +0100 (Tue, 24 Jun 2008) | 1 line
remove deprecated -c commandline option (runtime library generation)
................
r10580 | wsfulton | 2008-06-24 22:53:12 +0100 (Tue, 24 Jun 2008) | 1 line
correct comment about deprecated option
................
r10582 | wsfulton | 2008-06-25 00:00:27 +0100 (Wed, 25 Jun 2008) | 1 line
use rsync and ssh to upload releases to SourceForge as ftp no longer works
................
r10584 | wsfulton | 2008-06-25 00:24:48 +0100 (Wed, 25 Jun 2008) | 1 line
correction for 1.3.36
................
r10588 | wsfulton | 2008-06-25 01:16:04 +0100 (Wed, 25 Jun 2008) | 1 line
section update
................
r10589 | wsfulton | 2008-06-25 01:16:40 +0100 (Wed, 25 Jun 2008) | 1 line
bump version to 1.3.37
................
r10594 | wsfulton | 2008-06-26 19:33:06 +0100 (Thu, 26 Jun 2008) | 1 line
correct typo in first entry about %fragment
................
r10607 | wsfulton | 2008-06-29 01:19:05 +0100 (Sun, 29 Jun 2008) | 1 line
fix some potential null pointer usage as reported by CoveriCoverity Prevent
................
r10608 | wsfulton | 2008-06-29 01:50:27 +0100 (Sun, 29 Jun 2008) | 1 line
fix potential null pointer usage as reported by Coverity Prevent
................
r10609 | wsfulton | 2008-06-29 10:57:41 +0100 (Sun, 29 Jun 2008) | 1 line
make life easier for svn status updates as everyone has different autotool versions installed - use svn:ignore on config.sub and config.guess
................
r10610 | wsfulton | 2008-06-29 11:08:14 +0100 (Sun, 29 Jun 2008) | 1 line
make life easier for svn status updates as everyone has different autotool versions installed - use svn:ignore on config.sub and config.guess
................
r10616 | talby | 2008-07-01 00:41:27 +0100 (Tue, 01 Jul 2008) | 2 lines
Hopefully this provides more portable values for Infinity and NaN in Perl.
................
r10621 | wsfulton | 2008-07-01 23:02:14 +0100 (Tue, 01 Jul 2008) | 1 line
update old commandline option
................
r10624 | olly | 2008-07-02 04:17:46 +0100 (Wed, 02 Jul 2008) | 5 lines
[Python] Import the C extension differently for Python 2.6 and
later so that an implicit relative import doesn't produce a
deprecation warning for 2.6 and a failure for 2.7 and later.
Patch from Richard Boulton in SF#2008229.
................
r10625 | bhy | 2008-07-02 05:56:11 +0100 (Wed, 02 Jul 2008) | 1 line
fix the relative import patch by try both relative and absolute import
................
r10626 | olly | 2008-07-02 06:55:18 +0100 (Wed, 02 Jul 2008) | 4 lines
[PHP4] Support for PHP4 has been removed. The PHP developers are
no longer making new PHP4 releases, and won't even be patching
critical security issues after 2008-08-08.
................
r10627 | bhy | 2008-07-02 07:06:56 +0100 (Wed, 02 Jul 2008) | 1 line
fix the previous commit -- new approach using imp module
................
r10628 | bhy | 2008-07-02 07:29:15 +0100 (Wed, 02 Jul 2008) | 1 line
minor fix on relative import: close fp if exception occured during imp.find_module
................
r10629 | bhy | 2008-07-02 08:08:00 +0100 (Wed, 02 Jul 2008) | 1 line
reconstruct the relative import, now the generated code looks better
................
r10633 | olly | 2008-07-03 01:09:56 +0100 (Thu, 03 Jul 2008) | 9 lines
WARN_* constants are user visible, so keep existing WARN_PHP4_* for
backward compatibility, but add preferred forms WARN_PHP_* and use
these ourselves.
Rename Lib/php4 to Lib/php, Source/Modules/php4.cxx to Source/Modules/php.cxx.
Add typemaps for const reference so Examples/test-suite/apply_signed_char.i
works.
................
r10634 | olly | 2008-07-03 01:12:58 +0100 (Thu, 03 Jul 2008) | 2 lines
Remove file added in error.
................
r10635 | olly | 2008-07-03 01:37:38 +0100 (Thu, 03 Jul 2008) | 2 lines
Rename php4*.swg to php*.swg.
................
r10636 | olly | 2008-07-03 02:13:51 +0100 (Thu, 03 Jul 2008) | 2 lines
Update wrt PHP4.
................
r10637 | olly | 2008-07-03 03:32:11 +0100 (Thu, 03 Jul 2008) | 4 lines
[PHP] The deprecated command line option "-phpfull" has been
removed. We recommend building your extension as a dynamically
loadable module.
................
r10638 | olly | 2008-07-03 03:32:41 +0100 (Thu, 03 Jul 2008) | 2 lines
Fix version number
................
r10639 | olly | 2008-07-03 07:04:24 +0100 (Thu, 03 Jul 2008) | 2 lines
Make t_output_helper() static.
................
r10640 | olly | 2008-07-03 07:05:34 +0100 (Thu, 03 Jul 2008) | 2 lines
Make testcase li_typemaps work for PHP.
................
r10641 | olly | 2008-07-03 10:12:16 +0100 (Thu, 03 Jul 2008) | 2 lines
Fix check::classname() to compare case-insensitively and not try to interpolate objects into strings.
................
r10643 | olly | 2008-07-03 23:00:01 +0100 (Thu, 03 Jul 2008) | 4 lines
The operator& trick in allowexcept.i doesn't work for SWIG/PHP because the
generated code takes the address of the variable in the code in the "vinit"
section. So comment out the private operator& for PHP.
................
r10647 | olly | 2008-07-04 00:55:33 +0100 (Fri, 04 Jul 2008) | 2 lines
[PHP] The SWIG cdata.i library module is now supported.
................
r10649 | olly | 2008-07-04 02:02:22 +0100 (Fri, 04 Jul 2008) | 4 lines
[PHP] The deprecated command line option "-make" has been removed.
Searches on Google codesearch suggest that nobody is using it now
anyway.
................
r10650 | olly | 2008-07-04 02:22:11 +0100 (Fri, 04 Jul 2008) | 4 lines
[PHP] For std_vector.i and std_map.i, rename empty() to is_empty()
since "empty" is a PHP reserved word. Based of patch from Mark Klein
in SF#1943417.
................
r10662 | wsfulton | 2008-07-14 22:09:23 +0100 (Mon, 14 Jul 2008) | 1 line
Fix director typemaps for pointers so that NULL pointers are correctly marshalled to C#/Java null in director methods
................
r10672 | olly | 2008-07-17 02:17:08 +0100 (Thu, 17 Jul 2008) | 2 lines
Fix a typo; improve wording.
................
r10676 | wsfulton | 2008-07-17 22:05:49 +0100 (Thu, 17 Jul 2008) | 1 line
SF #2019156 Configuring with --without-octave or --without-alllang did not disable octave.
................
r10677 | wsfulton | 2008-07-17 22:08:22 +0100 (Thu, 17 Jul 2008) | 1 line
tidy output after detecting X11 headers
................
r10682 | wsfulton | 2008-07-19 19:08:06 +0100 (Sat, 19 Jul 2008) | 1 line
a bit more on pgcpp
................
r10683 | wsfulton | 2008-07-19 23:45:54 +0100 (Sat, 19 Jul 2008) | 1 line
Fix building of Tcl examples/test-suite on Mac OSX
................
r10714 | olly | 2008-07-27 13:51:16 +0100 (Sun, 27 Jul 2008) | 2 lines
Fix "can can" typo in docs (SF#2026756)
................
r10726 | wuzzeb | 2008-08-02 09:28:02 +0100 (Sat, 02 Aug 2008) | 1 line
Commit patch 2019314
................
r10727 | wuzzeb | 2008-08-02 09:49:43 +0100 (Sat, 02 Aug 2008) | 1 line
add assert.h to fix chicken build of external runtime (ext_test testsuite)
................
r10738 | talby | 2008-08-07 07:28:13 +0100 (Thu, 07 Aug 2008) | 2 lines
hoist globals to local scope where trival.
................
r10743 | talby | 2008-08-08 04:10:55 +0100 (Fri, 08 Aug 2008) | 2 lines
initial steps to clean up perl5 class methods (primarily constructors).
................
r10747 | talby | 2008-08-09 05:08:26 +0100 (Sat, 09 Aug 2008) | 2 lines
moves perl space constructor fixups into wrapper code.
................
r10749 | talby | 2008-08-10 00:57:55 +0100 (Sun, 10 Aug 2008) | 2 lines
usage_func() fix + CHANGES.current entry to explain my past few commits.
................
r10794 | talby | 2008-08-19 08:09:29 +0100 (Tue, 19 Aug 2008) | 3 lines
rollback 10737:10749, this work is better left on a branch until it is
in support a significant feature enhancement.
................
r10801 | drjoe | 2008-08-31 17:07:43 +0100 (Sun, 31 Aug 2008) | 2 lines
change Rf_warning to warning. Looks like a typo
................
r10802 | wsfulton | 2008-09-01 20:59:23 +0100 (Mon, 01 Sep 2008) | 1 line
Fix ruby detection problem breaking configure
................
r10803 | wsfulton | 2008-09-01 21:00:28 +0100 (Mon, 01 Sep 2008) | 1 line
Fix another perl global namespace pollution
................
r10804 | wsfulton | 2008-09-01 21:32:53 +0100 (Mon, 01 Sep 2008) | 1 line
Fix array bounds checking in C# std::vector wrappers
................
r10805 | wsfulton | 2008-09-01 21:34:49 +0100 (Mon, 01 Sep 2008) | 1 line
fix runtime problem in Ruby std_vector example
................
r10806 | wsfulton | 2008-09-01 21:42:40 +0100 (Mon, 01 Sep 2008) | 1 line
Fix portability problem using /dev/null
................
r10807 | wsfulton | 2008-09-01 22:46:41 +0100 (Mon, 01 Sep 2008) | 1 line
patch #2079381 submitted by Boris Smilga - constant exprs put into no-eval context in DEFCENUM
................
r10808 | wsfulton | 2008-09-02 21:56:52 +0100 (Tue, 02 Sep 2008) | 1 line
Add new terminator attribute for the csin typemap for C#
................
r10809 | wsfulton | 2008-09-03 00:01:37 +0100 (Wed, 03 Sep 2008) | 1 line
Fix #1988296 - Multiple module director linking issue
................
r10827 | richardb | 2008-09-10 11:08:21 +0100 (Wed, 10 Sep 2008) | 6 lines
[Python] Commit patch #2089149: Director exception handling mangles
returned exception. Exceptions raised by Python code in directors
are now passed through to the caller without change. Also, remove
the ": " prefix which used to be added to other director exceptions
(eg, those due to incorrect return types).
................
r10828 | bhy | 2008-09-10 11:45:33 +0100 (Wed, 10 Sep 2008) | 3 lines
Initialized merge tracking via "svnmerge" with revisions "1-10827" from
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy
................
r10829 | bhy | 2008-09-10 12:04:09 +0100 (Wed, 10 Sep 2008) | 4 lines
Removed merge tracking for "svnmerge" for
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy
(Undo the init due to user error)
................
r10830 | bhy | 2008-09-10 12:08:16 +0100 (Wed, 10 Sep 2008) | 3 lines
Initialized merge tracking via "svnmerge" with revisions "1-10403" from
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy
................
r10831 | bhy | 2008-09-10 12:51:12 +0100 (Wed, 10 Sep 2008) | 11 lines
(Still trying to set right properity to get svnmerge work...)
Recorded merge of revisions 10404 via svnmerge from
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy
........
r10404 | bhy | 2008-05-01 08:35:49 +0800 (Thu, 01 May 2008) | 5 lines
Start of gsoc2008-bhy branch. This is a branch for Haoyu Bai's Python 3.0 backend project.
Some file already modified since a little of work already done when starting the branch.
........
................
r10834 | bhy | 2008-09-11 18:18:07 +0100 (Thu, 11 Sep 2008) | 8 lines
Merged the Python 3.0 support branch. The merging progress is not so smooth, so hope this commit won't make anything broken.
This is the (incomplemete) log produced by svnmerge.py:
Merged revisions 10405-10409,10420-10422,10426,10438,10445,10451,10454-10465,10467,10473-10475,10485,10488-10489,10493-10495,10497,10509-10510,10513-10514,10517,10520,10525,10528-10529,10533-10535,10554-10557,10570,10573,10593,10614,10666-10669,10673,10678,10687,10690,10704-10706,10731,10744,10750-10752,10755,10759,10770,10775-10776,10813,10819 via svnmerge from
https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-bhy
................
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-cherylfoil@10837 626c5289-ae23-0410-ae9c-e8d60b6d4f22
---
ANNOUNCE | 10 +-
CHANGES | 159 +-
CHANGES.current | 148 +-
Doc/Manual/CSharp.html | 58 +-
Doc/Manual/Contents.html | 3 +-
Doc/Manual/Extending.html | 3 +-
Doc/Manual/Java.html | 27 +-
Doc/Manual/Php.html | 184 +-
Doc/Manual/Python.html | 253 ++-
Doc/Manual/SWIG.html | 16 +-
Doc/Manual/SWIGPlus.html | 5 +-
Doc/Manual/Sections.html | 2 +-
Doc/Manual/Typemaps.html | 15 +-
Doc/Manual/Warnings.html | 2 +-
Examples/GIFPlot/Python/full/Makefile | 3 +-
Examples/GIFPlot/Python/shadow/Makefile | 3 +-
Examples/GIFPlot/Python/simple/Makefile | 3 +-
Examples/Makefile.in | 77 +-
Examples/guile/multimap/example.i | 4 +-
Examples/guile/multivalue/example.i | 6 +
Examples/lua/arrays/example.c | 2 +-
Examples/lua/embed2/embed2.c | 13 +-
Examples/lua/embed3/embed3.cpp | 14 +-
Examples/lua/owner/example.cxx | 4 +-
Examples/perl5/import/base.h | 2 +-
Examples/perl5/multiple_inheritance/example.h | 23 +-
Examples/php4/reference/BUILD-proxy.sh | 5 -
Examples/python/callback/Makefile | 1 +
Examples/python/class/Makefile | 1 +
Examples/python/constants/Makefile | 1 +
Examples/python/contract/Makefile | 1 +
Examples/python/docstrings/Makefile | 1 +
Examples/python/enum/Makefile | 1 +
Examples/python/exception/Makefile | 1 +
Examples/python/exceptproxy/Makefile | 1 +
Examples/python/extend/Makefile | 1 +
Examples/python/funcptr/Makefile | 1 +
Examples/python/funcptr2/Makefile | 1 +
Examples/python/functor/Makefile | 1 +
Examples/python/import/Makefile | 1 +
Examples/python/import_template/Makefile | 1 +
Examples/python/libffi/Makefile | 1 +
Examples/python/multimap/Makefile | 1 +
Examples/python/multimap/example.i | 32 +-
Examples/python/operator/Makefile | 1 +
Examples/python/pointer/Makefile | 1 +
Examples/python/reference/Makefile | 1 +
Examples/python/simple/Makefile | 1 +
Examples/python/smartptr/Makefile | 1 +
Examples/python/std_map/Makefile | 1 +
Examples/python/std_vector/Makefile | 1 +
Examples/python/swigrun/Makefile | 1 +
Examples/python/template/Makefile | 1 +
Examples/python/varargs/Makefile | 1 +
Examples/python/variables/Makefile | 1 +
Examples/python/weave/Makefile | 1 +
Examples/ruby/class/example.dsp | 4 +-
Examples/ruby/free_function/example.cxx | 2 +-
Examples/ruby/free_function/example.dsp | 4 +-
Examples/ruby/import/bar.dsp | 4 +-
Examples/ruby/import/base.dsp | 4 +-
Examples/ruby/import/foo.dsp | 4 +-
Examples/ruby/import/spam.dsp | 4 +-
Examples/ruby/mark_function/example.dsp | 4 +-
Examples/ruby/std_vector/runme.rb | 8 +-
Examples/tcl/import/base.h | 2 +-
Examples/test-suite/abstract_virtual.i | 4 +-
Examples/test-suite/allowexcept.i | 14 +-
Examples/test-suite/apply_signed_char.i | 2 +
Examples/test-suite/bools.i | 2 +
Examples/test-suite/char_strings.i | 2 +-
Examples/test-suite/chicken/Makefile.in | 12 +-
Examples/test-suite/common.mk | 3 +
Examples/test-suite/constant_pointers.i | 6 +
Examples/test-suite/contract.i | 2 +-
Examples/test-suite/cpp_basic.i | 2 +
Examples/test-suite/csharp/Makefile.in | 4 +-
.../test-suite/csharp/char_strings_runme.cs | 2 +-
.../test-suite/csharp/director_basic_runme.cs | 74 +
Examples/test-suite/csharp_prepost.i | 101 +-
Examples/test-suite/default_constructor.i | 4 +-
Examples/test-suite/director_basic.i | 6 +-
Examples/test-suite/enum_thorough.i | 2 +
Examples/test-suite/evil_diamond.i | 2 +-
Examples/test-suite/evil_diamond_ns.i | 2 +-
Examples/test-suite/evil_diamond_prop.i | 2 +-
Examples/test-suite/fvirtual.i | 4 +-
Examples/test-suite/guilescm/Makefile.in | 8 +-
Examples/test-suite/java/Makefile.in | 4 +-
.../test-suite/java/char_strings_runme.java | 2 +-
.../test-suite/java/director_basic_runme.java | 57 +-
Examples/test-suite/java_typemaps_proxy.i | 2 +
Examples/test-suite/keyword_rename.i | 32 +
Examples/test-suite/li_cstring.i | 8 +-
Examples/test-suite/li_cwstring.i | 8 +-
Examples/test-suite/li_std_string.i | 2 +-
Examples/test-suite/lua/li_typemaps_runme.lua | 40 +
Examples/test-suite/minherit.i | 2 +-
Examples/test-suite/minherit2.i | 2 +-
Examples/test-suite/multiple_inheritance.i | 4 +-
Examples/test-suite/name_warnings.i | 3 +-
Examples/test-suite/namespace_typemap.i | 2 +-
Examples/test-suite/octave/fvirtual_runme.m | 2 +-
.../test-suite/octave/li_std_string_runme.m | 2 +-
Examples/test-suite/operbool.i | 10 +
.../test-suite/perl5/li_std_string_runme.pl | 4 +-
.../test-suite/perl5/li_typemaps_runme.pl | 39 +-
Examples/test-suite/perl5/run-perl-test.pl | 2 +-
Examples/test-suite/php4/Makefile.in | 6 +-
Examples/test-suite/php4/tests.php4 | 2 +-
Examples/test-suite/pure_virtual.i | 2 +-
Examples/test-suite/python/Makefile.in | 67 +-
Examples/test-suite/python/README | 6 +-
Examples/test-suite/python/abstractbase.i | 18 +
.../test-suite/python/abstractbase_runme3.py | 8 +
.../test-suite/python/cpp_namespace_runme.py | 20 +-
.../python/director_classic_runme.py | 68 +-
.../python/director_exception_runme.py | 50 +-
Examples/test-suite/python/file_test_runme.py | 3 +-
Examples/test-suite/python/fvirtual_runme.py | 2 +-
Examples/test-suite/python/hugemod.pl | 8 +-
.../test-suite/python/keyword_rename_runme.py | 4 +
.../test-suite/python/li_std_string_runme.py | 2 +-
Examples/test-suite/python/operbool_runme.py | 4 +
Examples/test-suite/python/pybuf.i | 34 +
Examples/test-suite/python/pybuf_benchmark.i | 31 +
.../python/pybuf_benchmark_runme.py | 16 +
.../python/pybuf_benchmark_runme3.py | 16 +
Examples/test-suite/python/pybuf_runme3.py | 15 +
.../python/template_typedef_cplx2_runme.py | 13 +-
.../python/template_typedef_cplx_runme.py | 13 +-
Examples/test-suite/r/Makefile.in | 4 +-
.../test-suite/ruby/li_std_string_runme.rb | 2 +-
Examples/test-suite/samename.i | 13 +-
.../test-suite/template_inherit_abstract.i | 2 +-
Examples/test-suite/template_int_const.i | 8 +-
Examples/test-suite/template_typedef_rec.i | 6 +-
Examples/test-suite/typemap_namespace.i | 2 +-
Examples/test-suite/using_composition.i | 6 +-
Examples/test-suite/using_extend.i | 2 +-
Examples/test-suite/using_namespace.i | 2 +-
Lib/allegrocl/allegrocl.swg | 80 +-
Lib/cdata.i | 9 +-
Lib/cffi/cffi.swg | 7 +-
Lib/chicken/chicken.swg | 1 +
Lib/chicken/chickenkw.swg | 2 +-
Lib/chicken/chickenrun.swg | 1 +
Lib/csharp/csharp.swg | 3 +-
Lib/csharp/csharphead.swg | 4 +-
Lib/csharp/csharpkw.swg | 2 +-
Lib/csharp/std_vector.i | 4 +-
Lib/java/director.swg | 10 +-
Lib/java/java.swg | 3 +-
Lib/java/javakw.swg | 2 +-
Lib/java/various.i | 2 +-
Lib/lua/luatypemaps.swg | 4 +-
Lib/lua/typemaps.i | 21 +
Lib/ocaml/ocamlkw.swg | 2 +-
Lib/perl5/noembed.h | 4 +
Lib/perl5/perlkw.swg | 4 +-
Lib/{php4 => php}/const.i | 0
Lib/{php4 => php}/globalvar.i | 0
Lib/{php4/php4.swg => php/php.swg} | 17 +-
Lib/{php4/php4init.swg => php/phpinit.swg} | 0
Lib/{php4/php4kw.swg => php/phpkw.swg} | 14 +-
Lib/{php4 => php}/phppointers.i | 0
Lib/{php4/php4run.swg => php/phprun.swg} | 4 +-
Lib/{php4 => php}/std_common.i | 0
Lib/{php4 => php}/std_deque.i | 0
Lib/{php4 => php}/std_map.i | 4 +
Lib/{php4 => php}/std_pair.i | 0
Lib/{php4 => php}/std_string.i | 0
Lib/{php4 => php}/std_vector.i | 2 +
Lib/{php4 => php}/stl.i | 0
Lib/{php4 => php}/typemaps.i | 21 +
Lib/{php4 => php}/utils.i | 4 +-
Lib/pike/pikekw.swg | 2 +-
Lib/python/director.swg | 9 +-
Lib/python/file.i | 4 +-
Lib/python/pyabc.i | 10 +
Lib/python/pyapi.swg | 14 +
Lib/python/pybuffer.i | 107 ++
Lib/python/pycontainer.swg | 65 +-
Lib/python/pyerrors.swg | 6 +-
Lib/python/pyhead.swg | 44 +
Lib/python/pyinit.swg | 68 +-
Lib/python/pyiterators.swg | 14 +-
Lib/python/pyopers.swg | 6 +
Lib/python/pyrun.swg | 113 +-
Lib/python/pystrings.swg | 20 +-
Lib/python/pythonkw.swg | 4 +-
Lib/python/pywstrings.swg | 2 +
Lib/python/std_map.i | 4 +
Lib/r/r.swg | 4 +-
Lib/r/rkw.swg | 32 +
Lib/ruby/rubycontainer.swg | 6 +-
Lib/ruby/rubykw.swg | 2 +-
Lib/swiglabels.swg | 6 +
Lib/typemaps/primtypes.swg | 1 +
README | 9 +-
Source/CParse/cscanner.c | 52 +-
Source/CParse/parser.y | 37 +-
Source/CParse/templ.c | 27 +-
Source/DOH/hash.c | 31 +-
Source/Include/swigwarn.h | 13 +-
Source/Makefile.am | 2 +-
Source/Modules/allegrocl.cxx | 61 +-
Source/Modules/cffi.cxx | 6 +-
Source/Modules/chicken.cxx | 13 +-
Source/Modules/csharp.cxx | 92 +-
Source/Modules/guile.cxx | 2 +-
Source/Modules/java.cxx | 35 +-
Source/Modules/lang.cxx | 61 +-
Source/Modules/lua.cxx | 4 -
Source/Modules/main.cxx | 10 +-
Source/Modules/modula3.cxx | 4 +-
Source/Modules/ocaml.cxx | 82 +-
Source/Modules/{php4.cxx => php.cxx} | 944 ++--------
Source/Modules/python.cxx | 527 ++++--
Source/Modules/r.cxx | 17 +-
Source/Modules/ruby.cxx | 10 +-
Source/Modules/swigmain.cxx | 4 +-
Source/Modules/uffi.cxx | 11 +-
Source/Preprocessor/cpp.c | 5 +-
Source/Swig/cwrap.c | 3 +-
Source/Swig/include.c | 3 +-
Source/Swig/misc.c | 23 +-
Source/Swig/naming.c | 6 +-
Source/Swig/scanner.c | 4 +-
Source/Swig/typeobj.c | 3 +-
Source/Swig/typesys.c | 17 +-
TODO | 2 +-
Tools/WAD/Python/type.c | 2 +-
Tools/config/config.guess | 1516 ---------------
Tools/config/config.sub | 1626 -----------------
Tools/mkrelease.py | 8 +-
configure.in | 145 +-
237 files changed, 3218 insertions(+), 5059 deletions(-)
delete mode 100755 Examples/php4/reference/BUILD-proxy.sh
create mode 100644 Examples/test-suite/csharp/director_basic_runme.cs
create mode 100644 Examples/test-suite/keyword_rename.i
create mode 100644 Examples/test-suite/lua/li_typemaps_runme.lua
create mode 100644 Examples/test-suite/operbool.i
create mode 100644 Examples/test-suite/python/abstractbase.i
create mode 100644 Examples/test-suite/python/abstractbase_runme3.py
create mode 100644 Examples/test-suite/python/keyword_rename_runme.py
create mode 100644 Examples/test-suite/python/operbool_runme.py
create mode 100644 Examples/test-suite/python/pybuf.i
create mode 100644 Examples/test-suite/python/pybuf_benchmark.i
create mode 100644 Examples/test-suite/python/pybuf_benchmark_runme.py
create mode 100644 Examples/test-suite/python/pybuf_benchmark_runme3.py
create mode 100644 Examples/test-suite/python/pybuf_runme3.py
rename Lib/{php4 => php}/const.i (100%)
rename Lib/{php4 => php}/globalvar.i (100%)
rename Lib/{php4/php4.swg => php/php.swg} (96%)
rename Lib/{php4/php4init.swg => php/phpinit.swg} (100%)
rename Lib/{php4/php4kw.swg => php/phpkw.swg} (93%)
rename Lib/{php4 => php}/phppointers.i (100%)
rename Lib/{php4/php4run.swg => php/phprun.swg} (99%)
rename Lib/{php4 => php}/std_common.i (100%)
rename Lib/{php4 => php}/std_deque.i (100%)
rename Lib/{php4 => php}/std_map.i (97%)
rename Lib/{php4 => php}/std_pair.i (100%)
rename Lib/{php4 => php}/std_string.i (100%)
rename Lib/{php4 => php}/std_vector.i (98%)
rename Lib/{php4 => php}/stl.i (100%)
rename Lib/{php4 => php}/typemaps.i (85%)
rename Lib/{php4 => php}/utils.i (96%)
create mode 100644 Lib/python/pyabc.i
create mode 100644 Lib/python/pybuffer.i
create mode 100644 Lib/r/rkw.swg
rename Source/Modules/{php4.cxx => php.cxx} (64%)
delete mode 100755 Tools/config/config.guess
delete mode 100755 Tools/config/config.sub
diff --git a/ANNOUNCE b/ANNOUNCE
index 0fb688344..7c0e95e3f 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,10 +1,10 @@
-*** ANNOUNCE: SWIG 1.3.35 (7 April 2008) ***
+*** ANNOUNCE: SWIG 1.3.36 (24 June 2008) ***
http://www.swig.org
-We're pleased to announce SWIG-1.3.35, the latest installment in the
-SWIG development effort. SWIG-1.3.35 includes a number of bug fixes
+We're pleased to announce SWIG-1.3.36, the latest installment in the
+SWIG development effort. SWIG-1.3.36 includes a number of bug fixes
and large number of enhancements throughout.
What is SWIG?
@@ -24,11 +24,11 @@ Availability:
-------------
The release is available for download on Sourceforge at
- http://prdownloads.sourceforge.net/swig/swig-1.3.35.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-1.3.36.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-1.3.35.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-1.3.36.zip
Release numbers
---------------
diff --git a/CHANGES b/CHANGES
index fc3018a1d..782849c6f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,162 @@ SWIG (Simplified Wrapper and Interface Generator)
See CHANGES.current for current version.
+Version 1.3.36 (24 June 2008)
+=============================
+
+06/24/2008: wsfulton
+ Remove deprecated -c commandline option (runtime library generation).
+
+06/24/2008: olly
+ [PHP] Fix assertion failure when handling %typemap(in,numinputs=0)
+ (testcase ignore_parameter).
+
+06/24/2008: olly
+ [PHP] Fix segfault when wrapping a non-class function marked with
+ %newobject (testcase char_strings).
+
+06/22/2008: wsfulton
+ [Java] Add a way to use AttachCurrentThreadAsDaemon instead of AttachCurrentThread
+ in director code. Define the SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON macro, see
+ Lib/java/director.swg.
+
+06/21/2008: wsfulton
+ [Ruby] Fix crashing in the STL wrappers (reject! and delete_if methods)
+
+06/19/2008: wsfulton
+ [Java, C#] C# and Java keywords will be renamed instead of just issuing a warning
+ and then generating uncompileable code. Warning 314 gives the new name when a
+ keyword is found.
+
+06/19/2008: wsfulton
+ [R] Keyword handling added. R Keywords will be renamed as necessary.
+ Warning 314 gives the new name when a keyword is found.
+
+06/17/2008: mgossage
+ [Lua] Added missing support for bool& and bool*. Added runtest for li_typemaps testcase.
+ (Bug #1938142)
+
+06/07/2008: bhy
+ Added test case keyword_rename, then made the keyword renaming works properly
+ by fixing Swig_name_make() for a incomplete condition checking.
+
+06/02/2008: wsfulton
+ [Java, C#] Fix enum wrappers when using -noproxy.
+
+05/30/2008: bhy
+ Added std::wstring into Lib/typemaps/primtypes.swg, since it is also a primitive
+ type in SWIG - fixed SF #1976978.
+
+05/29/2008: wsfulton
+ [Java, C#] Fix variable wrappers when using -noproxy.
+
+05/29/2008: bhy
+ [Python] Fixed a typo of %#ifdef in Lib/python/pycontainer.swg, which is related
+ to -extranative SWIG option - SF #1971977.
+
+05/20/2008: wsfulton
+ New partialcheck makefile targets for partial testing of the test-suite. These
+ just invoke SWIG, ie no compilation and no runtime testing. It can be faster
+ when developing by just doing a directory diff of the files SWIG generates
+ against those from a previous run. Example usage from the top level directory:
+
+ make partialcheck-test-suite
+ make partialcheck-java-test-suite
+
+ This change also encompasses more flexibility in running the test-suite, eg
+ it is possible to prefix the command line which runs any target language test
+ with a tool. See the RUNTOOL, COMPILETOOL and SWIGTOOL targets in the common.mk
+ file and makefiles in the test-suite directory. For example it is possible to
+ run the runtime tests through valgrind using:
+
+ make check RUNTOOL="valgrind --leak-check=full"
+
+ or invoke SWIG under valgrind using:
+
+ make check SWIGTOOL="valgrind --tool=memcheck"
+
+05/19/2008: drjoe
+ [R] Fixed define that was breaking pre-2.7. Checked in
+ patch from Soren Sonnenburg that creates strings in
+ version independent way
+
+05/15/2008: wsfulton
+ [Java] Fix variable name clash in directors - SF #1963316 reported by Tristan.
+
+05/14/2008: wsfulton
+ Add an optimisation for functions that return objects by value, reducing
+ the number of copies of the object that are made. Implemented using an
+ optional attribute in the "out" typemap called "optimal". Details in
+ Typemaps.html.
+
+05/11/2008: olly
+ [PHP] Check for %feature("notabstract") when generating PHP5 class
+ wrapper.
+
+05/11/2008: wsfulton
+ Fix SF #1943608 - $self substitution in %contract, patch submitted by
+ Toon Verstraelen.
+
+05/09/2008: olly
+ [PHP] Fix char * typemaps to work when applied to signed char * and
+ unsigned char * (uncovered by testcase apply_strings).
+
+05/09/2008: wsfulton
+ Fix wrapping of char * member variables when using allprotected mode.
+ Bug reported by Warren Wang.
+
+05/09/2008: olly
+ [PHP] Fix bad PHP code generated when wrapping an enum in a
+ namespace (uncovered by testcase arrays_scope).
+
+05/09/2008: olly
+ [PHP] SWIG now runs the PHP testsuite using PHP5, not PHP4. PHP4
+ is essentially obsolete now, so we care much more about solid PHP5
+ support.
+
+05/07/2008: wsfulton
+ STL fixes when using %import rather than %include and the Solaris Workshop
+ compiler and the Roguewave STL.
+
+05/07/2008: wsfulton
+ Fix wrapping of overloaded protected methods when using allprotected mode.
+ Bug reported by Warren Wang.
+
+05/03/2008: wsfulton
+ Commit patch #1956607 to add -MT support from Richard Boulton.
+ This patch mirrors the gcc -MT option which allows one to change the default
+ Makefile target being generated when generating makefiles with the -M family
+ of options. For example:
+
+ $ swig -java -MM -MT overiddenname -c++ example.i
+ overiddenname: \
+ example.i \
+ example.h
+
+04/30/2008: mgossage
+ [Lua] Removed generation of _wrap_delete_XXXXX (wrappered destructor)
+ which was unused and causing warning with g++ -Wall.
+ Removed other unused warning in typemaps.i and other places.
+ Added Examples/lua/embed3, and run tests a few test cases.
+
+04/24/2008: olly
+ [Python] Fix generated code for IBM's C++ compiler on AIX (patch
+ from Goeran Uddeborg in SF#1928048).
+
+04/24/2008: olly
+ Rename BSIZE in Examples/test-suite/arrays_scope.i to BBSIZE to
+ avoid a clash with BSIZE defined by headers on AIX with Perl
+ (reported in SF#1928048).
+
+04/20/2008: wsfulton
+ Add the ability to wrap all protected members when using directors.
+ Previously only the virtual methods were available to the target language.
+ Now all protected members, (static and non-static variables, non-virtual methods
+ and static methods) are wrapped when using the allprotected mode. The allprotected
+ mode is turned on in the module declaration:
+
+ %module(directors="1", allprotected="1") modulename
+
Version 1.3.35 (7 April 2008)
=============================
@@ -12123,7 +12279,8 @@ Version 1.3.14 (August 12, 2002)
with helper functions even if they aren't used. To fix this,
a new fragment directive is available. For example:
- %fragment("type_helper","header") %{
+ (corrected typo in line below - 06/26/2008)
+ %fragment("type_header","header") %{
void some_helper_function() {
...
}
diff --git a/CHANGES.current b/CHANGES.current
index 27e9925d2..6b552c994 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -1,106 +1,80 @@
-Version 1.3.36 (in progress)
+Version 1.3.37 (in progress)
=============================
-05/20/2008: wsfulton
- New partialcheck makefile targets for partial testing of the test-suite. These
- just invoke SWIG, ie no compilation and no runtime testing. It can be faster
- when developing by just doing a directory diff of the files SWIG generates
- against those from a previous run. Example usage from the top level directory:
+2008-09-02: wsfulton
+ [Python] Commit patch #2089149: Director exception handling mangles
+ returned exception. Exceptions raised by Python code in directors
+ are now passed through to the caller without change. Also, remove
+ the ": " prefix which used to be added to other director exceptions
+ (eg, those due to incorrect return types).
- make partialcheck-test-suite
- make partialcheck-java-test-suite
+2008-09-02: wsfulton
+ [Python] Commit patch #1988296 GCItem multiple module linking issue when using
+ directors.
- This change also encompasses more flexibility in running the test-suite, eg
- it is possible to prefix the command line which runs any target language test
- with a tool. See the RUNTOOL, COMPILETOOL and SWIGTOOL targets in the common.mk
- file and makefiles in the test-suite directory. For example it is possible to
- run the runtime tests through valgrind using:
+2008-09-02: wsfulton
+ [C#] Support for 'using' and 'fixed' blocks in the 'csin' typemap is now
+ possible through the use of the pre attribute and the new terminator attribute, eg
- make check RUNTOOL="valgrind --leak-check=full"
+ %typemap(csin,
+ pre=" using (CDate temp$csinput = new CDate($csinput)) {",
+ terminator=" } // terminate temp$csinput using block",
+ ) const CDate &
+ "$csclassname.getCPtr(temp$csinput)"
- or invoke SWIG under valgrind using:
+ See CSharp.html for more info.
- make check SWIGTOOL="valgrind --tool=memcheck"
+2008-09-01: wsfulton
+ [CFFI] Commit patch #2079381 submitted by Boris Smilga - constant exprs put into
+ no-eval context in DEFCENUM
-05/19/2008: drjoe
- [R] Fixed define that was breaking pre-2.7. Checked in
- patch from Soren Sonnenburg that creates strings in
- version independent way
+2008-09-01: wsfulton
+ [C#] Correct array bounds checking in std::vector typemaps - Insert and InsertRange
+ methods.
-05/15/2008: wsfulton
- [Java] Fix variable name clash in directors - SF #1963316 reported by Tristan.
+2008-08-02: wuzzeb
+ [Chicken,Allegro] Commit Patch 2019314
+ Fixes a build error in chicken, and several build errors and other errors
+ in Allegro CL
-05/14/2008: wsfulton
- Add an optimisation for functions that return objects by value, reducing
- the number of copies of the object that are made. Implemented using an
- optional attribute in the "out" typemap called "optimal". Details in
- Typemaps.html.
+2008-07-19: wsfulton
+ Fix building of Tcl examples/test-suite on Mac OSX reported by Gideon Simpson.
-05/11/2008: olly
- [PHP] Check for %feature("notabstract") when generating PHP5 class
- wrapper.
+2008-07-17: wsfulton
+ Fix SF #2019156 Configuring with --without-octave or --without-alllang
+ did not disable octave.
-05/11/2008: wsfulton
- Fix SF #1943608 - $self substitution in %contract, patch submitted by
- Toon Verstraelen.
+2008-07-14: wsfultonn
+ [Java, C#] Fix director typemaps for pointers so that NULL pointers are correctly
+ marshalled to C#/Java null in director methods.
-05/09/2008: olly
- [PHP] Fix char * typemaps to work when applied to signed char * and
- unsigned char * (uncovered by testcase apply_strings).
+2008-07-04: olly
+ [PHP] For std_vector.i and std_map.i, rename empty() to is_empty()
+ since "empty" is a PHP reserved word. Based on patch from Mark Klein
+ in SF#1943417.
-05/09/2008: wsfulton
- Fix wrapping of char * member variables when using allprotected mode.
- Bug reported by Warren Wang.
+2008-07-04: olly
+ [PHP] The deprecated command line option "-make" has been removed.
+ Searches on Google codesearch suggest that nobody is using it now
+ anyway.
-05/09/2008: olly
- [PHP] Fix bad PHP code generated when wrapping an enum in a
- namespace (uncovered by testcase arrays_scope).
+2008-07-04: olly
+ [PHP] The SWIG cdata.i library module is now supported.
-05/09/2008: olly
- [PHP] SWIG now runs the PHP testsuite using PHP5, not PHP4. PHP4
- is essentially obsolete now, so we care much more about solid PHP5
- support.
+2008-07-03: olly
+ [PHP] The deprecated command line option "-phpfull" has been
+ removed. We recommend building your extension as a dynamically
+ loadable module.
-05/07/2008: wsfulton
- STL fixes when using %import rather than %include and the Solaris Workshop
- compiler and the Roguewave STL.
+2008-07-02: olly
+ [PHP4] Support for PHP4 has been removed. The PHP developers are
+ no longer making new PHP4 releases, and won't even be providing
+ patches for critical security issues after 2008-08-08.
-05/07/2008: wsfulton
- Fix wrapping of overloaded protected methods when using allprotected mode.
- Bug reported by Warren Wang.
-
-05/03/2008: wsfulton
- Commit patch #1956607 to add -MT support from Richard Boulton.
- This patch mirrors the gcc -MT option which allows one to change the default
- Makefile target being generated when generating makefiles with the -M family
- of options. For example:
-
- $ swig -java -MM -MT overiddenname -c++ example.i
- overiddenname: \
- example.i \
- example.h
-
-04/30/2008: mgossage
- [Lua] Removed generation of _wrap_delete_XXXXX (wrappered destructor)
- which was unused and causing warning with g++ -Wall.
- Removed other unused warning in typemaps.i and other places.
- Added Examples/lua/embed3, and run tests a few test cases.
-
-04/24/2008: olly
- [Python] Fix generated code for IBM's C++ compiler on AIX (patch
- from Goeran Uddeborg in SF#1928048).
-
-04/24/2008: olly
- Rename BSIZE in Examples/test-suite/arrays_scope.i to BBSIZE to
- avoid a clash with BSIZE defined by headers on AIX with Perl
- (reported in SF#1928048).
-
-04/20/2008: wsfulton
- Add the ability to wrap all protected members when using directors.
- Previously only the virtual methods were available to the target language.
- Now all protected members, (static and non-static variables, non-virtual methods
- and static methods) are wrapped when using the allprotected mode. The allprotected
- mode is turned on in the module declaration:
-
- %module(directors="1", allprotected="1") modulename
+2008-07-02: olly
+ [Python] Import the C extension differently for Python 2.6 and
+ later so that an implicit relative import doesn't produce a
+ deprecation warning for 2.6 and a failure for 2.7 and later.
+ Patch from Richard Boulton in SF#2008229, plus follow-up patches
+ from Richard and Haoyu Bai.
diff --git a/Doc/Manual/CSharp.html b/Doc/Manual/CSharp.html
index 97cb75409..a712f82f2 100644
--- a/Doc/Manual/CSharp.html
+++ b/Doc/Manual/CSharp.html
@@ -1567,6 +1567,7 @@ Let's assume the code being wrapped is as follows:
class CDate {
public:
+ CDate();
CDate(int year, int month, int day);
int getYear();
int getMonth();
@@ -1649,8 +1650,8 @@ The typemaps to achieve this are shown below.
%typemap(cstype) const CDate& "System.DateTime"
%typemap(csin,
- pre=" CDate temp$csinput = new CDate($csinput.Year, $csinput.Month, $csinput.Day);")
- const CDate &
+ pre=" CDate temp$csinput = new CDate($csinput.Year, $csinput.Month, $csinput.Day);"
+ ) const CDate &
"$csclassname.getCPtr(temp$csinput)"
%typemap(cstype) CDate& "out System.DateTime"
@@ -1658,7 +1659,8 @@ The typemaps to achieve this are shown below.
pre=" CDate temp$csinput = new CDate();",
post=" $csinput = new System.DateTime(temp$csinput.getYear(),"
" temp$csinput.getMonth(), temp$csinput.getDay(), 0, 0, 0);",
- cshin="out $csinput") CDate &
+ cshin="out $csinput"
+ ) CDate &
"$csclassname.getCPtr(temp$csinput)"
@@ -1763,7 +1765,8 @@ will be possible with the following CDate * typemaps
pre=" CDate temp$csinput = new CDate($csinput.Year, $csinput.Month, $csinput.Day);",
post=" $csinput = new System.DateTime(temp$csinput.getYear(),"
" temp$csinput.getMonth(), temp$csinput.getDay(), 0, 0, 0);",
- cshin="ref $csinput") CDate *
+ cshin="ref $csinput"
+ ) CDate *
"$csclassname.getCPtr(temp$csinput)"
@@ -1788,6 +1791,50 @@ public class example {
+
+The following typemap is the same as the previous but demonstrates how a using block can be used for the temporary variable.
+The only change to the previous typemap is the introduction of the 'terminator' attribute to terminate the using block.
+The subtractYears method is nearly identical to the above addYears method.
+
+
+
+
+%typemap(csin,
+ pre=" using (CDate temp$csinput = new CDate($csinput.Year, $csinput.Month, $csinput.Day)) {",
+ post=" $csinput = new System.DateTime(temp$csinput.getYear(),"
+ " temp$csinput.getMonth(), temp$csinput.getDay(), 0, 0, 0);",
+ terminator=" } // terminate temp$csinput using block",
+ cshin="ref $csinput"
+ ) CDate *
+ "$csclassname.getCPtr(temp$csinput)"
+
+void subtractYears(CDate *pDate, int years) {
+ *pDate = CDate(pDate->getYear() - years, pDate->getMonth(), pDate->getDay());
+}
+
+
+
+
+The resulting generated code shows the termination of the using block:
+
+
+
+
+public class example {
+ public static void subtractYears(ref System.DateTime pDate, int years) {
+ using (CDate temppDate = new CDate(pDate.Year, pDate.Month, pDate.Day)) {
+ try {
+ examplePINVOKE.subtractYears(CDate.getCPtr(temppDate), years);
+ } finally {
+ pDate = new System.DateTime(temppDate.getYear(), temppDate.getMonth(), temppDate.getDay(), 0, 0, 0);
+ }
+ } // terminate temppDate using block
+ }
+ ...
+}
+
+
+
17.5.4 A date example demonstrating marshalling of C# properties
@@ -1827,7 +1874,8 @@ The typemap type required is thus CDate *. Given that the previous sect
pre=" CDate temp$csinput = new CDate($csinput.Year, $csinput.Month, $csinput.Day);",
post=" $csinput = new System.DateTime(temp$csinput.getYear(),"
" temp$csinput.getMonth(), temp$csinput.getDay(), 0, 0, 0);",
- cshin="ref $csinput") CDate *
+ cshin="ref $csinput"
+ ) CDate *
"$csclassname.getCPtr(temp$csinput)"
%typemap(csvarin, excode=SWIGEXCODE2) CDate * %{
diff --git a/Doc/Manual/Contents.html b/Doc/Manual/Contents.html
index 9d6e4e66f..d385fec9f 100644
--- a/Doc/Manual/Contents.html
+++ b/Doc/Manual/Contents.html
@@ -380,7 +380,7 @@
Typemaps for multiple languages
Optimal code generation when returning by value
-Multi-argument typemaps
+Multi-argument typemaps
The run-time type checker
Accessing protected members
Common customization features
diff --git a/Doc/Manual/Extending.html b/Doc/Manual/Extending.html
index 588912b68..5639663a1 100644
--- a/Doc/Manual/Extending.html
+++ b/Doc/Manual/Extending.html
@@ -448,7 +448,8 @@ of the output.
The contents of each parse tree node consist of a collection of attribute/value
pairs. Internally, the nodes are simply represented by hash tables. A display of
-the entire parse-tree structure can be obtained using swig -dump_tree.
+the entire parse-tree structure can be obtained using swig -debug-top <n>, where n is
+the stage being processed.
There are a number of other parse tree display options, for example, swig -debug-module <n> will
avoid displaying system parse information and only display the parse tree pertaining to the user's module at
stage n of processing.
diff --git a/Doc/Manual/Java.html b/Doc/Manual/Java.html
index 88963caf5..518426f5a 100644
--- a/Doc/Manual/Java.html
+++ b/Doc/Manual/Java.html
@@ -85,6 +85,7 @@
Director classes
Overhead and code bloat
Simple directors example
+Director threading issues
Accessing protected members
Common customization features
@@ -2856,7 +2857,11 @@ and therefore there is no possibility of premature garbage collection. In practi
The premature garbage collection prevention parameter for proxy classes is generated by default whenever proxy classes are passed by value, reference or with a pointer.
-The additional parameters do impose a slight performance overhead and the parameter generation can be suppressed globally with the -nopgcpp commandline option.
+The implementation for this extra parameter generation requires the "jtype" typemap to contain long and the "jstype" typemap to contain the name of a proxy class.
+
+
+
+The additional parameter does impose a slight performance overhead and the parameter generation can be suppressed globally with the -nopgcpp commandline option.
More selective suppression is possible with the 'nopgcpp' attribute in the "jtype" Java typemap.
The attribute is a flag and so should be set to "1" to enable the suppression, or it can be omitted or set to "0" to disable.
For example:
@@ -3450,6 +3455,26 @@ DirectorDerived::upcall_method() invoked.
+
20.5.5 Director threading issues
+
+
+
+Depending on your operating system and version of Java and how you are using threads, you might find the JVM hangs on exit.
+There are a couple of solutions to try out. The preferred solution requires jdk-1.4 and later and uses AttachCurrentThreadAsDaemon instead of AttachCurrentThread whenever a call into the JVM is required. This can be enabled by defining the SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON macro when compiling the C++ wrapper code. For older JVMs define SWIG_JAVA_NO_DETACH_CURRENT_THREAD instead, to avoid the DetachCurrentThread call but this will result in a memory leak instead. For further details inspect the source code in the java/director.swg library file.
+
+
+
+Macros can be defined on the commandline when compiling your C++ code, or alternatively added to the C++ wrapper file as shown below:
+
+
+
+
+%insert("runtime") %{
+#define SWIG_JAVA_NO_DETACH_CURRENT_THREAD
+%}
+
+
+
20.6 Accessing protected members
diff --git a/Doc/Manual/Php.html b/Doc/Manual/Php.html
index 6b654fde5..8adbc36b1 100644
--- a/Doc/Manual/Php.html
+++ b/Doc/Manual/Php.html
@@ -43,21 +43,24 @@
Caution: This chapter (and module!) is still under construction
+
+SWIG supports generating wrappers for PHP5. Support for PHP4 has been removed
+as of SWIG 1.3.37. The PHP developers are no longer making new PHP4 releases,
+and won't even be patching critical security issues after 2008-08-08, so it
+doesn't make much sense for SWIG to continue to support PHP4 at this point.
+If you need to continue to use PHP4, stick with SWIG 1.3.36.
+
+
In this chapter, we discuss SWIG's support of PHP. The PHP module
-was extensively rewritten in release 1.3.26, and although it is
-significantly more functional, it still does not implement all the
+was extensively rewritten in release 1.3.26, and support for generating
+OO wrappers for PHP5 was added in 1.3.30. The PHP module works fairly
+well, but currently does not implement all the
features available in some of the other languages.
-The examples and test cases have been developed with PHP4. Release
-1.3.30 added support for generating PHP5 class wrappers for C++
-libraries.
-
-
-
-In order to use this module, you will need to have a copy of the PHP4 or PHP5
+In order to use this module, you will need to have a copy of the PHP5
include files to compile the SWIG generated files. If you installed
PHP from a binary package, you may need to install a "php-dev" or "php-devel"
package for these to be installed. You can find out where these files are
@@ -88,7 +91,7 @@ you wish to statically link the extension into the php interpreter.
The third file,
example.php can be included by PHP scripts. It attempts to
dynamically load the extension and contains extra php code specified
-in the interface file. If wrapping C++ code for PHP5, it will
+in the interface file. If wrapping C++ code with PHP classes, it will
also contain PHP5 class wrappers.
@@ -100,7 +103,8 @@ more detail in section 27.2.6.
The usual (and recommended) way is to build the extension as a separate
-dynamically loaded module. You can then specify that this be loaded
+dynamically loaded module (which is supported by all modern operating
+systems). You can then specify that this be loaded
automatically in php.ini or load it explicitly for any script which
needs it.
@@ -110,17 +114,15 @@ It is also possible to rebuild PHP from source so that your module is
statically linked into the php executable/library. This is a lot more
work, and also requires a full rebuild of PHP to update your module,
and it doesn't play nicely with package system. We don't recommend
-this approach, but if you really want to do this, the -phpfull
-command line argument to swig may be of use - see below for details.
+this approach, or provide explicit support for it.
28.1.1 Building a loadable extension
-
To build your module as a dynamically loadable extension, use compilation
commands like these (if you aren't using GCC, the commands will be different,
-and there may be so variation between platforms - these commands should at
+and there may be some variation between platforms - these commands should at
least work for Linux though):
@@ -129,137 +131,8 @@ least work for Linux though):
gcc -shared example_wrap.o -o example.so
-
-There is a deprecated -make command line argument to swig which will
-generate an additional file makefile which can usually build the
-extension (at least on some UNIX platforms), but the Makefile generated isn't
-very flexible, and the commands required are trivial so it is simpler to just
-add them to your Makefile or other build system directly. We recommend that
-you don't use -make and it's likely to be removed at some point.
-
-
-28.1.2 Building extensions into PHP
-
-
-
-Note that we don't recommend this approach - it's cleaner and simpler to
-use dynamically loadable modules, which are supported by all modern OSes.
-Support for this may be discontinued entirely in the future.
-
-
-
-It is possible to rebuild PHP itself with your module statically linked
-in. To do this, you can use the -phpfull command line option to
-swig. Using this option will generate three additional files. The first
-extra file, config.m4 contains the m4 and shell code needed to
-enable the extension as part of the PHP build process. The second
-extra file, Makefile.in contains the information needed to
-build the final Makefile after substitutions. The third and final
-extra file, CREDITS should contain the credits for the
-extension.
-
-
-
-To build with phpize, after you have run swig you will need to run the
-'phpize' command (installed as part of php) in the same
-directory. This re-creates the php build environment in that
-directory. It also creates a configure file which includes the shell
-code from the config.m4 that was generated by SWIG, this configure
-script will accept a command line argument to enable the extension to
-be run (by default the command line argument is --enable-modulename,
-however you can edit the config.m4 file before running phpize to
-accept --with-modulename. You can also add extra tests in config.m4 to
-check that a correct library version is installed or correct header
-files are included, etc, but you must edit this file before running
-phpize.) You can also get SWIG to generate simple extra tests for
-libraries and header files for you.
-
-
-
-
-
-If you depend on source files not generated by SWIG, before generating
-the configure file, you may need to edit the Makefile.in
-file. This contains the names of the source files to compile (just the
-wrapper file by default) and any additional libraries needed to be
-linked in. If there are extra C files to compile, you will need to add
-them to the Makefile.in, or add the names of libraries if they are
-needed. In simple cases SWIG is pretty good at generating a complete
-Makefile.in and config.m4 which need no further editing.
-
-
-
-You then run the configure script with the command line argument needed
-to enable the extension. Then run make, which builds the extension.
-The extension object file will be left in the modules sub directory, you can
-move it to wherever it is convenient to call from your php script.
-
-
-
-When using -phpfull, swig also accepts the following
-additional optional arguments:
-
-
-- -withincs "<incs>" Adds include files to the config.m4 file.
-
- -withlibs "<libs>" Links with the specified libraries.
-
- -withc "<files>" Compiles and links the additional specified C files.
-
- -withcxx "<files>" Compiles and links the additional specified C++ files.
-
-
-
-After running swig with the -phpfull switch, you will be left with a shockingly
-similar set of files to the previous build process. However you will then need
-to move these files to a subdirectory within the php source tree, this subdirectory you will need to create under the ext directory, with the name of the extension (e.g. mkdir php-4.0.6/ext/modulename).
-
-
-
-After moving the files into this directory, you will need to run the 'buildall'
-script in the php source directory. This rebuilds the configure script
-and includes the extra command line arguments from the module you have added.
-
-
-
-Before running the generated configure file, you may need to edit the
-Makefile.in. This contains the names of the source files to compile (
-just the wrapper file by default) and any additional libraries needed to
-link in. If there are extra C files to compile you will need to add them
-to the Makefile, or add the names of libraries if they are needed.
-In most cases Makefile.in will be complete, especially if you
-make use of -withlibs and -withincs
-
-
-
- swig -php -phpfull -withlibs "xapian omquery" --withincs "om.h"
-
-
-
-Will include in the config.m4 and Makefile.in search for
-libxapian.a or libxapian.so and search for
-libomquery.a or libomquery.so as well as a
-search for om.h.
-
-
-
-You then need to run the configure command and pass the necessary command
-line arguments to enable your module (by default this is --enable-modulename,
-but this can be changed by editing the config.m4 file in the modules directory
-before running the buildall script. In addition, extra tests can be added to
-the config.m4 file to ensure the correct libraries and header files are
-installed.)
-
-
-
-Once configure has completed, you can run make to build php. If this all
-compiles correctly, you should end up with a php executable/library
-which contains your new module. You can test it with a php script which
-does not have the 'dl' command as used above.
-
-
28.1.3 Using PHP Extensions
-
To test the extension from a PHP script, you need to load it first. You
can load it for every script by adding this line the [PHP] section of
@@ -717,20 +590,9 @@ variable, or assigning NULL to a variable.
-SWIG defaults to wrapping C++ structs and classes with PHP classes. This
-requires SWIG to generate different code for PHP4 and PHP5, so you must
-specify which you want using -php4 or -php5 (currently
--php generates PHP4 class wrappers for compatibility with
-SWIG 1.3.29 and earlier, but this may change in the future).
-
-
-
-PHP4 classes are implemented entirely using the Zend C API so
-no additional php code is generated. For PHP5, a PHP wrapper
+SWIG defaults to wrapping C++ structs and classes with PHP classes
+unless "-noproxy" is specified. For PHP5, a PHP wrapper
class is generated which calls a set of flat functions wrapping the C++ class.
-In many cases the PHP4 and PHP5 wrappers will behave the same way,
-but the PHP5 ones make use of better PHP5's better OO functionality
-where appropriate.
@@ -754,7 +616,7 @@ struct Complex {
-Would be used in the following way from either PHP4 or PHP5:
+Would be used in the following way from PHP5:
@@ -854,9 +716,9 @@ the programmer can either reassign the variable or call
-Static member variables are not supported in PHP4, and it does not
-appear to be possible to intercept accesses to static member variables
-in PHP5. Therefore, static member variables are
+Static member variables in C++ are not wrapped as such in PHP
+as it does not appear to be possible to intercept accesses to such variables.
+Therefore, static member variables are
wrapped using a class function with the same name, which
returns the current value of the class variable. For example
diff --git a/Doc/Manual/Python.html b/Doc/Manual/Python.html
index 62b72fabf..c0b71b52d 100644
--- a/Doc/Manual/Python.html
+++ b/Doc/Manual/Python.html
@@ -46,7 +46,7 @@
Memory management
Python 2.2 and classic classes
-Cross language polymorphism
+Cross language polymorphism
Python Packages
+Python 3 Support
+
@@ -113,9 +119,9 @@
This chapter describes SWIG's support of Python. SWIG is compatible
-with most recent Python versions including Python 2.2 as well as older
-versions dating back to Python 1.5.2. For the best results, consider using Python
-2.0 or newer.
+with most recent Python versions including Python 3.0 and Python 2.6,
+as well as older versions dating back to Python 2.0. For the best results,
+consider using Python 2.3 or newer.
@@ -2544,7 +2550,7 @@ class itself. In Python-2.1 and earlier, they have to be accessed as a global
function or through an instance (see the earlier section).
-30.5 Cross language polymorphism
+30.5 Cross language polymorphism
@@ -4929,7 +4935,7 @@ with more than one line.
Using the package option of the %module directive
allows you to specify what Python package that the module will be
-living in when installed.
+living in when installed.
@@ -4950,6 +4956,241 @@ and also in base class declarations, etc. if the package name is
different than its own.
+
30.12 Python 3 Support
+
+
+
+SWIG is able to support Python 3.0. The wrapper code generated by
+SWIG can be compiled with both Python 2.x or 3.0. Further more, by
+passing the -py3 command line option to SWIG, wrapper code
+with some Python 3 specific features can be generated (see below
+subsections for details of these features). The -py3 option also
+disables some incompatible features for Python 3, such as
+-classic.
+
+
+There is a list of known-to-be-broken features in Python 3:
+
+
+ - No more support for FILE* typemaps, because PyFile_AsFile has been dropped
+ in Python 3.
+ - The -apply command line option is removed and generating
+ code using apply() is no longer supported.
+
+
+
+The following are Python 3.0 new features that are currently supported by
+SWIG.
+
+
+
30.12.1 Function annotation
+
+
+
+The -py3 option will enable function annotation support. When used
+SWIG is able to generate proxy method definitions like
+this:
+
+
+
+ def foo(self, bar : "int" = 0) -> "void" : ...
+
+
+
+For details of usage of function annotation, see PEP 3107.
+
+
+
30.12.2 Buffer interface
+
+
+
+Buffer protocols were revised in Python 3. SWIG also gains a series of
+new typemaps to support buffer interfaces. These typemap macros are
+defined in pybuffer.i, which must be included in order to use them.
+By using these typemaps, your wrapped function will be able to
+accept any Python object that exposes a suitable buffer interface.
+
+
+
+For example, the get_path() function puts the path string
+into the memory pointed to by its argument:
+
+
+
+void get_path(char *s);
+
+
+
+Then you can write a typemap like this: (the following example is
+applied to both Python 3.0 and 2.6, since the bytearray type
+is backported to 2.6.
+
+
+
+
+%include <pybuffer.i>
+%pybuffer_mutable_string(char *str);
+void get_path(char *s);
+
+
+
+And then on the Python side the wrapped get_path could be used in this
+way:
+
+
+
+>>> p = bytearray(10)
+>>> get_path(p)
+>>> print(p)
+bytearray(b'/Foo/Bar/\x00')
+
+
+
+The macros defined in pybuffer.i are similar to those in
+cstring.i:
+
+
+
+%pybuffer_mutable_binary(parm, size_parm)
+
+
+
+
+
+The macro can be used to generate a typemap which maps a buffer of an
+object to a pointer provided by parm and a size argument
+provided by size_parm. For example:
+
+
+
+%pybuffer_mutable_binary(char *str, size_t size);
+...
+int snprintf(char *str, size_t size, const char *format, ...);
+
+
+
+In Python:
+
+
+
+>>> buf = bytearray(6)
+>>> snprintf(buf, "Hello world!")
+>>> print(buf)
+bytearray(b'Hello\x00')
+>>>
+
+
+
+
+
+%pybuffer_mutable_string(parm)
+
+
+
+
+
+This typemap macro requires the buffer to be a zero terminated string,
+and maps the pointer of the buffer to parm. For example:
+
+
+
+%pybuffer_mutable_string(char *str);
+...
+size_t make_upper(char *str);
+
+
+
+In Python:
+
+
+
+>>> buf = bytearray(b'foo\x00')
+>>> make_upper(buf)
+>>> print(buf)
+bytearray(b'FOO\x00')
+>>>
+
+
+
+Both %pybuffer_mutable_binary and %pybuffer_mutable_string
+require the provided buffer to be mutable, eg. they can accept a
+bytearray type but can't accept an immutable byte
+type.
+
+
+
+
+
+%pybuffer_binary(parm, size_parm)
+
+
+
+
+
+This macro maps an object's buffer to a pointer parm and a
+size size_parm. It is similar to
+%pybuffer_mutable_binary, except the
+%pybuffer_binary an accept both mutable and immutable
+buffers. As a result, the wrapped function should not modify the buffer.
+
+
+
+
+
+%pybuffer_string(parm)
+
+
+
+
+
+This macro maps an object's buffer as a string pointer parm.
+It is similar to %pybuffer_mutable_string but the buffer
+could be both mutable and immutable. And your function should not
+modify the buffer.
+
+
+
+
+
+
30.12.3 Abstract base classes
+
+
+
+By including pyabc.i and using the -py3 command
+line option when calling SWIG, the proxy classes of the STL containers
+will automatically gain an appropriate abstract base class. For
+example, the following SWIG interface:
+
+
+
+%include <pyabc.i>
+%include <std_map.i>
+%include <std_list.i>
+
+namespace std {
+ %template(Mapii) map<int, int>;
+ %template(IntList) list<int>;
+}
+
+
+
+will generate a Python proxy class Mapii inheriting from
+collections.MutableMap and a proxy class IntList
+inheriting from collections.MutableSequence.
+
+
+
+pyabc.i also provides a macro %pythonabc that could be
+used to define an abstract base class for your own C++ class:
+
+
+
+%pythonabc(MySet, collections.MutableSet);
+
+
+
+For details of abstract base class, please see PEP 3119.
+