aboutsummaryrefslogtreecommitdiff
path: root/CHANGES.current
blob: 1a73c520f5f328c03dd64d3da533790d2ea85e5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
Version 1.3.32 (in progress)
============================

10/16/2007: wsfulton
            Deprecate %attribute_ref and replace with %attributeref. There is just an argument
            order change in order to maintain consistency with %attribute, from:

              %attribute_ref(Class, AttributeType, AccessorMethod, AttributeName)
            to
              %attributeref(Class, AttributeType, AttributeName, AccessorMethod)

10/16/2007: olly
	    [Tcl] Fix several ocurrences of "warning: deprecated conversion
	    from string constant to 'char*'" from GCC 4.2 in generated C/C++
	    code.

10/16/2007: olly
	    [PHP] Fix many occurrences of "warning: deprecated conversion from
	    string constant to 'char*'" from GCC 4.2 in generated C/C++ code
	    when compiling with a new enough version of PHP 5 (tested with
	    PHP 5.2.3, but PHP 5.2.1 is probably the minimum requirement).

10/15/2007: wsfulton
            Patch #1797133 from David Piepgrass fixes %attribute when the getter has the same name
            as the attribute name and no longer generate non-functional setter for read-only attributes.

10/15/2007: olly
	    [Tcl] Prevent SWIG_Tcl_ConvertPtr from calling the unknown proc.
	    Add Examples/tcl/std_vector/ which this change fixes.  Patch
	    is from "Cliff C" in SF#1809819.

10/12/2007: wsfulton
            [Java] Add DetachCurrentThread back in for directors. See entry dated 08/11/2006 and 
            search for DetachCurrentThread on the mailing lists for details. The crashes on Solaris 
            seem to be only present in jdk-1.4.2 and lower (jdk-1.5.0 and jdk-1.6.0 are okay), so 
            anyone using directors should use a recent jdk on Solaris, or define (see director.swg) 
            SWIG_JAVA_NO_DETACH_CURRENT_THREAD to the C++ compiler to get old behaviour.

