PageRenderTime 75ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/rel-2.0.4/CHANGES

#
#! | 1563 lines | 1191 code | 372 blank | 0 comment | 0 complexity | b20828b34f3bc5254d04ba1fc8e771c4 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.3 (29 March 2011)
  5. =============================
  6. 2011-03-29: wsfulton
  7. [R] Apply patch #3239076 from Marie White fixing strings for R >= 2.7.0
  8. 2011-03-29: wsfulton
  9. [Tcl] Apply patch #3248280 from Christian Delbaere which adds better error messages when
  10. the incorrect number or type of arguments are passed to overloaded methods.
  11. 2011-03-29: wsfulton
  12. [Tcl] Apply patch #3224663 from Christian Delbaere.
  13. 1. Fix when function returns a NULL value, a "NULL" command will be created in the Tcl interpreter
  14. and calling this command will cause a segmentation fault.
  15. 2. Previous implementation searches for class methods using a linear search causing performance issues
  16. in wrappers for classes with many member functions. The patch adds a method hash table to classes and
  17. changes method name lookup to use the hash table instead of doing a linear search.
  18. 2011-03-26: wsfulton
  19. [C#, Java] SF bug #3195112 - fix wrapping of enums that are type char, for example:
  20. enum { X = 'X'; }
  21. 2011-03-21: vadz
  22. Allow setting PCRE_CFLAGS and PCRE_LIBS during configuration to override the values returned by
  23. pcre-config, e.g. to allow using a static version of PCRE library.
  24. 2011-03-17: wsfulton
  25. [UTL] Add missing headers in generated STL wrappers to fix compilation with gcc-4.6.
  26. 2011-03-17: wsfulton
  27. Fix regression introduced in swig-2.0.2 where filenames with spaces were not found
  28. when used with %include and %import. Reported by Shane Liesegang.
  29. 2011-03-15: wsfulton
  30. [UTL] Fix overloading when using const char[], problem reported by David Maxwell.
  31. Similarly for char[ANY] and const char[ANY].
  32. 2011-03-15: wsfulton
  33. [C#] Apply patch #3212624 fixing std::map Keys property.
  34. 2011-03-14: olly
  35. [PHP] Fix handling of overloaded methods/functions where some
  36. return void and others don't - whether this worked or not depended
  37. on the order they were encountered in (SF#3208299).
  38. 2011-03-13: klickverbot
  39. [D] Extended support for C++ namespaces (nspace feature).
  40. 2011-03-12: olly
  41. [PHP] Fix sharing of type information between multiple SWIG-wrapped
  42. modules (SF#3202463).
  43. 2011-03-09: wsfulton
  44. [Python] Fix SF #3194294 - corner case bug when 'NULL' is used as the default value
  45. for a primitive type parameter in a method declaration.
  46. 2011-03-07: olly
  47. [PHP] Don't use zend_error_noreturn() for cases where the function
  48. returns void - now this issue can only matter if you have a function
  49. or method which is directed and returns non-void.
  50. 2011-03-06: olly
  51. [PHP] Add casts to the typemaps for long long and unsigned long
  52. long to avoid issues when they are used with shorter types via
  53. %apply.
  54. 2011-03-02: wsfulton
  55. Templated smart pointers overloaded with both const and non const operator-> generated uncompilable
  56. code when the pointee was a class with either public member variables or static methods.
  57. Regression in 2.0.x reported as working in 1.3.40 by xantares on swig-user mailing list.
  58. Version 2.0.2 (20 February 2011)
  59. ================================
  60. 2011-02-19: wsfulton
  61. [PHP] Add missing INPUT, OUTPUT and INOUT typemaps in the typemaps.i library
  62. for primitive reference types as well as signed char * and bool *.
  63. 2011-02-19: olly
  64. [PHP] Address bug in PHP on some platforms/architectures which
  65. results in zend_error_noreturn() not being available using
  66. SWIG_ZEND_ERROR_NORETURN which defaults to zend_error_noreturn but
  67. can be overridden when building the module by passing
  68. -DSWIG_ZEND_ERROR_NORETURN=zend_error to the compiler. This may
  69. result in compiler warnings, but should at least allow a module
  70. to be built on those platforms/architectures (SF#3166423).
  71. 2011-02-18: wsfulton
  72. Fix #3184549 - vararg functions and function overloading when using the -fastdispatch option.
  73. 2011-02-18: olly
  74. [PHP] An overloaded method which can return an object or a
  75. primitive type no longer causes SWIG to segfault. Reported by Paul
  76. Colby in SF#3168531.
  77. 2011-02-18: olly
  78. [PHP] Fix invalid erase during iteration of std::map in generated
  79. director code. Reported by Cory Bennett in SF#3175820.
  80. 2011-02-17: wsfulton
  81. Preprocessing now warns if extra tokens appear after #else and #end.
  82. 2011-02-16: wsfulton
  83. Fix #1653092 Preprocessor does not error out when #elif is missing an expression.
  84. This and other cases of missing preprocessor expressions now result in an error.
  85. 2011-02-14: wsfulton
  86. [Ocaml] Apply patch #3151788 from Joel Reymont. Brings Ocaml support up to date
  87. (ver 3.11 and 3.12), including std::string.
  88. 2011-02-13: wsfulton
  89. [Ruby] Apply patch #3176274 from James Masters - typecheck typemap for time_t.
  90. 2011-02-13: wsfulton
  91. Apply patch #3171793 from szager - protected director methods failing when -fvirtual is used.
  92. 2011-02-13: wsfulton
  93. Fix #1927852 - #include directives don't preprocess the file passed to it. The fix is for
  94. #include with -importall or -includeall, %include and %import, for example:
  95. #define FILENAME "abc.h"
  96. %include FILENAME
  97. 2011-02-12: wsfulton
  98. Fix #1940536, overactive preprocessor which was expanding defined(...) outside of #if and #elif
  99. preprocessor directives.
  100. 2011-02-05: wsfulton
  101. [MzScheme] SF #2942899 Add user supplied documentation to help getting started with MzScheme.
  102. Update chapter name to MzScheme/Racket accounting for the rename of MzScheme to Racket.
  103. 2011-02-05: wsfulton
  104. [C#] SF #3085906 - Possible fix running test-suite on Mac OSX.
  105. 2011-02-05: wsfulton
  106. SF #3173367 Better information during configure about Boost prerequisite for running
  107. the test-suite.
  108. 2011-02-05: wsfulton
  109. SF #3127633 Fix infinite loop in recursive typedef resolution.
  110. 2011-02-04: wsfulton
  111. [R] SF #3168676 Fix %rename not working for member variables and methods.
  112. 2011-02-04: wsfulton
  113. [clisp] SF #3148200 Fix segfault parsing nested unions.
  114. 2011-02-01: wsfulton
  115. [C#] Directors - a call to a method being defined in the base class, not
  116. overridden in a subclass, but again overridden in a class derived from
  117. the first subclass was not being dispatched correctly to the most derived class.
  118. See director_alternating.i for an example.
  119. 2011-02-01: wsfulton
  120. [C#, Java] Any 'using' statements in the protected section of a class were previously
  121. ignored with director protected (dirprot) mode.
  122. 2011-01-30: wsfulton
  123. Fix overloading with const pointer reference (SWIGTYPE *const&) parameters for a
  124. number of scripting languages.
  125. 2011-01-17: wsfulton
  126. New warning for smart pointers if only some of the classes in the inheritance
  127. chain are marked as smart pointer, eg, %shared_ptr should be used for all classes
  128. in an inheritance hierarchy, so this new warning highlights code where this is
  129. not the case.
  130. example.i:12: Warning 520: Base class 'A' of 'B' is not similarly marked as a smart pointer.
  131. example.i:16: Warning 520: Derived class 'C' of 'B' is not similarly marked as a smart pointer.
  132. 2011-01-14: wsfulton
  133. Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and
  134. (char *STRING, int LENGTH). Documentation for this updated. Java patch from
  135. Volker Grabsch.
  136. 2011-01-11: iant
  137. Require Go version 7077 or later.
  138. 2010-12-30: klickverbot
  139. [C#, D, Java] Check for collision of parameter names with target
  140. language keywords when generating the director glue code.
  141. The situation in which the generated could would previously be
  142. invalid is illustrated in the new 'director_keywords' test case.
  143. 2010-12-23: wsfulton
  144. [C#] Fix $csinput special variable not being expanded for csvarin typemaps
  145. when used for global variables. Reported by Vadim Zeitlin.
  146. 2010-12-14: wsfulton
  147. Fix $basemangle expansion in array typemaps. For example if type is int *[3],
  148. $basemangle expands to _p_int.
  149. 2010-12-07: iant
  150. Check that we are using a sufficiently new version of the
  151. 6g or 8g Go compiler during configure time. If not, disable Go.
  152. Minimum version is now 6707.
  153. *** POTENTIAL INCOMPATIBILITY ***
  154. 2010-12-06: wsfulton
  155. Fix #3127394 - use of network paths on Windows/MSys.
  156. 2010-11-18: klickverbot
  157. [D] Added the D language module.
  158. 2010-11-12: vadz
  159. Fix handling of multiple regex-using %renames attached to the same
  160. declaration. For example, now
  161. %rename("%(regex/^Set(.*)/put\\1/)s") "";
  162. %rename("%(regex/^Get(.*)/get\\1/)s") "";
  163. works as expected whereas before only the last anonymous rename was
  164. taken into account.
  165. 2010-10-17: drjoe
  166. [R] Fix failure in overloaded functions which was breaking
  167. QuantLib-SWIG
  168. 2010-10-14: olly
  169. [PHP] Allow compilation on non-conforming Microsoft C++ compilers
  170. which don't accept: return function_returning_void();
  171. Reported by Frank Vanden Berghen on the SWIG mailing list.
  172. 2010-10-12: wsfulton
  173. Fix unary scope operator (::) (global scope) regression introduced in 2.0.0, reported by
  174. Ben Walker. The mangled symbol names were incorrect, sometimes resulting in types being
  175. incorrectly treated as opaque types.
  176. Also fixes #2958781 and some other type problems due to better typedef resolution, eg
  177. std::vector<T *>::value_type didn't resolve to T * when it should have. The mangled type
  178. was incorrectly SWIGTYPE_std__vectorT_Test_p_std__allocatorT_Test_p_t_t__value_type and now
  179. it is correctly SWIGTYPE_p_Test.
  180. Version 2.0.1 (4 October 2010)
  181. ==============================
  182. 2010-10-03: wsfulton
  183. Apply patch #3066958 from Mikael Johansson to fix default smart pointer
  184. handling when the smart pointer contains both a const and non-const operator->.
  185. 2010-10-01: wsfulton
  186. Add -pcreversion option to display PCRE version information.
  187. 2010-10-01: olly
  188. [Ruby] Avoid segfault when a method node has no parentNode
  189. (SF#3034054).
  190. 2010-10-01: olly
  191. [Python] Allow reinitialisation to work with an embedded Python
  192. interpreter (patch from Jim Carroll in SF#3075178).
  193. 2010-09-28: wsfulton
  194. [C#] Apply patch from Tomas Dirvanauskas for std::map wrappers to avoid
  195. throwing exceptions with normal usage of iterators.
  196. 2010-09-27: olly
  197. [Python] Improve error message given when a parameter of the wrong
  198. type is passed to an overloaded method (SF#3027355).
  199. 2010-09-25: wsfulton
  200. Apply SF patch #3075150 - Java directors using static variables in
  201. named namespace.
  202. 2010-09-24: wsfulton
  203. More file and line error/warning reporting fixes where SWIG macros
  204. are used within {} braces (where the preprocessor expands macros),
  205. for example macros within %inline {...} and %fragment(...) {...}
  206. and nested structs.
  207. 2010-09-18: wsfulton
  208. More file and line error/warning reporting fixes for various inherited
  209. class problems.
  210. 2010-09-15: wsfulton
  211. A much improved debugging of SWIG source experience is now available and
  212. documented in the "Debugging SWIG" section in the Doc/Devel/internals.html
  213. file, including a swig.dbg support file for the gdb debugger.
  214. 2010-09-11: wsfulton
  215. Fix incorrect line number reporting in errors/warnings when a macro
  216. definition ends with '/' and it is not the end of a C comment.
  217. 2010-09-11: wsfulton
  218. Fix incorrect line number reporting in errors/warnings after parsing
  219. macro invocations with parameters given over more than one line.
  220. 2010-09-10: wsfulton
  221. Remove extraneous extra line in preprocessed output after including files
  222. which would sometimes lead to error/warning messages two lines after the
  223. end of the file.
  224. 2010-09-10: wsfulton
  225. Fix #2149523 - Incorrect line number reporting in errors after parsing macros
  226. containing C++ comments.
  227. 2010-09-08: olly
  228. [PHP] Fix handling of OUTPUT typemaps (Patch from Ryan in SF#3058394).
  229. 2010-09-03: wsfulton
  230. Fix erroneous line numbers in error messages for macro expansions, for example,
  231. the error message now points to instantiation of the macro, ie the last line here:
  232. #define MACRO2(a, b)
  233. #define MACRO1(NAME) MACRO2(NAME,2,3)
  234. MACRO1(abc)
  235. 2010-09-02: wsfulton
  236. Fix line numbers in error and warning messages for preprocessor messages within
  237. %inline, for example:
  238. %inline %{
  239. #define FOOBAR 1
  240. #define FOOBAR "hi"
  241. %}
  242. 2010-09-02: wsfulton
  243. Fix line numbers in error and warning messages which were cumulatively one
  244. less than they should have been after parsing each %include/%import - bug
  245. introduced in swig-1.3.32. Also fix line numbers in error and warning messages
  246. when new line characters appear between the %include / %import statement and
  247. the filename.
  248. 2010-08-30: wsfulton
  249. Fix line number and file name reporting for some macro preprocessor warnings.
  250. The line number of the macro argument has been corrected and the line number
  251. of the start of the macro instead of one past the end of the macro is used.
  252. Some examples:
  253. file.h:11: Error: Illegal macro argument name '..'
  254. file.h:19: Error: Macro 'DUPLICATE' redefined,
  255. file.h:15: Error: previous definition of 'DUPLICATE'.
  256. file.h:25: Error: Variable-length macro argument must be last parameter
  257. file.h:32: Error: Illegal character in macro argument name
  258. file.i:37: Error: Macro 'SIT' expects 2 arguments
  259. 2010-08-26: wsfulton
  260. Fix __LINE__ and __FILE__ expansion reported by Camille Gillot. Mostly this
  261. did not work at all. Also fixes SF #2822822.
  262. 2010-08-17: wsfulton
  263. [Perl] Fix corner case marshalling of doubles - errno was not being correctly
  264. set before calling strtod - patch from Justin Vallon - SF Bug #3038936.
  265. 2010-08-17: wsfulton
  266. Fix make distclean when some of the more obscure languages are detected by
  267. configure - fixes from Torsten Landschoff.
  268. 2010-07-28: wsfulton
  269. Restore configuring out of source for the test-suite since it broke in 1.3.37.
  270. As previously, if running 'make check-test-suite' out of source, it needs to be
  271. done by invoking configure with a relative path. Invoking configure with an
  272. absolute path will not work. Running the full 'make check' still needs to be
  273. done in the source tree.
  274. 2010-07-16: wsfulton
  275. Fix wrapping of function pointers and member function pointers when the function
  276. returns by reference.
  277. 2010-07-13: vadz
  278. Removed support for the old experimental "rxspencer" encoder and
  279. "[not]rxsmatch" in %rename (see the 01/16/2006 entry). The new and
  280. officially supported "regex" encoder and "[not]regexmatch" checks
  281. should be used instead (see the two previous entries). Please
  282. replace "%(rxspencer:[pat][subst])s" with "%(regex:/pat/subst/)s"
  283. when upgrading. Notice that you will also need to replace the back-
  284. references of form "@1" with the more standard "\\1" and may need to
  285. adjust your regular expressions syntax as the new regex encoder uses
  286. Perl-compatible syntax and not (extended) POSIX syntax as the old one.
  287. *** POTENTIAL INCOMPATIBILITY ***
  288. 2010-07-13: vadz
  289. Add "regexmatch", "regextarget" and "notregexmatch" which can be
  290. used to apply %rename directives to the declarations matching the
  291. specified regular expression only. The first two can be used
  292. interchangeably, both of the %renames below do the same thing:
  293. %rename("$ignore", regexmatch$name="Old$") "";
  294. %rename("$ignore", regextarget=1) "Old$";
  295. (namely ignore the declarations having "Old" suffix).
  296. "notregexmatch" restricts the match to only the declarations which
  297. do not match the regular expression, e.g. here is how to rename to
  298. lower case versions all declarations except those consisting from
  299. capital letters only:
  300. %rename("$(lowercase)s", notregexmatch$name="^[A-Z]+$") "";
  301. 2010-07-13: vadz
  302. Add the new "regex" encoder that can be used in %rename, e.g.
  303. %rename("regex:/(\\w+)_(.*)/\\2/") "";
  304. to remove any alphabetical prefix from all identifiers. The syntax
  305. of the regular expressions is Perl-like and PCRE library
  306. (http://www.pcre.org/) is used to implement this feature but notice
  307. that backslashes need to be escaped as usual inside C strings.
  308. Original patch from Torsten Landschoff.
  309. 2010-07-08: wsfulton
  310. Fix #3024875 - shared_ptr of classes with non-public destructors. This also fixes
  311. the "unref" feature when used on classes with non-public destructors.
  312. 2010-06-17: ianlancetaylor
  313. [Go] Add the Go language module.
  314. 2010-06-10: wsfulton
  315. [Lua] Fix SWIG_lua_isnilstring multiply defined when using multiple
  316. modules and wrapping strings. Patch from 'Number Cruncher'.
  317. 2010-06-10: olly
  318. [PHP] Fix directors to correctly call a method with has a
  319. different name in PHP to C++ (we were always using the C++ name
  320. in this case).
  321. 2010-06-03: wsfulton
  322. Fix uncompileable code when %rename results in two enum items
  323. with the same name. Reported by Vadim Zeitlin.
  324. Version 2.0.0 (2 June 2010)
  325. ===========================
  326. 2010-06-02: wsfulton
  327. [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
  328. types containing commas, for example:
  329. SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
  330. 2010-06-01: wsfulton
  331. Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
  332. macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
  333. wrapped if the following macro is defined:
  334. #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
  335. %include <std_shared_ptr.i>
  336. shared_ptr is also documented in Library.html now.
  337. 2010-05-27: wsfulton
  338. Add the ability for $typemap special variable macros to call other $typemap
  339. special variable macros, for example:
  340. %typemap(cstype) CC "CC"
  341. %typemap(cstype) BB "$typemap(cstype, CC)"
  342. %typemap(cstype) AA "$typemap(cstype, BB)"
  343. void hah(AA aa);
  344. This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
  345. Also added diagnostics for $typemap with -debug-tmsearch, for example, the
  346. above displays additional diagnostic lines starting "Containing: ":
  347. example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
  348. Looking for: AA aa
  349. Looking for: AA
  350. Using: %typemap(cstype) AA
  351. Containing: $typemap(cstype, BB)
  352. example.i:31: Searching for a suitable 'cstype' typemap for: BB
  353. Looking for: BB
  354. Using: %typemap(cstype) BB
  355. Containing: $typemap(cstype, CC)
  356. example.i:29: Searching for a suitable 'cstype' typemap for: CC
  357. Looking for: CC
  358. Using: %typemap(cstype) CC
  359. 2010-05-26: olly
  360. Fix %attribute2ref not to produce a syntax error if the last
  361. argument (AccessorMethod) is omitted. Patch from David Piepgras
  362. in SF#2235756.
  363. 2010-05-26: olly
  364. [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
  365. now throw PHP Exception objects instead of giving a PHP error of
  366. type E_ERROR.
  367. This change shouldn't cause incompatibility issues, since you can't
  368. set an error handler for E_ERROR, so previously PHP would just exit
  369. which also happens for unhandled exceptions. The benefit is you can
  370. now catch them if you want to.
  371. Fixes SF#2545578 and SF#2955522.
  372. 2010-05-25: olly
  373. [PHP] Add missing directorin typemap for const std::string &.
  374. Fixes SF#3006404 reported by t-Legiaw.
  375. 2010-05-23: wsfulton
  376. [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
  377. initialized before use in .NET 4 as the classes were not marked beforefieldinit.
  378. A static constructor has been added to the intermediary class like this:
  379. %pragma(csharp) imclasscode=%{
  380. static $imclassname() {
  381. }
  382. %}
  383. If you had added your own custom static constructor to the intermediary class in
  384. the same way as above, you will have to modify your approach to use static variable
  385. initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
  386. *** POTENTIAL INCOMPATIBILITY ***
  387. 2010-05-23: wsfulton
  388. Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
  389. inheritance hierarchy. No special treatment is needed for derived classes.
  390. The proxy class also no longer needs to be specified, it is automatically
  391. deduced. The following macros are deprecated:
  392. SWIG_SHARED_PTR(PROXYCLASS, TYPE)
  393. SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  394. and have been replaced by
  395. %shared_ptr(TYPE)
  396. Similarly for intrusive_ptr wrappers, the following macro is deprecated:
  397. SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
  398. SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  399. and have been replaced by
  400. %intrusive_ptr(TYPE)
  401. 2010-05-21: olly
  402. [PHP] Stop generating a bogus line of code in certain constructors.
  403. This was mostly harmless, but caused a PHP notice to be issued, if
  404. enabled (SF#2985684).
  405. 2010-05-18: wsfulton
  406. [Java] Fix member pointers on 64 bit platforms.
  407. 2010-05-14: wsfulton
  408. Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
  409. typedef enum { PLAY = true, STOP = false } play_state;
  410. 2010-05-14: olly
  411. [PHP] Fix wrapping of global variables which was producing
  412. uncompilable code in some cases.
  413. 2010-05-12: drjoe
  414. [R] Add two more changes from Wil Nolan. Get garbage
  415. collection to work. Implement newfree
  416. 2010-05-09: drjoe
  417. Fix bug reported by Wil Nolan change creation of string so
  418. that R 2.7.0+ can use char hashes
  419. 2010-05-07: wsfulton
  420. Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
  421. operator in constructor initialization lists.
  422. 2010-05-05: wsfulton
  423. [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
  424. 2010-05-01: wsfulton
  425. Typemap matching enhancement for non-default typemaps. Previously all
  426. qualifiers were stripped in one step, now they are stripped one at a time
  427. starting with the left most qualifier. For example, int const*const
  428. is first stripped to int *const then int *.
  429. *** POTENTIAL INCOMPATIBILITY ***
  430. 2010-04-25: bhy
  431. [Python] Fix #2985655 - broken constructor renaming.
  432. 2010-04-14: wsfulton
  433. Typemap fragments are now official and documented in Typemaps.html.
  434. 2010-04-09: wsfulton
  435. [Ruby] Fix #2048064 and #2408020.
  436. Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
  437. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
  438. 2010-04-09: wsfulton
  439. [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
  440. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
  441. 2010-04-09: wsfulton
  442. [Python] Apply patch #2952374 - fix directors and the -nortti option.
  443. 2010-04-09: wsfulton
  444. [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
  445. 2010-04-03: wsfulton
  446. [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
  447. Fixes bug #2818499.
  448. 2010-04-03: wsfulton
  449. Fix Makefile targets: distclean and maintainer-clean
  450. 2010-04-02: wsfulton
  451. [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
  452. valid value. Bug reported by Gedalia Pasternak.
  453. 2010-04-01: wsfulton
  454. Numerous subtle typemap matching rule fixes when using the default type. The typemap
  455. matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
  456. then look for the next best match by reducing the chosen default type. The type deduction
  457. now follows C++ class template partial specialization matching rules.
  458. Below are the set of changes made showing the default type deduction
  459. along with the old reduced type and the new version of the reduced type:
  460. SWIGTYPE const &[ANY]
  461. new: SWIGTYPE const &[]
  462. old: SWIGTYPE (&)[ANY]
  463. SWIGTYPE *const [ANY]
  464. new: SWIGTYPE const [ANY]
  465. old: SWIGTYPE *[ANY]
  466. SWIGTYPE const *const [ANY]
  467. new: SWIGTYPE *const [ANY]
  468. old: SWIGTYPE const *[ANY]
  469. SWIGTYPE const *const &
  470. new: SWIGTYPE *const &
  471. old: SWIGTYPE const *&
  472. SWIGTYPE *const *
  473. new: SWIGTYPE const *
  474. old: SWIGTYPE **
  475. SWIGTYPE *const &
  476. new: SWIGTYPE const &
  477. old: SWIGTYPE *&
  478. Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
  479. T is some reduced type, eg int, struct Foo:
  480. T const
  481. new: SWIGTYPE const
  482. old: SWIGTYPE
  483. T *const
  484. new: SWIGTYPE *const
  485. old: SWIGTYPE *
  486. T const[]
  487. new: SWIGTYPE const[]
  488. old: SWIGTYPE[]
  489. enum T const
  490. new: enum SWIGTYPE const
  491. old: enum SWIGTYPE
  492. T (*const )[]
  493. new: SWIGTYPE (*const )[]
  494. old: SWIGTYPE (*)[]
  495. Reminder: the typemap matching rules can now be seen for any types being wrapped by using
  496. either the -debug-tmsearch or -debug-tmused options.
  497. In practice this leads to some subtle matching rule changes and the majority of users
  498. won't notice any changes, except in the prime area of motivation for this change: Improve
  499. STL containers of const pointers and passing const pointers by reference. This is fixed
  500. because many of the STL containers use a type 'T const&' as parameters and when T is
  501. a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
  502. means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
  503. const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
  504. when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
  505. *** POTENTIAL INCOMPATIBILITY ***
  506. 2010-03-13: wsfulton
  507. [Java] Some very old deprecated pragma warnings are now errors.
  508. 2010-03-13: wsfulton
  509. Improve handling of file names and directories containing double/multiple path separators.
  510. 2010-03-10: mutandiz (Mikel Bancroft)
  511. [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
  512. 2010-03-06: wsfulton
  513. [Java] The intermediary JNI class modifiers are now public by default meaning these
  514. intermediary low level functions are now accessible by default from outside any package
  515. used. The proxy class pointer constructor and getCPtr() methods are also now public.
  516. These are needed in order for the nspace option to work without any other mods.
  517. The previous default of protected access can be restored using:
  518. SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
  519. %pragma(java) jniclassclassmodifiers = "class"
  520. 2010-03-06: wsfulton
  521. [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
  522. 2010-03-04: wsfulton
  523. Added the nspace feature. This adds some improved namespace support. Currently only Java
  524. is supported for target languages, where C++ namespaces are automatically translated into
  525. Java packages. The feature only applies to classes,struct,unions and enums declared within
  526. a namespace. Methods and variables declared in namespaces still effectively have their
  527. namespaces flattened. Example usage:
  528. %feature(nspace) Outer::Inner1::Color;
  529. %feature(nspace) Outer::Inner2::Color;
  530. namespace Outer {
  531. namespace Inner1 {
  532. struct Color {
  533. ...
  534. };
  535. }
  536. namespace Inner2 {
  537. struct Color {
  538. ...
  539. };
  540. }
  541. }
  542. For Java, the -package option is also required when using the nspace feature. Say
  543. we use -package com.myco, the two classes can then be accessed as follows from Java:
  544. com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
  545. 2010-02-27: wsfulton
  546. [Python] Remove -dirvtable from the optimizations included by -O as it this option
  547. currently leads to memory leaks as reported by Johan Blake.
  548. 2010-02-27: wsfulton
  549. License code changes: SWIG Source is GPL-v3 and library code license is now clearer
  550. and is provided under a very permissive license. See http://www.swig.org/legal.html.
  551. 2010-02-13: wsfulton
  552. [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
  553. 2010-02-13: wsfulton
  554. [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
  555. used in various STL wrappers.
  556. 2010-02-13: wsfulton
  557. [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
  558. and class name have the same name, as reported by Nathan Krieger. Example:
  559. class Vector {};
  560. namespace Text {
  561. enum Preference { Vector };
  562. }
  563. This also fixes other incorrect corner case target language symbol name clashes.
  564. 2010-02-11: wsfulton
  565. Add the -debug-lsymbols option for displaying the target language layer symbols.
  566. 2010-02-09: wsfulton
  567. Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
  568. they should be.
  569. 2010-02-08: wsfulton
  570. Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
  571. on Windows, the file paths have been corrected to use single backslashes rather than double
  572. backslashes as path separators.
  573. 2010-02-06: wsfulton
  574. Fix #2918902 - language specific files not being generated in correct directory on
  575. Windows when using forward slashes for -o, for example:
  576. swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
  577. 2010-02-05: wsfulton
  578. Fix #2894405 - assertion when using -xmlout.
  579. 2010-01-28: wsfulton
  580. Fix typemap matching bug when a templated type has a typemap both specialized and not
  581. specialized. For example:
  582. template<typename T> struct XX { ... };
  583. %typemap(in) const XX & "..."
  584. %typemap(in) const XX< int > & "..."
  585. resulted in the 2nd typemap being applied for all T in XX< T >.
  586. 2010-01-22: wsfulton
  587. Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
  588. global scope, the typemap is now used in situations like this:
  589. struct X {};
  590. %typemap(in) const X & "..."
  591. void m(const ::X &);
  592. and this:
  593. struct X {};
  594. %typemap(in) const ::X & "..."
  595. void m(const X &);
  596. 2010-01-20: wsfulton
  597. Fix some unary scope operator (::) denoting global scope problems in the types generated
  598. into the C++ layer. Previously the unary scope operator was dropped in the generated code
  599. if the type had any sort of qualifier, for example when using pointers, references, like
  600. ::foo*, ::foo&, bar< ::foo* >.
  601. 2010-01-13: olly
  602. [PHP] Add datetime to the list of PHP predefined classes (patch
  603. from David Fletcher in SF#2931042).
  604. 2010-01-11: wsfulton
  605. Slight change to warning, error and diagnostic reporting. The warning number is no
  606. longer shown within brackets. This is to help default parsing of warning messages by
  607. other tools, vim on Unix in particular.
  608. Example original display using -Fstandard:
  609. example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
  610. New display:
  611. example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
  612. Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
  613. example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
  614. New display:
  615. example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
  616. 2010-01-10: wsfulton
  617. Fix a few inconsistencies in reporting of file/line numberings including modifying
  618. the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
  619. 2010-01-10: wsfulton
  620. Modify -debug-tags output to use standard file name/line reporting so that editors
  621. can easily navigate to the appropriate lines.
  622. Was typically:
  623. . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
  624. . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
  625. now:
  626. /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
  627. /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
  628. 2010-01-03: wsfulton
  629. Fix missing file/line numbers for typemap warnings and in output from the
  630. -debug-tmsearch/-debug-tmused options.
  631. 2010-01-03: wsfulton
  632. Add typemaps used debugging option (-debug-tmused). When used each line displays
  633. the typemap used for each type for which code is being generated including the file
  634. and line number related to the type. This is effectively a condensed form of the
  635. -debug-tmsearch option. Documented in Typemaps.html.
  636. 2009-12-23: wsfulton
  637. Fix for %javaexception and directors so that all the appropriate throws clauses
  638. are generated. Problem reported by Peter Greenwood.
  639. 2009-12-20: wsfulton
  640. Add -debug-tmsearch option for debugging the typemap pattern matching rules.
  641. Documented in Typemaps.html.
  642. 2009-12-12: wsfulton
  643. [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
  644. macro provided in the octave headers for determining the api version instead.
  645. 2009-12-04: olly
  646. [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
  647. SF#2859614.
  648. 2009-12-04: olly
  649. Fix handling of modulo operator (%) in constant expressions
  650. (SF#2818562).
  651. 2009-12-04: olly
  652. [PHP] "empty" is a reserved word in PHP, so rename empty() method
  653. on STL classes to "is_empty()" (previously this was automatically
  654. renamed to "c_empty()").
  655. *** POTENTIAL INCOMPATIBILITY ***
  656. 2009-12-03: olly
  657. [PHP] Add typemaps for long long and unsigned long long, and for
  658. pointer to method.
  659. 2009-12-02: olly
  660. [PHP] Fix warning and rename of reserved class name to be case
  661. insensitive.
  662. 2009-12-01: wsfulton
  663. Revert support for %extend and memberin typemaps added in swig-1.3.39. The
  664. memberin typemaps are ignored again for member variables within a %extend block.
  665. Documentation inconsistency reported by Torsten Landschoff.
  666. 2009-11-29: wsfulton
  667. [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
  668. static const char member variables.
  669. %javaconst(1) A;
  670. %csconst(1) A;
  671. struct X {
  672. static const char A = 'A';
  673. };
  674. 2009-11-26: wsfulton
  675. [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
  676. use the actual constant value if it is specified, rather than the C++ code to
  677. access the member.
  678. %javaconst(1) EN;
  679. %csconst(1) EN;
  680. struct X {
  681. static const int EN = 2;
  682. };
  683. 2009-11-23: wsfulton
  684. C++ nested typedef classes can now be handled too, for example:
  685. struct Outer {
  686. typedef Foo { } FooTypedef1, FooTypedef2;
  687. };
  688. 2009-11-18: wsfulton
  689. The wrappers for C nested structs are now generated in the same order as declared
  690. in the parsed code.
  691. 2009-11-18: wsfulton
  692. Fix #491476 - multiple declarations of nested structs, for example:
  693. struct Outer {
  694. struct {
  695. int val;
  696. } inner1, inner2, *inner3, inner4[1];
  697. } outer;
  698. 2009-11-17: wsfulton
  699. Fix parsing of enum declaration and initialization, for example:
  700. enum ABC {
  701. a,
  702. b,
  703. c
  704. } A = a, *pC = &C, array[3] = {a, b, c};
  705. 2009-11-17: wsfulton
  706. Fix parsing of struct declaration and initialization, for example:
  707. struct S {
  708. int x;
  709. } instance = { 10 };
  710. 2009-11-15: wsfulton
  711. Fix #1960977 - Syntax error parsing derived nested class declaration and member
  712. variable instance.
  713. 2009-11-14: wsfulton
  714. Fix #2310483 - function pointer typedef within extern "C" block.
  715. 2009-11-13: wsfulton
  716. Fix usage of nested template classes within templated classes so that compileable code
  717. is generated.
  718. 2009-11-13: olly
  719. [php] Fix place where class prefix (as specified with -prefix)
  720. wasn't being used. Patch from gverbruggen in SF#2892647.
  721. 2009-11-12: wsfulton
  722. Fix usage of nested template classes so that compileable code is generated - the nested
  723. template class is now treated like a normal nested classes, that is, as an opaque type
  724. unless the nestedworkaround feature is used.
  725. 2009-11-12: wsfulton
  726. Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
  727. SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
  728. Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
  729. %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
  730. but clearly unnamed nested classes cannot and the global suppression is still required, eg:
  731. #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
  732. 2009-11-11: wsfulton
  733. Added the nestedworkaround feature as a way to use the full functionality of a nested class
  734. (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
  735. had never parsed the nested class. The documented nested class workarounds using a global
  736. fake class stopped working when SWIG treated the nested class as an opaque pointer, and
  737. this feature reverts this behaviour. The documentation has been updated with details of how
  738. to use and implement it, see the "Nested classes" section in SWIGPlus.html.
  739. 2009-11-11: wsfulton
  740. There were a number of C++ cases where nested classes/structs/unions were being handled
  741. as if C code was being parsed which would oftentimes lead to uncompileable code as an
  742. attempt was made to wrap the nested structs like it is documented for C code. Now all
  743. nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
  744. there is an improvement as usage of nested structs/classes/unions is now always treated
  745. as an opaque type by default, resulting in generated code that should always compile.
  746. *** POTENTIAL INCOMPATIBILITY ***
  747. 2009-11-09: drjoe
  748. Fix R for -fcompact and add std_map.i
  749. 2009-11-08: wsfulton
  750. Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
  751. generated when inner struct and union declarations were used as types within the
  752. inner struct. The inner struct/union is now treated as a forward declaration making the
  753. behaviour the same as an inner class. (C++ code), eg:
  754. struct Outer {
  755. struct InnerStruct { int x; };
  756. InnerStruct* getInnerStruct();
  757. };
  758. 2009-11-08: wsfulton
  759. Ignored nested class/struct warnings now display the name of the ignored class/struct.
  760. 2009-11-07: wsfulton
  761. Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
  762. code and introduced strange side effects to other wrapper code especially code
  763. after the nested template class. Note that nested template classes are still ignored.
  764. 2009-11-07: wsfulton
  765. Add new debug options:
  766. -debug-symtabs - Display symbol tables information
  767. -debug-symbols - Display target language symbols in the symbol tables
  768. -debug-csymbols - Display C symbols in the symbol tables
  769. 2009-11-03: wsfulton
  770. Fix some usage of unary scope operator (::) denoting global scope, for example:
  771. namespace AA { /* ... */ }
  772. using namespace ::AA;
  773. and bug #1816802 - SwigValueWrapper should be used:
  774. struct CC {
  775. CC(int); // no default constructor
  776. };
  777. ::CC x();
  778. and in template parameter specializations:
  779. struct S {};
  780. template <typename T> struct X { void a() {}; };
  781. template <> struct X<S> { void b() {}; };
  782. %template(MyTConcrete) X< ::S >;
  783. plus probably some other corner case usage of ::.
  784. 2009-11-02: olly
  785. [Python] Fix potential memory leak in initialisation code for the
  786. generated module.
  787. 2009-10-23: wsfulton
  788. Fix seg fault when using a named nested template instantiation using %template(name)
  789. within a class. A warning that these are not supported is now issued plus processing
  790. continues as if no name was given.
  791. 2009-10-20: wsfulton
  792. [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
  793. 2009-10-20: wsfulton
  794. Fixed previously fairly poor template partial specialization and explicit
  795. specialization support. Numerous bugs in this area have been fixed including:
  796. - Template argument deduction implemented for template type arguments, eg this now
  797. works:
  798. template<typename T> class X {};
  799. template<typename T> class X<T *> {};
  800. %template(X1) X<const int *>; // Chooses T * specialization
  801. and more complex cases with multiple parameters and a mix of template argument
  802. deduction and explicitly specialised parameters, eg:
  803. template <typename T1, typename T2> struct TwoParm { void a() {} };
  804. template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
  805. %template(E) TwoParm<int **, int *>;
  806. Note that the primary template must now be in scope, like in C++, when
  807. an explicit or partial specialization is instantiated with %template.
  808. *** POTENTIAL INCOMPATIBILITY ***
  809. 2009-09-14: wsfulton
  810. [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
  811. 2009-09-11: wsfulton
  812. Fix memmove regression in cdata.i as reported by Adriaan Renting.
  813. 2009-09-07: wsfulton
  814. Fix constant expressions containing <= or >=.
  815. 2009-09-02: wsfulton
  816. The following operators in constant expressions now result in type bool for C++
  817. wrappers and remain as type int for C wrappers, as per each standard:
  818. && || == != < > <= >= (Actually the last 4 are still broken). For example:
  819. #define A 10
  820. #define B 10
  821. #define A_EQ_B A == B // now wrapped as type bool for C++
  822. #define A_AND_B A && B // now wrapped as type bool for C++
  823. 2009-09-02: wsfulton
  824. Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
  825. Constants such as the following are now wrapped (as type bool):
  826. #define FOO true
  827. #define BAR FOO && false
  828. Version 1.3.40 (18 August 2009)
  829. ===============================
  830. 2009-08-17: olly
  831. [Perl] Add "#undef do_exec" to our clean up of Perl global
  832. namespace pollution.
  833. 2009-08-17: olly
  834. [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
  835. 2009-08-17: wsfulton
  836. Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html
  837. is not available.
  838. 2009-08-16: wsfulton
  839. [Octave] Caught exceptions display the type of the C++ exception instead of the
  840. generic "c++-side threw an exception" message.
  841. 2009-08-16: wsfulton
  842. [Java] When %catches is used, fix so that any classes specified in the "throws"
  843. attribute of the "throws" typemap are generated into the Java method's throws clause.
  844. 2009-08-16: wsfulton
  845. [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
  846. 2009-08-15: wsfulton
  847. Fix %template seg fault on some cases of overloading the templated method.
  848. Bug reported by Jan Kupec.
  849. 2009-08-15: wsfulton
  850. [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
  851. as reported by Youssef Jones.
  852. 2009-08-14: wsfulton
  853. [Perl] Add SWIG_ConvertPtrAndOwn() method into the runtime for smart pointer
  854. memory ownership control. shared_ptr support still to be added. Patch from
  855. David Fletcher.
  856. 2009-08-14: olly
  857. [PHP] PHP5 now wraps static member variables as documented.
  858. 2009-08-14: olly
  859. [PHP] Update the PHP "class" example to work with PHP5 and use
  860. modern wrapping features.
  861. 2009-08-13: wsfulton
  862. [PHP] std::vector wrappers overhaul. They no longer require the
  863. specialize_std_vector() macro. Added wrappers for capacity() and reserve().
  864. 2009-08-13: wsfulton
  865. [PHP] Add const reference typemaps. const reference primitive types are
  866. now passed by value rather than pointer like the other target languages.
  867. Fixes SF#2524029.
  868. 2009-08-08: wsfulton
  869. [Python] More user friendly AttributeError is raised when there are
  870. no constructors generated for the proxy class in the event that the
  871. class is abstract - the error message is now
  872. "No constructor defined - class is abstract" whereas if there are no
  873. public constructors for any other reason and the class is not abstract,
  874. the message remains
  875. "No constructor defined".
  876. [tcl] Similarly for tcl when using -itcl.
  877. 2009-08-04: olly
  878. [PHP] Fix generated code to work with PHP 5.3.
  879. 2009-08-04: vmiklos
  880. [PHP] Various mathematical functions (which would conflict
  881. with the built-in PHP ones) are now automatically handled by
  882. adding a 'c_' prefix.
  883. 2009-08-03: wsfulton
  884. [C#] The std::vector<T> implementation is improved and now uses $typemap such
  885. that the proxy class for T no longer has to be specified in some macros
  886. for correct C# compilation; the following macros are deprecated, where
  887. CSTYPE was the C# type for the C++ class CTYPE:
  888. SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
  889. usage should be removed altogether
  890. SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
  891. should be replaced with:
  892. SWIG_STD_VECTOR_ENHANCED(CTYPE)
  893. Some more details in csharp/std_vector.i
  894. *** POTENTIAL INCOMPATIBILITY ***
  895. 2009-07-31: olly
  896. [Python] Fix indentation so that we give a useful error if the
  897. module can't be loaded. Patch from Gaetan Lehmann in SF#2829853.
  898. 2009-07-29: wsfulton
  899. Add $typemap(method, typelist) special variable macro. This allows
  900. the contents of a typemap to be inserted within another typemap.
  901. Fully documented in Typemaps.html.
  902. 2009-07-29: vmiklos
  903. [PHP] Static member variables are now prefixed with the
  904. class name. This allows static member variables with the
  905. same name in different classes.
  906. 2009-07-29: olly
  907. [Python] Add missing locks to std::map wrappers. Patch from
  908. Paul Hampson in SF#2813836.
  909. 2009-07-29: olly
  910. [PHP] Fix memory leak in PHP OUTPUT typemaps. Reported by Hitoshi
  911. Amano in SF#2826322.
  912. 2009-07-29: olly
  913. [PHP] Fix memory leak in PHP resource destructor for classes
  914. without a destructor and non-class types. Patch from Hitoshi Amano
  915. in SF#2825303.
  916. 2009-07-28: olly
  917. [PHP] Update warnings about clashes between identifiers and PHP
  918. keywords and automatic renaming to work with the PHP5 class
  919. wrappers. Fixes SF#1613679.
  920. 2009-07-28: vmiklos
  921. [PHP] If a member function is not public but it has a base
  922. which is public, then now a warning is issued and the member
  923. function will be public, as PHP requires this.
  924. 2009-07-21: vmiklos
  925. [PHP] Director support added.
  926. 2009-07-15: olly
  927. [Perl] Don't specify Perl prototype "()" for a constructor with a
  928. different name to the class, as such constructors can still take
  929. parameters.
  930. 2009-07-12: xavier98
  931. [Octave] Add support for Octave 3.2 API
  932. 2009-07-05: olly
  933. [PHP] Update the list of PHP keywords - "cfunction" is no longer a
  934. keyword in PHP5 and PHP 5.3 added "goto", "namespace", "__DIR__",
  935. and "__NAMESPACE__".
  936. 2009-07-03: olly
  937. [Tcl] To complement USE_TCL_STUBS, add support for USE_TK_STUBS
  938. and SWIG_TCL_STUBS_VERSION. Document all three in the Tcl chapter
  939. of the manual. Based on patch from SF#2810380 by Christian
  940. Gollwitzer.
  941. 2009-07-02: vmiklos
  942. [PHP] Added factory.i for PHP, see the li_factory testcase
  943. for more info on how to use it.
  944. 2009-07-02: wsfulton
  945. Fix -Wallkw option as reported by Solomon Gibbs.
  946. 2009-07-02: wsfulton
  947. Fix syntax error when a nested struct contains a comment containing a * followed
  948. eventually by a /. Regression from 1.3.37, reported by Solomon Gibbs.
  949. 2009-07-01: vmiklos
  950. [PHP] Unknown properties are no longer ignored in proxy
  951. classes.
  952. 2009-07-01: vmiklos
  953. [PHP] Fixed %newobject behaviour, previously any method
  954. marked with %newobject was handled as a constructor.
  955. 2009-06-30: olly
  956. [Ruby] Undefine close and connect macros defined by Ruby API
  957. headers as we don't need them and they can clash with C++ methods
  958. being wrapped. Patch from Vit Ondruch in SF#2814430.
  959. 2009-06-26: olly
  960. [Ruby] Fix to handle FIXNUM values greater than MAXINT passed for a
  961. double parameter.
  962. 2009-06-24: wsfulton
  963. Fix wrapping methods with default arguments and the compactdefaultargs feature
  964. where a class is passed by value and is assigned a default value. The SwigValueWrapper
  965. template workaround for a missing default constructor is no longer used as the code
  966. generated does not call the default constructor.
  967. 2009-06-16: wsfulton
  968. [Java,C#] Fix enum marshalling when %ignore is used on one of the enum items.
  969. Incorrect enum values were being passed to the C++ layer or compilation errors resulted.
  970. 2009-06-02: talby
  971. [Perl] Resolved reference.i overload support problem
  972. identified by John Potowsky.
  973. 2009-05-26: wsfulton
  974. [C#] Improved std::map wrappers based on patch from Yuval Baror. The C# proxy
  975. now implements System.Collections.Generic.IDictionary<>.
  976. These std:map wrappers have a non-backwards compatible overhaul to make them
  977. like a .NET IDictionary. Some method names have changed as following:
  978. set -> setitem (use this[] property now)
  979. get -> getitem (use this[] property now)
  980. has_key -> ContainsKey
  981. del -> Remove
  982. clear -> Clear
  983. The following macros used for std::map wrappers are deprecated and will no longer work:
  984. specialize_std_map_on_key
  985. specialize_std_map_on_value
  986. specialize_std_map_on_both
  987. *** POTENTIAL INCOMPATIBILITY ***
  988. 2009-05-20: vmiklos
  989. [PHP] Add the 'thisown' member to classes. The usage of it
  990. is the same as the Python thisown one: it's 1 by default and
  991. you can set it to 0 if you want to prevent freeing it. (For
  992. example to prevent a double free.)
  993. 2009-05-14: bhy
  994. [Python] Fix the wrong pointer value returned by SwigPyObject_repr().
  995. 2009-05-13: mutandiz (Mikel Bancroft)
  996. [allegrocl] Minor tweak when wrapping in -nocwrap mode.
  997. 2009-05-11: wsfulton
  998. [C#] Improved std::vector wrappers on the C# proxy side from Yuval Baror. These
  999. implement IList<> instead of IEnumerable<> where possible.
  1000. 2009-04-29: wsfulton
  1001. [Java, C#] Add the 'notderived' attribute to the javabase and csbase typemaps.
  1002. When this attribute is set, the typemap will not apply to classes that are derived
  1003. from a C++ base class, eg
  1004. %typemap(csbase, notderived="1") SWIGTYPE "CommonBase"
  1005. 2009-04-29: olly
  1006. [Python] Don't attempt to acquire the GIL in situations where we
  1007. know that it will already be locked. This avoids some dead-locks
  1008. with mod_python (due to mod_python bugs which are apparently
  1009. unlikely to ever be fixed), and results in smaller wrappers which
  1010. run a little faster (in tests with Xapian on x86-64 Ubuntu 9.04,
  1011. the stripped wrapper library was 11% smaller and ran 2.7% faster).
  1012. 2009-04-21: wsfulton
  1013. [C#] Fix #2753469 - bool &OUTPUT and bool *OUTPUT typemaps initialisation.
  1014. 2009-04-09: wsfulton
  1015. Fix #2746858 - C macro expression using floating point numbers
  1016. 2009-03-30: olly
  1017. [PHP] The default out typemap for char[ANY] now returns the string up to a
  1018. zero byte, or the end of the array if there is no zero byte. This
  1019. is the same as Python does, and seems more generally useful than
  1020. the previous behaviour of returning the whole contents of the array
  1021. including any zero bytes. If you want the old behaviour, you can provide
  1022. your own typemap to do this:
  1023. %typemap(out) char [ANY]
  1024. %{
  1025. RETVAL_STRINGL($1, $1_dim0, 1);
  1026. %}
  1027. Version 1.3.39 (21 March 2009)
  1028. ==============================
  1029. 2009-03-19: bhy
  1030. [Python] Fix the memory leak related to Python 3 unicode and C char* conversion,
  1031. which can be shown in the following example before this fix:
  1032. from li_cstring import *
  1033. i=0
  1034. while True:
  1035. i += 1
  1036. n = str(i)*10
  1037. test3(n)
  1038. This fix affected SWIG_AsCharPtrAndSize() so you cannot call this function with
  1039. a null alloc and non-null cptr argument in Python 3, otherwise a runtime error
  1040. will be raised.
  1041. 2009-03-18: wsfulton
  1042. [C#] std::vector<T> wrapper improvements for .NET 2 and also providing the
  1043. necessary machinery to use the std::vector<T> wrappers with more advanced features such
  1044. as LINQ - the C# proxy class now derives from IEnumerable<>. The default is now to
  1045. generate code requiring .NET 2 as a minimum, although the C# code can be compiled
  1046. for .NET 1 by defining the SWIG_DOTNET_1 C# preprocessor constant. See the
  1047. std_vector.i file for more details.
  1048. *** POTENTIAL INCOMPATIBILITY ***
  1049. 2009-03-12: wsfulton
  1050. [Ruby] Fix #2676738 SWIG generated symbol name clashes.
  1051. 2009-03-01: bhy
  1052. [Python] Some fixes for Python 3.0.1 and higher support. In 3.0.1, the C API function
  1053. PyObject_Compare is removed, so PyObject_RichCompareBool is used for replacement.
  1054. Struct initilization of SwigPyObject and SwigPyObject_as_number changed to reflect
  1055. the drop of tp_compare and nb_long.
  1056. 2009-03-01: bhy
  1057. [Python] Fix SF#2583160. Now the importer in Python shadow wrapper take care of the
  1058. case that module already imported at other place.
  1059. 2009-02-28: bhy
  1060. [Python] Fix SF#2637352. Move struct declaration of SWIG_module in pyinit.swg before
  1061. the method calls, since some C compiler don't allow declaration in middle of function
  1062. body.
  1063. 2009-02-21: wsfulton
  1064. [Allegrocl] Fix seg fault wrapping some constant variable (%constant) types.
  1065. 2009-02-20: wsfulton
  1066. [CFFI] Fix seg faults when for %extend and using statements.
  1067. 2009-02-20: wsfulton
  1068. Fix SF #2605955: -co option which broke in 1.3.37.
  1069. 2009-02-20: wsfulton
  1070. New %insert("begin") section added. Also can be used as %begin. This is a new
  1071. code section reserved entirely for users and the code within the section is generated
  1072. at the top of the C/C++ wrapper file and so provides a means to put custom code
  1073. into the wrapper file before anything else that SWIG generates.
  1074. 2009-02-17: wsfulton
  1075. 'make clean-test-suite' will now run clean on ALL languages. Previously it only
  1076. ran the correctly configured languages. This way it is now possible to clean up
  1077. properly after running 'make partialcheck-test-suite'.
  1078. 2009-02-14: wsfulton
  1079. Extend attribute library support for structs/classes and the accessor functions use
  1080. pass/return by value semantics. Two new macros are available and usage is identical
  1081. to %attribute. These are %attributeval for structs/classes and %attributestring for
  1082. string classes, like std::string. See attribute.swg for more details.
  1083. 2009-02-13: wsfulton
  1084. Add support for %extend and memberin typemaps. Previously the memberin typemaps were
  1085. ignored for member variables within a %extend block.
  1086. 2009-02-12: wsfulton
  1087. Remove unnecessary temporary variable when wrapping return values that are references.
  1088. Example of generated code for wrapping:
  1089. struct XYZ {
  1090. std::string& refReturn();
  1091. };
  1092. used to be:
  1093. std::string *result = 0 ;
  1094. ...
  1095. {
  1096. std::string &_result_ref = (arg1)->refReturn();
  1097. result = (std::string *) &_result_ref;
  1098. }
  1099. Now it is:
  1100. std::string *result = 0 ;
  1101. ...
  1102. result = (std::string *) &(arg1)->refReturn();
  1103. 2009-02-08: bhy
  1104. Change the SIZE mapped by %pybuffer_mutable_binary and %pybuffer_binary in pybuffer.i from
  1105. the length of the buffer to the number of items in the buffer.
  1106. 2009-02-08: wsfulton
  1107. Fix %feature not working for conversion operators, reported by Matt Sprague, for example:
  1108. %feature("cs:methodmodifiers") operator bool "protected";
  1109. 2009-02-07: wsfulton
  1110. [MzScheme] Apply #2081967 configure changes for examples to build with recent PLT versions.
  1111. Also fixes Makefile errors building SWIG executable when mzscheme package is installed
  1112. (version 3.72 approx and later).
  1113. 2009-02-04: talby
  1114. [Perl] Fix SF#2564192 reported by David Kolovratnk.
  1115. SWIG_AsCharPtrAndSize() now handles "get" magic.
  1116. Version 1.3.38 (31 January 2009)
  1117. ================================
  1118. 2009-01-31: bhy
  1119. [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend
  1120. and %pythonappend have correct indentation.
  1121. 2009-01-31: bhy
  1122. [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list
  1123. of static member function in generated proxy code should not have the
  1124. 'self' parameter.
  1125. 2009-01-29: wsfulton
  1126. Fix regression introduced in 1.3.37 where the default output directory
  1127. for target language specific files (in the absence of -outdir) was no
  1128. longer the same directory as the generated c/c++ file.
  1129. 2009-01-28: wsfulton
  1130. [Java, C#] Fix proxy class not being used when the global scope operator
  1131. was used for parameters passed by value. Reported by David Piepgrass.
  1132. 2009-01-15: wsfulton
  1133. [Perl] Fix seg fault when running with -v option, reported by John Ky.
  1134. Version 1.3.37 (13 January 2009)
  1135. ================================
  1136. 2009-01-13: mgossage
  1137. [Lua] Added contract support for requiring that unsigned numbers are >=0
  1138. Rewrote much of Examples/Lua/embed3.
  1139. Added a lot to the Lua documentation.
  1140. 2009-01-13: wsfulton
  1141. Fix compilation error when using directors on protected virtual overloaded
  1142. methods reported by Sam Hendley.
  1143. 2009-01-12: drjoe
  1144. [R] Fixed handling of integer arrays
  1145. 2009-01-10: drjoe
  1146. [R] Fix integer handling in r to deal correctly with signed
  1147. and unsigned issues
  1148. 2009-01-10: wsfulton
  1149. Patch #1992756 from Colin McDonald - %contract not working for classes
  1150. in namespace
  1151. 2009-01-05: olly
  1152. Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source
  1153. code and remove documentation of them.
  1154. 2008-12-30: wsfulton
  1155. Bug #2430756. All the languages now define a macro in the generated C/C++
  1156. wrapper file indicating which language is being wrapped. The macro name is the
  1157. same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc
  1158. and are listed in the "Conditional Compilation" section in the documentation.
  1159. 2008-12-23: wsfulton
  1160. [Java] Fix #2153773 - %nojavaexception was clearing the exception feature
  1161. instead of disabling it. Clearing checked Java exceptions also didn't work.
  1162. The new %clearjavaexception can be used for clearing the exception feature.
  1163. 2008-12-22: wsfulton
  1164. Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors
  1165. throw exceptions.
  1166. 2008-12-21: wsfulton
  1167. Apply patch #2440046 which fixes possible seg faults for member and global
  1168. variable char arrays when the strings are larger than the string array size.
  1169. 2008-12-20: wsfulton
  1170. The ccache compiler cache has been adapted to work with SWIG and
  1171. named ccache-swig. It now works with C/C++ compilers as well as SWIG
  1172. and can result in impressive speedups when used to recompile unchanged
  1173. code with either a C/C++ compiler or SWIG. Documentation is in CCache.html
  1174. or the installed ccache-swig man page.
  1175. 2008-12-12: wsfulton
  1176. Apply patch from Kalyanov Dmitry which fixes parsing of nested structs
  1177. containing comments.
  1178. 2008-12-12: wsfulton
  1179. Fix error message in some nested struct and %inline parsing error situations
  1180. such as unterminated strings and comments.
  1181. 2008-12-07: olly
  1182. [PHP] Fix warnings when compiling generated wrapper with GCC 4.3.
  1183. 2008-12-06: wsfulton
  1184. [PHP] Deprecate %pragma(php4). Please use %pragma(php) instead.
  1185. The following two warnings have been renamed:
  1186. WARN_PHP4_MULTIPLE_INHERITANCE -> WARN_PHP_MULTIPLE_INHERITANCE
  1187. WARN_PHP4_UNKNOWN_PRAGMA -> WARN_PHP_UNKNOWN_PRAGMA
  1188. *** POTENTIAL INCOMPATIBILITY ***
  1189. 2008-12-04: bhy
  1190. [Python] Applied patch SF#2158938: all the SWIG symbol names started with Py
  1191. are changed