From: <sz...@us...> - 2011-03-24 05:46:16
|
Revision: 12552 http://swig.svn.sourceforge.net/swig/?rev=12552&view=rev Author: szager Date: 2011-03-24 05:46:05 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Merged trunk up to revision 12551 Revision Links: -------------- http://swig.svn.sourceforge.net/swig/?rev=12551&view=rev Modified Paths: -------------- branches/szager-python-builtin/ANNOUNCE branches/szager-python-builtin/CHANGES branches/szager-python-builtin/CHANGES.current branches/szager-python-builtin/Doc/Manual/Contents.html branches/szager-python-builtin/Doc/Manual/D.html branches/szager-python-builtin/Doc/Manual/Java.html branches/szager-python-builtin/Doc/Manual/Mzscheme.html branches/szager-python-builtin/Doc/Manual/SWIG.html branches/szager-python-builtin/Doc/Manual/Sections.html branches/szager-python-builtin/Doc/Manual/Warnings.html branches/szager-python-builtin/Examples/Makefile.in branches/szager-python-builtin/Examples/go/pointer/runme.go branches/szager-python-builtin/Examples/ocaml/argout_ref/example.i branches/szager-python-builtin/Examples/ocaml/shapes/example.c branches/szager-python-builtin/Examples/ocaml/shapes/example.h branches/szager-python-builtin/Examples/ocaml/std_string/README branches/szager-python-builtin/Examples/ocaml/strings_test/example.h branches/szager-python-builtin/Examples/test-suite/common.mk branches/szager-python-builtin/Examples/test-suite/cpp_basic.i branches/szager-python-builtin/Examples/test-suite/csharp/Makefile.in branches/szager-python-builtin/Examples/test-suite/csharp/li_std_map_runme.cs branches/szager-python-builtin/Examples/test-suite/csharp/nspace_runme.cs branches/szager-python-builtin/Examples/test-suite/d/Makefile.in branches/szager-python-builtin/Examples/test-suite/d/li_std_vector_runme.2.d branches/szager-python-builtin/Examples/test-suite/director_classes.i branches/szager-python-builtin/Examples/test-suite/errors/expected.log branches/szager-python-builtin/Examples/test-suite/errors/make.sh branches/szager-python-builtin/Examples/test-suite/funcptr_cpp.i branches/szager-python-builtin/Examples/test-suite/global_ns_arg.i branches/szager-python-builtin/Examples/test-suite/go/compactdefaultargs_runme.go branches/szager-python-builtin/Examples/test-suite/go/director_protected_runme.go branches/szager-python-builtin/Examples/test-suite/go/extend_placement_runme.go branches/szager-python-builtin/Examples/test-suite/go/friends_runme.go branches/szager-python-builtin/Examples/test-suite/go/global_ns_arg_runme.go branches/szager-python-builtin/Examples/test-suite/go/namespace_typemap_runme.go branches/szager-python-builtin/Examples/test-suite/go/overload_extend_runme.go branches/szager-python-builtin/Examples/test-suite/go/overload_extendc_runme.go branches/szager-python-builtin/Examples/test-suite/go/overload_simple_runme.go branches/szager-python-builtin/Examples/test-suite/go/overload_template_fast_runme.go branches/szager-python-builtin/Examples/test-suite/go/overload_template_runme.go branches/szager-python-builtin/Examples/test-suite/go/smart_pointer_overload_runme.go branches/szager-python-builtin/Examples/test-suite/go/template_default_arg_runme.go branches/szager-python-builtin/Examples/test-suite/go/template_ns_runme.go branches/szager-python-builtin/Examples/test-suite/go/using_composition_runme.go branches/szager-python-builtin/Examples/test-suite/go/using_extend_runme.go branches/szager-python-builtin/Examples/test-suite/go/using_inherit_runme.go branches/szager-python-builtin/Examples/test-suite/java/nspace_runme.java branches/szager-python-builtin/Examples/test-suite/li_std_stream.i branches/szager-python-builtin/Examples/test-suite/li_std_wstream.i branches/szager-python-builtin/Examples/test-suite/member_funcptr_galore.i branches/szager-python-builtin/Examples/test-suite/member_pointer.i branches/szager-python-builtin/Examples/test-suite/namespace_spaces.i branches/szager-python-builtin/Examples/test-suite/nested_class.i branches/szager-python-builtin/Examples/test-suite/nspace.i branches/szager-python-builtin/Examples/test-suite/nspace_extend.i branches/szager-python-builtin/Examples/test-suite/octave/exception_order_runme.m branches/szager-python-builtin/Examples/test-suite/octave/global_ns_arg_runme.m branches/szager-python-builtin/Examples/test-suite/overload_extend.i branches/szager-python-builtin/Examples/test-suite/php/Makefile.in branches/szager-python-builtin/Examples/test-suite/preproc.i branches/szager-python-builtin/Examples/test-suite/python/global_ns_arg_runme.py branches/szager-python-builtin/Examples/test-suite/r/unittest.R branches/szager-python-builtin/Examples/test-suite/restrict_cplusplus.i branches/szager-python-builtin/Examples/test-suite/smart_pointer_not.i branches/szager-python-builtin/Examples/test-suite/typedef_mptr.i branches/szager-python-builtin/Examples/test-suite/virtual_poly.i branches/szager-python-builtin/Lib/csharp/std_map.i branches/szager-python-builtin/Lib/d/boost_shared_ptr.i branches/szager-python-builtin/Lib/d/dclassgen.swg branches/szager-python-builtin/Lib/go/typemaps.i branches/szager-python-builtin/Lib/lua/typemaps.i branches/szager-python-builtin/Lib/ocaml/std_string.i branches/szager-python-builtin/Lib/ocaml/swigp4.ml.in branches/szager-python-builtin/Lib/ocaml/typemaps.i branches/szager-python-builtin/Lib/octave/octtypemaps.swg branches/szager-python-builtin/Lib/perl5/noembed.h branches/szager-python-builtin/Lib/perl5/reference.i branches/szager-python-builtin/Lib/php/director.swg branches/szager-python-builtin/Lib/php/php.swg branches/szager-python-builtin/Lib/php/phprun.swg branches/szager-python-builtin/Lib/php/typemaps.i branches/szager-python-builtin/Lib/python/director.swg branches/szager-python-builtin/Lib/python/pythonkw.swg branches/szager-python-builtin/Lib/ruby/timeval.i branches/szager-python-builtin/Lib/std/std_common.i branches/szager-python-builtin/Lib/typemaps/std_strings.swg branches/szager-python-builtin/Lib/typemaps/strings.swg branches/szager-python-builtin/Makefile.in branches/szager-python-builtin/README branches/szager-python-builtin/RELEASENOTES branches/szager-python-builtin/Source/CParse/parser.y branches/szager-python-builtin/Source/DOH/string.c branches/szager-python-builtin/Source/Include/swigwarn.h branches/szager-python-builtin/Source/Modules/allegrocl.cxx branches/szager-python-builtin/Source/Modules/allocate.cxx branches/szager-python-builtin/Source/Modules/cffi.cxx branches/szager-python-builtin/Source/Modules/chicken.cxx branches/szager-python-builtin/Source/Modules/clisp.cxx branches/szager-python-builtin/Source/Modules/csharp.cxx branches/szager-python-builtin/Source/Modules/d.cxx branches/szager-python-builtin/Source/Modules/emit.cxx branches/szager-python-builtin/Source/Modules/go.cxx branches/szager-python-builtin/Source/Modules/guile.cxx branches/szager-python-builtin/Source/Modules/java.cxx branches/szager-python-builtin/Source/Modules/lua.cxx branches/szager-python-builtin/Source/Modules/main.cxx branches/szager-python-builtin/Source/Modules/modula3.cxx branches/szager-python-builtin/Source/Modules/mzscheme.cxx branches/szager-python-builtin/Source/Modules/ocaml.cxx branches/szager-python-builtin/Source/Modules/octave.cxx branches/szager-python-builtin/Source/Modules/overload.cxx branches/szager-python-builtin/Source/Modules/perl5.cxx branches/szager-python-builtin/Source/Modules/php.cxx branches/szager-python-builtin/Source/Modules/pike.cxx branches/szager-python-builtin/Source/Modules/python.cxx branches/szager-python-builtin/Source/Modules/r.cxx branches/szager-python-builtin/Source/Modules/ruby.cxx branches/szager-python-builtin/Source/Modules/typepass.cxx branches/szager-python-builtin/Source/Modules/uffi.cxx branches/szager-python-builtin/Source/Preprocessor/cpp.c branches/szager-python-builtin/Source/Swig/cwrap.c branches/szager-python-builtin/Source/Swig/scanner.c branches/szager-python-builtin/Source/Swig/swig.h branches/szager-python-builtin/Source/Swig/symbol.c branches/szager-python-builtin/Source/Swig/typesys.c branches/szager-python-builtin/Tools/config/ax_path_generic.m4 branches/szager-python-builtin/Tools/mkrelease.py branches/szager-python-builtin/configure.in Added Paths: ----------- branches/szager-python-builtin/Examples/test-suite/csharp/rename_simple_runme.cs branches/szager-python-builtin/Examples/test-suite/d/nspace_extend_runme.1.d branches/szager-python-builtin/Examples/test-suite/d/nspace_extend_runme.2.d branches/szager-python-builtin/Examples/test-suite/d/nspace_runme.1.d branches/szager-python-builtin/Examples/test-suite/d/nspace_runme.2.d branches/szager-python-builtin/Examples/test-suite/default_arg_values.i branches/szager-python-builtin/Examples/test-suite/errors/cpp_overload_const.i branches/szager-python-builtin/Examples/test-suite/errors/cpp_recursive_typedef.i branches/szager-python-builtin/Examples/test-suite/errors/pp_macro_missing_expression.i branches/szager-python-builtin/Examples/test-suite/errors/pp_macro_unexpected_tokens.i branches/szager-python-builtin/Examples/test-suite/go/director_alternating_runme.go branches/szager-python-builtin/Examples/test-suite/go/rename_simple_runme.go branches/szager-python-builtin/Examples/test-suite/go/varargs_overload_runme.go branches/szager-python-builtin/Examples/test-suite/octave/preproc_constants_runme.m branches/szager-python-builtin/Examples/test-suite/overload_return_type.i branches/szager-python-builtin/Examples/test-suite/php/overload_return_type_runme.php branches/szager-python-builtin/Examples/test-suite/preproc_defined.i branches/szager-python-builtin/Examples/test-suite/preproc_include.i branches/szager-python-builtin/Examples/test-suite/preproc_include_a.h branches/szager-python-builtin/Examples/test-suite/preproc_include_b.h branches/szager-python-builtin/Examples/test-suite/preproc_include_c.h branches/szager-python-builtin/Examples/test-suite/preproc_include_d withspace.h branches/szager-python-builtin/Examples/test-suite/preproc_include_e withspace.h branches/szager-python-builtin/Examples/test-suite/preproc_include_f withspace.h branches/szager-python-builtin/Examples/test-suite/preproc_include_g.h branches/szager-python-builtin/Examples/test-suite/python/default_arg_values_runme.py branches/szager-python-builtin/Examples/test-suite/python/preproc_defined_runme.py branches/szager-python-builtin/Examples/test-suite/python/preproc_include_runme.py branches/szager-python-builtin/Examples/test-suite/r/rename_simple_runme.R branches/szager-python-builtin/Examples/test-suite/rename_simple.i branches/szager-python-builtin/Examples/test-suite/smart_pointer_template_const_overload.i branches/szager-python-builtin/Tools/config/ax_boost_base.m4 Property Changed: ---------------- branches/szager-python-builtin/ branches/szager-python-builtin/Examples/test-suite/csharp/special_variable_macros_runme.cs branches/szager-python-builtin/Examples/test-suite/d/ branches/szager-python-builtin/Examples/test-suite/errors/pp_macro_expansion_multiline.i branches/szager-python-builtin/Examples/test-suite/go/ branches/szager-python-builtin/Examples/test-suite/java/special_variable_macros_runme.java branches/szager-python-builtin/Examples/test-suite/li_reference.i branches/szager-python-builtin/Examples/test-suite/perl5/li_reference_runme.pl branches/szager-python-builtin/Examples/test-suite/python/ branches/szager-python-builtin/Examples/test-suite/python/special_variable_macros_runme.py branches/szager-python-builtin/Examples/test-suite/python/typemap_delete_runme.py branches/szager-python-builtin/Examples/test-suite/special_variable_macros.i branches/szager-python-builtin/Examples/test-suite/typemap_delete.i branches/szager-python-builtin/LICENSE-GPL branches/szager-python-builtin/LICENSE-UNIVERSITIES Property changes on: branches/szager-python-builtin ___________________________________________________________________ Modified: svn:mergeinfo - /branches/swig-2.0:11085-11086,11088-11089 /trunk:12332-12426 + /branches/swig-2.0:11085-11086,11088-11089 /trunk:12332-12551 Modified: branches/szager-python-builtin/ANNOUNCE =================================================================== --- branches/szager-python-builtin/ANNOUNCE 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/ANNOUNCE 2011-03-24 05:46:05 UTC (rev 12552) @@ -1,8 +1,8 @@ -*** ANNOUNCE: SWIG 2.0.2 (in progress) *** +*** ANNOUNCE: SWIG 2.0.3 (in progress) *** http://www.swig.org -We're pleased to announce SWIG-2.0.1, the latest SWIG release. +We're pleased to announce SWIG-2.0.3, the latest SWIG release. What is SWIG? ============= @@ -10,22 +10,22 @@ SWIG is a software development tool that reads C/C++ header files and generates the wrapper code needed to make C and C++ code accessible from other languages including Perl, Python, Tcl, Ruby, PHP, Java, -Scheme (Guile, MzScheme, CHICKEN), Ocaml, Lua, Pike, C#, Modula-3, Octave, R, -Common Lisp (CLISP, Allegro CL, CFFI, UFFI). SWIG can also export its parse -tree in the form of XML and Lisp s-expressions. Major applications of -SWIG include generation of scripting language extension modules, rapid -prototyping, testing, and user interface development for large C/C++ -systems. +Scheme (Guile, MzScheme, CHICKEN), D, Ocaml, Lua, Pike, C#, Modula-3, +Octave, R, Common Lisp (CLISP, Allegro CL, CFFI, UFFI). SWIG can also +export its parse tree in the form of XML and Lisp s-expressions. Major +applications of SWIG include generation of scripting language extension +modules, rapid prototyping, testing, and user interface development for +large C/C++ systems. Availability ============ The release is available for download on Sourceforge at - http://prdownloads.sourceforge.net/swig/swig-2.0.1.tar.gz + http://prdownloads.sourceforge.net/swig/swig-2.0.3.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-2.0.1.zip + http://prdownloads.sourceforge.net/swig/swigwin-2.0.3.zip Please report problems with this release to the swig-devel mailing list, details at http://www.swig.org/mail.html. Modified: branches/szager-python-builtin/CHANGES =================================================================== --- branches/szager-python-builtin/CHANGES 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/CHANGES 2011-03-24 05:46:05 UTC (rev 12552) @@ -3,6 +3,169 @@ See the CHANGES.current file for changes in the current version. See the RELEASENOTES file for a summary of changes in each release. +Version 2.0.2 (20 February 2011) +================================ + +2011-02-19: wsfulton + [PHP] Add missing INPUT, OUTPUT and INOUT typemaps in the typemaps.i library + for primitive reference types as well as signed char * and bool *. + +2011-02-19: olly + [PHP] Address bug in PHP on some platforms/architectures which + results in zend_error_noreturn() not being available using + SWIG_ZEND_ERROR_NORETURN which defaults to zend_error_noreturn but + can be overridden when building the module by passing + -DSWIG_ZEND_ERROR_NORETURN=zend_error to the compiler. This may + result in compiler warnings, but should at least allow a module + to be built on those platforms/architectures (SF#3166423). + +2011-02-18: wsfulton + Fix #3184549 - vararg functions and function overloading when using the -fastdispatch option. + +2011-02-18: olly + [PHP] An overloaded method which can return an object or a + primitive type no longer causes SWIG to segfault. Reported by Paul + Colby in SF#3168531. + +2011-02-18: olly + [PHP] Fix invalid erase during iteration of std::map in generated + director code. Reported by Cory Bennett in SF#3175820. + +2011-02-17: wsfulton + Preprocessing now warns if extra tokens appear after #else and #end. + +2011-02-16: wsfulton + Fix #1653092 Preprocessor does not error out when #elif is missing an expression. + This and other cases of missing preprocessor expressions now result in an error. + +2011-02-14: wsfulton + [Ocaml] Apply patch #3151788 from Joel Reymont. Brings Ocaml support up to date + (ver 3.11 and 3.12), including std::string. + +2011-02-13: wsfulton + [Ruby] Apply patch #3176274 from James Masters - typecheck typemap for time_t. + +2011-02-13: wsfulton + Apply patch #3171793 from szager - protected director methods failing when -fvirtual is used. + +2011-02-13: wsfulton + Fix #1927852 - #include directives don't preprocess the file passed to it. The fix is for + #include with -importall or -includeall, %include and %import, for example: + #define FILENAME "abc.h" + %include FILENAME + +2011-02-12: wsfulton + Fix #1940536, overactive preprocessor which was expanding defined(...) outside of #if and #elif + preprocessor directives. + +2011-02-05: wsfulton + [MzScheme] SF #2942899 Add user supplied documentation to help getting started with MzScheme. + Update chapter name to MzScheme/Racket accounting for the rename of MzScheme to Racket. + +2011-02-05: wsfulton + [C#] SF #3085906 - Possible fix running test-suite on Mac OSX. + +2011-02-05: wsfulton + SF #3173367 Better information during configure about Boost prerequisite for running + the test-suite. + +2011-02-05: wsfulton + SF #3127633 Fix infinite loop in recursive typedef resolution. + +2011-02-04: wsfulton + [R] SF #3168676 Fix %rename not working for member variables and methods. + +2011-02-04: wsfulton + [clisp] SF #3148200 Fix segfault parsing nested unions. + +2011-02-01: wsfulton + [C#] Directors - a call to a method being defined in the base class, not + overridden in a subclass, but again overridden in a class derived from + the first subclass was not being dispatched correctly to the most derived class. + See director_alternating.i for an example. + +2011-02-01: wsfulton + [C#, Java] Any 'using' statements in the protected section of a class were previously + ignored with director protected (dirprot) mode. + +2011-01-30: wsfulton + Fix overloading with const pointer reference (SWIGTYPE *const&) parameters for a + number of scripting languages. + +2011-01-17: wsfulton + New warning for smart pointers if only some of the classes in the inheritance + chain are marked as smart pointer, eg, %shared_ptr should be used for all classes + in an inheritance hierarchy, so this new warning highlights code where this is + not the case. + + example.i:12: Warning 520: Base class 'A' of 'B' is not similarly marked as a smart pointer. + example.i:16: Warning 520: Derived class 'C' of 'B' is not similarly marked as a smart pointer. + +2011-01-14: wsfulton + Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and + (char *STRING, int LENGTH). Documentation for this updated. Java patch from + Volker Grabsch. + +2011-01-11: iant + Require Go version 7077 or later. + +2010-12-30: klickverbot + [C#, D, Java] Check for collision of parameter names with target + language keywords when generating the director glue code. + + The situation in which the generated could would previously be + invalid is illustrated in the new 'director_keywords' test case. + +2010-12-23: wsfulton + [C#] Fix $csinput special variable not being expanded for csvarin typemaps + when used for global variables. Reported by Vadim Zeitlin. + +2010-12-14: wsfulton + Fix $basemangle expansion in array typemaps. For example if type is int *[3], + $basemangle expands to _p_int. + +2010-12-07: iant + Check that we are using a sufficiently new version of the + 6g or 8g Go compiler during configure time. If not, disable Go. + Minimum version is now 6707. + + *** POTENTIAL INCOMPATIBILITY *** + +2010-12-06: wsfulton + Fix #3127394 - use of network paths on Windows/MSys. + +2010-11-18: klickverbot + [D] Added the D language module. + +2010-11-12: vadz + Fix handling of multiple regex-using %renames attached to the same + declaration. For example, now + + %rename("%(regex/^Set(.*)/put\\1/)s") ""; + %rename("%(regex/^Get(.*)/get\\1/)s") ""; + + works as expected whereas before only the last anonymous rename was + taken into account. + +2010-10-17: drjoe + [R] Fix failure in overloaded functions which was breaking + QuantLib-SWIG + +2010-10-14: olly + [PHP] Allow compilation on non-conforming Microsoft C++ compilers + which don't accept: return function_returning_void(); + Reported by Frank Vanden Berghen on the SWIG mailing list. + +2010-10-12: wsfulton + Fix unary scope operator (::) (global scope) regression introduced in 2.0.0, reported by + Ben Walker. The mangled symbol names were incorrect, sometimes resulting in types being + incorrectly treated as opaque types. + + Also fixes #2958781 and some other type problems due to better typedef resolution, eg + std::vector<T *>::value_type didn't resolve to T * when it should have. The mangled type + was incorrectly SWIGTYPE_std__vectorT_Test_p_std__allocatorT_Test_p_t_t__value_type and now + it is correctly SWIGTYPE_p_Test. + Version 2.0.1 (4 October 2010) ============================== Modified: branches/szager-python-builtin/CHANGES.current =================================================================== --- branches/szager-python-builtin/CHANGES.current 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/CHANGES.current 2011-03-24 05:46:05 UTC (rev 12552) @@ -2,88 +2,55 @@ See the CHANGES file for changes in older releases. See the RELEASENOTES file for a summary of changes in each release. -Version 2.0.2 (in progress) +Version 2.0.3 (in progress) =========================== -2011-02-01: wsfulton - [C#] Directors - a call to a method being defined in the base class, not - overridden in a subclass, but again overridden in a class derived from - the first subclass was not being dispatched correctly to the most derived class. - See director_alternating.i for an example. +2011-03-21: vadz + [build] Allow setting PCRE_CFLAGS and PCRE_LIBS to override the values returned by + pcre-config, e.g. to allow using a static version of PCRE library. -2011-02-01: wsfulton - [C#, Java] Any 'using' statements in the protected section of a class were previously - ignored with director protected (dirprot) mode. +2011-03-17: wsfulton + [UTL] Add missing headers in generated STL wrappers to fix compilation with gcc-4.6. -2011-01-30: wsfulton - Fix overloading with const pointer reference (SWIGTYPE *const&) parameters for a - number of scripting languages. +2011-03-17: wsfulton + Fix regression introduced in swig-2.0.2 where filenames with spaces were not found + when used with %include and %import. Reported by Shane Liesegang. -2011-01-17: wsfulton - New warning for smart pointers if only some of the classes in the inheritance - chain are marked as smart pointer, eg, %shared_ptr should be used for all classes - in an inheritance hierarchy, so this new warning highlights code where this is - not the case. +2011-03-15: wsfulton + [UTL] Fix overloading when using const char[], problem reported by David Maxwell. + Similarly for char[ANY] and const char[ANY]. - example.i:12: Warning 520: Base class 'A' of 'B' is not similarly marked as a smart pointer. - example.i:16: Warning 520: Derived class 'C' of 'B' is not similarly marked as a smart pointer. +2011-03-15: wsfulton + [C#] Apply patch #3212624 fixing std::map Keys property. -2011-01-14: wsfulton - Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and - (char *STRING, int LENGTH). Documentation for this updated. Java patch from - Volker Grabsch. +2011-03-14: olly + [PHP] Fix handling of overloaded methods/functions where some + return void and others don't - whether this worked or not depended + on the order they were encountered in (SF#3208299). + +2011-03-13: klickverbot + [D] Extended support for C++ namespaces (nspace feature). -2011-01-11: iant - Require Go version 7077 or later. +2011-03-12: olly + [PHP] Fix sharing of type information between multiple SWIG-wrapped + modules (SF#3202463). -2010-12-30: klickverbot - [C#, D, Java] Check for collision of parameter names with target - language keywords when generating the director glue code. - - The situation in which the generated could would previously be - invalid is illustrated in the new 'director_keywords' test case. +2011-03-09: wsfulton + [Python] Fix SF #3194294 - corner case bug when 'NULL' is used as the default value + for a primitive type parameter in a method declaration. -2010-12-23: wsfulton - [C#] Fix $csinput special variable not being expanded for csvarin typemaps - when used for global variables. Reported by Vadim Zeitlin. +2011-03-07: olly + [PHP] Don't use zend_error_noreturn() for cases where the function + returns void - now this issue can only matter if you have a function + or method which is directed and returns non-void. -2010-12-14: wsfulton - Fix $basemangle expansion in array typemaps. For example if type is int *[3], - $basemangle expands to _p_int. +2011-03-06: olly + [PHP] Add casts to the typemaps for long long and unsigned long + long to avoid issues when they are used with shorter types via + %apply. -2010-12-07: iant - Check that we are using a sufficiently new version of the - 6g or 8g Go compiler during configure time. If not, disable Go. - Minimum version is now 6707. +2011-03-02: wsfulton + Templated smart pointers overloaded with both const and non const operator-> generated uncompilable + code when the pointee was a class with either public member variables or static methods. + Regression in 2.0.x reported as working in 1.3.40 by xantares on swig-user mailing list. - *** POTENTIAL INCOMPATIBILITY *** - -2010-12-06: wsfulton - Fix #3127394 - use of network paths on Windows/MSys. - -2010-11-18: klickverbot - [D] Added the D language module. - -2010-11-12: vadz - Fix handling of multiple regex-using %renames attached to the same - declaration. For example, now - - %rename("%(regex/^Set(.*)/put\\1/)s") ""; - %rename("%(regex/^Get(.*)/get\\1/)s") ""; - - works as expected whereas before only the last anonymous rename was - taken into account. - -2010-10-17: drjoe - [R] Fix failure in overloaded functions which was breaking - QuantLib-SWIG - -2010-10-14: olly - [PHP] Allow compilation on non-conforming Microsoft C++ compilers - which don't accept: return function_returning_void(); - Reported by Frank Vanden Berghen on the SWIG mailing list. - -2010-10-12: wsfulton - Fix unary scope operator (::) (global scope) regression introduced in 2.0.0, reported by - Ben Walker. The mangled symbol names were incorrect, sometimes resulting in types being - incorrectly treated as opaque types. Modified: branches/szager-python-builtin/Doc/Manual/Contents.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/Contents.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/Contents.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -900,6 +900,7 @@ <li><a href="Java.html#Java_simple_pointers">Simple pointers</a> <li><a href="Java.html#Java_c_arrays">Wrapping C arrays with Java arrays</a> <li><a href="Java.html#Java_unbounded_c_arrays">Unbounded C Arrays</a> +<li><a href="Java.html#Java_binary_char">Binary data vs Strings</a> <li><a href="Java.html#Java_heap_allocations">Overriding new and delete to allocate from Java heap</a> </ul> <li><a href="Java.html#Java_typemaps">Java typemaps</a> @@ -1063,12 +1064,14 @@ </div> <!-- INDEX --> -<h3><a href="Mzscheme.html#Mzscheme">27 SWIG and MzScheme</a></h3> +<h3><a href="Mzscheme.html#Mzscheme">27 SWIG and MzScheme/Racket</a></h3> <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="Mzscheme.html#MzScheme_nn2">Creating native MzScheme structures</a> +<li><a href="Mzscheme.html#MzScheme_nn2">Creating native structures</a> +<li><a href="Mzscheme.html#MzScheme_simple">Simple example</a> +<li><a href="Mzscheme.html#MzScheme_external_docs">External documentation</a> </ul> </div> <!-- INDEX --> Modified: branches/szager-python-builtin/Doc/Manual/D.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/D.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/D.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -28,6 +28,7 @@ <li><a href="#D_directors">D Directors</a> <li><a href="#D_other_features">Other features</a> <ul> +<li><a href="#D_nspace">Extended namespace support (<tt>nspace</tt>)</a></li> <li><a href="#D_native_pointer_support">Native pointer support</a> <li><a href="#D_operator_overloading">Operator overloading</a> <li><a href="#D_test_suite">Running the test-suite</a> @@ -187,6 +188,12 @@ <p>There are two other variants available, <tt>$&dclassname</tt> and <tt>$*dclassname</tt>. The former adds a level of indirection, while the latter removes one. For instance, when wrapping <tt>Foo **</tt>, <tt>$*dclassname</tt> would be replaced by the proxy class name corresponding to <tt>Foo *</tt>.</p> </dd> + <dt><tt>$dclazzname</tt> (C#: <tt>$csclazzname</tt>)</dt> + <dd> + <p>This special variable expands the fully qualified C++ class into the package name, if used by the <a href="SWIGPlus.html#SWIGPlus_nspace"><tt>nspace</tt> feature</a>, and the proxy class name, mangled for use as a function name. For example, <tt>Namespace1::Namespace2::Klass</tt> is expanded into <tt>Namespace1_Namespace2_Klass_</tt>.</p> + <p>This special variable might be useful for calling certain functions in the wrapper layer (e.g. upcast wrappers) which are mangled like this.</p> + </dd> + <dt><tt>$null</tt></dt> <dd><p>In code inserted into the generated C/C++ wrapper functions, this variable is replaced by either <tt>0</tt> or nothing at all, depending on whether the function has a return value or not. It can be used to bail out early e.g. in case of errors (<tt>return $null;</tt>).</p></dd> @@ -249,7 +256,7 @@ <p>This macro is only valid inside the <tt><a href="D.html#D_class_code_typemaps">dconstructor</a></tt> typemap and contains the value of the <tt>dconstructor</tt> typemap attribute if the currently wrapped class has directors enabled.</p> <p>This is how the default <tt>dconstructor</tt> typemap looks like (you usually do not want to specify a custom one):</p> <div class="code"><pre> -%typemap(dconstructor, excode=SWIGEXCODE, +%typemap(dconstructor, excode=SWIGEXCODE, directorconnect="\n swigDirectorConnect();") SWIGTYPE { this($imcall, true);$excode$directorconnect } @@ -331,7 +338,7 @@ <dd><p>Additional code to be emitted to the imports section of the intermediary D module (the <a href="D.html#D_importtype">$importtype</a> macro can be used here). You probably want to use this in conjunction with the <tt>imdmodulecode</tt> pragma.</p></dd> <dt><tt>%pragma(d) proxydmodulecode</tt></dt> - <dd><p>Just like <tt>proxydmodulecode</tt>, the argument is copied to the proxy D module (if SWIG is in <a href="D.html#D_splitproxy">split proxy mode</a>, it is emitted to the main proxy D module only).</p></dd> + <dd><p>Just like <tt>proxydmodulecode</tt>, the argument is copied to the proxy D module (if SWIG is in <a href="D.html#D_splitproxy">split proxy mode</a> and/or the <tt>nspace</tt> feature is used, it is emitted to the main proxy D module only).</p></dd> <dt><tt>%pragma(d) globalproxyimports</tt></dt> <dd> @@ -379,12 +386,15 @@ <H2><a name="D_other_features"></a>20.8 Other features</H2> -<p>The <a href="SWIGPlus.html#SWIGPlus_nspace"><tt>nspace</tt></a> feature of SWIG is not yet supported for D - all class modules are written to the same package, regardless of which C++ namespace they are in.</p> +<H3><a name="D_nspace"></a>20.8.1 Extended namespace support (<tt>nspace</tt>)</H3> -<H3><a name="D_native_pointer_support"></a>20.8.1 Native pointer support</H3> +<p>By default, SWIG flattens all C++ namespaces into a single target language namespace, but as for Java and C#, the <a href="SWIGPlus.html#SWIGPlus_nspace"><tt>nspace</tt></a> feature is supported for D. If it is active, C++ namespaces are mapped to D packages/modules. Note, however, that like for the other languages, <em>free</em> variables and functions are not supported yet; currently, they are all allows written to the main proxy D module.</p> +<H3><a name="D_native_pointer_support"></a>20.8.2 Native pointer support</H3> + + <p>Contrary to many of the scripting languages supported by SWIG, D fully supports C-style pointers. The D module thus includes a custom mechanism to wrap C pointers directly as D pointers where applicable, that is, if the type that is pointed to is represented the same in C and D (on the bit-level), dubbed a »primtive type« below.</p> <p>Central to this custom pointer handling scheme are two typemap attributes: the <tt>cprimitive</tt> attribute on the <tt>dtype</tt> typemap and the <tt>nativepointer</tt> attribute on all the typemaps which influence the D side of the code (<tt>dtype</tt>, <tt>din</tt>, <tt>dout</tt>, ...). When a D typemap is looked up, the following happens behind the scenes:</p> @@ -394,7 +404,7 @@ <p>To determine if a type should be considered primitive, the <tt>cprimitive</tt> attribute on its <tt>dtype</tt> attribute is used. For example, the <tt>dtype</tt> typemap for <tt>float</tt> has <tt>cprimitive="1"</tt>, so the code from the <tt>nativepointer</tt> attribute is taken into account e.g. for <tt>float **</tt> or the function pointer <tt>float (*)(float *)</tt>.</p> -<H3><a name="D_operator_overloading"></a>20.8.2 Operator overloading</H3> +<H3><a name="D_operator_overloading"></a>20.8.3 Operator overloading</H3> <p>The D module comes with basic operator overloading support for both D1 and D2. There are, however, a few limitations arising from conceptual differences between C++ and D:</p> @@ -406,7 +416,7 @@ <p>There are also some cases where the operators can be translated to D, but the differences in the implementation details are big enough that a rather involved scheme would be required for automatic wrapping them, which has not been implemented yet. This affects, for example, the array subscript operator, <tt>[]</tt>, in combination with assignments - while <tt>operator []</tt> in C++ simply returns a reference which is then written to, D resorts to a separate <tt>opIndexAssign</tt> method -, or implicit casting (which was introduced in D2 via <tt>alias this</tt>). Despite the lack of automatic support, manually handling these cases should be perfectly possible.</p> -<H3><a name="D_test_suite"></a>20.8.3 Running the test-suite</H3> +<H3><a name="D_test_suite"></a>20.8.4 Running the test-suite</H3> <p>As with any other language, the SWIG test-suite can be built for D using the <tt>*-d-test-suite</tt> targets of the top-level Makefile. By default, D1 is targeted, to build it with D2, use the optional <tt>D_VERSION</tt> variable, e.g. <tt>make check-d-test-suite D_VERSION=2</tt>.</p> Modified: branches/szager-python-builtin/Doc/Manual/Java.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/Java.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/Java.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -101,6 +101,7 @@ <li><a href="#Java_simple_pointers">Simple pointers</a> <li><a href="#Java_c_arrays">Wrapping C arrays with Java arrays</a> <li><a href="#Java_unbounded_c_arrays">Unbounded C Arrays</a> +<li><a href="#Java_binary_char">Binary data vs Strings</a> <li><a href="#Java_heap_allocations">Overriding new and delete to allocate from Java heap</a> </ul> <li><a href="#Java_typemaps">Java typemaps</a> @@ -4401,8 +4402,9 @@ package binary data, etc. </p> -<H3><a name="Java_binary_char"></a>Binary data vs Strings</H3> +<H3><a name="Java_binary_char"></a>23.8.5 Binary data vs Strings</H3> + <p> By default SWIG handles <tt>char *</tt> as a string but there is a handy multi-argument typemap available as mentioned in <a href="Library.html#Library_nn10">Passing binary data</a>. The following simple example demonstrates using a byte array instead of passing the default string type and length to the wrapped function. @@ -4444,7 +4446,7 @@ </pre></div> -<H3><a name="Java_heap_allocations"></a>23.8.5 Overriding new and delete to allocate from Java heap</H3> +<H3><a name="Java_heap_allocations"></a>23.8.6 Overriding new and delete to allocate from Java heap</H3> <p> Modified: branches/szager-python-builtin/Doc/Manual/Mzscheme.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/Mzscheme.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/Mzscheme.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -2,17 +2,19 @@ <!-- Hand-written HTML --> <html> <head> -<title>SWIG and MzScheme</title> +<title>SWIG and MzScheme/Racket</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body bgcolor="#ffffff"> -<H1><a name="Mzscheme"></a>27 SWIG and MzScheme</H1> +<H1><a name="Mzscheme"></a>27 SWIG and MzScheme/Racket</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="#MzScheme_nn2">Creating native MzScheme structures</a> +<li><a href="#MzScheme_nn2">Creating native structures</a> +<li><a href="#MzScheme_simple">Simple example</a> +<li><a href="#MzScheme_external_docs">External documentation</a> </ul> </div> <!-- INDEX --> @@ -20,9 +22,9 @@ <p> -This section contains information on SWIG's support of MzScheme. +This section contains information on SWIG's support of Racket, formally known as MzScheme. -<H2><a name="MzScheme_nn2"></a>27.1 Creating native MzScheme structures</H2> +<H2><a name="MzScheme_nn2"></a>27.1 Creating native structures</H2> <p> @@ -63,9 +65,117 @@ </pre> </div> +<H2><a name="MzScheme_simple"></a>27.2 Simple example</H2> + + <p> -That's pretty much it. It works with nested structs as well. +A few examples are available in the Examples/mzscheme directory. +The code and log of a session using SWIG below should help getting started. </p> +<p> +C header file: +</p> + +<div class="code"> +<pre> +// example.h +int fact(int n); +</pre> +</div> + +<p> +C source code: +</p> + +<div class="code"> +<pre> +// File: example.c +#include "example.h" + +int fact(int n) { + if (n < 0) { /* This should probably return an error, but this is simpler */ + return 0; + } + if (n == 0) { + return 1; + } + else { + /* testing for overflow would be a good idea here */ + return n * fact(n-1); + } +} +</pre> +</div> + +<p> +SWIG interface file: +</p> + +<div class="code"> +<pre> +/* File: example.i */ +%module example + +%{ +#include "example.h" +%} + +int fact(int n); +</pre> +</div> + +<p> +The session below using the above files is on an OS X machine, but the points to be made are more general. On OS X, libtool is the tool which creates libraries, which are named .dylib, rather than .so on other unixes, or .dll on Windows. +</p> + +<div class="shell"> +<pre> +% swig -mzscheme -declaremodule example.i +% gcc -c -m32 -o example.o example.c # force 32-bit object file (mzscheme is 32-bit only) +% libtool -dynamic -o libexample.dylib example.o # make it into a library +% ls # what've we got so far? +example.c example.o +example.h example_wrap.c +example.i libexample.dylib* +% mzc --cgc --cc example_wrap.c # compile the wrapping code +% LDFLAGS="-L. -lexample" mzc --ld example_wrap.dylib example_wrap.o # ...and link it +% mzscheme -e '(path->string (build-path "compiled" "native" (system-library-subpath)))' +"compiled/native/i386-macosx/3m" +% mkdir -p compiled/native/i386-macosx/3m # move the extension library to a magic place +% mv example_wrap.dylib compiled/native/i386-macosx/3m/example_ss.dylib +% mzscheme +Welcome to MzScheme v4.2.4 [3m], Copyright (c) 2004-2010 PLT Scheme Inc. +> (require "example.ss") +> (fact 5) +120 +> ^D +% echo 'It works!' +</pre> +</div> + + +<p> +Some points of interest: +</p> +<ul> + <li> This is on a 64-bit machine, so we have to include the -m32 option when building the object file + <li> If you want to declare a scheme module (and you probably do), it's important that you include the -declaremodule option to swig (if you miss this out, it'll appear to work, but fail later). + <li> Use mzc to compile and then link the wrapped code. You'll probably need to adjust the link flags to refer to the library you're wrapping (you can either do this with an LDFLAGS declaration, as here, or with multiple ++ldf options to mzc). + <li> Create the directory with path (build-path "compiled" "native" (system-library-subpath)) and move the freshly-generated .dylib to there, changing its name to module-name_ss.dylib. After that, you can REQUIRE the new module with (require "module-name.ss"). + <li> The above requests mzc to create an extension using the CGC garbage-collector. The alternative -- the 3m collector -- has generally better performance, but work is still required for SWIG to emit code which is compatible with it. +</ul> + +<H2><a name="MzScheme_external_docs"></a>27.3 External documentation</H2> + + +<p> +See the <a href="http://docs.racket-lang.org/inside/index.html">C API</a> for more description of using the mechanism for adding extensions. The main documentation is <a href="http://docs.racket-lang.org/">here</a>. +</p> + +<p> +Tip: mzc's --vv option is very useful for debugging the inevitable library problems you'll encounter. +</p> + </body> </html> Modified: branches/szager-python-builtin/Doc/Manual/SWIG.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/SWIG.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/SWIG.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -2236,7 +2236,8 @@ And now, a final note about function pointer support. Although SWIG does not normally allow callback functions to be written in the target language, this can be accomplished with the use of typemaps and other advanced SWIG features. -This is described in a later chapter. +See the <a href="Typemaps.html#Typemaps">Typemaps chapter</a> for more about typemaps +and individual target language chapters for more on callbacks and the 'director' feature. </p> <H2><a name="SWIG_nn31"></a>5.5 Structures and unions</H2> Modified: branches/szager-python-builtin/Doc/Manual/Sections.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/Sections.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/Sections.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-2.0 Documentation</H1> -Last update : SWIG-2.0.2 (in progress) +Last update : SWIG-2.0.3 (in progress) <H2>Sections</H2> Modified: branches/szager-python-builtin/Doc/Manual/Warnings.html =================================================================== --- branches/szager-python-builtin/Doc/Manual/Warnings.html 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Doc/Manual/Warnings.html 2011-03-24 05:46:05 UTC (rev 12552) @@ -381,8 +381,12 @@ <ul> -<li>201. Unable to find 'filename'. -<li>202. Could not evaluate 'expr'. +<li>201. Unable to find <em>filename</em>. +<li>202. Could not evaluate expression <em>expr</em>. +<li>203. Both includeall and importall are defined: using includeall. +<li>204. CPP #warning, "<em>warning</em>". +<li>205. CPP #error, "<em>error</em>". +<li>206. Unexpected tokens after #<em>directive</em> directive. </ul> <H3><a name="Warnings_nn12"></a>14.9.3 C/C++ Parser (300-399)</H3> Modified: branches/szager-python-builtin/Examples/Makefile.in =================================================================== --- branches/szager-python-builtin/Examples/Makefile.in 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/Makefile.in 2011-03-24 05:46:05 UTC (rev 12552) @@ -632,7 +632,7 @@ $(OCAMLCORE) $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH) cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c) - $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ + $(OCC) -cc '$(CXX) -Wno-write-strings' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS) $(OCC) -g -c $(INTERFACE:%.i=%.mli) $(OCC) -g -c $(INTERFACE:%.i=%.ml) @@ -643,13 +643,13 @@ $(INTERFACE:%.i=%.cmo) \ $(PROGFILE:%.ml=%.cmo) \ $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \ - -cclib "$(LIBS)" -cc '$(CXX)' + -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings' ocaml_static_cpp_toplevel: $(SRCS) $(OCAMLCORE) $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH) cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c) - $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ + $(OCC) -cc '$(CXX) -Wno-write-strings' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS) $(OCC) -g -c $(INTERFACE:%.i=%.mli) $(OCC) -g -c $(INTERFACE:%.i=%.ml) @@ -657,17 +657,17 @@ $(OCC) $(OCAMLPP) -c $(PROGFILE) $(NOLINK) || $(OCAMLMKTOP) \ swig.cmo \ - -I $(OCAMLP4WHERE) camlp4o.cma swigp4.cmo \ + -I $(OCAMLP4WHERE) dynlink.cma camlp4o.cma swigp4.cmo \ -g -ccopt -g -cclib -g -custom -o $(TARGET)_top \ $(INTERFACE:%.i=%.cmo) \ $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \ - -cclib "$(LIBS)" -cc '$(CXX)' + -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings' ocaml_dynamic_cpp: $(SRCS) $(OCAMLCORE) $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH) cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c) - $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ + $(OCC) -cc '$(CXX) -Wno-write-strings' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \ $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS) -ccopt -fPIC $(CXXSHARED) $(CFLAGS) -o $(INTERFACE:%.i=%@SO@) \ $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \ @@ -684,7 +684,7 @@ $(OCC) -cclib -export-dynamic -g -ccopt -g -cclib -g -custom \ -o $(TARGET) \ -package dl -linkpkg \ - $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX)' + $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX) -Wno-write-strings' ocaml_clean: rm -f *_wrap* *~ .~* *.cmo *.cmi $(MLFILE) $(MLFILE)i swig.mli swig.cmi swig.ml swig.cmo swigp4.ml swigp4.cmo @@ -781,7 +781,7 @@ PHPSCRIPT ?= runme.php php_run: - env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHPSCRIPT) + $(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHPSCRIPT) # ----------------------------------------------------------------- # Cleaning the PHP examples Modified: branches/szager-python-builtin/Examples/go/pointer/runme.go =================================================================== --- branches/szager-python-builtin/Examples/go/pointer/runme.go 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/go/pointer/runme.go 2011-03-24 05:46:05 UTC (rev 12552) @@ -32,7 +32,7 @@ // Now try the typemap library // Now it is no longer necessary to manufacture pointers. - // Instead we use a single element array which in Java is modifiable. + // Instead we use a single element slice which in Go is modifiable. fmt.Println("Trying the typemap library") r := []int{0} Modified: branches/szager-python-builtin/Examples/ocaml/argout_ref/example.i =================================================================== --- branches/szager-python-builtin/Examples/ocaml/argout_ref/example.i 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/ocaml/argout_ref/example.i 2011-03-24 05:46:05 UTC (rev 12552) @@ -1,4 +1,8 @@ /* File : example.i */ %module example +%{ extern "C" void factor(int &x, int &y); +%} + +extern "C" void factor(int &x, int &y); Modified: branches/szager-python-builtin/Examples/ocaml/shapes/example.c =================================================================== --- branches/szager-python-builtin/Examples/ocaml/shapes/example.c 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/ocaml/shapes/example.c 2011-03-24 05:46:05 UTC (rev 12552) @@ -46,3 +46,5 @@ } double volume::depth( double x, double y ) { return 0.0; } + +volume::~volume() { } Modified: branches/szager-python-builtin/Examples/ocaml/shapes/example.h =================================================================== --- branches/szager-python-builtin/Examples/ocaml/shapes/example.h 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/ocaml/shapes/example.h 2011-03-24 05:46:05 UTC (rev 12552) @@ -9,7 +9,8 @@ class volume { public: - virtual double depth( double x, double y ); + virtual double depth( double x, double y ); + virtual ~volume(); }; extern void draw_shape_coverage( shape *s, int div_x, int div_y ); Modified: branches/szager-python-builtin/Examples/ocaml/std_string/README =================================================================== --- branches/szager-python-builtin/Examples/ocaml/std_string/README 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/ocaml/std_string/README 2011-03-24 05:46:05 UTC (rev 12552) @@ -1,3 +1,9 @@ +--- New --- + +It's not possible to access std::(w)string at the moment as it breaks other string examples. + +--- Old --- + This example shows how to use both std::string and std::wstring in Ocaml, and also demonstrates that one might use this to make a locale-obedient Ocaml program. Modified: branches/szager-python-builtin/Examples/ocaml/strings_test/example.h =================================================================== --- branches/szager-python-builtin/Examples/ocaml/strings_test/example.h 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/ocaml/strings_test/example.h 2011-03-24 05:46:05 UTC (rev 12552) @@ -1,14 +1,18 @@ /* -*- mode: c++ -*- */ /* File : example.h -- Tests all string typemaps */ +#include <sys/time.h> +#include <time.h> + void takes_std_string( std::string in ) { cout << "takes_std_string( \"" << in << "\" );" << endl; } std::string gives_std_string() { - time_t t; - - return std::string( asctime( localtime( &t ) ) ); + struct timeval tv; + + gettimeofday(&tv, NULL); + return std::string( asctime( localtime( &tv.tv_sec ) ) ); } void takes_char_ptr( char *p ) { @@ -24,10 +28,10 @@ inout.insert( inout.end(), ']' ); } -void takes_and_gives_char_ptr( char *&ptr ) { - char *pout = strchr( ptr, '.' ); - if( pout ) ptr = pout + 1; - else ptr = "foo"; +void takes_and_gives_char_ptr( char *&inout ) { + char *pout = strchr( inout, '.' ); + if( pout ) inout = pout + 1; + else inout = "foo"; } /* Modified: branches/szager-python-builtin/Examples/test-suite/common.mk =================================================================== --- branches/szager-python-builtin/Examples/test-suite/common.mk 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/test-suite/common.mk 2011-03-24 05:46:05 UTC (rev 12552) @@ -148,6 +148,7 @@ cpp_static \ cpp_typedef \ default_args \ + default_arg_values \ default_constructor \ defvalue_constructor \ derived_byvalue \ @@ -268,6 +269,7 @@ overload_copy \ overload_extend \ overload_rename \ + overload_return_type \ overload_simple \ overload_subtype \ overload_template \ @@ -287,6 +289,7 @@ rename3 \ rename4 \ rename_scope \ + rename_simple \ rename_strip_encoder \ rename_pcre_encoder \ rename_pcre_enum \ @@ -311,6 +314,7 @@ smart_pointer_rename \ smart_pointer_simple \ smart_pointer_static \ + smart_pointer_template_const_overload \ smart_pointer_templatemethods \ smart_pointer_templatevariables \ smart_pointer_typedef \ @@ -428,6 +432,7 @@ valuewrapper_const \ valuewrapper_opaque \ varargs \ + varargs_overload \ virtual_destructor \ virtual_poly \ voidtest \ @@ -492,6 +497,8 @@ overload_extendc \ preproc \ preproc_constants_c \ + preproc_defined \ + preproc_include \ preproc_line_file \ ret_by_value \ simple_array \ @@ -516,6 +523,7 @@ # Custom tests - tests with additional commandline options wallkw.cpptest: SWIGOPT += -Wallkw +preproc_include.ctest: SWIGOPT += -includeall NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \ Modified: branches/szager-python-builtin/Examples/test-suite/cpp_basic.i =================================================================== --- branches/szager-python-builtin/Examples/test-suite/cpp_basic.i 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/test-suite/cpp_basic.i 2011-03-24 05:46:05 UTC (rev 12552) @@ -8,6 +8,12 @@ %newobject Bar::testFoo; +%{ +#if defined(__SUNPRO_CC) +#pragma error_messages (off, wbadasg) /* Assigning extern "C" ... */ +#endif +%} + %inline %{ class Foo { Modified: branches/szager-python-builtin/Examples/test-suite/csharp/Makefile.in =================================================================== --- branches/szager-python-builtin/Examples/test-suite/csharp/Makefile.in 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/test-suite/csharp/Makefile.in 2011-03-24 05:46:05 UTC (rev 12552) @@ -64,12 +64,13 @@ # Compiles C# files then runs the testcase. A testcase is only run if # a file is found which has _runme.cs appended after the testcase name. # Note C# uses LD_LIBRARY_PATH under Unix, PATH under Cygwin/Windows and SHLIB_PATH on HPUX. +# DYLD_FALLBACK_LIBRARY_PATH is cleared for MacOSX. run_testcase = \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ $(MAKE) -f $*/$(top_builddir)/$(EXAMPLES)/Makefile \ CSHARPFLAGS='-nologo $(CSHARPFLAGSSPECIAL) -out:$*_runme.exe' \ CSHARPSRCS='`$(CSHARPCYGPATH_W) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX)` `find $* -name "*.cs" -exec $(CSHARPCYGPATH_W) "{}" \+`' csharp_compile && \ - env LD_LIBRARY_PATH="$*:$$LD_LIBRARY_PATH" PATH="$*:$$PATH" SHLIB_PATH="$*:$$SHLIB_PATH" $(RUNTOOL) $(INTERPRETER) $*_runme.exe; \ + env LD_LIBRARY_PATH="$*:$$LD_LIBRARY_PATH" PATH="$*:$$PATH" SHLIB_PATH="$*:$$SHLIB_PATH" DYLD_FALLBACK_LIBRARY_PATH= $(RUNTOOL) $(INTERPRETER) $*_runme.exe; \ else \ cd $* && \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \ Modified: branches/szager-python-builtin/Examples/test-suite/csharp/li_std_map_runme.cs =================================================================== --- branches/szager-python-builtin/Examples/test-suite/csharp/li_std_map_runme.cs 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/test-suite/csharp/li_std_map_runme.cs 2011-03-24 05:46:05 UTC (rev 12552) @@ -68,6 +68,7 @@ { IList<string> keys = new List<string>(simap.Keys); IList<int> values = new List<int>(simap.Values); + Dictionary<string, int> check = new Dictionary<string, int>(); if (keys.Count != collectionSize) throw new Exception("Keys count test failed"); @@ -78,7 +79,14 @@ { if (simap[keys[i]] != values[i]) throw new Exception("Keys and values test failed for index " + i); + check.Add(keys[i], values[i]); } + + for (int i = 0; i < collectionSize; i++) + { + if (!check.ContainsKey(i.ToString())) + throw new Exception("Keys and Values ContainsKey test " + i + " failed"); + } } // Add and Remove test Modified: branches/szager-python-builtin/Examples/test-suite/csharp/nspace_runme.cs =================================================================== --- branches/szager-python-builtin/Examples/test-suite/csharp/nspace_runme.cs 2011-03-23 15:39:00 UTC (rev 12551) +++ branches/szager-python-builtin/Examples/test-suite/csharp/nspace_runme.cs 2011-03-24 05:46:05 UTC (rev 12552) @@ -2,7 +2,7 @@ public class runme { - static void Main() + static void Main() { // constructors and destructors nspaceNamespace.Outer.Inner1.Color color1 = new nspaceNamespace.Outer.Inner1.Color(); @@ -62,7 +62,7 @@ throw new ApplicationException("Transmission2 wrong"); // turn feature off / ignoring - nspaceNamespace.Outer.nspace ns = new nspaceNamespace.Outer.nspace(); + nspaceNamespace.Outer.namespce ns = new nspaceNamespace.Outer.namespce(); ns.Dispose(); nspaceNamespace.NoNSpacePlease nons = new nspaceNamespace.NoNSpacePlease(); nons.Dispose(); Copied: branches/szager-python-builtin/Examples/test-suite/csharp/rename_simple_runme.cs (from rev 12551, trunk/Examples/test-suite/csharp/rename_simple_runme.cs) =================================================================== --- branches/szager-python-builtin/Examples/test-suite/csharp/rename_simple_runme.cs (rev 0) +++ branches/szager-python-builtin/Examples/test-suite/csharp/rename_simple_runme.cs 2011-03-24 05:46:05 UTC (rev 12552) @@ -0,0 +1,30 @@ + +using System; +using rename_simpleNamespace; + +public class rename_simple_runme { + + public static void Main() { + NewStruct s = new NewStruct(); + check(111, s.NewInstanceVariable, "NewInstanceVariable"); + check(222, s.NewInstanceMethod(), "NewInstanceMethod"); + check(333, NewStruct.NewStaticMethod(), "NewStaticMethod"); + check(444, NewStruct.NewStaticVariable, "NewStaticVariable"); + check(555, rename_simple.NewFunction(), "NewFunction"); + check(666, rename_simple.NewGlobalVariable, "NewGlobalVariable"); + + s.NewInstanceVariable = 1111; + NewStruct.NewStaticVariable = 4444; + rename_simple.NewGlobalVariable = 6666; + + check(1111, s.NewInstanceVariable, "NewInstanceVariable"); + check(4444, NewStruct.NewStaticVariable, "NewStaticVariable"); + check(6666, rename_simple.NewGlobalVariable, "NewGlobalVariable"); + } + + public static void check(int expected, int actual, string msg) { + if (expected != actual) + throw new Exception("Failed: Expected: " + expected + " actual: " + actual + " " + msg); + } +} + Property changes on: branches/szager-python-builtin/Examples/test-suite/csharp/special_variable_macros_runme.cs ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs:12332-12426 + /trunk/Examples/test-suite/csharp/special_variable_macros_runme.cs:12332-12551 Property changes on: branches/szager-python-builtin/Examples/test-suite/d ____________________________________________________... [truncated message content] |