PageRenderTime 60ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/rel-2.0.1/CHANGES

#
#! | 1564 lines | 1204 code | 360 blank | 0 comment | 0 complexity | dec027db63b0209494d920f1340fc100 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. SWIG (Simplified Wrapper and Interface Generator)
  2. See the CHANGES.current file for changes in the current version.
  3. See the RELEASENOTES file for a summary of changes in each release.
  4. Version 2.0.0 (2 June 2010)
  5. ===========================
  6. 2010-06-02: wsfulton
  7. [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
  8. types containing commas, for example:
  9. SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
  10. 2010-06-01: wsfulton
  11. Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
  12. macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
  13. wrapped if the following macro is defined:
  14. #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
  15. %include <std_shared_ptr.i>
  16. shared_ptr is also documented in Library.html now.
  17. 2010-05-27: wsfulton
  18. Add the ability for $typemap special variable macros to call other $typemap
  19. special variable macros, for example:
  20. %typemap(cstype) CC "CC"
  21. %typemap(cstype) BB "$typemap(cstype, CC)"
  22. %typemap(cstype) AA "$typemap(cstype, BB)"
  23. void hah(AA aa);
  24. This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
  25. Also added diagnostics for $typemap with -debug-tmsearch, for example, the
  26. above displays additional diagnostic lines starting "Containing: ":
  27. example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
  28. Looking for: AA aa
  29. Looking for: AA
  30. Using: %typemap(cstype) AA
  31. Containing: $typemap(cstype, BB)
  32. example.i:31: Searching for a suitable 'cstype' typemap for: BB
  33. Looking for: BB
  34. Using: %typemap(cstype) BB
  35. Containing: $typemap(cstype, CC)
  36. example.i:29: Searching for a suitable 'cstype' typemap for: CC
  37. Looking for: CC
  38. Using: %typemap(cstype) CC
  39. 2010-05-26: olly
  40. Fix %attribute2ref not to produce a syntax error if the last
  41. argument (AccessorMethod) is omitted. Patch from David Piepgras
  42. in SF#2235756.
  43. 2010-05-26: olly
  44. [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
  45. now throw PHP Exception objects instead of giving a PHP error of
  46. type E_ERROR.
  47. This change shouldn't cause incompatibility issues, since you can't
  48. set an error handler for E_ERROR, so previously PHP would just exit
  49. which also happens for unhandled exceptions. The benefit is you can
  50. now catch them if you want to.
  51. Fixes SF#2545578 and SF#2955522.
  52. 2010-05-25: olly
  53. [PHP] Add missing directorin typemap for const std::string &.
  54. Fixes SF#3006404 reported by t-Legiaw.
  55. 2010-05-23: wsfulton
  56. [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
  57. initialized before use in .NET 4 as the classes were not marked beforefieldinit.
  58. A static constructor has been added to the intermediary class like this:
  59. %pragma(csharp) imclasscode=%{
  60. static $imclassname() {
  61. }
  62. %}
  63. If you had added your own custom static constructor to the intermediary class in
  64. the same way as above, you will have to modify your approach to use static variable
  65. initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
  66. *** POTENTIAL INCOMPATIBILITY ***
  67. 2010-05-23: wsfulton
  68. Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
  69. inheritance hierarchy. No special treatment is needed for derived classes.
  70. The proxy class also no longer needs to be specified, it is automatically
  71. deduced. The following macros are deprecated:
  72. SWIG_SHARED_PTR(PROXYCLASS, TYPE)
  73. SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  74. and have been replaced by
  75. %shared_ptr(TYPE)
  76. Similarly for intrusive_ptr wrappers, the following macro is deprecated:
  77. SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
  78. SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  79. and have been replaced by
  80. %intrusive_ptr(TYPE)
  81. 2010-05-21: olly
  82. [PHP] Stop generating a bogus line of code in certain constructors.
  83. This was mostly harmless, but caused a PHP notice to be issued, if
  84. enabled (SF#2985684).
  85. 2010-05-18: wsfulton
  86. [Java] Fix member pointers on 64 bit platforms.
  87. 2010-05-14: wsfulton
  88. Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
  89. typedef enum { PLAY = true, STOP = false } play_state;
  90. 2010-05-14: olly
  91. [PHP] Fix wrapping of global variables which was producing
  92. uncompilable code in some cases.
  93. 2010-05-12: drjoe
  94. [R] Add two more changes from Wil Nolan. Get garbage
  95. collection to work. Implement newfree
  96. 2010-05-09: drjoe
  97. Fix bug reported by Wil Nolan change creation of string so
  98. that R 2.7.0+ can use char hashes
  99. 2010-05-07: wsfulton
  100. Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
  101. operator in constructor initialization lists.
  102. 2010-05-05: wsfulton
  103. [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
  104. 2010-05-01: wsfulton
  105. Typemap matching enhancement for non-default typemaps. Previously all
  106. qualifiers were stripped in one step, now they are stripped one at a time
  107. starting with the left most qualifier. For example, int const*const
  108. is first stripped to int *const then int *.
  109. *** POTENTIAL INCOMPATIBILITY ***
  110. 2010-04-25: bhy
  111. [Python] Fix #2985655 - broken constructor renaming.
  112. 2010-04-14: wsfulton
  113. Typemap fragments are now official and documented in Typemaps.html.
  114. 2010-04-09: wsfulton
  115. [Ruby] Fix #2048064 and #2408020.
  116. Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
  117. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
  118. 2010-04-09: wsfulton
  119. [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
  120. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
  121. 2010-04-09: wsfulton
  122. [Python] Apply patch #2952374 - fix directors and the -nortti option.
  123. 2010-04-09: wsfulton
  124. [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
  125. 2010-04-03: wsfulton
  126. [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
  127. Fixes bug #2818499.
  128. 2010-04-03: wsfulton
  129. Fix Makefile targets: distclean and maintainer-clean
  130. 2010-04-02: wsfulton
  131. [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
  132. valid value. Bug reported by Gedalia Pasternak.
  133. 2010-04-01: wsfulton
  134. Numerous subtle typemap matching rule fixes when using the default type. The typemap
  135. matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
  136. then look for the next best match by reducing the chosen default type. The type deduction
  137. now follows C++ class template partial specialization matching rules.
  138. Below are the set of changes made showing the default type deduction
  139. along with the old reduced type and the new version of the reduced type:
  140. SWIGTYPE const &[ANY]
  141. new: SWIGTYPE const &[]
  142. old: SWIGTYPE (&)[ANY]
  143. SWIGTYPE *const [ANY]
  144. new: SWIGTYPE const [ANY]
  145. old: SWIGTYPE *[ANY]
  146. SWIGTYPE const *const [ANY]
  147. new: SWIGTYPE *const [ANY]
  148. old: SWIGTYPE const *[ANY]
  149. SWIGTYPE const *const &
  150. new: SWIGTYPE *const &
  151. old: SWIGTYPE const *&
  152. SWIGTYPE *const *
  153. new: SWIGTYPE const *
  154. old: SWIGTYPE **
  155. SWIGTYPE *const &
  156. new: SWIGTYPE const &
  157. old: SWIGTYPE *&
  158. Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
  159. T is some reduced type, eg int, struct Foo:
  160. T const
  161. new: SWIGTYPE const
  162. old: SWIGTYPE
  163. T *const
  164. new: SWIGTYPE *const
  165. old: SWIGTYPE *
  166. T const[]
  167. new: SWIGTYPE const[]
  168. old: SWIGTYPE[]
  169. enum T const
  170. new: enum SWIGTYPE const
  171. old: enum SWIGTYPE
  172. T (*const )[]
  173. new: SWIGTYPE (*const )[]
  174. old: SWIGTYPE (*)[]
  175. Reminder: the typemap matching rules can now be seen for any types being wrapped by using
  176. either the -debug-tmsearch or -debug-tmused options.
  177. In practice this leads to some subtle matching rule changes and the majority of users
  178. won't notice any changes, except in the prime area of motivation for this change: Improve
  179. STL containers of const pointers and passing const pointers by reference. This is fixed
  180. because many of the STL containers use a type 'T const&' as parameters and when T is
  181. a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
  182. means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
  183. const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
  184. when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
  185. *** POTENTIAL INCOMPATIBILITY ***
  186. 2010-03-13: wsfulton
  187. [Java] Some very old deprecated pragma warnings are now errors.
  188. 2010-03-13: wsfulton
  189. Improve handling of file names and directories containing double/multiple path separators.
  190. 2010-03-10: mutandiz (Mikel Bancroft)
  191. [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
  192. 2010-03-06: wsfulton
  193. [Java] The intermediary JNI class modifiers are now public by default meaning these
  194. intermediary low level functions are now accessible by default from outside any package
  195. used. The proxy class pointer constructor and getCPtr() methods are also now public.
  196. These are needed in order for the nspace option to work without any other mods.
  197. The previous default of protected access can be restored using:
  198. SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
  199. %pragma(java) jniclassclassmodifiers = "class"
  200. 2010-03-06: wsfulton
  201. [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
  202. 2010-03-04: wsfulton
  203. Added the nspace feature. This adds some improved namespace support. Currently only Java
  204. is supported for target languages, where C++ namespaces are automatically translated into
  205. Java packages. The feature only applies to classes,struct,unions and enums declared within
  206. a namespace. Methods and variables declared in namespaces still effectively have their
  207. namespaces flattened. Example usage:
  208. %feature(nspace) Outer::Inner1::Color;
  209. %feature(nspace) Outer::Inner2::Color;
  210. namespace Outer {
  211. namespace Inner1 {
  212. struct Color {
  213. ...
  214. };
  215. }
  216. namespace Inner2 {
  217. struct Color {
  218. ...
  219. };
  220. }
  221. }
  222. For Java, the -package option is also required when using the nspace feature. Say
  223. we use -package com.myco, the two classes can then be accessed as follows from Java:
  224. com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
  225. 2010-02-27: wsfulton
  226. [Python] Remove -dirvtable from the optimizations included by -O as it this option
  227. currently leads to memory leaks as reported by Johan Blake.
  228. 2010-02-27: wsfulton
  229. License code changes: SWIG Source is GPL-v3 and library code license is now clearer
  230. and is provided under a very permissive license. See http://www.swig.org/legal.html.
  231. 2010-02-13: wsfulton
  232. [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
  233. 2010-02-13: wsfulton
  234. [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
  235. used in various STL wrappers.
  236. 2010-02-13: wsfulton
  237. [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
  238. and class name have the same name, as reported by Nathan Krieger. Example:
  239. class Vector {};
  240. namespace Text {
  241. enum Preference { Vector };
  242. }
  243. This also fixes other incorrect corner case target language symbol name clashes.
  244. 2010-02-11: wsfulton
  245. Add the -debug-lsymbols option for displaying the target language layer symbols.
  246. 2010-02-09: wsfulton
  247. Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
  248. they should be.
  249. 2010-02-08: wsfulton
  250. Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
  251. on Windows, the file paths have been corrected to use single backslashes rather than double
  252. backslashes as path separators.
  253. 2010-02-06: wsfulton
  254. Fix #2918902 - language specific files not being generated in correct directory on
  255. Windows when using forward slashes for -o, for example:
  256. swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
  257. 2010-02-05: wsfulton
  258. Fix #2894405 - assertion when using -xmlout.
  259. 2010-01-28: wsfulton
  260. Fix typemap matching bug when a templated type has a typemap both specialized and not
  261. specialized. For example:
  262. template<typename T> struct XX { ... };
  263. %typemap(in) const XX & "..."
  264. %typemap(in) const XX< int > & "..."
  265. resulted in the 2nd typemap being applied for all T in XX< T >.
  266. 2010-01-22: wsfulton
  267. Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
  268. global scope, the typemap is now used in situations like this:
  269. struct X {};
  270. %typemap(in) const X & "..."
  271. void m(const ::X &);
  272. and this:
  273. struct X {};
  274. %typemap(in) const ::X & "..."
  275. void m(const X &);
  276. 2010-01-20: wsfulton
  277. Fix some unary scope operator (::) denoting global scope problems in the types generated
  278. into the C++ layer. Previously the unary scope operator was dropped in the generated code
  279. if the type had any sort of qualifier, for example when using pointers, references, like
  280. ::foo*, ::foo&, bar< ::foo* >.
  281. 2010-01-13: olly
  282. [PHP] Add datetime to the list of PHP predefined classes (patch
  283. from David Fletcher in SF#2931042).
  284. 2010-01-11: wsfulton
  285. Slight change to warning, error and diagnostic reporting. The warning number is no
  286. longer shown within brackets. This is to help default parsing of warning messages by
  287. other tools, vim on Unix in particular.
  288. Example original display using -Fstandard:
  289. example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
  290. New display:
  291. example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
  292. Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
  293. example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
  294. New display:
  295. example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
  296. 2010-01-10: wsfulton
  297. Fix a few inconsistencies in reporting of file/line numberings including modifying
  298. the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
  299. 2010-01-10: wsfulton
  300. Modify -debug-tags output to use standard file name/line reporting so that editors
  301. can easily navigate to the appropriate lines.
  302. Was typically:
  303. . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
  304. . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
  305. now:
  306. /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
  307. /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
  308. 2010-01-03: wsfulton
  309. Fix missing file/line numbers for typemap warnings and in output from the
  310. -debug-tmsearch/-debug-tmused options.
  311. 2010-01-03: wsfulton
  312. Add typemaps used debugging option (-debug-tmused). When used each line displays
  313. the typemap used for each type for which code is being generated including the file
  314. and line number related to the type. This is effectively a condensed form of the
  315. -debug-tmsearch option. Documented in Typemaps.html.
  316. 2009-12-23: wsfulton
  317. Fix for %javaexception and directors so that all the appropriate throws clauses
  318. are generated. Problem reported by Peter Greenwood.
  319. 2009-12-20: wsfulton
  320. Add -debug-tmsearch option for debugging the typemap pattern matching rules.
  321. Documented in Typemaps.html.
  322. 2009-12-12: wsfulton
  323. [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
  324. macro provided in the octave headers for determining the api version instead.
  325. 2009-12-04: olly
  326. [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
  327. SF#2859614.
  328. 2009-12-04: olly
  329. Fix handling of modulo operator (%) in constant expressions
  330. (SF#2818562).
  331. 2009-12-04: olly
  332. [PHP] "empty" is a reserved word in PHP, so rename empty() method
  333. on STL classes to "is_empty()" (previously this was automatically
  334. renamed to "c_empty()").
  335. *** POTENTIAL INCOMPATIBILITY ***
  336. 2009-12-03: olly
  337. [PHP] Add typemaps for long long and unsigned long long, and for
  338. pointer to method.
  339. 2009-12-02: olly
  340. [PHP] Fix warning and rename of reserved class name to be case
  341. insensitive.
  342. 2009-12-01: wsfulton
  343. Revert support for %extend and memberin typemaps added in swig-1.3.39. The
  344. memberin typemaps are ignored again for member variables within a %extend block.
  345. Documentation inconsistency reported by Torsten Landschoff.
  346. 2009-11-29: wsfulton
  347. [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
  348. static const char member variables.
  349. %javaconst(1) A;
  350. %csconst(1) A;
  351. struct X {
  352. static const char A = 'A';
  353. };
  354. 2009-11-26: wsfulton
  355. [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
  356. use the actual constant value if it is specified, rather than the C++ code to
  357. access the member.
  358. %javaconst(1) EN;
  359. %csconst(1) EN;
  360. struct X {
  361. static const int EN = 2;
  362. };
  363. 2009-11-23: wsfulton
  364. C++ nested typedef classes can now be handled too, for example:
  365. struct Outer {
  366. typedef Foo { } FooTypedef1, FooTypedef2;
  367. };
  368. 2009-11-18: wsfulton
  369. The wrappers for C nested structs are now generated in the same order as declared
  370. in the parsed code.
  371. 2009-11-18: wsfulton
  372. Fix #491476 - multiple declarations of nested structs, for example:
  373. struct Outer {
  374. struct {
  375. int val;
  376. } inner1, inner2, *inner3, inner4[1];
  377. } outer;
  378. 2009-11-17: wsfulton
  379. Fix parsing of enum declaration and initialization, for example:
  380. enum ABC {
  381. a,
  382. b,
  383. c
  384. } A = a, *pC = &C, array[3] = {a, b, c};
  385. 2009-11-17: wsfulton
  386. Fix parsing of struct declaration and initialization, for example:
  387. struct S {
  388. int x;
  389. } instance = { 10 };
  390. 2009-11-15: wsfulton
  391. Fix #1960977 - Syntax error parsing derived nested class declaration and member
  392. variable instance.
  393. 2009-11-14: wsfulton
  394. Fix #2310483 - function pointer typedef within extern "C" block.
  395. 2009-11-13: wsfulton
  396. Fix usage of nested template classes within templated classes so that compileable code
  397. is generated.
  398. 2009-11-13: olly
  399. [php] Fix place where class prefix (as specified with -prefix)
  400. wasn't being used. Patch from gverbruggen in SF#2892647.
  401. 2009-11-12: wsfulton
  402. Fix usage of nested template classes so that compileable code is generated - the nested
  403. template class is now treated like a normal nested classes, that is, as an opaque type
  404. unless the nestedworkaround feature is used.
  405. 2009-11-12: wsfulton
  406. Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
  407. SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
  408. Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
  409. %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
  410. but clearly unnamed nested classes cannot and the global suppression is still required, eg:
  411. #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
  412. 2009-11-11: wsfulton
  413. Added the nestedworkaround feature as a way to use the full functionality of a nested class
  414. (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
  415. had never parsed the nested class. The documented nested class workarounds using a global
  416. fake class stopped working when SWIG treated the nested class as an opaque pointer, and
  417. this feature reverts this behaviour. The documentation has been updated with details of how
  418. to use and implement it, see the "Nested classes" section in SWIGPlus.html.
  419. 2009-11-11: wsfulton
  420. There were a number of C++ cases where nested classes/structs/unions were being handled
  421. as if C code was being parsed which would oftentimes lead to uncompileable code as an
  422. attempt was made to wrap the nested structs like it is documented for C code. Now all
  423. nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
  424. there is an improvement as usage of nested structs/classes/unions is now always treated
  425. as an opaque type by default, resulting in generated code that should always compile.
  426. *** POTENTIAL INCOMPATIBILITY ***
  427. 2009-11-09: drjoe
  428. Fix R for -fcompact and add std_map.i
  429. 2009-11-08: wsfulton
  430. Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
  431. generated when inner struct and union declarations were used as types within the
  432. inner struct. The inner struct/union is now treated as a forward declaration making the
  433. behaviour the same as an inner class. (C++ code), eg:
  434. struct Outer {
  435. struct InnerStruct { int x; };
  436. InnerStruct* getInnerStruct();
  437. };
  438. 2009-11-08: wsfulton
  439. Ignored nested class/struct warnings now display the name of the ignored class/struct.
  440. 2009-11-07: wsfulton
  441. Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
  442. code and introduced strange side effects to other wrapper code especially code
  443. after the nested template class. Note that nested template classes are still ignored.
  444. 2009-11-07: wsfulton
  445. Add new debug options:
  446. -debug-symtabs - Display symbol tables information
  447. -debug-symbols - Display target language symbols in the symbol tables
  448. -debug-csymbols - Display C symbols in the symbol tables
  449. 2009-11-03: wsfulton
  450. Fix some usage of unary scope operator (::) denoting global scope, for example:
  451. namespace AA { /* ... */ }
  452. using namespace ::AA;
  453. and bug #1816802 - SwigValueWrapper should be used:
  454. struct CC {
  455. CC(int); // no default constructor
  456. };
  457. ::CC x();
  458. and in template parameter specializations:
  459. struct S {};
  460. template <typename T> struct X { void a() {}; };
  461. template <> struct X<S> { void b() {}; };
  462. %template(MyTConcrete) X< ::S >;
  463. plus probably some other corner case usage of ::.
  464. 2009-11-02: olly
  465. [Python] Fix potential memory leak in initialisation code for the
  466. generated module.
  467. 2009-10-23: wsfulton
  468. Fix seg fault when using a named nested template instantiation using %template(name)
  469. within a class. A warning that these are not supported is now issued plus processing
  470. continues as if no name was given.
  471. 2009-10-20: wsfulton
  472. [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
  473. 2009-10-20: wsfulton
  474. Fixed previously fairly poor template partial specialization and explicit
  475. specialization support. Numerous bugs in this area have been fixed including:
  476. - Template argument deduction implemented for template type arguments, eg this now
  477. works:
  478. template<typename T> class X {};
  479. template<typename T> class X<T *> {};
  480. %template(X1) X<const int *>; // Chooses T * specialization
  481. and more complex cases with multiple parameters and a mix of template argument
  482. deduction and explicitly specialised parameters, eg:
  483. template <typename T1, typename T2> struct TwoParm { void a() {} };
  484. template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
  485. %template(E) TwoParm<int **, int *>;
  486. Note that the primary template must now be in scope, like in C++, when
  487. an explicit or partial specialization is instantiated with %template.
  488. *** POTENTIAL INCOMPATIBILITY ***
  489. 2009-09-14: wsfulton
  490. [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
  491. 2009-09-11: wsfulton
  492. Fix memmove regression in cdata.i as reported by Adriaan Renting.
  493. 2009-09-07: wsfulton
  494. Fix constant expressions containing <= or >=.
  495. 2009-09-02: wsfulton
  496. The following operators in constant expressions now result in type bool for C++
  497. wrappers and remain as type int for C wrappers, as per each standard:
  498. && || == != < > <= >= (Actually the last 4 are still broken). For example:
  499. #define A 10
  500. #define B 10
  501. #define A_EQ_B A == B // now wrapped as type bool for C++
  502. #define A_AND_B A && B // now wrapped as type bool for C++
  503. 2009-09-02: wsfulton
  504. Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
  505. Constants such as the following are now wrapped (as type bool):
  506. #define FOO true
  507. #define BAR FOO && false
  508. Version 1.3.40 (18 August 2009)
  509. ===============================
  510. 2009-08-17: olly
  511. [Perl] Add "#undef do_exec" to our clean up of Perl global
  512. namespace pollution.
  513. 2009-08-17: olly
  514. [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
  515. 2009-08-17: wsfulton
  516. Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html
  517. is not available.
  518. 2009-08-16: wsfulton
  519. [Octave] Caught exceptions display the type of the C++ exception instead of the
  520. generic "c++-side threw an exception" message.
  521. 2009-08-16: wsfulton
  522. [Java] When %catches is used, fix so that any classes specified in the "throws"
  523. attribute of the "throws" typemap are generated into the Java method's throws clause.
  524. 2009-08-16: wsfulton
  525. [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
  526. 2009-08-15: wsfulton
  527. Fix %template seg fault on some cases of overloading the templated method.
  528. Bug reported by Jan Kupec.
  529. 2009-08-15: wsfulton
  530. [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
  531. as reported by Youssef Jones.
  532. 2009-08-14: wsfulton
  533. [Perl] Add SWIG_ConvertPtrAndOwn() method into the runtime for smart pointer
  534. memory ownership control. shared_ptr support still to be added. Patch from
  535. David Fletcher.
  536. 2009-08-14: olly
  537. [PHP] PHP5 now wraps static member variables as documented.
  538. 2009-08-14: olly
  539. [PHP] Update the PHP "class" example to work with PHP5 and use
  540. modern wrapping features.
  541. 2009-08-13: wsfulton
  542. [PHP] std::vector wrappers overhaul. They no longer require the
  543. specialize_std_vector() macro. Added wrappers for capacity() and reserve().
  544. 2009-08-13: wsfulton
  545. [PHP] Add const reference typemaps. const reference primitive types are
  546. now passed by value rather than pointer like the other target languages.
  547. Fixes SF#2524029.
  548. 2009-08-08: wsfulton
  549. [Python] More user friendly AttributeError is raised when there are
  550. no constructors generated for the proxy class in the event that the
  551. class is abstract - the error message is now
  552. "No constructor defined - class is abstract" whereas if there are no
  553. public constructors for any other reason and the class is not abstract,
  554. the message remains
  555. "No constructor defined".
  556. [tcl] Similarly for tcl when using -itcl.
  557. 2009-08-04: olly
  558. [PHP] Fix generated code to work with PHP 5.3.
  559. 2009-08-04: vmiklos
  560. [PHP] Various mathematical functions (which would conflict
  561. with the built-in PHP ones) are now automatically handled by
  562. adding a 'c_' prefix.
  563. 2009-08-03: wsfulton
  564. [C#] The std::vector<T> implementation is improved and now uses $typemap such
  565. that the proxy class for T no longer has to be specified in some macros
  566. for correct C# compilation; the following macros are deprecated, where
  567. CSTYPE was the C# type for the C++ class CTYPE:
  568. SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
  569. usage should be removed altogether
  570. SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
  571. should be replaced with:
  572. SWIG_STD_VECTOR_ENHANCED(CTYPE)
  573. Some more details in csharp/std_vector.i
  574. *** POTENTIAL INCOMPATIBILITY ***
  575. 2009-07-31: olly
  576. [Python] Fix indentation so that we give a useful error if the
  577. module can't be loaded. Patch from Gaetan Lehmann in SF#2829853.
  578. 2009-07-29: wsfulton
  579. Add $typemap(method, typelist) special variable macro. This allows
  580. the contents of a typemap to be inserted within another typemap.
  581. Fully documented in Typemaps.html.
  582. 2009-07-29: vmiklos
  583. [PHP] Static member variables are now prefixed with the
  584. class name. This allows static member variables with the
  585. same name in different classes.
  586. 2009-07-29: olly
  587. [Python] Add missing locks to std::map wrappers. Patch from
  588. Paul Hampson in SF#2813836.
  589. 2009-07-29: olly
  590. [PHP] Fix memory leak in PHP OUTPUT typemaps. Reported by Hitoshi
  591. Amano in SF#2826322.
  592. 2009-07-29: olly
  593. [PHP] Fix memory leak in PHP resource destructor for classes
  594. without a destructor and non-class types. Patch from Hitoshi Amano
  595. in SF#2825303.
  596. 2009-07-28: olly
  597. [PHP] Update warnings about clashes between identifiers and PHP
  598. keywords and automatic renaming to work with the PHP5 class
  599. wrappers. Fixes SF#1613679.
  600. 2009-07-28: vmiklos
  601. [PHP] If a member function is not public but it has a base
  602. which is public, then now a warning is issued and the member
  603. function will be public, as PHP requires this.
  604. 2009-07-21: vmiklos
  605. [PHP] Director support added.
  606. 2009-07-15: olly
  607. [Perl] Don't specify Perl prototype "()" for a constructor with a
  608. different name to the class, as such constructors can still take
  609. parameters.
  610. 2009-07-12: xavier98
  611. [Octave] Add support for Octave 3.2 API
  612. 2009-07-05: olly
  613. [PHP] Update the list of PHP keywords - "cfunction" is no longer a
  614. keyword in PHP5 and PHP 5.3 added "goto", "namespace", "__DIR__",
  615. and "__NAMESPACE__".
  616. 2009-07-03: olly
  617. [Tcl] To complement USE_TCL_STUBS, add support for USE_TK_STUBS
  618. and SWIG_TCL_STUBS_VERSION. Document all three in the Tcl chapter
  619. of the manual. Based on patch from SF#2810380 by Christian
  620. Gollwitzer.
  621. 2009-07-02: vmiklos
  622. [PHP] Added factory.i for PHP, see the li_factory testcase
  623. for more info on how to use it.
  624. 2009-07-02: wsfulton
  625. Fix -Wallkw option as reported by Solomon Gibbs.
  626. 2009-07-02: wsfulton
  627. Fix syntax error when a nested struct contains a comment containing a * followed
  628. eventually by a /. Regression from 1.3.37, reported by Solomon Gibbs.
  629. 2009-07-01: vmiklos
  630. [PHP] Unknown properties are no longer ignored in proxy
  631. classes.
  632. 2009-07-01: vmiklos
  633. [PHP] Fixed %newobject behaviour, previously any method
  634. marked with %newobject was handled as a constructor.
  635. 2009-06-30: olly
  636. [Ruby] Undefine close and connect macros defined by Ruby API
  637. headers as we don't need them and they can clash with C++ methods
  638. being wrapped. Patch from Vit Ondruch in SF#2814430.
  639. 2009-06-26: olly
  640. [Ruby] Fix to handle FIXNUM values greater than MAXINT passed for a
  641. double parameter.
  642. 2009-06-24: wsfulton
  643. Fix wrapping methods with default arguments and the compactdefaultargs feature
  644. where a class is passed by value and is assigned a default value. The SwigValueWrapper
  645. template workaround for a missing default constructor is no longer used as the code
  646. generated does not call the default constructor.
  647. 2009-06-16: wsfulton
  648. [Java,C#] Fix enum marshalling when %ignore is used on one of the enum items.
  649. Incorrect enum values were being passed to the C++ layer or compilation errors resulted.
  650. 2009-06-02: talby
  651. [Perl] Resolved reference.i overload support problem
  652. identified by John Potowsky.
  653. 2009-05-26: wsfulton
  654. [C#] Improved std::map wrappers based on patch from Yuval Baror. The C# proxy
  655. now implements System.Collections.Generic.IDictionary<>.
  656. These std:map wrappers have a non-backwards compatible overhaul to make them
  657. like a .NET IDictionary. Some method names have changed as following:
  658. set -> setitem (use this[] property now)
  659. get -> getitem (use this[] property now)
  660. has_key -> ContainsKey
  661. del -> Remove
  662. clear -> Clear
  663. The following macros used for std::map wrappers are deprecated and will no longer work:
  664. specialize_std_map_on_key
  665. specialize_std_map_on_value
  666. specialize_std_map_on_both
  667. *** POTENTIAL INCOMPATIBILITY ***
  668. 2009-05-20: vmiklos
  669. [PHP] Add the 'thisown' member to classes. The usage of it
  670. is the same as the Python thisown one: it's 1 by default and
  671. you can set it to 0 if you want to prevent freeing it. (For
  672. example to prevent a double free.)
  673. 2009-05-14: bhy
  674. [Python] Fix the wrong pointer value returned by SwigPyObject_repr().
  675. 2009-05-13: mutandiz (Mikel Bancroft)
  676. [allegrocl] Minor tweak when wrapping in -nocwrap mode.
  677. 2009-05-11: wsfulton
  678. [C#] Improved std::vector wrappers on the C# proxy side from Yuval Baror. These
  679. implement IList<> instead of IEnumerable<> where possible.
  680. 2009-04-29: wsfulton
  681. [Java, C#] Add the 'notderived' attribute to the javabase and csbase typemaps.
  682. When this attribute is set, the typemap will not apply to classes that are derived
  683. from a C++ base class, eg
  684. %typemap(csbase, notderived="1") SWIGTYPE "CommonBase"
  685. 2009-04-29: olly
  686. [Python] Don't attempt to acquire the GIL in situations where we
  687. know that it will already be locked. This avoids some dead-locks
  688. with mod_python (due to mod_python bugs which are apparently
  689. unlikely to ever be fixed), and results in smaller wrappers which
  690. run a little faster (in tests with Xapian on x86-64 Ubuntu 9.04,
  691. the stripped wrapper library was 11% smaller and ran 2.7% faster).
  692. 2009-04-21: wsfulton
  693. [C#] Fix #2753469 - bool &OUTPUT and bool *OUTPUT typemaps initialisation.
  694. 2009-04-09: wsfulton
  695. Fix #2746858 - C macro expression using floating point numbers
  696. 2009-03-30: olly
  697. [PHP] The default out typemap for char[ANY] now returns the string up to a
  698. zero byte, or the end of the array if there is no zero byte. This
  699. is the same as Python does, and seems more generally useful than
  700. the previous behaviour of returning the whole contents of the array
  701. including any zero bytes. If you want the old behaviour, you can provide
  702. your own typemap to do this:
  703. %typemap(out) char [ANY]
  704. %{
  705. RETVAL_STRINGL($1, $1_dim0, 1);
  706. %}
  707. Version 1.3.39 (21 March 2009)
  708. ==============================
  709. 2009-03-19: bhy
  710. [Python] Fix the memory leak related to Python 3 unicode and C char* conversion,
  711. which can be shown in the following example before this fix:
  712. from li_cstring import *
  713. i=0
  714. while True:
  715. i += 1
  716. n = str(i)*10
  717. test3(n)
  718. This fix affected SWIG_AsCharPtrAndSize() so you cannot call this function with
  719. a null alloc and non-null cptr argument in Python 3, otherwise a runtime error
  720. will be raised.
  721. 2009-03-18: wsfulton
  722. [C#] std::vector<T> wrapper improvements for .NET 2 and also providing the
  723. necessary machinery to use the std::vector<T> wrappers with more advanced features such
  724. as LINQ - the C# proxy class now derives from IEnumerable<>. The default is now to
  725. generate code requiring .NET 2 as a minimum, although the C# code can be compiled
  726. for .NET 1 by defining the SWIG_DOTNET_1 C# preprocessor constant. See the
  727. std_vector.i file for more details.
  728. *** POTENTIAL INCOMPATIBILITY ***
  729. 2009-03-12: wsfulton
  730. [Ruby] Fix #2676738 SWIG generated symbol name clashes.
  731. 2009-03-01: bhy
  732. [Python] Some fixes for Python 3.0.1 and higher support. In 3.0.1, the C API function
  733. PyObject_Compare is removed, so PyObject_RichCompareBool is used for replacement.
  734. Struct initilization of SwigPyObject and SwigPyObject_as_number changed to reflect
  735. the drop of tp_compare and nb_long.
  736. 2009-03-01: bhy
  737. [Python] Fix SF#2583160. Now the importer in Python shadow wrapper take care of the
  738. case that module already imported at other place.
  739. 2009-02-28: bhy
  740. [Python] Fix SF#2637352. Move struct declaration of SWIG_module in pyinit.swg before
  741. the method calls, since some C compiler don't allow declaration in middle of function
  742. body.
  743. 2009-02-21: wsfulton
  744. [Allegrocl] Fix seg fault wrapping some constant variable (%constant) types.
  745. 2009-02-20: wsfulton
  746. [CFFI] Fix seg faults when for %extend and using statements.
  747. 2009-02-20: wsfulton
  748. Fix SF #2605955: -co option which broke in 1.3.37.
  749. 2009-02-20: wsfulton
  750. New %insert("begin") section added. Also can be used as %begin. This is a new
  751. code section reserved entirely for users and the code within the section is generated
  752. at the top of the C/C++ wrapper file and so provides a means to put custom code
  753. into the wrapper file before anything else that SWIG generates.
  754. 2009-02-17: wsfulton
  755. 'make clean-test-suite' will now run clean on ALL languages. Previously it only
  756. ran the correctly configured languages. This way it is now possible to clean up
  757. properly after running 'make partialcheck-test-suite'.
  758. 2009-02-14: wsfulton
  759. Extend attribute library support for structs/classes and the accessor functions use
  760. pass/return by value semantics. Two new macros are available and usage is identical
  761. to %attribute. These are %attributeval for structs/classes and %attributestring for
  762. string classes, like std::string. See attribute.swg for more details.
  763. 2009-02-13: wsfulton
  764. Add support for %extend and memberin typemaps. Previously the memberin typemaps were
  765. ignored for member variables within a %extend block.
  766. 2009-02-12: wsfulton
  767. Remove unnecessary temporary variable when wrapping return values that are references.
  768. Example of generated code for wrapping:
  769. struct XYZ {
  770. std::string& refReturn();
  771. };
  772. used to be:
  773. std::string *result = 0 ;
  774. ...
  775. {
  776. std::string &_result_ref = (arg1)->refReturn();
  777. result = (std::string *) &_result_ref;
  778. }
  779. Now it is:
  780. std::string *result = 0 ;
  781. ...
  782. result = (std::string *) &(arg1)->refReturn();
  783. 2009-02-08: bhy
  784. Change the SIZE mapped by %pybuffer_mutable_binary and %pybuffer_binary in pybuffer.i from
  785. the length of the buffer to the number of items in the buffer.
  786. 2009-02-08: wsfulton
  787. Fix %feature not working for conversion operators, reported by Matt Sprague, for example:
  788. %feature("cs:methodmodifiers") operator bool "protected";
  789. 2009-02-07: wsfulton
  790. [MzScheme] Apply #2081967 configure changes for examples to build with recent PLT versions.
  791. Also fixes Makefile errors building SWIG executable when mzscheme package is installed
  792. (version 3.72 approx and later).
  793. 2009-02-04: talby
  794. [Perl] Fix SF#2564192 reported by David Kolovratnk.
  795. SWIG_AsCharPtrAndSize() now handles "get" magic.
  796. Version 1.3.38 (31 January 2009)
  797. ================================
  798. 2009-01-31: bhy
  799. [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend
  800. and %pythonappend have correct indentation.
  801. 2009-01-31: bhy
  802. [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list
  803. of static member function in generated proxy code should not have the
  804. 'self' parameter.
  805. 2009-01-29: wsfulton
  806. Fix regression introduced in 1.3.37 where the default output directory
  807. for target language specific files (in the absence of -outdir) was no
  808. longer the same directory as the generated c/c++ file.
  809. 2009-01-28: wsfulton
  810. [Java, C#] Fix proxy class not being used when the global scope operator
  811. was used for parameters passed by value. Reported by David Piepgrass.
  812. 2009-01-15: wsfulton
  813. [Perl] Fix seg fault when running with -v option, reported by John Ky.
  814. Version 1.3.37 (13 January 2009)
  815. ================================
  816. 2009-01-13: mgossage
  817. [Lua] Added contract support for requiring that unsigned numbers are >=0
  818. Rewrote much of Examples/Lua/embed3.
  819. Added a lot to the Lua documentation.
  820. 2009-01-13: wsfulton
  821. Fix compilation error when using directors on protected virtual overloaded
  822. methods reported by Sam Hendley.
  823. 2009-01-12: drjoe
  824. [R] Fixed handling of integer arrays
  825. 2009-01-10: drjoe
  826. [R] Fix integer handling in r to deal correctly with signed
  827. and unsigned issues
  828. 2009-01-10: wsfulton
  829. Patch #1992756 from Colin McDonald - %contract not working for classes
  830. in namespace
  831. 2009-01-05: olly
  832. Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source
  833. code and remove documentation of them.
  834. 2008-12-30: wsfulton
  835. Bug #2430756. All the languages now define a macro in the generated C/C++
  836. wrapper file indicating which language is being wrapped. The macro name is the
  837. same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc
  838. and are listed in the "Conditional Compilation" section in the documentation.
  839. 2008-12-23: wsfulton
  840. [Java] Fix #2153773 - %nojavaexception was clearing the exception feature
  841. instead of disabling it. Clearing checked Java exceptions also didn't work.
  842. The new %clearjavaexception can be used for clearing the exception feature.
  843. 2008-12-22: wsfulton
  844. Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors
  845. throw exceptions.
  846. 2008-12-21: wsfulton
  847. Apply patch #2440046 which fixes possible seg faults for member and global
  848. variable char arrays when the strings are larger than the string array size.
  849. 2008-12-20: wsfulton
  850. The ccache compiler cache has been adapted to work with SWIG and
  851. named ccache-swig. It now works with C/C++ compilers as well as SWIG
  852. and can result in impressive speedups when used to recompile unchanged
  853. code with either a C/C++ compiler or SWIG. Documentation is in CCache.html
  854. or the installed ccache-swig man page.
  855. 2008-12-12: wsfulton
  856. Apply patch from Kalyanov Dmitry which fixes parsing of nested structs
  857. containing comments.
  858. 2008-12-12: wsfulton
  859. Fix error message in some nested struct and %inline parsing error situations
  860. such as unterminated strings and comments.
  861. 2008-12-07: olly
  862. [PHP] Fix warnings when compiling generated wrapper with GCC 4.3.
  863. 2008-12-06: wsfulton
  864. [PHP] Deprecate %pragma(php4). Please use %pragma(php) instead.
  865. The following two warnings have been renamed:
  866. WARN_PHP4_MULTIPLE_INHERITANCE -> WARN_PHP_MULTIPLE_INHERITANCE
  867. WARN_PHP4_UNKNOWN_PRAGMA -> WARN_PHP_UNKNOWN_PRAGMA
  868. *** POTENTIAL INCOMPATIBILITY ***
  869. 2008-12-04: bhy
  870. [Python] Applied patch SF#2158938: all the SWIG symbol names started with Py
  871. are changed, since they are inappropriate and discouraged in Python
  872. documentation (from http://www.python.org/doc/2.5.2/api/includes.html):
  873. "All user visible names defined by Python.h (except those defined by
  874. the included standard headers) have one of the prefixes "Py" or "_Py".
  875. Names beginning with "_Py" are for internal use by the Python implementation
  876. and should not be used by extension writers. Structure member names do
  877. not have a reserved prefix.
  878. Important: user code should never define names that begin with "Py" or "_Py".
  879. This confuses the reader, and jeopardizes the portability of the user
  880. code to future Python versions, which may define additional names beginning
  881. with one of these prefixes."
  882. Here is a brief list of what changed:
  883. PySwig* -> SwigPy*
  884. PyObject_ptr -> SwigPtr_PyObject
  885. PyObject_var -> SwigVar_PyObject
  886. PySequence_Base, PySequence_Cont, PySequence_Ref ->
  887. SwigPySequence_Base, SwigPySequence_Cont, SwigPySequence_Ref
  888. PyMap* -> SwigPyMap*
  889. We provided a pyname_compat.i for backward compatibility. Users whose code having
  890. these symbols and do not want to change it could simply include this file
  891. at front of your code. A better solution is to run the converting tool on
  892. your code, which has been put in SWIG's SVN trunk (Tools/pyname_patch.py) and
  893. you can download it here:
  894. https://swig.svn.sourceforge.net/svnroot/swig/trunk/Tools/pyname_patch.py
  895. *** POTENTIAL INCOMPATIBILITY ***
  896. 2008-12-02: wsfulton
  897. [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes
  898. when the package option is specified in %module and that module is %import'ed.
  899. 2008-11-28: wsfulton
  900. [UTL] Fix #2080497. Some incorrect acceptance of types in the STL, eg a double * element
  901. passed into a vector<int *> constructor would be accepted, but the ensuing behaviour
  902. was undefined. Now the type conversion correctly raises an exception.
  903. 2008-11-24: wsfulton
  904. Add -outcurrentdir option. This sets the default output directory to the current
  905. directory instead of the path specified by the input file. This option enables
  906. behaviour similar to c/c++ compilers. Note that this controls the output directory,
  907. but only in the absence of the -o and/or -outdir options.
  908. 2008-11-23: wsfulton
  909. [ruby] Apply patch #2263850 to fix ruby/file.i ... rubyio.h filename change in
  910. ruby 1.9.
  911. 2008-11-23: wsfulton
  912. Apply patch #2319790 from Johan Hake to fix shared_ptr usage in std::tr1 namespace.
  913. 2008-11-21: wsfulton
  914. The use of the include path to find the input file is now deprecated.
  915. This makes the behaviour of SWIG the same as C/C++ compilers in preparation
  916. for use with ccache.
  917. 2008-11-16: wsfulton
  918. Fix -nopreprocess option to:
  919. - correctly report file names in warning and error messages.
  920. - use the original input filename that created the preprocessed output when
  921. determining the C++ wrapper file name (in the absence of -o). Previously
  922. the name of the input file containing the preprocessed output was used.
  923. 2008-11-11: wsfulton
  924. [Java] Add patch #2152691 from MATSUURA Takanori which fixes compiles using the
  925. Intel compiler
  926. 2008-11-01: wsfulton
  927. Add patch #2128249 from Anatoly Techtonik which corrects the C/C++ proxy
  928. class being reported for Python docstrings when %rename is used.
  929. 2008-11-01: wsfulton
  930. Add the strip encoder patch from Anatoly Techtonik #2130016. This enables an
  931. easy way to rename symbols by stripping a commonly used prefix in all the
  932. function/struct names. It works in the same way as the other encoders, such as
  933. title, lower, command etc outlined in CHANGES file dated 12/30/2005. Example
  934. below will rename wxAnotherWidget to AnotherWidget and wxDoSomething to
  935. DoSomething:
  936. %rename("%(strip:[wx])s") "";
  937. struct wxAnotherWidget {
  938. void wxDoSomething();
  939. };
  940. 2008-09-26: mutandiz
  941. [allegrocl]
  942. Lots of test-suite work.
  943. - Fix ordering of wrapper output and %{ %} header output.
  944. - Fix declarations of local vars in C wrappers.
  945. - Fix declaration of defined constants in C wrappers.
  946. - Fix declaration of EnumValues in C wrappers.
  947. - add some const typemaps to allegrocl.swg
  948. - add rename for operator bool() overloads.
  949. 2008-09-25: olly
  950. [PHP5] Fill in typemaps for SWIGTYPE and void * (SF#2095186).
  951. 2008-09-22: mutandiz (Mikel Bancroft)
  952. [allegrocl]
  953. - Support wrapping of types whose definitions are not seen by
  954. SWIG. They are treated as forward-referenced classes and if a
  955. definition is not seen are treated as (* :void).
  956. - Don't wrap the contents of unnamed namespaces.
  957. - More code cleanup. Removed some extraneous warnings.
  958. - start work on having the allegrocl mod pass the cpp test-suite.
  959. 2008-09-19: olly
  960. [PHP5] Add typemaps for long long and unsigned long long.
  961. 2008-09-18: wsfulton
  962. [C#] Added C# array typemaps provided by Antti Karanta.
  963. The arrays provide a way to use MarshalAs(UnmanagedType.LPArray)
  964. and pinning the array using 'fixed'. See arrays_csharp.i library file
  965. for details.
  966. 2008-09-18: wsfulton
  967. Document the optional module attribute in the %import directive,
  968. see Modules.html. Add a warning for Python wrappers when the
  969. module name for an imported base class is missing, requiring the
  970. module attribute to be added to %import, eg
  971. %import(module="FooModule") foo.h
  972. 2008-09-18: olly
  973. [PHP5] Change the default input typemap for char * to turn PHP
  974. Null into C NULL (previously it was converted to an empty string).
  975. The new behaviour is consistent with how the corresponding output
  976. typemap works (SF#2025719).
  977. If you want to keep the old behaviour, add the following typemap
  978. to your interface file (PHP's convert_to_string_ex() function does
  979. the converting from PHP Null to an empty string):
  980. %typemap(in) char * {
  981. convert_to_string_ex($input);
  982. $1 = Z_STRVAL_PP($input);
  983. }
  984. 2008-09-18: olly
  985. [PHP5] Fix extra code added to proxy class constructors in the case
  986. where the only constructor takes no arguments.
  987. 2008-09-18: olly
  988. [PHP5] Fix wrapping of a renamed enumerated value of an enum class
  989. member (SF#2095273).
  990. 2008-09-17: mutandiz (Mikel Bancroft)
  991. [allegrocl]
  992. - Fix how forward reference typedefs are handled, so as not to conflict
  993. with other legit typedefs.
  994. - Don't (for now) perform an ffitype typemap lookup when trying to
  995. when calling compose_foreign_type(). This is actually a useful thing
  996. to do in certain cases, the test cases for which I can't currently
  997. locate :/. It's breaking some wrapping behavior that is more commonly
  998. seen, however. I'll readd in a more appropriate way when I can
  999. recreate the needed test case, or a user complains (which means
  1000. they probably have a test case).
  1001. - document the -isolate command-line arg in the 'swig -help' output.
  1002. It was in the html docs, but not there.
  1003. - small amount of code cleanup, removed some unused code.
  1004. - some minor aesthetic changes.
  1005. 2008-09-12: bhy
  1006. [Python] Python 3.0 support branch merged into SWIG trunk. Thanks to
  1007. Google Summer of Code 2008 for supporting this project! By default
  1008. SWIG will generate interface files compatible with both Python 2.x
  1009. and 3.0. And there's also some Python 3 new features that can be
  1010. enabled by passing a "-py3" command line option to SWIG. These
  1011. features are:
  1012. - Function annotation support
  1013. Also, the parameter list of proxy function will be generated,
  1014. even without the "-py3" option. However, the parameter list
  1015. will fallback to *args if the function (or method) is overloaded.
  1016. - Buffer interface support
  1017. - Abstract base class support
  1018. For details of Python 3 support and these features, please see the
  1019. "Python 3 Support" section in the "SWIG and Python" chapter of the SWIG
  1020. documentation.
  1021. The "-apply" command line option and support of generating codes
  1022. using apply() is removed. Since this is only required by very old
  1023. Python.
  1024. This merge also patched SWIG's parser to solve a bug. By this patch,
  1025. SWIG features able to be correctly applied on C++ conversion operator,
  1026. such like this:
  1027. %feature("shadow") *::operator bool %{ ... %}
  1028. 2008-09-02: richardb
  1029. [Python] Commit patch #2089149: Director exception handling mangles
  1030. returned exception. Exceptions raised by Python code in directors
  1031. are now passed through to the caller without change. Also, remove
  1032. the ": " prefix which used to be added to other director exceptions
  1033. (eg, those due to incorrect return types).
  1034. 2008-09-02: wsfulton
  1035. [Python] Commit patch #1988296 GCItem multiple module linking issue when using
  1036. directors.
  1037. 2008-09-02: wsfulton
  1038. [C#] Support for 'using' and 'fixed' blocks in the 'csin' typemap is now
  1039. possible through the use of the pre attribute and the new terminator attribute, eg
  1040. %typemap(csin,
  1041. pre=" using (CDate temp$csinput = new CDate($csinput)) {",
  1042. terminator=" } // terminate temp$csinput using block",
  1043. ) const CDate &
  1044. "$csclassname.getCPtr(temp$csinput)"
  1045. See CSharp.html for more info.
  1046. 2008-09-01: wsfulton
  1047. [CFFI] Commit patch #2079381 submitted by Boris Smilga - constant exprs put into
  1048. no-eval context in DEFCENUM
  1049. 2008-08-02: wuzzeb
  1050. [Chicken,Allegro] Commit Patch 2019314
  1051. Fixes a build error in chicken, and several build errors and other errors
  1052. in Allegro CL
  1053. 2008-07-19: wsfulton
  1054. Fix building of Tcl examples/test-suite on Mac OSX reported by Gideon Simpson.
  1055. 2008-07-17: wsfulton
  1056. Fix SF #2019156 Configuring with --without-octave or --without-alllang
  1057. did not disable octave.
  1058. 2008-07-14: wsfulton
  1059. [Java, C#] Fix director typemaps for pointers so that NULL pointers are correctly
  1060. marshalled to C#/Java null in director methods.
  1061. 2008-07-04: olly
  1062. [PHP] For std_vector.i and std_map.i, rename empty() to is_empty()
  1063. since "empty" is a PHP reserved word. Based on patch from Mark Klein
  1064. in SF#1943417.
  1065. 2008-07-04: olly
  1066. [PHP] The deprecated command line option "-make" has been removed.
  1067. Searches on Google codesearch suggest that nobody is using it now
  1068. anyway.
  1069. 2008-07-04: olly
  1070. [PHP] The SWIG cdata.i library module is now supported.
  1071. 2008-07-03: olly
  1072. [PHP] The deprecated command line option "-phpfull" has been
  1073. removed. We recommend building your extension as a dynamically
  1074. loadable module.
  1075. 2008-07-02: olly
  1076. [PHP4] Support for PHP4 has been removed. The PHP developers are
  1077. no longer making new PHP4 releases, and won't even be providing
  1078. patches for critical security issues after 2008-08-08.
  1079. 2008-07-02: olly
  1080. [Python] Import the C extension differently for Python 2.6 and
  1081. later so that an implicit relative import doesn't produce a
  1082. deprecation warning for 2.6 and a failure for 2.7 and later.
  1083. Patch from Richard Boulton in SF#2008229, plus follow-up patches
  1084. from Richard and Haoyu Bai.
  1085. Version 1.3.36 (24 June 2008)
  1086. =============================
  1087. 06/24/2008: wsfulton
  1088. Remove deprecated -c commandline option (runtime library generation).
  1089. 06/24/2008: olly
  1090. [PHP] Fix assertion failure when handling %typemap(in,numinputs=0)
  1091. (testcase ignore_parameter).
  1092. 06/24/2008: olly
  1093. [PHP] Fix segfault when wrapping a non-class function marked with
  1094. %newobject (testcase char_strings).
  1095. 06/22/2008: wsfulton
  1096. [Java] Add a way to use AttachCurrentThreadAsDaemon instead of AttachCurrentThread
  1097. in director code. Define the SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON macro, see
  1098. Lib/java/director.swg.
  1099. 06/21/2008: wsfulton
  1100. [Ruby] Fix crashing in the STL wrappers (reject! and delete_if methods)
  1101. 06/19/2008: wsfulton
  1102. [Java, C#] C# and Java keywords will be renamed instead of just issuing a warning
  1103. and then generating uncompileable code. Warning 314 gives the new name when a
  1104. keyword is found.
  1105. 06/19/2008: wsfulton
  1106. [R] Keyword handling added. R Keywords will be renamed as necessary.
  1107. Warning 314 gives the new name when a keyword is found.
  1108. 06/17/2008: mgossage
  1109. [Lua] Added missing support for bool& and bool*. Added runtest for li_typemaps testcase.
  1110. (Bug #1938142)
  1111. 06/07/2008: bhy
  1112. Added test case keyword_rename, then made the keyword renaming works properly
  1113. by fixing Swig_name_make() for a incomplete condition checking.
  1114. 06/02/2008: wsfulton
  1115. [Java, C#] Fix enum wrappers when using -noproxy.
  1116. 05/30/2008: bhy
  1117. Added std::wstring into Lib/typemaps/primtypes.swg, since it is also a primitive
  1118. type in SWIG - fixed SF #1976978.
  1119. 05/29/2008: wsfulton
  1120. [Java, C#] Fix variable wrappers when using -noproxy.
  1121. 05/29/2008: bhy
  1122. [Python] Fixed a typo of %#ifdef in Lib/python/pycontainer.swg, which is related
  1123. to -extranative SWIG option - SF #1971977.
  1124. 05/20/2008: wsfulton
  1125. New partialcheck makefile targets for partial testing of the test-suite. These
  1126. just invoke SWIG, ie no compilation and no runtime testing. It can be faster
  1127. when developing by just doing a directory diff of the files SWIG generates
  1128. against those from a previous run. Example usage from the top level directory:
  1129. make partialcheck-test-suite
  1130. make partialcheck-java-test-suite
  1131. This change also encompasses more flexibility in running the test-suite, eg
  1132. it is possible to prefix the command line which runs any target language test
  1133. with a tool. See the RUNTOOL, COMPILETOOL and SWIGTOOL targets in the common.mk
  1134. file and makefiles in the test-suite directory. For example it is possible to
  1135. run the runtime tests through valgrind using:
  1136. make check RUNTOOL="valgrind --leak-check=full"
  1137. or invoke SWIG under valgrind using:
  1138. make check SWIGTOOL="valgrind --tool=memcheck"
  1139. 05/19/2008: drjoe
  1140. [R] Fixed define that was breaking pre-2.7. Checked in
  1141. patch from Soren Sonnenburg that creates strings in
  1142. version independent way
  1143. 05/15/2008: wsfulton
  1144. [Java] Fix variable name clash in directors - SF #1963316 reported by Tristan.
  1145. 05/14/2008: wsfulton
  1146. Add an optimisation for functions that return objects by value, reducing
  1147. the number of copies of the object that are made. Implemented using an
  1148. optional attribute in the "out" typemap called "optimal". Details in
  1149. Typemaps.html.
  1150. 05/11/2008: olly
  1151. [PHP] Check for %feature("notabstract") when generating PHP5 class
  1152. wrapper.
  1153. 05/11/2008: wsfulton
  1154. Fix SF #1943608 - $self substitution in %contract, patch submitted by
  1155. Toon Verstraelen.
  1156. 05/09/2008: olly
  1157. [PHP] Fix char * typemaps to work when applied to signed char * and
  1158. unsigned char * (uncovered by testcase apply_strings).
  1159. 05/09/2008: wsfulton
  1160. Fix wrapping of char * member variables when using allprotected mode.
  1161. Bug reported by Warren Wang.
  1162. 05/09/2008: olly
  1163. [PHP] Fix bad PHP code generated when wrapping an enum in a
  1164. namespace (uncovered by testcase arrays_scope).
  1165. 05/09/2008: olly
  1166. [PHP] SWIG now runs the PHP testsuite using PHP5, not PHP4. PHP4
  1167. is essentially obsolete now, so we care much more about solid PHP5
  1168. support.
  1169. 05/07/2008: wsfulton
  1170. STL fixes when using %import rather than %include and the Solaris Workshop
  1171. compiler and the Roguewave STL.
  1172. 05/07/2008: wsfulton
  1173. Fix wrapping of overloaded protected methods when using allprotected mode.
  1174. Bug reported by Warren Wang.
  1175. 05/03/2008: wsfulton
  1176. Commit patch #1956607 to add -MT support from Richard Boulton.
  1177. This patch mirrors the gcc -MT option which allows one to change the default
  1178. Makefile target being generated when generating makefiles with the -M family
  1179. of options. For example:
  1180. $ swig -java -MM -MT overiddenname -c++ example.i
  1181. overiddenname: \
  1182. example.i \
  1183. example.h
  1184. 04/30/2008: mgossage
  1185. [Lua] Removed generation of _wrap_delete_XXXXX (wrappered destructor)
  1186. which was unused and causing warning with g++ -Wall.
  1187. Removed other unused warning in typemaps.i and other places.
  1188. Added Examples/lua/embed3, and run tests a few test cases.
  1189. 04/24/2008: olly
  1190. [Python] Fix generated code for IBM's C++ compiler on AIX (patch
  1191. from Goeran Uddeborg in SF#1928048).
  1192. 04/24/2008: olly
  1193. Rename BSIZE in Examples/test-suite/arrays_scope.i to BBSIZE to
  1194. avoid a clash with BSIZE defined by headers on AIX with Perl
  1195. (reported in SF#1928048).
  1196. 04/20/2008: wsfulton
  1197. Add the ability to wrap all protected members when using directors.
  1198. Previously only the virtual methods were available to the target language.
  1199. Now all protected members, (static and non-static variables, non-virtual methods
  1200. and static methods) are wrapped when using the allprotected mode. The allprotected
  1201. mode is turned on in the module declaration:
  1202. %module(directors="1", allprotected="1") modulename
  1203. Version 1.3.35 (7 April 2008)
  1204. =============