10/12/2007: wsfulton
	    [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated
            when there are C comments in the jtype and jstype typemaps.

10/12/2007: wuzzeb
	    Added a testsuite entry for Bug #1735931

10/09/2007: olly
	    Automatically rerun autogen.sh if configure.in is modified.

10/09/2007: olly
	    Enhance check-%-test-suite rule and friends to give a more helpful
	    error message if you try them for a language which doesn't exist
	    (e.g. "make check-php-test-suite" rather than the correct
	    "make check-php4-test-suite").

10/09/2007: olly
	    Add make rule to regenerate Makefile from Makefile.in if it has
	    changed.

10/09/2007: olly
	    [php] Fix long-standing memory leak in wrapped constructors and
	    wrapped functions/methods which return an object.

10/08/2007: olly
	    Fix Makefile.in to read check.list files correctly in a VPATH
	    build.

10/07/2007: wsfulton
            [C#, Java] Experimental shared_ptr typemaps added

09/27/2007: mgossage
	    [lua] added more verbose error messages for incorrect typechecks.
	    Added a routine which checks the exact number of parameters passed to a function
	    (breaks operator_overloading for unary minus operator, currently disabled).
	    Reorganised the luatypemaps.swg to tidy it up.
	    Added a lot of %ignores on the operators not supported by lua.
	    Added support for constant member function pointers & runtest for member_pointer.i
	    Added first version of wchar.i

09/25/2007: wsfulton
            [C#, Java] throws typemaps for std::wstring using C# patch #1799064 from David Piepgrass

09/24/2007: wsfulton
            [Tcl] Apply #1771313 to fix bug #1650229 - fixes long long and unsigned long long 
            handling.

09/20/2007: olly
	    [Java] Eliminate some unnecessary uses of a temporary buffer
	    allocated using new[].  SF#1796609.

09/19/2007: wsfulton
            [C#] The $csinput special variable can be used in the csvarin typemap where it is always
            expanded to 'value'.

09/19/2007: wsfulton
            [C#] Fix bug reported by Glenn A Watson and #1795260 where the cstype typemap used the 'ref'
            keyword in the typemap body, it produced uncompilable C# properties (variable wrappers). 
            The type for the property now correctly comes from the 'out' attribute in the cstype typemap.

09/19/2007: wsfulton
            [Java] Fix const std::wstring& typemaps

09/19/2007: wsfulton
	    [Java] Ensure the premature garbage collection prevention parameter (pgcpp) is generated
            where a parameter is passed by pointer reference, eg in the std::vector wrappers. The pgcpp
            is also generated now when user's custom typemaps use a proxy class in the jstype typemap
            and a 'long' in the jtype typemap.

09/18/2007: olly
	    [php] Add typemaps for handling parameters of type std::string &
	    which are modified by the wrapped function.

09/17/2007: olly
	    [python] Split potentially long string literals to avoid hitting
	    MSVC's low fixed limit on string literal length - patch from
	    SF#1723770, also reported as SF#1630855.

09/17/2007: olly
	    [ocaml] Fix renaming of overloaded methods in the method_table -
	    my patch from SF#940399.

09/17/2007: olly
	    [python] Simpler code for SWIG_AsVal_bool() which fixes a "strict
	    aliasing" warning from GCC - patch from SF#1724581 by Andrew
	    Baumann.

09/17/2007: olly
	    [perl5] Use sv_setpvn() to set a scalar from a pointer and length
	    - patch from SF#174460 by "matsubaray".

09/17/2007: olly
	    When wrapping C++ code, generate code which uses
	    std::string::assign(PTR, LEN) rather than assigning
	    std::string(PTR, LEN).  Using assign generates more efficient code
	    (tested with GCC 4.1.2).

09/07/2007: wsfulton
	    Fix %ignore on constructors which are not explicitly declared [SF #1777712]

09/05/2007: wuzzeb (John Lenz)
	    - Change r_ltype in typesys.c to store a hashtable instead of a single value.
	      several very subtle bugs were being caused by multiple ltypes being mapped
	      to a single mangled type, mostly when using typedefed template parameters.
	      Now, r_ltype stores a hashtable of possible ltypes, and when generating the
	      type table, all the ltypes are added into the swig_type_info structure.

08/31/2007: wsfulton
            SF #1754967 from James Bigler.
            - Fix bug in turning on warnings that were turned off by default. Eg 'swig -w+309' will now
              turn on the normally suppressed warning 309.
            
            - New -Wextra commandline option which enables the extra warning numbers:
              202,309,403,512,321,322 (this is the list of warnings that have always been suppressed by
              default). By specifying -Wextra, all warnings will be turned on, but unlike -Wall,
              warnings can still be selectively turned on/off using %warnfilter,
              #pragma SWIG nowarn or further -w commandline options, eg:
                swig -Wextra -w309 
              will turn on all warnings except 309.

08/28/2007: wsfulton
            - New debugging options, -debug-module <n> and -debug-top <n> to display the parse tree at
              various stages, where <n> is a comma separated list of stages 1-4.For example, to
              display top of parse tree at stages 1 and 3:
                swig -debug-top 1,3

            - Deprecate the following options which have equivalents below:
              -dump_parse_module    =>   -debug-module 1
              -dump_module          =>   -debug-module 4
              -dump_parse_top       =>   -debug-top 1
              -dump_top             =>   -debug-top 4

            - Renamed some commandline options for naming consistency across all options:
              -debug_template  =>   -debug-template
              -debug_typemap   =>   -debug-typemap
              -dump_classes    =>   -debug-classes
              -dump_tags       =>   -debug-tags
              -dump_typedef    =>   -debug-typedef
              -dump_memory     =>   -debug-memory

08/25/2007: olly
	    [PHP5] Fix handling of double or float parameters with an integer
	    default value.

08/25/2007: olly
	    [PHP5] Generate __isset() methods for setters for PHP 5.1 and later.

08/20/2007: wsfulton
            [Java C#] Fix director bug #1776651 reported by Stephane Routelous which occurred when 
            the director class name is the same as the start of some other symbols used within 
            the director class.

08/17/2007: wsfulton
            Correct behaviour for templated methods used with %rename or %ignore and the empty 
            template declaration - %template(). A warning is issued if the method has not been
            renamed.

08/16/2007: mutandiz (Mikel Bancroft)
	    [allegrocl] Name generated cl file based on input file rather than by
	    module name. It was possible to end up with a mypackage.cl and a test_wrap.c
	    when parsing a test.i input file. Confusing. Also, include external-format
	    templates for :fat and :fat-le automatically to avoid these being compiled
	    at runtime.

08/15/2007: efuzzyone
            [cffi] Apply patch #1766076 from Leigh Smith adding support for newly introduced 
            in cffi :long-long and :unsigned-long-long.

08/10/2007: wsfulton
            [Java] Add documentation patch #1743573 from Jeffrey Sorensen. It contains a neat
            idea with respect to better memory management by the JVM of C++ allocated memory.

08/10/2007: wsfulton
            [Perl] Apply patch #1771410 from Wade Brainerd to fix typedef XS(SwigPerlWrapper) in 
            perlrun.swg for ActiveState Perl build 822 and Perl 5.8.9 and 5.10 branches.

08/10/2007: wsfulton
            [Lua] const enum reference typemaps fixed.

08/09/2007: wsfulton
            [C#] Added missing support for C++ class member pointers.

08/09/2007: wsfulton
            [C#, Java] Add support for $owner in the "out" typemaps like in the the scripting 
            language modules. Note that $owner has always been supported in the "javaout" / "csout"
            typemaps.

08/01/2007: wsfulton
            Fix smart pointer handling for classes that have templated methods within the smart
            pointer type. Problem reported by craigdo at ee.washington.edu.

07/31/2007: efuzzyone
            [cffi] fixed memory access after being freed bug. thanks to Martin Percossi.
            package name clos changed to cl. thanks to Ralf Mattes

07/24/2007: wsfulton
            Parallel make support added for the examples and test-suite for developers who have
            more than one CPU. Now parallel make can be used for checking in addition to building
            the SWIG executable. Some typical checking examples:

              make -j8 -k check
              make -j4 check-java-test-suite
              make -j2 check-java-examples

07/19/2007: mgossage
            Fixed bug that stopped configure working on mingw (applied dos2unix to configure.in)

07/10/2007: mgossage
            [lua] Extra compatibility with Lua 5.1 (updated SWIG_init, docs, examples, test suite)
	    Removed name clash for static link of multiple modules

07/05/2007: mgossage
            [lua] Fix a bug in SWIG_ALLOC_ARRAY()
            improved the error messages for incorrect arguments.
            Changed the output of swig_type() to use the human readable form of the type, 
	    rather than the raw swig type.

07/03/2007: wsfulton
            [C#] Fix directors for some overloaded methods where the imtype resulted in identical
            methods being generated in the C# director class, eg void foo(int *) and void foo(double *)
            used to generated two of these:

              private void SwigDirectorfoo(IntPtr p) { ... }

06/25/2007: wsfulton
            [Java, C#] Some parameter name changes in std_vector.i allowing better targeting 
            of typemaps for method parameters (for memory management of containers of pointers).

06/07/2007: mutandiz (Mikel Bancroft)
	    [allegrocl]
	    fix foreign-type constructor to properly look for ffitype typemap
	    bindings. fix inout_typemaps.i for strings.

06/06/2007: olly
	    [Ruby]
	    Use whichever of "long" or "long long" is the same size as "void*"
	    to hold pointers as integers, rather than whichever matches off_t.
	    Fixes compilation on OS X and GCC warnings on platforms where
	    sizeof(void*) < sizeof(off_t) (SF patch #1731979).

06/06/2007: olly
	    [PHP5]
	    Fix handling of a particular case involving overloaded functions
	    with default parameters.

06/05/2007: mutandiz (Mikel Bancroft)
	    [allegrocl]
	    Fix case where we'd pass fully qualified identifiers
	    (i.e. NS1::NS2::FOO) to swig-insert-id. All namespaces
	    should be stripped.

	    Fix bug in TypedefHandler introduced by last fix.
	
06/05/2007: olly
	    Fix reporting of filenames in errors after %include (patch from
	    Leigh Smith in #1731040; also reported as #1699940).

05/31/2007: olly
	    [Python]
	    Fix "missing initialiser" warning when compiling generated C/C++
	    wrapper code with Python 2.5 with warnings enabled (patch from
	    bug#1727668 from Luke Moore).

05/29/2007: olly
	    [Python]
	    Split docstrings into separate string literals at each newline when
	    generating C/C++ wrapper code (the C/C++ compiler will just combine
	    them back into a single string literal).  This avoids MSVC
	    complaining that the strings are too long (problem reported by
	    Bo Peng on the mailing list).

05/28/2007: olly
	    [Python]
	    Escape backslashes in docstrings.

05/26/2007: olly
	    [Python]
	    Fix autodoc generation of enums to be more consistent with how the
	    enums are wrapped - patch #1697226 from Josh Cherry.

05/26/2007: olly
	    [PHP5]
	    Fix wrapping of methods and functions which return a pointer to a
	    class (bug#1700788) and those which have overloaded forms returning
	    both classes and non-classes (bug#1712717, thanks to Simon
	    Berthiaume for the patch).

05/25/2007: wsfulton
            Fixed %rename inconsistency in conversion operators as reported by Zhong Ren. The matching
            is now done on the operator name in the same way as it is done for parameters. For example:

              %rename(opABC) Space::ABC::operator ABC() const;
              %rename(methodABC) Space::ABC::method(ABC a) const;
              namespace Space {
                class ABC {
                  public:
                    void method(ABC a) const {}
                    operator ABC() const { ABC a; return a; }
                };
              }

            Note that qualifying the conversion operator previously may or may not have matched.
            Now it definitely won't, so this will not match:

              %rename(opABC) Space::ABC::operator Space::ABC() const;

            in the same way that this does not match:

              %rename(methodABC) Space::ABC::method(Space::ABC a) const;

            The documentation has been improved with respect to %rename, namespaces and templates.
            Conversion operators documentation too.

            *** POTENTIAL INCOMPATIBILITY ***

05/16/2007: mutandiz
	    [allegrocl]
	    Fix bad generation of local var ltype's in functionWrapper().
	    Try to work better with the backward order in which swig
	    unrolls nested class definitions.
	    cleaned up a little unnecessary code/debug printf's.
	    Remove warning when replacing $ldestructor for ff:foreign-pointer
	
05/12/2007: olly
	    [Python]
	    swig -python -threads now generates C/C++ code which uses Python's
	    own threading abstraction (from pythread.h) rather than OS specific
	    code.  The old code failed to compile on MS Windows.  (See SF patch
	    tracker #1710341).

05/04/2007: gga
	    [Ruby]
	    Changed STL renames to be global renames.  This fixes
	    STL functions not being renamed when autorename is on.
            This is a not a totally perfect work-around, but better.
	    Someone really needs to fix the template renaming code.
	    (See bug #1545634)

05/04/2007  gga
	    [All]
            Changed %rename("%(undercase)s") a little so that single 
	    numbers at the end of a function are not undercased.  That is:
		getSomething -> get_something
		get2D	     -> get_2d
		get234	     -> get_234
	    BUT:
		asFloat2     -> as_float2
	    (Bug #1699714)

05/03/2007: gga
	    [Ruby]
	    Made __swigtype__ => @__swigtype__ so it can be accessed
	    from the scripting language (and follows Ruby's official
            documentation, just in case).
	    Made tracking => @__trackings__ for same reason.
	    Currently storing ivars without the @ seems valid, but
	    the PickAxe says this is not correct, so just in case...

05/03/2007: gga
	    [Ruby]
	    Applied patch for -minherit bug and exception classes.
	    This issue should be revisited more closely, as Multiple
	    Inheritance in Ruby is still problematic.
	    (patch/bug #1604878)

05/03/2007: gga
	    [Ruby]
	    Overloaded functions in ruby will now report to the user
            the possible prototypes when the user mistypes the number or
            type of a parameter.

05/03/2007: gga
	    [Ruby]
	    Forgot to document the bug fixing of an old bug regarding 
	    exceptions.
	    (bug #1458247)

05/03/2007: gga
	    [Ruby]
	    Fixed Ruby documentation to use the proper css styles for
	    each section. Added autodoc section to Ruby's docs to
	    document the features supported by Ruby in documenting its modules.
	    Made rdoc documentation spit out the full name of the class +
	    method name.  Albeit this will make the current rdoc not recognize
            the method, this is still needed to disambiguate between different
            classes with similar methods (rdoc was created to document the
	    ruby source which only contains one class per c file, unlike swig)
            I have patched rdoc to make it more friendly to swig.  This
            patch needs to be merged in the ruby std library now.

05/03/2007: gga
	    [Ruby]
	    Changed flag -feature to be -init_name to better reflect its
	    purpose and avoid confusion with -features.

05/03/2007: gga
	    [Ruby]
	    Improved autodoc generation.
	    Added autodoc .swg files to Ruby library for easily adding 
	    documentation to common Ruby methods and STL methods.
	    Fixed autodoc documenting of getters and setters and module.
	    Made test suite always generate autodocs.

05/03/2007: gga
	    [Ruby]
	    Removed some warnings from STL and test suite.

05/02/2007: mgossage
            [Lua] Fixed issues with C++ classes and hierachies across multiple
	    source files. Fixed imports test case & added run test.
	    Added Examples/imports.
	    Added typename for raw lua_State*
	    Added documentation on native functions.

05/02/2007: gga
	    [Ruby]
	    Docstrings are now supported.
	    %feature("autodoc") and %feature("docstring") are now
	    properly supported in Ruby.  These features will generate
	    a _wrap.cxx file with rdoc comments in them.

05/02/2007: gga
	    [Ruby]
	    STL files have been upgraded to follow the new swig/python 
	    Lib/std conventions.
	    This means std::vector, std::set, std::map, set::multimap,
	    std::multiset, std::deque and std::string are now properly
	    supported, including their iterators, support for containing
	    ruby objects (swig::GC_VALUE) and several other ruby
	    enhancements.
	    std::complex, std::ios, std::iostream, std::iostreambuf and 
	    std::sstream are now also supported.
	    std::wstring, std::wios, std::wiostream, std::wiostreambuf
	    and std::wsstream are supported verbatim with no unicode
	    conversion.

	    std_vector.i now mimics the behavior of Ruby Arrays much more 
	    closely, supporting slicing, shifting, unshifting,
            multiple indexing and proper return values on assignment.
	    
	    COMPATABILITY NOTE: this changes the older api a little bit in 
	    that improper indexing would previously (incorrectly) raise
	    exceptions.  Now, nil is returned instead, following ruby's 
	    standard Array behavior.

05/02/2007: gga
	    [Ruby]
	    Changed the value of SWIG_TYPECHECK_BOOL to be 10000 (ie. higher
	    than that of all integers).  
	    This is because Ruby allows typecasting
	    integers down to booleans which can make overloaded functions on
	    bools and integers to fail.
	    (bug# 1488142)

05/02/2007: gga
	    [Ruby]
	    Fixed a subtle bug in multiple argouts that could get triggered if 
	    the user returned two or more arguments and the first one was an
	    array.

05/01/2007: gga
	    [Ruby]
	    Improved the documentation to document the new features
            added, add directorin/out/argout typemaps, etc.

05/01/2007: gga
	    [Ruby]
	    Added %initstack and %ignorestack directives for director
	    functions.  These allow you to control whether a director
	    function should re-init the Ruby stack.  
	    This is sometimes needed for an embedded Ruby where the
	    director method is used as a C++ callback and not called
            by the user from ruby code.
	    Explanation:
	    Ruby's GC needs to be aware of the running OS stack in order to
	    mark any VALUE (Ruby objects) it finds there to avoid collection
	    of them.  This allows the ruby API to be very simple and allows
	    you to write code like "VALUE a = sth" anywhere without needing 
	    to do things like refcounting like python.
	    By default, the start of the stack is set when ruby_init() is
	    called.   If ruby is inited within main(), as it usually is the
	    case with the main ruby executable, ruby will be able to calculate
	    its stack properly.  However, when this is not possible, as when
	    ruby is embedded as a plugin to an application where main is not
	    available, ruby_init() will be called in the wrong place, and
	    ruby will be incorrectly tracking the stack from the function
	    that called ruby_init() forwards only, which can lead to
	    all sorts of weird crashes or to ruby thinking it has run out of
	    stack space incorrectly.
	    To avoid this, director (callback) functions can now be tagged
	    to try to reset the ruby stack, which will solve the issues.
	    NOTE: ruby1.8.6 still contains a bug in it in that its function
	    to reset the stack will not always do so.  This bug is triggered
	    very rarely, when ruby is called from two very distinct places
	    in memory, like a branch of main() and another dso.  This bug
	    has now been reported to ruby-core and is pending further
	    investigation.
	    (bug #1700535 and patch #1702907)

04/30/2007: wsfulton
            Fix #1707582 - Restore building from read-only source directories.

04/30/2007: gga
	    [Ruby]
	    Ruby will now report the parameter index properly on type
	    errors as well as the class and value of the incorrect
	    argument passed.
	    (feature request #1699670)

04/30/2007: gga
	    [Ruby]
	    Ruby no longer creates the free_Class function if the class
	    contains its own user defined free function (%freefunc).
	    (bug #1702882)
 
04/30/2007: gga
	    [Ruby]
	    Made directors raise a ruby exception for incorrect argout
	    returned values if RUBY_EMBEDDED is set, instead of throwing
	    an actual SwigDirector exception.
	    This will prevent crashes when ruby is embedded and unaware
	    of the SwigDirector exception.

04/30/2007: gga
	    [Ruby] 
	    Removed the need for -DSWIGEXTERN.
	    Changed swig_ruby_trackings to be a static variable, but also
	    be kept within a hidden instance variable in the SWIG module.
	    This allows properly dealing with trackings across multiple 
	    DSOs, which was previously broken.
	    (bug #1700535 and improvement to patch #1702907)

04/29/2007: gga
	    [Ruby] Fixed GC memory issues with trackings that could lead
	    to segfaults when dealing, mainly, with static variables.
	    (bug #1700535 and patch #1702907)

04/29/2007: gga
	    [Ruby] 
	    Fixed String conversion using old ruby1.6 macros.  Now
	    StringValuePtr() is used if available.  This removes warnings
	    when converting strings with \0 in them.
	    (bug #1700535 and patch #1702907)

04/29/2007: gga
	    [Ruby] 
	    Fixed the argout count in directors for Ruby.  Previously, 
	    ignored or "numinputs=0" typemaps would incorrectly not get 
	    counted towards the argout count.
	    (bug/patch #1545585)

04/29/2007: gga
	    [Ruby] 
	    Upgraded Ruby converter to recognize "numinputs=0".  Previously,
	    only the old "ignore" flag was checked (which would currently
	    still work properly, but is deprecated).

04/29/2007: gga
	    [Ruby - but should be made generic] 

	    %feature("numoutputs","0") added.  

	    This feature allows you to ignore the output of a function so
	    that it is not added to a list of output values
	    ( ie. argouts ).  
	    This should also become a feature of %typemap(directorout)
	    as "numoutputs"=0, just like "numinputs"=0 exists.

	    %feature("directors"=1)

	    %include <typemaps.i>

	    %feature("numoutputs","0") { Class::member_function1 };
	    %typemap(out) MStatus { // some code, like check mstatus
	                            // and raise exception if wrong };

	    %inline %{
	      typedef int MStatus;
	      class Class {

	      // one argument returned, but director out code added
	      // MStatus is discarded as a return (out) parameter.
	      virtual MStatus member_function1( int& OUTPUT );

	      // two arguments returned, director out code added
	      // MStatus is not discarded
	      virtual MStatus member_function2( int& OUTPUT );
	      };
            %}


04/21/2007: olly
	    Fix parsing of float constants with an exponent (e.g. 1e-02f)
	    (bug #1699646).

04/20/2007: olly
	    [Python] Fix lack of generation of docstrings when -O is used.
	    Also, fix generation of docstrings containing a double quote
	    character.  Patch from Richard Boulton in bug#1700146.

04/17/2007: wsfulton
            [Java, C#] Support for adding in Java/C# code before and after the intermediary call,
            specifically related to the marshalling of the proxy type to the intermediary type.
            The javain/csin typemap now supports the 'pre' and 'post' attributes to achieve this.
            The javain typemap also supports an optional 'pgcppname' attribute for premature garbage 
            collection prevention parameter naming and the csin typemap supports an optional 'cshin'
            attribute for the parameter type used in a constructor helper generated when the type is used
            in a constructor. Details in the Java.html and CSharp.html documentation.

04/16/2007: olly
	    Don't treat `restrict' as a reserved identifier in C++ mode
	    (bug#1685534).

04/16/2007: olly
	    [PHP5] Fix how zend_throw_exception() is called (bug #1700785).

04/10/2007: olly
	    Define SWIGTEMPLATEDISAMBIGUATOR to template for aCC (reported on
	    swig-user that this is needed).

04/04/2007: olly
	    [PHP5] If ZTS is enabled, release <module>_globals_id in MSHUTDOWN
	    to avoid PHP interpreter crash on shutdown.  This solution was
	    suggested here: http://bugs.php.net/bug.php?id=40985

04/03/2007: olly
	    [PHP4] Add missing ZTS annotations to generated C++ wrapper code
	    to fix compilation failures when using ZTS enabled SWIG (Linux
	    distributions tend to disable ZTS, but notably the Windows build
	    uses it by default).

04/01/2007: efuzzyone
            [CFFI] Patch #1684261: fixes handling of unsigned int literals, thanks Leigh Smith.
            Also, improved documentation.
  
03/30/2007: olly
	    Avoid generating '<:' token when using SwigValueWrapper<> on a type
	    which starts with '::' (patch #1690948).

03/25/2007: wuzzeb (John Lenz)
	    [perl5] Add SWIG_fail to the SWIG_exception macro.  Fixes a few problems reported
	    on the mailing list.

03/23/2007: wsfulton
            String copying patch from Josh Cherry reducing memory consumption by about 25%.

03/21/2007: wsfulton
            [Java] Apply patch #1631987 from Ulrik Peterson - bool INOUT typemaps 
            fail on big endian machines.

03/16/2007: wsfulton
            Fix seg fault given dodgy C++ code: namespace abc::def { }

03/16/2007: wsfulton
            [Java] Fixes so that ARRAYSOFCLASSES and ARRAYSOFENUMS in arrays_java.i can be applied
            to pointer types.

03/03/2007: olly
	    [PHP5] When we know the literal numeric value for a constant, use
	    that to initialise the const member in the PHP wrapper class.

03/02/2007: olly
	    [PHP5] Fix PHP wrapper code generated for certain cases of
	    overloaded forms with default arguments.

02/26/2007: efuzzyone
            [CFFI] Patch #1656395: fixed hex and octal values bug, thanks to Arthur Smyles.

02/22/2007: mgossage
            [Lua] Fixed bug in typemaps which caused derived_byvalue and rname test cases to fail.
	    Updated derived_byvalue.i to explain how to find and fix the problem

01/25/2007: wsfulton
            Fix #1538522 and #1338527, forward templated class declarations without a
            name for the templated class parameters, such as:

              template <typename, class> class X;

01/23/2007: mgossage
            [Lua] Patch #1640862: <malloc.h> replaced by <stdlib.h>
	    Patch #1598063 Typo in typemaps.i

01/22/2007: mgossage
            [Lua] Added a lua specific carrays.i which adds the operator[] support.
	    modified the main code to make it not emit all the class member functions & accessors
	    Note: C structs are created using new_XXX() while C++ classes use XXX() (should be standardised)
	    Updated test case: li_carrays
	    Updated the documentation.

01/12/2007: wsfulton
            [Php] Add support for newfree typemaps (sometimes used by %newobject)

01/12/2007: beazley
            New command line option -macroerrors.   When supplied, this will force
            the C scanner/parser to report proper location information for code contained
            inside SWIG macros (defined with %define).  By default, SWIG merely reports
            errors on the line at which a macro is used.  With this option, you
            can expand the error back to its source---something which may simplify
            debugging.

01/12/2007: beazley
            [Internals] Major overhaul of C/C++ scanning implementation.  For quite
            some time, SWIG contained two completely independent C/C++ tokenizers--
            the legacy scanner in CParse/cscanner.c and a general purpose scanner
            in Swig/scanner.c. SWIG still has two scanning modules, but the C parser
            scanner (CParse/cscanner.c) now relies upon the general purpose
            scanner found in Swig/scanner.c.  As a result, it is much smaller and
            less complicated.  This change also makes it possible to maintain all
            of the low-level C tokenizing in one central location instead of two
            places as before. 

            ***POTENTIAL FLAKINESS***
            This change may cause problems with accurate line number reporting
            as well as error reporting more generally. I have tried to resolve this 
            as much as possible, but there might be some corner cases.  
            
01/12/2007: mgossage
            [Lua] Added typemap throws for std::string*, typemap for SWIGTYPE DYNAMIC, 
	    changed the existing throws typemap to throw a string instead of making a copy of
	    the object (updating a few test cases to deal with the change).
	    fixed test case: dynamic_casts, exception_partial_info, li_std_string, size_t

01/03/2007: beazley
            [Internals].  Use of swigkeys.c/.h variables is revoked.  Please use
            simple strings for attribute names.

12/30/2006: beazley
            Internal API functions HashGetAttr() and HashCheckAttr() have been revoked.
            Please use Getattr() to retrieve attributes.  The function Checkattr() can
            be used to check attributes.  Note:  These functions have been revoked 
            because they only added a marginal performance improvement at the expense
            code clarity. 

12/26/2006: mgossage
            [Lua] Added more STL (more exceptions, map, size_t), 
	    fixed test case: conversion_ns_template.

12/21/2006: mgossage
            [Lua] Update to throw errors when setting immutables, 
	    and allowing user addition of module variables.

12/20/2006: wsfulton
            Fix typedef'd variable wrappers that use %naturalvar, eg, std::string.

12/14/2006: wsfulton
            [C#] Add std::wstring and wchar_t typemaps

12/14/2006: olly
	    [php] Fix bug #1613673 (bad PHP5 code generated for getters and
	    setters).

12/02/2006: wsfulton, John Lenz, Dave Beazley
            Move from cvs to Subversion for source control

11/30/2006: beazley
            Cleaned up swigwarnings.swg file not to use nested macro
            definitions.

11/12/2006: wsfulton
            [Java, C#] Fix for %extend to work for static member variables.