PageRenderTime 44ms CodeModel.GetById 32ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/rel-1-3-25/SWIG/CHANGES.current

#
Unknown | 595 lines | 450 code | 145 blank | 0 comment | 0 complexity | 2263865ce65a81e5eba208c5883bc0ab MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1Version 1.3.25 (June 11, 2005)
  2==============================
  3
  406/11/2006: mkoeppe
  5	    [Guile] Fix handling of anonymous-enum variables.
  6
  706/10/2005: mkoeppe
  8	    [Guile] Fix for function arguments that are passed by
  9	    copy-of-value.  Fix for global "const char *" variables.
 10	    Fix testcases arrays_dimensionless, arrays_global.
 11
 1206/08/2005: wsfulton
 13            Fix for when a base class defines a symbol as a member variable and a derived class defines
 14            the same symbol as a member method.
 15
 1606/08/2005: wsfulton
 17            [C#] More fixes for virtual/new/override modifiers - when a method has protected access 
 18            in base and public access in derived class.
 19
 2006/02/2005: wsfulton
 21            Fix #1066363 - Follow convention of release tarball name matching directory name.
 22
 2306/02/2005: wsfulton
 24            [C#, Java] Fix #1211353 - typesafe enums (and Java proper enums) wrappers when enum value
 25            is negative.
 26
 2705/27/2005: wsfulton
 28            Modernised and tidied up Windows macros --> SWIGEXPORT, SWIGSTDCALL. They can be overridden
 29            by users via -D compiler directives if need be.
 30
 3105/26/2005: wsfulton
 32            %csmethodmodifiers can be applied to variables as well as methods now.
 33
 34            In addition to the default 'public' modifier that SWIG generates, %csmethodmodifiers will also
 35            replace the virtual/new/override modifiers that SWIG thinks is appropriate. This feature is
 36            useful for some obscure cases where SWIG might get the modifiers incorrect, for example
 37            with multiple inheritance and overriding a method in the base class.
 38
 39            *** POTENTIAL INCOMPATIBILITY FOR C# MODULE ***
 40
 4105/25/2005: wsfulton
 42            Added missing constructors to std::pair wrappers (std_pair.i) for all languages.
 43
 4405/25/2005: wsfulton
 45            [C#] Added std::pair wrappers in std_pair.i
 46
 4705/25/2005: wsfulton
 48            [C#] The C# 'new' and 'override' modifiers will be generated when a C++ class inherits methods
 49            via a C++ 'using' declaration.
 50
 5105/25/2005: wsfulton
 52            Fix for exception specifications previously being ignored in classes that inherited methods
 53            from 'using' declarations, eg calls to Derived::bar below will convert C++ exceptions into
 54            a target language exception/error, like it always has done for Base::Bar.
 55
 56            class Base {
 57              virtual bar() throw (std::string);
 58            };
 59            class Derived : public Base {
 60              using Base::bar;
 61            };
 62
 6305/23/2005: wsfulton
 64            Fixes for detecting virtual methods in %extend for the -fvirtual option and C# override and new
 65            method modifiers.
 66
 6705/23/2005: wsfulton
 68            [C#] The 'new' modifier is now generated on the proxy method when a method in a derived
 69            class is not polymorphic and the same method exists in the derived class (ie it hides
 70            the base class' non-virtual method).
 71
 7205/23/2005: wsfulton
 73            [Java, C#] Fixes to detection of covariant return types - when the class hierarchy is more
 74            than 2 classes deep.
 75
 7605/21/2005: wsfulton
 77            [Java] std::wstring typemaps moved from std_string.i to std_wstring.i
 78
 7905/21/2005: wsfulton
 80            Fix for crash in DohStrstr, bug #1190921
 81
 8205/21/2005: wsfulton
 83            [TCL] Fix for methods with similar names when showing list of names on error - bug #1191828.
 84            Patch from Jeroen Dobbelaere.
 85
 8605/21/2005: wsfulton
 87            [TCL] long long overloading fix - bug #1191835, patch from Jeroen Dobbelaere.
 88
 8905/21/2005: wsfulton
 90            Fix bug #1196755 to remove debug from swigtcl8.swg.
 91
 9205/19/2005: wsfulton
 93            [C# and -fvirtual option] Fix for the override key not being generated in the derived class when a
 94            virtual method's return type was a typedef in either the base or derived class. Also ensures the
 95            method is eliminated when using the -fvirtual option. For example, Derived.method now has the C#
 96            override keyword generated:
 97
 98              typedef int* IntegerPtr;
 99
100              struct Base {
101                virtual IntegerPtr method();
102              };
103
104              struct Derived : Base {
105                int * method() const;
106              };
107
108            [C#] Fix for the override key being incorrectly generated for virtual methods when a base class
109            is ignored with %ignore.
110
11105/13/2005: wsfulton
112            [Java] Fixes to remove "dereferencing type-punned pointer will break strict-aliasing rules"
113            warnings in C wrappers when compiling C code with 'gcc -Wall -fstrict-aliasing'. Patch from
114            Michael Cahill. This modifies many of the casts slightly, for example
115              arg1 = *(DB_ENV **)&jarg1;
116            to
117              arg1 = *(DB_ENV **)(void *)&jarg1;
118
11905/12/2005: wsfulton
120            [C#] Support for C# attributes. C# attributes can be generated:
121            1) On a C/C++ type basis by specifying an inattributes and/or outattributes typemap attribute
122               in the imtype or cstype typemaps (for C# return type or C# parameter type attributes).
123            2) On a wrapped method or variable by specifying a csattributes feature (%feature).
124            3) On a wrapped proxy class or enum by specifying a csattributes typemap.
125
126            Examples are in the C# documentation (CSharp.html).
127
12804/29/2005: wsfulton
129            New configure option to turn off the default maximum compiler warning as
130            they couldn't be removed even when overriding CFLAGS and CXXFLAGS with configure
131            (./configure CFLAGS= CXXFLAGS=). To turn the maximum warnings off, run:  
132
133              ./configure --without-maximum-compile-warnings
134
13504/28/2005: wsfulton
136            Patch from Scott Michel which reworks the Java constructor and finalize/destructor typemaps,
137            for directors to reduce the number of overall Java typemaps. Added the director_take and 
138            director_release typemaps to emulate other modules' __disown__ functionality.
139
140            *** POTENTIAL INCOMPATIBILITY FOR JAVA DIRECTORS ***
141
14204/28/2005: wsfulton
143            [C#] Fixed problems due to the over eager garbage collector. Occasionally the
144            garbage collector would collect a C# proxy class instance while it was being used
145            in unmanaged code if the object was passed as a parameter to a wrapped function.
146            Needless to say this caused havoc as the C# proxy class calls the C++ destructor
147            when it is collected. Proxy classes and type wrapper classes now use a HandleRef,
148            which holds an IntPtr, instead of a plain IntPtr to marshal the C++ pointer to unmanaged
149            code. There doesn't appear to be any performance degradation as a result of this
150            modification.
151
152            The changes are in the proxy and type wrapper classes. The swigCPtr is now of type HandleRef
153            instead of IntPtr and consequently the getCPtr method return type has also changed. The net
154            effect is that any custom written typemaps might have to be modified to suite. Affected users
155            should note that the implementation uses the new 'out' attribute in the imtype typemap as the
156            input type is now a HandleRef and the output type is still an IntPtr.
157
158            *** POTENTIAL INCOMPATIBILITY FOR C# MODULE ***
159
16004/28/2005: wsfulton
161            [C#] Support for asymmetric type marshalling added. Sometimes the output type needs to be
162            different to the input type. Support for this comes in the form of a new optional 'out'
163            attribute for the ctype, imtype and cstype typemaps. If this typemap attribute is not
164            specified, then the type used for both input and output is the type specified in the
165            typemap, as has always previously been the case. If this typemap attribute is specified,
166            then the type specified in the attribute is used for output types and the type specified
167            in the typemap itself is used for the input type. An output type is a return value from
168            a wrapped method or wrapped constant and an input type is a parameter in a wrapped method.
169
170            An example shows that char * could be marshalled in different ways, 
171
172              %typemap(imtype, out="IntPtr") char * "string"
173              char * function(char *);
174
175            The output type is thus IntPtr and the input type is string. The resulting intermediary C# code is:
176
177              public static extern IntPtr function(string jarg1);
178
17904/22/2005: mkoeppe (Matthias Koeppe)
180	    [Guile] Fix generation of "define-method" for methods of
181	    classes with a constructor.  Reported by Luigi Ballabio.
182
18304/15/2005: wuzzeb (John Lenz)
184	    [Chicken]
185	    For wrapped functions that return multiple values (using argout),
186	    SWIG CHICKEN now returns them as multiple values instead of as
187	    a list.  They can then be accessed using (call-with-values).
188
18904/14/2005: wuzzeb (John Lenz)
190            [Chicken]
191            + Added a whole bunch of new _runme scripts into the chicken test
192            suite.  Also fix some bugs these new scripts turned up.
193
194            + Added optimization when returning a wrapped proxy class.  Before,
195            a minor garbage collection was invoked every time a function returned.
196
197	    + All the chicken Examples should now run correctly
198
19904/14/2005: wsfulton
200            [C#] More fixes for typemap matching when wrapping variables, in particular
201            std::string, so that std::string variables can be easily marshalled with
202            a C# string property using:
203
204              %include "std_string.i"
205              %apply const std::string & { std::string *variable_name };
206              std::string variable_name;
207
208            (Recall that all class variables are wrapped using pointers)
209
21004/05/2005: wuzzeb (John Lenz)
211	    [Chicken]
212	    + Added Examples/chicken/egg, an example on how to build a chicken
213	      extension library in the form of an egg.  Also updated the
214	      documentation on the different linking options.
215
216	    + chicken test-suite now has support to check SWIG with the -proxy
217	      argument if there exists a _proxy_runme.ss file.
218
219	    + More fixes for overloaded functions and -proxy
220
22103/31/2005: wsfulton
222            Turned on extra template features for all languages which were
223            previously only available to Python.
224
225            This enables typemaps defined within a templated class to be used as
226            expected. Requires %template on the templated class, %template() will
227            also pick up the typemaps. Example:
228
229              template <typename T> struct Foo {
230                ...
231                %typemap(in) Foo "in typemap for Foo<T> "
232                or
233                %typemap(in) Foo<T> "in typemap for Foo<T> "
234              };
235              
236              %template(Foo_i) Foo<int>;
237              %template() Foo<double>;
238              
239            will generate the proper 'in' typemaps wherever Foo<int> and Foo<double>
240            are used.
241
24203/30/2005: mkoeppe (Matthias Koeppe)
243	    [MzScheme] Patch from Hans Oesterholt for supporting MzScheme 30x.
244
24503/29/2005: wuzzeb (John Lenz)
246	    [Chicken]
247	    + Reallow older versions of chicken (1.40 to 1.89) by passing -nocollection
248	      argument to SWIG
249	    + %import now works correctly with tinyclos.  (declare (uses ...)) will be
250	      exported correctly.
251	    + TinyCLOS proxy classes now work correctly with overloaded functions
252	      and constructors.
253
25403/29/2005: wsfulton
255            [Java] Patch from Scott Michel for directorout typemaps. Java directors
256            require the directorout typemaps like the other languages now. The new
257            typemaps provide fixes for methods where the return type is returned
258            by reference (this cannot automatically be made thread safe though).
259
26003/22/2005: wsfulton
261            Enum casting fixes. Visual C++ didn't like the C type casting SWIG produced
262            when wrapping C++ enum references, as reported by Admire Kandawasvika.
263
26403/21/2005: wsfulton
265            [Perl] SF #1124490. Fix Perl macro clashes when using Visual Studio's STL string,
266            so now projects can #include <string>.
267
26803/21/2005: wsfulton
269            Fixed %varargs which got broken with the recent default argument changes.
270            Also works for Java and C# for the first time now.
271
27203/17/2005: wuzzeb (John Lenz)
273            [Chicken] 
274	    + Fix a whole bunch of bugs in the chicken module.  The entire
275              test suite now compiles, with the exception of the tests that require
276	      std_vector.i, std_deque.i, and so on, which chicken does not have yet.
277
278	    + Add support for %exception and %typemap(exceptions).  Exceptions are
279	      thrown with a call to (abort) and can be handled by (handle-exceptions)
280
28103/15/2005: wsfulton
282            [Java] Patch from Scott Michel for directors. Modifications to the typemaps
283            giving users fine control over memory ownership and lifetime of director classes.
284            Director classes no longer live forever by default as they are now collectable
285            by the GC.
286
28703/15/2005: wuzzeb (John Lenz)
288	    [Chicken] Add support for adding finalizers garbage collected objects.
289	    Functions that return new objects should be marked with %newobject and
290	    input arguments which consume (or take ownership) of a pointer should
291	    be marked with the DISOWN typemap.
292
293	    Also add support for correctly checking the number of arguments passed
294	    to a function, and raising an error if the wrong number are passed.
295
29603/14/2005: wuzzeb (John Lenz)
297            Add --without-alllang option to configure.in, which is the same as
298            passing all the --without-python --without-perl5 etc... that Matthias added.
299
30003/09/2005: wsfulton
301            [Php] Memory leak fix for functions returning classes/structs by value.
302
30303/08/2005: wsfulton
304            [Perl] Fix for Perl incorrectly taking memory ownership for return types that
305            are typedefs to a struct/class pointer. Reported by Josh Cherry.
306
30703/07/2005: wsfulton
308            [C#] Various exception changes for the std::vector wrappers. These now more
309            accurately mirror the same exceptions that System.Collections.ArrayList throw.
310
31103/07/2005: wsfulton
312            [C#] Fix undefined behaviour after any of the std::vector methods
313            throw an exception.
314
31503/07/2005: wsfulton
316            [C#] When null is passed for a C++ reference or value parameter, the 
317            exception thrown has been corrected to an ArgumentNullException instead
318            of NullReferenceException as recommended in the .NET Framework documentation.
319
320            The default throws typemaps turn a C++ exception into an ApplicationException,
321            not a SystemException now.
322
32303/07/2005: wsfulton
324            [C#] Numerous changes in C# exception handling have been made over the past
325            few weeks. A summary follows:
326
327            The way in which C++ exceptions are mapped to C# exceptions is quite different.
328            The change is to fix C# exceptions so that the C++ exception stack is correctly
329            unwound as previously C++ exceptions were being thrown across the C PInvoke layer
330            into the managed world.
331
332            New typemap attributes (canthrow and excode) have been introduced to control the
333            mapping of C++ to C# exceptions. Essentially a callback into the unmanaged world
334            is made to set a pending exception. The exception to throw is stored in thread local
335            storage (so the approach is thread-safe). The typemaps are expected to return
336            from unmanaged code as soon as the pending exception is set. Any pending exceptions
337            are checked for and thrown once managed code starts executing. There should
338            be minimal impact on execution speed during normal behaviour. Full details will be
339            documented in CSharp.html.
340
341            The SWIG_CSharpThrowException() function has been removed and replaced with the
342            SWIG_CSharpSetPendingExceptionArgument() and SWIG_CSharpSetPendingException()
343            functions. The original name has been deliberately changed to break old code as
344            the old approach was somewhat flawed. Any user defined exceptions that follow the
345            same pattern as the old approach should also be fixed.
346
347            Numerous new .NET framework exceptions are now available for easy throwing from 
348            unmanaged code. The complete list is: 
349
350              ApplicationException, ArithmeticException, DivideByZeroException, 
351              IndexOutOfRangeException, InvalidOperationException, IOException, 
352              NullReferenceException, OutOfMemoryException, OverflowException, 
353              SystemException, ArgumentException, ArgumentNullException and
354              ArgumentOutOfRangeException.
355
356            *** POTENTIAL INCOMPATIBILITY FOR C# MODULE ***
357
35805/05/2005: mmatus
359	    
360	    Fix several memory leaks around. Even when we survive  knowning
361	    swig is a memory leak factory, it was a little out of
362	    control. To run std_containers.i in the python test-suite,
363	    swig was using ~260MB, now it uses 'only' ~40MB, which is
364	    the same ammount that g++ uses, so, is not that bad.
365	    In the process, I found a couple of extra Deletes, which
366	    in some cases could trigger seg. faults and/or
367	    DOH/asserts.
368	    
369	    [python] Better support for directors + exception. More
370	    verbose errors and added an unexpected exception handler.
371
372	    [python] Fix memory leak for the
373
374	    	    std::vector<std::vector<int> > 
375
376	    case,reported by Bo Peng.
377
378	    [python] Fix SwigPyObject compare problem reporte by
379	    Cameron Patrick. 
380
381	    [python] Fix several warnings in the generated code 
382	    for gnu-gcc, Intel and VC7.1  compilers.
383
384
38502/25/2005: wuzzeb (John Lenz)
386	    Update documentation to use CSS and <div> instead of <blockquote>
387	    I used a script to convert the docs, and it set all the box classes
388	    to be "code".  There are actually 4 different classes,
389	    "shell", "code", "targetlang", and "diagram".  We need to go through
390	    and convert the divs depending on what they contain.
391
39202/23/2005: mmatus
393
394	    [Python] Added option -nortti to disable the use of native
395	    C++ RTTI with directors (dynamic_cast<> is not used).
396
397	    Add more code for directors to detect and report errors in
398	    the python side.
399
400	    Extend the use of SWIGINTERN whenever is possible.
401
402	    Remove template warnings reported by VC7.1.
403
404	    Remove warnings reported by gcc/g++. Finally you can
405	    compile using
406
407	       g++ -W -Wall -c mymodule_wrap.cxx
408
409	    and no spurious errors will be generated in the wrapper
410	    code.
411
41202/23/2005: wuzzeb (John Lenz)
413	    Added -external-runtime argument.  This argument is used to dump
414	    out all the code needed for external access to the runtime system,
415	    and it replaces including the files directly.  This change adds
416	    two new virtual functions to the Language class, which are used
417	    to find the language specific runtime code.  I also updated
418	    all languages that use the runtime to implement these two functions.
419
42002/22/2005: mmatus 
421	    Fix %template + private error SF#1099976.
422
42302/21/2005: mmatus 
424
425	    Fix swigrun.swg warnings reported when using "gcc -W -Wall"
426	    (static/inline not used in front of a function
427	    declaration), and add SWIGUNUSED attribute to avoid
428	    unused warnings elsewhere.
429
430	    Fix unused variable warnings.
431
432	    [Python] Use new SWIGUNUSED attribute to avoid warnings in
433	    SWIGINTERN methods.
434
435	    [Python] Fix PyOS_snprintf for python versions < 2.2 (SF #1104919).
436
437	    [Python] Fix map/multimap to allow empty maps (reported by
438  	    Philippe Hetroy).
439
440	    [Docs] Add some documentation to Python.html and
441	    SWIGPlus.html, including for example the fact that
442	    'friends' are now supported.
443
44402/21/2005: wsfulton
445            [PHP] Patch from Olly Betts, so that wrappers compile with Zend thread safety enabled.
446
44702/17/2005: wsfulton
448            Memory leak fix in some of the scripting language modules when using default
449            arguments in constructors. The scripting language was not taking ownership of the
450            C++ object memory when any of the constructors that use default arguments was called.
451
45202/16/2005: wsfulton
453            SF #1115055: Failed make install. Patch from Rob Stone.
454
45502/16/2005: wsfulton
456            [Java] SF #1123416 from Paul Moore. Correct memory allocation for STRINGARRAY
457            typemaps in various.i.
458
45902/15/2005: wsfulton
460            Disabled typemap search changes for now (see entry 19/12/2004). It breaks
461            old typemaps, lengthens the execution time by about 25% and introduces
462            inconsistencies.
463
46402/15/2005: wsfulton
465            swig -help follows other software by printing to stdout instead of stderr now.
466            swig -version also displays to stdout instead of stderr now.
467            Behaviour reported by Torsten Landschoff.
468
46902/15/2005: wsfulton
470            [Ruby] Fix for the less commonly used ordering of %include and #include, so
471            that the generated code compiles. Bug reported by reported by Max Bowsher.
472              %include foo.h
473              %{
474              #include foo.h
475              %} 
476
47702/15/2005: wsfulton
478            [C#, Java] SWIG_exception macro will now return from unmanaged code / native code
479            as soon as it is called. Fixes possible JVM crashes and other code unexpectedly
480            being executed. Note SWIG_exception is only occasionally used by SWIG library
481            writers, and is best avoided by SWIG users.
482
48302/15/2005: wsfulton
484            [C#, Java] Typemaps can now be targeted at global variable names
485            and static member variable names. Previously the typemaps for 
486            the setters were ignored, for example:
487
488              %typemap(in) int globalint "..."
489              int globalint;
490
49102/13/2005: mkoeppe (Matthias Koeppe)
492	    [Guile] Add %typecheck for SWIGTYPE, add %typecheck for ptrdiff_t, fix
493	    typemaps for size_t.
494
495	    [Pike] Merge patch from Torsten Landschoff for improved Pike configuration.
496
49702/12/2005: mkoeppe (Matthias Koeppe)
498	    New configure switches --without-tcl, --without-python etc. allow to
499            disable the search for installed languages.
500
50101/31/2005: wuzzeb (John Lenz)
502            - Add DohSortList to DOH
503	    
504	    - Improve the runtime type system:
505               + Speed. Type loading is now O(n log n) instead of O(N^2), which
506	         for large modules is a huge improvement.
507               + A whole bunch of functions in swigrun.swg no longer need the 
508                 swig_type_list_handle passed to them.  The only one left is 
509		 TypeQuery.  This also makes runtime.swg a lot smaller.
510	       + Split up swig_type_info structure into two structures
511	         (swig_type_info and swig_cast_info)
512	       + Store a pointer to a swig_type_info rather than just the type
513	         name string in the linked list of casts. First off, this makes
514	         the guile module a little faster, and second, the
515	         SWIG_TypeClientData() function is faster too. 
516	       + Add the idea of a module into the type system.  Before, all the
517	         types were stored in one huge linked list. Now, another level is
518	         added, and the type system stores a linked list of modules, each
519	         of which stores an array of types associated with it.
520	       + For more information of how the runtime type system now works,
521	         please see Doc/Manual/typemaps.html and Doc/Devel/runtime.txt
522		 
523	    - Update all language modules to use the new type system.  The changes
524	      to each language module are minor.  All languages are now able to
525	      use runtime.swg for external access to the type system.  Before
526	      only python and perl did.
527
528	    - [guile, mzscheme, ocaml, and php4]  These languages opened up the
529	      init function inside the .cxx code, and any code in the .swg files
530	      in the init section was inside this function.  This was a problem
531	      for swiginit.swg, which needs to be inserted before the SWIG_init
532	      function is opened.  Thus I changed these languages to be like
533	      python or perl, where the init function is declared in the .swg
534	      file.
535	      
536	    - [Ruby] Instead of moving the init function to the .swg file, I
537	      added a new section initbeforefunc, and then added
538	      %insert(initbeforefunc) "swiginit.swg"
539
540	    - [MzScheme] Fix enums and fix Examples/Makefile.in so that if
541	      multiple -I arguments are specified in the INCLUDES variable, each
542	      gets a ++ccf.
543
544	    - [Guile GH] Update Guile GH to use the new type system.  See
545	      Doc/Manual/Guile.html for how smobs are now used.
546
54701/11/2005: wsfulton
548            [C#] New typemap called 'csconstruct'. The code in this typemaps was previously hard
549            coded and could not be customised by a user. This typemap contains the code that is
550            generated into a proxy class's constructor.
551
552            [Java] New typemap called 'javaconstruct'. The code in this typemaps was previously hard
553            coded and could not be customised by a user. This typemap contains the code that is
554            generated into a proxy class's constructor. Another typemap named 'javaconstruct_director'
555            is used instead when the proxy class is a director class.
556
557            [C#, Java] If a C++ class did not have a default constructor, a protected default constructor
558            was automatically generated by SWIG. This seems is unnecessary and has been removed
559            and thereby giving the user almost complete control over the generated code along with the
560            new typemaps above.
561
56219/12/2004: mmatus
563            [Disabled, see entry 02/15/2004]
564            - Fix typemap search, now the "out" typemap search is done as follows
565
566                 int *Foo::foo(int bar)   ->  int *Foo::foo(int bar)
567                                          ->  int *Foo::foo
568                                          ->  int *foo(int bar)
569                                          ->  int *foo
570                                          ->  int *
571
572               then, now you can be more specific, and define
573
574              /* apply only for  'Foo::foo' method */
575              %typemap(out) int * Foo::foo(int *bar) ...; 
576
577              /* apply for all 'foo' functions/methods */
578              %typemap(out) int * foo(int *bar) ...; 
579
580              %inline {
581                struct Foo {
582                   int *foo(int *bar);
583                };
584              }
585	  
586
58715/12/2004: mmatus
588            - More fixes for templates and template default args.
589              See template_default.i for scary cases that now are 
590              supported, besides the already ugly STL/std cases.
591              
592            - Cosmetics and more use of 'const' where it was implicit.
593            - Other fixes for OSS, which is now working again with 1.3.25.
594	
595